@utrcgw.utc.com:mark@ardnt1 (mark) (03/11/91)
I have a question for anyone out there that uses (or has used) the Absoft Fortran compiler. I recently purchased version 2.3 (I think) of the AC/Fortran compiler from someone on the net. After testing the compiler with some simple little codes, I brought home some code from work that I wanted to "port". I made the few changes to the source that I knew I would have to make, and attempted to compile it. After about 30 seconds, I said hello to the GURU (GURU #00000003.00C12130). The code that I'm tried to compile is not large, approximately 20K ( 12 subroutines and 8 functions ), but I started to play around with the stack size and heap size just in case that was the problem. But the guru keeps showing up. At this point, I tried to compile something smaller, but I would still guru, with a similar guru number (#00000003.--------). I'm typing this from memory, but the smaller code was similar to the following: cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c Start of "test.f" c Program Test Include StdIO.cmn Write(*,'('' TOK_STR = '',I3)') TOK_STR Stop End c c End of "test.f" c ************************************************************************ * * Include file : StdIO.cmn * Integer : TOK_NUL : , TOK_HEL : , TOK_STR : , TOK_NUM : , Num_WS : , Ipos1 : , Ipos2 : , Input_Length Parameter ( TOK_NUL = 0 ) Parameter ( TOK_HEL = 1 ) Parameter ( TOK_STR = 2 ) Parameter ( TOK_NUM = 3 ) Parameter ( Num_WS = 5 ) Real : TOK_VALUE Character : Input_String*80 : , TOK_STRING*80 : , DIGITS*13 : , WhiteSpace*6 : , TAB*1 : , BLANK*1 : , COMMA*1 : , EQUAL*1 : , COLON*1 : , SEMI*1 : , QMARK*1 : , SQUOTE*1 : , DQUOTE*1 : , NULL*1 c c ascii characters c Parameter ( NULL = CHAR( 0 ) ) Parameter ( TAB = CHAR( 9 ) ) Parameter ( BLANK = CHAR( 32 ) ) Parameter ( COMMA = CHAR( 44 ) ) Parameter ( COLON = CHAR( 58 ) ) Parameter ( SEMI = CHAR( 59 ) ) Parameter ( EQUAL = CHAR( 61 ) ) Parameter ( QMARK = CHAR( 63 ) ) Parameter ( DQUOTE = CHAR( 34 ) ) ! <"> Parameter ( SQUOTE = CHAR( 39 ) ) ! <'> DATA WhiteSpace(1:1) / BLANK / , : WhiteSpace(2:2) / TAB / , : WhiteSpace(3:3) / COMMA / , : WhiteSpace(4:4) / EQUAL / , : WhiteSpace(5:5) / COLON / , : WhiteSpace(6:6) / SEMI / DATA DIGITS / '0123456789+-.' / DATA Ipos1 / 81 / DATA Ipos2 / 80 / DATA Input_Length / 0 / DATA Input_String / ' ' / COMMON /StdIO/ : Input_String, TOK_STRING, TOK_VALUE, WhiteSpace : , Ipos1, Ipos2, Input_Length, DIGITS ******************** end-of-file : StdIO.cmn ************************** I compiled the above with the following: f77 -KU test.f I'm running on a A1000 with 1.5M of memory. If anyone can : offer any suggestions tell me what that GURU number means tell me how stupid I am, because I forgot to do such-and-such it would be much appreciated. Thanks in advance, Mark ------------------------------------------------------------------------------ | Mark Stucky | Email: | | United Technologies Research Center | mark%ardnt1@utrcgw.utc.com | | East Hartford, CT. | mast%utrc@utrcgw.utc.com | | My opinions do not necessarily represent the opinions of my employer. | ------------------------------------------------------------------------------
rbw@lanl.gov (Bob Walker) (03/12/91)
I'm posting an answer to Mark Stucky's AC/FORTRAN question, since my machine can't find his by email: In an earlier message, Mark Stucky (mark%ardnt1@utrcgw.utc.com) asks: > I have a question for anyone out there that uses (or has used) the > Absoft Fortran compiler. [ ... details deleted ...] After about 30 > seconds, I said hello to the GURU (GURU #00000003.00C12130). Mark, there are several problems with the source code. The compiler shouldn't toss its cookies over them, and the fact that it crashes when you try to compile your code is a bug with the compiler. This is the first example I've seen of the compiler crashing like that in several years of using V2.3 (that's to make you feel better (?)). I made several changes to your code. First you cannot initialize data into common blocks, and so the data statements in the include file have to go. Put them into a block data subroutine, and make sure the data statements follow the variable and common declarations, or else you'll get compiler errors there too. There are two possible places where the compiler may have crashed -- (1) I am always nervous about using too many colons (you use colons to indicate continuation cards). I have had the compiler get things wrong with colons (although only inside character strings) so I avoid them. I know you shouldn't have to, and I don't really think that's the problem. I changed them anyway. The more likely problem is that you use a construct like this to initialize character data: Parameter ( TAB = CHAR( 9 ) ) Parameter ( QMARK = CHAR( 63 ) ) I don't think you can use the CHAR function inside the parameter statement. For printing variables, you can do the following: Parameter ( QMARK = '?' ) and for non-printing ones you can initialize to integers, as in: Parameter ( TAB = 9 ) A final observation: you mix character data types with others (integers) in the common block declaration. That's OK on many machines (including the Amiga), and not on others (like CRAYs). I would suggest for portability you break up any commons that have both character data and anything else. If you can find a mail path from you to me, I will be happy to email you the sources that I managed to get to execute OK. Bob Walker rbw@t12.lanl.gov
ben@epmooch.UUCP (Rev. Ben A. Mesander) (03/15/91)
>In article <2148@public.BTR.COM> thad@public.BTR.COM (Thaddeus P. Floryan) writes: [...] >Point being: to this day, I still have a "STACK 75000" in the startup on >all my Amigas. Give that a try and see if your guru goes on a retreat in >a place far, far away! :-) Gee, all I can say is you must not use GCC much, or you would have something like STACK 130000 in your startup script... :-) Seriously, do any Amiga C compilers automagically extend the stack, like the C compiler can on my Prime 9955 II? When a stack frame gets too big for its alloca()'d chunk, it just grabs another chunk and continues to use it. That would be nice, not only for the compiler, but for the code it produces... >Thad Floryan [ thad@btr.com (OR) {decwrl, mips, fernwood}!btr!thad ] -- | ben@epmooch.UUCP (Ben Mesander) | "Cash is more important than | | ben%servalan.UUCP@uokmax.ecn.uoknor.edu | your mother." - Al Shugart, | | !chinet!uokmax!servalan!epmooch!ben | CEO, Seagate Technologies |
thad@public.BTR.COM (Thaddeus P. Floryan) (03/15/91)
In article <47189@nigel.ee.udel.edu> @utrcgw.utc.com:mark@ardnt1 (mark) writes: > > I have a question for anyone out there that uses (or has used) the >Absoft Fortran compiler. I recently purchased version 2.3 (I think) > [...] > After testing the compiler with some simple little codes, I brought >home some code from work that I wanted to "port". I made the few >changes to the source that I knew I would have to make, and attempted >to compile it. After about 30 seconds, I said hello to the GURU >(GURU #00000003.00C12130). > [...] The MOST important thing to do when compiling/linking or running programs created using the AbSoft product is to assure you've a LARGE stack allocated. In their version 2.2 docs the number 75000 (i.e. "CLI> stack 75000") comes to mind. Back in 1985/1986 I successfully ported a multi-module (about 100+ source files) program from one of my DEC-20 to the Amiga all in one afternoon, forming a 450,000 byte executable which still runs to this day with all the same capabilities as the mainframe version. I only had to alter two READ statements and one COMMON ... everything else ported nicely, I still laugh while remembering it took someone else over 18 months to port a stripped-down version of that same program from the same sources to an IBM/PC! :-) The program is a commercial product and can even be found in the AT&T UNIX Computer Software Catalog, though my company no longer markets it. For the curious, its name (the product) is VUE (a project management and scheduling system). 'Tis a shame I did the Amiga port THEN because there was no market for such products on the Amiga at THAT time, and today I no longer have the rights to distribute that product commercially. Point being: to this day, I still have a "STACK 75000" in the startup on all my Amigas. Give that a try and see if your guru goes on a retreat in a place far, far away! :-) Thad Floryan [ thad@btr.com (OR) {decwrl, mips, fernwood}!btr!thad ]