|
|
1.1 ! root 1: ! 2: Sun Aug 23 19:05:22 EDT 1992: ! 3: fc: supply : after O in getopt invocation (for -O1 -O2 -O3). ! 4: ! 5: Mon Aug 24 18:37:59 EDT 1992: ! 6: Recant above tweak to fc: getopt is dumber than I thought; ! 7: it's necessary to say -O 1 (etc.). ! 8: libF77/README: add comments about ABORT, ERF, DERF, ERFC, DERFC, ! 9: GETARG, GETENV, IARGC, SIGNAL, and SYSTEM. ! 10: 31 Aug. 1989: ! 11: 1. A(min(i,j)) now is translated correctly (where A is an array). ! 12: 2. 7 and 8 character variable names are allowed (but elicit a ! 13: complaint under -ext). ! 14: 3. LOGICAL*1 is treated as LOGICAL, with just one error message ! 15: per LOGICAL*1 statement (rather than one per variable declared ! 16: in that statement). [Note that LOGICAL*1 is not in Fortran 77.] ! 17: Like f77, f2c now allows the format in a read or write statement ! 18: to be an integer array. ! 19: ! 20: 5 Sept. 1989: ! 21: Fixed botch in argument passing of substrings of equivalenced ! 22: variables. ! 23: ! 24: 15 Sept. 1989: ! 25: Warn about incorrect code generated when a character-valued ! 26: function is not declared external and is passed as a parameter ! 27: (in violation of the Fortran 77 standard) before it is invoked. ! 28: Example: ! 29: ! 30: subroutine foo(a,b) ! 31: character*10 a,b ! 32: call goo(a,b) ! 33: b = a(3) ! 34: end ! 35: ! 36: 18 Sept. 1989: ! 37: Complain about overlapping initializations. ! 38: ! 39: 20 Sept. 1989: ! 40: Warn about names declared EXTERNAL but never referenced; ! 41: include such names as externs in the generated C (even ! 42: though most C compilers will discard them). ! 43: ! 44: 24 Sept. 1989: ! 45: New option -w8 to suppress complaint when COMMON or EQUIVALENCE ! 46: forces word alignment of a double. ! 47: Under -A (for ANSI C), ensure that floating constants (terminated ! 48: by 'f') contain either a decimal point or an exponent field. ! 49: Repair bugs sometimes encountered with CHAR and ICHAR intrinsic ! 50: functions. ! 51: Restore f77's optimizations for copying and comparing character ! 52: strings of length 1. ! 53: Always assume floating-point valued routines in libF77 return ! 54: doubles, even under -R. ! 55: Repair occasional omission of arguments in routines having multiple ! 56: entry points. ! 57: Repair bugs in computing offsets of character strings involved ! 58: in EQUIVALENCE. ! 59: Don't omit structure qualification when COMMON variables are used ! 60: as FORMATs or internal files. ! 61: ! 62: 2 Oct. 1989: ! 63: Warn about variables that appear only in data stmts; don't emit them. ! 64: Fix bugs in character DATA for noncharacter variables ! 65: involved in EQUIVALENCE. ! 66: Treat noncharacter variables initialized (at least partly) with ! 67: character data as though they were equivalenced -- put out a struct ! 68: and #define the variables. This eliminates the hideous and nonportable ! 69: numeric values that were used to initialize such variables. ! 70: Treat IMPLICIT NONE as IMPLICIT UNDEFINED(A-Z) . ! 71: Quit when given invalid options. ! 72: ! 73: 8 Oct. 1989: ! 74: Modified naming scheme for generated intermediate variables; ! 75: more are recycled, fewer distinct ones used. ! 76: New option -W nn specifies nn characters/word for Hollerith ! 77: data initializing non-character variables. ! 78: Bug fix: x(i:min(i+10,j)) used to elicit "Can't handle opcode 31 yet". ! 79: Integer expressions of the form (i+const1) - (i+const2), where ! 80: i is a scalar integer variable, are now simplified to (const1-const2); ! 81: this leads to simpler translation of some substring expressions. ! 82: Initialize uninitialized portions of character string arrays to 0 ! 83: rather than to blanks. ! 84: ! 85: 9 Oct. 1989: ! 86: New option -c to insert comments showing original Fortran source. ! 87: New option -g to insert line numbers of original Fortran source. ! 88: ! 89: 10 Oct. 1989: ! 90: ! recognized as in-line comment delimiter (a la Fortran 88). ! 91: ! 92: 24 Oct. 1989: ! 93: New options to ease coping with systems that want the structs ! 94: that result from COMMON blocks to be defined just once: ! 95: -E causes uninitialized COMMON blocks to be declared Extern; ! 96: if Extern is undefined, f2c.h #defines it to be extern. ! 97: -ec causes a separate .c file to be emitted for each ! 98: uninitialized COMMON block: COMMON /ABC/ yields abc_com.c; ! 99: thus one can compile *_com.c into a library to ensure ! 100: precisely one definition. ! 101: -e1c is similar to -ec, except that everything goes into ! 102: one file, along with comments that give a sed script for ! 103: splitting the file into the pieces that -ec would give. ! 104: This is for use with netlib's "execute f2c" service (for which ! 105: -ec is coerced into -e1c, and the sed script will put everything ! 106: but the COMMON definitions into f2c_out.c ). ! 107: ! 108: 28 Oct. 1989: ! 109: Convert "i = i op ..." into "i op= ...;" even when i is a ! 110: dummy argument. ! 111: ! 112: 13 Nov. 1989: ! 113: Name integer constants (passed as arguments) c__... rather ! 114: than c_... so ! 115: common /c/stuff ! 116: call foo(1) ! 117: ... ! 118: is translated correctly. ! 119: ! 120: 19 Nov. 1989: ! 121: Floating-point constants are now kept as strings unless they ! 122: are involved in constant expressions that get simplified. The ! 123: floating-point constants kept as strings can have arbitrarily ! 124: many significant figures and a very large exponent field (as ! 125: large as long int allows on the machine on which f2c runs). ! 126: Thus, for example, the body of ! 127: ! 128: subroutine zot(x) ! 129: double precision x(6), pi ! 130: parameter (pi=3.1415926535897932384626433832795028841972) ! 131: x(1) = pi ! 132: x(2) = pi+1 ! 133: x(3) = 9287349823749272.7429874923740978492734D-298374 ! 134: x(4) = .89 ! 135: x(5) = 4.0005 ! 136: x(6) = 10D7 ! 137: end ! 138: ! 139: now gets translated into ! 140: ! 141: x[1] = 3.1415926535897932384626433832795028841972; ! 142: x[2] = 4.1415926535897931; ! 143: x[3] = 9.2873498237492727429874923740978492734e-298359; ! 144: x[4] = (float).89; ! 145: x[5] = (float)4.0005; ! 146: x[6] = 1e8; ! 147: ! 148: rather than the former ! 149: ! 150: x[1] = 3.1415926535897931; ! 151: x[2] = 4.1415926535897931; ! 152: x[3] = 0.; ! 153: x[4] = (float)0.89000000000000003; ! 154: x[5] = (float)4.0004999999999997; ! 155: x[6] = 100000000.; ! 156: ! 157: Recognition of f77 machine-constant intrinsics deleted, i.e., ! 158: epbase, epprec, epemin, epemax, eptiny, ephuge, epmrsp. ! 159: ! 160: 22 Nov. 1989: ! 161: Workarounds for glitches on some Sun systems... ! 162: libf77: libF77/makefile modified to point out possible need ! 163: to compile libF77/main.c with -Donexit=on_exit . ! 164: libi77: libI77/wref.c (and libI77/README) modified so non-ANSI ! 165: systems can compile with USE_STRLEN defined, which will cause ! 166: sprintf(b = buf, "%#.*f", d, x); ! 167: n = strlen(b) + d1; ! 168: rather than ! 169: n = sprintf(b = buf, "%#.*f", d, x) + d1; ! 170: to be compiled. ! 171: ! 172: 26 Nov. 1989: ! 173: Longer names are now accepted (up to 50 characters); names may ! 174: contain underscores (in which case they will have two underscores ! 175: appended, to avoid clashes with library names). ! 176: ! 177: 28 Nov. 1989: ! 178: libi77 updated: ! 179: 1. Allow 3 (or, on Crays, 4) digit exponents under format Ew.d . ! 180: 2. Try to get things right on machines where ints have 16 bits. ! 181: ! 182: 29 Nov. 1989: ! 183: Supplied missing semicolon in parameterless subroutines that ! 184: have multiple entry points (all of them parameterless). ! 185: ! 186: 30 Nov. 1989: ! 187: libf77 and libi77 revised to use types from f2c.h. ! 188: f2c now types floating-point valued C library routines as "double" ! 189: rather than "doublereal" (for use with nonstandard C compilers for ! 190: which "double" is IEEE double extended). ! 191: ! 192: 1 Dec. 1989: ! 193: f2c.h updated to eliminate #defines rendered unnecessary (and, ! 194: indeed, dangerous) by change of 26 Nov. to long names possibly ! 195: containing underscores. ! 196: libi77 further revised: yesterday's change omitted two tweaks to fmt.h ! 197: (tweaks which only matter if float and real or double and doublereal are ! 198: different types). ! 199: ! 200: 2 Dec. 1989: ! 201: Better error message (than "bad tag") for NAMELIST, which no longer ! 202: inhibits C output. ! 203: ! 204: 4 Dec. 1989: ! 205: Allow capital letters in hex constants (f77 extension; e.g., ! 206: x'a012BCd', X'A012BCD' and x'a012bcd' are all treated as the integer ! 207: 167848909). ! 208: libi77 further revised: lio.c lio.h lread.c wref.c wrtfmt.c tweaked ! 209: again to allow float and real or double and doublereal to be different. ! 210: ! 211: 6 Dec. 1989: ! 212: Revised f2c.h -- required for the following... ! 213: Simpler looking translations for abs, min, max, using #defines in ! 214: revised f2c.h . ! 215: libi77: more corrections to types; additions for NAMELIST. ! 216: Corrected casts in some I/O calls. ! 217: Translation of NAMELIST; libi77 must still be revised. Currently ! 218: libi77 gives you a run-time error message if you attempt NAMELIST I/O. ! 219: ! 220: 7 Dec. 1989: ! 221: Fixed bug that prevented local integer variables that appear in DATA ! 222: stmts from being ASSIGNed statement labels. ! 223: Fillers (for DATA statements initializing EQUIVALENCEd variables and ! 224: variables in COMMON) typed integer rather than doublereal (for slightly ! 225: more portability, e.g. to Crays). ! 226: libi77: missing return values supplied in a few places; some tests ! 227: reordered for better working on the Cray. ! 228: libf77: better accuracy for complex divide, complex square root, ! 229: real mod function (casts to double; double temporaries). ! 230: ! 231: 9 Dec. 1989: ! 232: Fixed bug that caused needless (albeit harmless) empty lines to be ! 233: inserted in the C output when a comment line contained trailing blanks. ! 234: Further tweak to type of fillers: allow doublereal fillers if the ! 235: struct has doublereal data. ! 236: ! 237: 11 Dec. 1989: ! 238: Alteration of rule for producing external (C) names from names that ! 239: contain underscores. Now the external name is always obtained by ! 240: appending a pair of underscores. ! 241: ! 242: 12 Dec. 1989: ! 243: C production inhibited after most errors. ! 244: ! 245: 15 Dec. 1989: ! 246: Fixed bug in headers for subroutines having two or more character ! 247: strings arguments: the length arguments were reversed. ! 248: ! 249: 19 Dec. 1989: ! 250: f2c.h libf77 libi77: adjusted so #undefs in f2c.h should not foil ! 251: compilation of libF77 and libI77. ! 252: libf77: getenv_ adjusted to work with unsorted environments. ! 253: libi77: the iostat= specifier should now work right with internal I/O. ! 254: ! 255: 20 Dec. 1989: ! 256: f2c bugs fixed: In the absence of an err= specifier, the iostat= ! 257: specifier was generally set wrong. Character strings containing ! 258: explicit nulls (\0) were truncated at the first null. ! 259: Unlabeled DO loops recognized; must be terminated by ENDDO. ! 260: (Don't ask for CYCLE, EXIT, named DO loops, or DO WHILE.) ! 261: ! 262: 29 Dec. 1989: ! 263: Nested unlabeled DO loops now handled properly; new warning for ! 264: extraneous text at end of FORMAT. ! 265: ! 266: 30 Dec. 1989: ! 267: Fixed bug in translating dble(real(...)), dble(sngl(...)), and ! 268: dble(float(...)), where ... is either of type double complex or ! 269: is an expression requiring assignment to intermediate variables (e.g., ! 270: dble(real(foo(x+1))), where foo is a function and x is a variable). ! 271: Regard nonblank label fields on continuation lines as an error. ! 272: ! 273: 3 Jan. 1990: ! 274: New option -C++ yields output that should be understood ! 275: by C++ compilers. ! 276: ! 277: 6 Jan. 1989: ! 278: -a now excludes variables that appear in a namelist from those ! 279: that it makes automatic. (As before, it also excludes variables ! 280: that appear in a common, data, equivalence, or save statement.) ! 281: The syntactically correct Fortran ! 282: read(*,i) x ! 283: end ! 284: now yields syntactically correct C (even though both the Fortran ! 285: and C are buggy -- no FORMAT has not been ASSIGNed to i). ! 286: ! 287: 7 Jan. 1990: ! 288: libi77: routines supporting NAMELIST added. Surrounding quotes ! 289: made optional when no ambiguity arises in a list or namelist READ ! 290: of a character-string value. ! 291: ! 292: 9 Jan. 1990: ! 293: f2c.src made available. ! 294: ! 295: 16 Jan. 1990: ! 296: New options -P to produce ANSI C or C++ prototypes for procedures ! 297: defined. Change to -A and -C++: f2c tries to infer prototypes for ! 298: invoked procedures unless the new -!P option is given. New warning ! 299: messages for inconsistent calling sequences among procedures within ! 300: a single file. Most of f2c/src is affected. ! 301: f2c.h: typedefs for procedure arguments added; netlib's f2c service ! 302: will insert appropriate typedefs for use with older versions of f2c.h. ! 303: ! 304: 17 Jan. 1990: ! 305: f2c/src: defs.h exec.c format.c proc.c putpcc.c version.c xsum0.out ! 306: updated. Castargs and protofile made extern in defs.h; exec.c ! 307: modified so superfluous else clauses are diagnosed; unused variables ! 308: omitted from declarations in format.c proc.c putpcc.c . ! 309: ! 310: 21 Jan. 1990: ! 311: No C emitted for procedures declared external but not referenced. ! 312: f2c.h: more new types added for use with -P. ! 313: New feature: f2c accepts as arguments files ending in .p or .P; ! 314: such files are assumed to be prototype files, such as produced by ! 315: the -P option. All prototype files are read before any Fortran files ! 316: and apply globally to all Fortran files. Suitable prototypes help f2c ! 317: warn about calling-sequence errors and can tell f2c how to type ! 318: procedures declared external but not explicitly typed; the latter is ! 319: mainly of interest for users of the -A and -C++ options. (Prototype ! 320: arguments are not available to netlib's "execute f2c" service.) ! 321: New option -it tells f2c to try to infer types of untyped external ! 322: arguments from their use as parameters to prototyped or previously ! 323: defined procedures. ! 324: f2c/src: many minor cleanups; most modules changed. Individual ! 325: files in f2c/src are now in "bundle" format. The former f2c.1 is ! 326: now f2c.1t; "f2c.1t from f2c" and "f2c.1t from f2c/src" are now the ! 327: same, as are "f2c.1 from f2c" and "f2c.1 from f2c/src". People who ! 328: do not obtain a new copy of "all from f2c/src" should at least add ! 329: fclose(sortfp); ! 330: after the call on do_init_data(outfile, sortfp) in format_data.c . ! 331: ! 332: 22 Jan. 1990: ! 333: Cleaner man page wording (thanks to Doug McIlroy). ! 334: -it now also applies to all untyped EXTERNAL procedures, not just ! 335: arguments; to get changed files, ask netlib to ! 336: send f2c.1 f2c.1t putpcc.c version.c xsum0.out from f2c/src ! 337: ! 338: 23 Jan. 01:34:00 EST 1990: ! 339: Bug fixes: under -A and -C++, incorrect C was generated for ! 340: subroutines having multiple entries but no arguments. ! 341: Under -A -P, subroutines of no arguments were given prototype ! 342: calling sequence () rather than (void). ! 343: Character-valued functions elicited erroneous warning messages ! 344: about inconsistent calling sequences when referenced by another ! 345: procedure in the same file. ! 346: f2c.1t: omit first appearance of libF77.a in FILES section; ! 347: load order of libraries is -lF77 -lI77, not vice versa (bug ! 348: introduced in yesterday's edits); define .F macro for those whose ! 349: -man lacks it. (For a while after yesterday's fixes were posted, ! 350: f2c.1t was out of date. Sorry!) ! 351: f2c/src files affected: ! 352: f2c.1 f2c.1t format.c pread.c putpcc.c version.c xsum0.out ! 353: ! 354: 23 Jan. 9:53:24 EST 1990: ! 355: Character substring expressions involving function calls having ! 356: character arguments (including the intrinsic len function) yielded ! 357: incorrect C. ! 358: Procedures defined after invocation (in the same file) with ! 359: conflicting argument types also got an erroneous message about ! 360: the wrong number of arguments. ! 361: f2c/src files affected: expr.c putpcc.c version.c xsum0.out ! 362: ! 363: 24 Jan. 11:44:00 EST 1990: ! 364: Bug fixes: -p omitted #undefs; COMMON block names containing ! 365: underscores had their C names incorrectly computed; a COMMON block ! 366: having the name of a previously defined procedure wreaked havoc; ! 367: if all arguments were .P files, f2c tried reading the second as a ! 368: Fortran file. ! 369: New feature: -P emits comments showing COMMON block lengths, so one ! 370: can get warnings of incompatible COMMON block lengths by having f2c ! 371: read .P (or .p) files. Now by running f2c twice, first with -P -!c ! 372: (or -P!c), then with *.P among the arguments, you can be warned of ! 373: inconsistent COMMON usage, and COMMON blocks having inconsistent ! 374: lengths will be given the maximum length. (The latter always did ! 375: happen within each input file; now -P lets you extend this behavior ! 376: across files.) ! 377: f2c/src files affected: ! 378: main.c names.c pread.c proc.c version.c xsum0.out ! 379: ! 380: 26 Jan. 16:44:00 EST 1990: ! 381: Option -it made less aggressive: untyped external procedures that ! 382: are invoked are now typed by the rules of Fortran, rather than by ! 383: previous use of procedures to which they are passed as arguments ! 384: before being invoked. ! 385: Option -P now includes information about references, i.e., called ! 386: procedures, in the prototype files (in the form of special comments). ! 387: This allows iterative invocations of f2c to infer more about untyped ! 388: external names, particularly when multiple Fortran files are involved. ! 389: As usual, there are some obscure bug fixes: ! 390: 1. Repair of erroneous warning messages about inconsistent number of ! 391: arguments that arose when a character dummy parameter was discovered ! 392: to be a function or when multiple entry points involved character ! 393: variables appearing in a previous entry point. ! 394: 2. Repair of memory fault after error msg about "adjustable character ! 395: function". ! 396: 3. Under -U, allow MAIN_ as a subroutine name (in the same file as a ! 397: main program). ! 398: 4. Change for consistency: a known function invoked as a subroutine, ! 399: then as a function elicits a warning rather than an error. ! 400: f2c/src files updated: ! 401: defs.h exec.c expr.c format.c gram.dcl main.c misc.c ! 402: output.c pread.c proc.c putpcc.c version.c xsum0.out ! 403: ! 404: 26 Jan. 22:32:00 EST 1990: ! 405: Fixed two bugs that resulted in incorrect C for substrings, within ! 406: the body of a character-valued function, of the function's name, when ! 407: those substrings were arguments to another function (even implicitly, ! 408: as in character-string assignment). ! 409: f2c/src files updated: expr.c output.c version.c xsum0.out ! 410: ! 411: 28 Jan. 18:32:00 EST 1990: ! 412: libf77, libi77: checksum files added; "make check" looks for ! 413: transmission errors. NAMELIST read modified to allow $ rather than & ! 414: to precede a namelist name, to allow $ rather than / to terminate ! 415: input where the name of another variable would otherwise be expected, ! 416: and to regard all nonprinting ASCII characters <= ' ' as spaces. ! 417: ! 418: 29 Jan. 02:11:00 EST 1990: ! 419: "fc from f2c" added. ! 420: -it option made the default; -!it turns it off. Type information is ! 421: now updated in a previously missed case. ! 422: -P option tweaked again; message about when rerunning f2c may change ! 423: prototypes or declarations made more accurate. ! 424: New option -Ps implies -P and returns exit status 4 if rerunning ! 425: f2c -P with prototype inputs might change prototypes or declarations. ! 426: Now you can execute a crude script like ! 427: ! 428: cat *.f >zap.F ! 429: rm -f zap.P ! 430: while :; do ! 431: f2c -Ps -!c zap.[FP] ! 432: case $? in 4) ;; *) break;; esac ! 433: done ! 434: ! 435: to get a file zap.P of the best prototypes f2c can determine for *.f . ! 436: f2c/src files updated: ! 437: f2c.1 f2c.1t expr.c format.c main.c ! 438: pread.c proc.c putpcc.c version.c xsum0.out ! 439: ! 440: Jan. 29 07:30:21 EST 1990: ! 441: Forgot to check for error status when setting return code 4 under -Ps; ! 442: error status (1, 2, 3, or, for caught signal, 126) now takes precedence. ! 443: f2c/src files updated: main.c version.c xsum0.out ! 444: ! 445: Jan 29 14:17:00 EST 1990: ! 446: Incorrect handling of ! 447: open(n,'filename') ! 448: repaired -- now treated as ! 449: open(n,file='filename') ! 450: (and, under -ext, given an error message). ! 451: New optional source file memset.c for people whose systems don't ! 452: provide memset, memcmp, and memcpy; #include <string.h> in mem.c ! 453: changed to #include "string.h" so BSD people can create a local ! 454: string.h that simply says #include <strings.h> . ! 455: f2c/src files changed: ! 456: README io.c makefile mem.c memset.c version.c xsum0.out ! 457: ! 458: Jan 30 10:34:00 EST 1990: ! 459: Fix erroneous warning at end of definition of a procedure with ! 460: character arguments when the procedure had previously been called with ! 461: a numeric argument instead of a character argument. (There were two ! 462: warnings, the second one incorrectly complaining of a wrong number of ! 463: arguments.) ! 464: f2c/src files changed: putpcc.c version.c xsum0.out ! 465: ! 466: Jan 30 16:29:41 EST 1990: ! 467: Fix case where -P and -Ps erroneously reported another iteration ! 468: necessary. (Only harm is the extra iteration.) ! 469: f2c/src files changed: format.c putpcc.c version.c xsum0.out ! 470: ! 471: Feb 3 01:40:00 EST 1990: ! 472: Supply semicolon occasionally omitted under -c . ! 473: Try to force correct alignment when numeric variables are initialized ! 474: with character data (a non-standard and non-portable practice). You ! 475: must use the -W option if your code has such data statements and is ! 476: meant to run on a machine with other than 4 characters/word; e.g., for ! 477: code meant to run on a Cray, you would specify -W8 . ! 478: Allow parentheses around expressions in output lists (in write and ! 479: print statements). ! 480: Rename source files so their names are <= 12 characters long ! 481: (so there's room to append .Z and still have <= 14 characters); ! 482: renamed files: formatdata.c niceprintf.c niceprintf.h safstrncpy.c . ! 483: f2c material made available by anonymous ftp from research.att.com ! 484: (look in dist/f2c ). ! 485: f2c/src files changed: ! 486: defs.h equiv.c format.c formatdata.c gram.io init.c ! 487: makefile niceprintf.h output.h proc.c version.c xsum0.out ! 488: ! 489: Feb 3 03:49:00 EST 1990: ! 490: Repair memory fault that arose from use (in an assignment or ! 491: call) of a non-argument variable declared CHARACTER*(*). ! 492: f2c/src files changed: format.c putpcc.c version.c xsum0.out ! 493: ! 494: Feb 9 01:35:43 EST 1990: ! 495: Fix erroneous error msg about bad types in ! 496: subroutine foo(a,adim) ! 497: dimension a(adim) ! 498: integer adim ! 499: Fix improper passing of character args (and possible memory fault) ! 500: in the expression part of a computed goto. ! 501: Fix botched calling sequences in array references involving ! 502: functions having character args. ! 503: Fix memory fault caused by invocation of character-valued functions ! 504: of no arguments. ! 505: Fix botched calling sequence of a character*1-valued function ! 506: assigned to a character*1 variable. ! 507: Fix bug in error msg for inconsistent number of args in prototypes. ! 508: Allow generation of C output despite inconsistencies in prototypes, ! 509: but give exit code 8. ! 510: Simplify include logic (by removing some bogus logic); never ! 511: prepend "/usr/include/" to file names. ! 512: Minor cleanups (that should produce no visible change in f2c's ! 513: behavior) in intr.c parse.h main.c defs.h formatdata.c p1output.c . ! 514: f2c/src files changed: ! 515: defs.h expr.c formatdata.c gram.exec intr.c lex.c main.c ! 516: output.c output.h p1output.c parse.h pread.c proc.c putpcc.c ! 517: version.c xsum0.out ! 518: ! 519: Feb 10 00:19:38 EST 1990: ! 520: Insert (integer) casts when floating-point expressions are used ! 521: as subscripts. ! 522: Make SAVE stmt (with no variable list) override -a . ! 523: Minor cleanups: change field to Field in struct Addrblock (for the ! 524: benefit of buggy C compilers); omit system("/bin/cp ...") in misc.c . ! 525: f2c/src files changed: ! 526: defs.h expr.c format.c misc.c output.c p1output.c put.c ! 527: putpcc.c version.c xsum0.out ! 528: ! 529: Feb 13 00:39:00 EST 1990: ! 530: Error msg fix in gram.dcl: change "cannot make %s parameter" ! 531: to "cannot make into parameter". ! 532: f2c/src files changed: gram.dcl version.c xsum0.out ! 533: ! 534: Feb 14 14:02:00 EST 1990: ! 535: Various cleanups (invisible on systems with 4-byte ints), thanks ! 536: to Dave Regan: vaxx.c eliminated; %d changed to %ld various places; ! 537: external names adjusted for the benefit of stupid systems (that ignore ! 538: case and recognize only 6 significant characters in external names); ! 539: buffer shortened in xsum.c (e.g. for MS-DOS); fopen modes distinguish ! 540: text and binary files; several unused functions eliminated; missing ! 541: arg supplied to an unlikely fatalstr invocation. ! 542: f2c/src files changed: ! 543: cds.c data.c defs.h exec.c expr.c format.c format.h ! 544: formatdata.c gram.head init.c io.c iob.h lex.c main.c ! 545: makefile mem.c misc.c names.c names.h niceprintf.c output.c ! 546: output.h p1defs.h p1output.c parse_args.c pread.c proc.c ! 547: put.c putpcc.c vax.c version.c xsum.c xsum0.out ! 548: ! 549: Thu Feb 15 19:15:53 EST 1990: ! 550: More cleanups (invisible on systems with 4 byte ints); casts inserted ! 551: so most complaints from cyntax(1) and lint(1) go away; a few (int) ! 552: versus (long) casts corrected. ! 553: f2c/src files changed: ! 554: data.c defs.h equiv.c exec.c expr.c format.c formatdata.c ! 555: gram.dcl gram.exec gram.expr gram.head gram.io init.c intr.c ! 556: io.c main.c mem.c misc.c names.c output.c p1output.c pread.c ! 557: proc.c put.c putpcc.c version.c xsum0.out ! 558: ! 559: Fri Feb 16 19:55:00 EST 1990: ! 560: Recognize and translate unnamed Fortran 8x do while statements. ! 561: Fix bug that occasionally caused improper breaking of character ! 562: strings. ! 563: New error message for attempts to provide DATA in a type-declaration ! 564: statement. ! 565: f2c/src files changed: ! 566: data.c defs.h exec.c format.c formatdata.c gram.dcl gram.exec ! 567: gram.head init.c lex.c main.c niceprintf.c p1defs.h p1output.c ! 568: putpcc.c tokens version.c xsum0.out ! 569: ! 570: Sat Feb 17 11:43:00 EST 1990: ! 571: Fix infinite loop clf -> Fatal -> done -> clf after I/O error. ! 572: Change "if (addrp->vclass = CLPROC)" to "if (addrp->vclass == CLPROC)" ! 573: in p1_addr (in p1output.c); this was probably harmless. ! 574: Move a misplaced } in lex.c (which slowed initkey()). ! 575: Thanks to Gary Word for pointing these things out. ! 576: f2c/src files changed: lex.c main.c p1output.c version.c xsum0.out ! 577: ! 578: Sun Feb 18 18:07:00 EST 1990: ! 579: Detect overlapping initializations of arrays and scalar variables ! 580: in previously missed cases. ! 581: Treat logical*2 as logical (after issuing a warning). ! 582: Don't pass string literals to p1_comment(). ! 583: Correct a cast (introduced 16 Feb.) in gram.expr; this matters e.g. ! 584: on a Cray. ! 585: Attempt to isolate UNIX-specific things in sysdep.c (a new source ! 586: file). Unless sysdep.c is compiled with SYSTEM_SORT defined, the ! 587: intermediate files created for DATA statements are now sorted in-core ! 588: without invoking system(). ! 589: f2c/src/files changed: ! 590: README defines.h defs.h exec.c expr.c formatdata.c gram.exec ! 591: gram.head init.c main.c makefile misc.c proc.c putpcc.c ! 592: sysdep.c xsum0.out ! 593: ! 594: Tue Feb 20 16:10:35 EST 1990: ! 595: Move definition of binread and binwrite from init.c to sysdep.c . ! 596: Recognize Fortran 8x tokens < <= == >= > <> as synonyms for ! 597: .LT. .LE. .EQ. .GE. .GT. .NE. ! 598: Minor cleanup in putpcc.c: fully remove simoffset(). ! 599: More discussion of system dependencies added to libI77/README. ! 600: f2c/src files changed: ! 601: init.c lex.c putpcc.c sysdep.c version.c xsum0.out ! 602: ! 603: Tue Feb 20 21:44:07 EST 1990: ! 604: Minor cleanups for the benefit of EBCDIC machines -- try to remove ! 605: the assumption that 'a' through 'z' are contiguous. (Thanks again to ! 606: Gary Word.) Also, change log2 to log_2 (shouldn't be necessary). ! 607: f2c/src files changed: ! 608: defs.h expr.c init.c lex.c misc.c parse_args.c pread.c ! 609: putpcc.c version.c xsum0.out ! 610: ! 611: Wed Feb 21 06:24:56 EST 1990: ! 612: Fix botch in init.c introduced in previous change; only matters ! 613: to non-ASCII machines. ! 614: ! 615: Thu Feb 22 17:29:12 EST 1990: ! 616: Allow several entry points to mention the same array. Protect ! 617: parameter adjustments with if's (for the case that an array is not ! 618: an argument to all entrypoints). ! 619: Under -u, allow ! 620: subroutine foo(x,n) ! 621: real x(n) ! 622: integer n ! 623: Compute intermediate variables used to evaluate dimension expressions ! 624: at the right time. Example previously mistranslated: ! 625: subroutine foo(x,k,m,n) ! 626: real x(min(k,m,n)) ! 627: ... ! 628: write(*,*) x ! 629: Detect duplicate arguments. (The error msg points to the first ! 630: executable stmt -- not wonderful, but not worth fixing.) ! 631: Minor cleanup of min/max computation (sometimes slightly simpler). ! 632: f2c/src files changed: ! 633: defines.h defs.h expr.c format.c init.c main.c output.c p1defs.h ! 634: p1output.c proc.c putpcc.c vax.c version.c xsum0.out ! 635: ! 636: Sun Feb 25 09:39:01 EST 1990: ! 637: Minor tweak to multiple entry points: protect parameter adjustments ! 638: with if's only for (array) args that do not appear in all entry points. ! 639: Minor tweaks to format.c and io.c (invisible unless your compiler ! 640: complained at the duplicate #defines of IOSUNIT and IOSFMT or at ! 641: comparisons of p1gets(...) with NULL). ! 642: f2c/src files changed: format.c io.c vax.c version.c xsum0.out ! 643: ! 644: Sun Feb 25 18:40:10 EST 1990: ! 645: Fix bug introduced Feb. 22: if a subprogram contained DATA and the ! 646: first executable statement was labeled, then the label got lost. ! 647: (Just change INEXEC to INDATA in p1output.c; it occurs just once.) ! 648: f2c/src files changed: p1output.c version.c xsum0.out ! 649: ! 650: Mon Feb 26 17:45:10 EST 1990: ! 651: Fix bug in handling of " and ' in comments. ! 652: f2c/src files changed: format.c niceprintf.c version.c xsum0.out ! 653: ! 654: Wed Mar 28 01:43:06 EST 1990: ! 655: libI77: ! 656: 1. Repair nasty I/O bug: opening two files and closing the first ! 657: (after possibly reading or writing it), then writing the second caused ! 658: the last buffer of the second to be lost. ! 659: 2. Formatted reads of logical values treated all letters other than ! 660: t or T as f (false). ! 661: libI77 files changed: err.c rdfmt.c Version.c ! 662: (Request "libi77 from f2c" -- you can't get these files individually.) ! 663: ! 664: f2c itself: ! 665: Repair nasty bug in translation of ! 666: ELSE IF (condition involving complicated abs, min, or max) ! 667: -- auxiliary statements were emitted at the wrong place. ! 668: Supply semicolon previously omitted from the translation of a label ! 669: (of a CONTINUE) immediately preceding an ELSE IF or an ELSE. This ! 670: bug made f2c produce invalid C. ! 671: Correct a memory fault that occurred (on some machines) when the ! 672: error message "adjustable dimension on non-argument" should be given. ! 673: Minor tweaks to remove some harmless warnings by overly chatty C ! 674: compilers. ! 675: Argument arays having constant dimensions but a variable lower bound ! 676: (e.g., x(n+1:n+3)) had a * omitted from scalar arguments involved in ! 677: the array offset computation. ! 678: f2c/src files changed: ! 679: defines.h defs.h exec.c format.c gram.head init.c lex.c ! 680: names.h p1defs.h proc.c putpcc.c version.c xsum0.out ! 681: ! 682: Wed Mar 28 18:47:59 EST 1990: ! 683: libf77: add exit(0) to end of main [return(0) encounters a Cray bug] ! 684: ! 685: Sun Apr 1 16:20:58 EDT 1990: ! 686: Avoid dereferencing null when processing equivalences after an error. ! 687: f2c/src files changed: equiv.c version.c xsum0.out ! 688: ! 689: Fri Apr 6 08:29:49 EDT 1990: ! 690: Calls involving alternate return specifiers omitted processing ! 691: needed for things like min, max, abs, and // (concatenation). ! 692: INTEGER*2 PARAMETERs were treated as INTEGER*4. ! 693: Convert some O(n^2) parsing to O(n). ! 694: f2c/src files changed: ! 695: exec.c expr.c gram.exec gram.expr ! 696: gram.io main.c version.c xsum0.out ! 697: ! 698: Tue Apr 10 20:07:02 EDT 1990: ! 699: When inconsistent calling sequences involve differing numbers of ! 700: arguments, report the first differing argument rather than the numbers ! 701: of arguments. ! 702: Fix bug under -a: formatted I/O in which either the unit or the ! 703: format was a local character variable sometimes resulted in invalid C ! 704: (a static struct initialized with an automatic component). ! 705: Improve error message for invalid flag after elided -. ! 706: Complain when literal table overflows, rather than infinitely ! 707: looping. (The complaint mentions the new and otherwise undocumented ! 708: -NL option for specifying a larger literal table.) ! 709: New option -h for forcing strings to word (or, with -hd, double-word) ! 710: boundaries where possible. ! 711: Repair a bug that could cause improper splitting of strings. ! 712: Fix bug (cast of c to doublereal) in ! 713: subroutine foo(c,r) ! 714: double complex c ! 715: double precision r ! 716: c = cmplx(r,real(c)) ! 717: end ! 718: New include file "sysdep.h" has some things from defs.h (and ! 719: elsewhere) that one may need to modify on some systems. ! 720: Some large arrays that were previously statically allocated are now ! 721: dynamically allocated when f2c starts running. ! 722: f2c/src files changed: ! 723: README cds.c defs.h f2c.1 f2c.1t format.c formatdata.c init.c ! 724: io.c lex.c main.c makefile mem.c misc.c names.c niceprintf.c ! 725: output.c parse_args.c pread.c put.c putpcc.c sysdep.h ! 726: version.c xsum0.out ! 727: ! 728: Wed Apr 11 18:27:12 EDT 1990: ! 729: Fix bug in argument consistency checking of character, complex, and ! 730: double complex valued functions. If the same source file contained a ! 731: definition of such a function with arguments not explicitly typed, ! 732: then subsequent references to the function might get erroneous ! 733: warnings of inconsistent calling sequences. ! 734: Tweaks to sysdep.h for partially ANSI systems. ! 735: New options -kr and -krd cause f2c to use temporary variables to ! 736: enforce Fortran evaluation-order rules with pernicious, old-style C ! 737: compilers that apply the associative law to floating-point operations. ! 738: f2c/src files changed: ! 739: f2c.1 f2c.1t format.c init.c main.c putpcc.c sysdep.h ! 740: version.c xsum0.out ! 741: ! 742: Sat Apr 14 15:50:15 EDT 1990: ! 743: libi77: libI77 adjusted to allow list-directed and namelist I/O ! 744: of internal files; bug in namelist I/O of logical and character arrays ! 745: fixed; list input of complex numbers adjusted to permit d or D to ! 746: denote the start of the exponent field of a component. ! 747: f2c itself: fix bug in handling complicated lower-bound ! 748: expressions for character substrings; e.g., min and max did not work ! 749: right, nor did function invocations involving character arguments. ! 750: Switch to octal notation, rather than hexadecimal, for nonprinting ! 751: characters in character and string constants. ! 752: Fix bug (when neither -A nor -C++ was specified) in typing of ! 753: external arguments of type complex, double complex, or character: ! 754: subroutine foo(c) ! 755: external c ! 756: complex c ! 757: now results in ! 758: /* Complex */ int (*c) (); ! 759: (as, indeed, it once did) rather than ! 760: complex (*c) (); ! 761: f2c/src files changed: ! 762: expr.c format.c formatdata.c init.c niceprintf.c output.c ! 763: version.c xsum0.out ! 764: ! 765: Sat Apr 14 22:50:39 EDT 1990: ! 766: libI77/makefile: updated "make check" to omit lio.c ! 767: lib[FI]77/makefile: trivial change: define CC = cc, reference $(CC). ! 768: (Request, e.g., "libi77 from f2c" -- you can't ask for individual ! 769: files from lib[FI]77.) ! 770: ! 771: Wed Apr 18 00:56:37 EDT 1990: ! 772: Move declaration of atof() from defs.h to sysdep.h, where it is ! 773: now not declared if stdlib.h is included. (NeXT's stdlib.h has a ! 774: #define atof that otherwise wreaks havoc.) ! 775: Under -u, provide a more intelligible error message (than "bad tag") ! 776: for an attempt to define a function without specifying its type. ! 777: f2c/src files changed: defs.h proc.c sysdep.h version.c xsum0.out ! 778: ! 779: Wed Apr 18 17:26:27 EDT 1990: ! 780: Recognize \v (vertical tab) in Hollerith as well as quoted strings; ! 781: add recognition of \r (carriage return). ! 782: New option -!bs turns off recognition of escapes in character strings ! 783: (\0, \\, \b, \f, \n, \r, \t, \v). ! 784: Move to sysdep.c initialization of some arrays whose initialization ! 785: assumed ASCII; #define Table_size in sysdep.h rather than using ! 786: hard-coded 256 in allocating arrays of size 1 << (bits/byte). ! 787: f2c/src files changed: ! 788: cds.c data.c f2c.1 f2c.1t formatdata.c init.c lex.c main.c ! 789: mem.c output.c pread.c sysdep.c sysdep.h version.c xsum0.out ! 790: ! 791: Thu Apr 19 08:13:21 EDT 1990: ! 792: Warn when escapes would make Hollerith extend beyond statement end. ! 793: Omit max() definition from misc.c (should be invisible except on ! 794: systems that erroneously #define max in stdlib.h). ! 795: f2c/src files changed: lex.c misc.c version.c xsum0.out ! 796: ! 797: Mon Apr 23 22:24:51 EDT 1990: ! 798: When producing default-style C (no -A or -C++), cast switch ! 799: expressions to (int). ! 800: Move "-lF77 -lI77 -lm -lc" to link_msg, defined in sysdep.c . ! 801: Add #define scrub(x) to sysdep.h, with invocations in format.c and ! 802: formatdata.c, so that people who have systems like VMS that would ! 803: otherwise create multiple versions of intermediate files can ! 804: #define scrub(x) unlink(x) ! 805: f2c/src files changed: ! 806: format.c formatdata.c main.c output.c sysdep.c sysdep.h ! 807: version.c xsum0.out ! 808: ! 809: Pass string lengths once rather than twice to a function of character ! 810: arguments involved in comparison of character strings of length 1. ! 811: Omit declaration of a now unused variable from mem.c. ! 812: f2c/src files changed: mem.c putpcc.c version.c xsum0.out ! 813: ! 814: Fri Apr 27 13:11:52 EDT 1990: ! 815: Fix bug that made f2c gag on concatenations involving char(...) on ! 816: some systems. ! 817: f2c/src files changed: putpcc.c version.c xsum0.out ! 818: ! 819: Sat Apr 28 23:20:16 EDT 1990: ! 820: Fix control-stack bug in ! 821: if(...) then ! 822: else if (complicated condition) ! 823: else ! 824: endif ! 825: (where the complicated condition causes assignment to an auxiliary ! 826: variable, e.g., max(a*b,c)). ! 827: f2c/src files changed: exec.c version.c xsum0.out ! 828: ! 829: Mon Apr 30 13:30:10 EDT 1990: ! 830: Change fillers for DATA with holes from substructures to arrays ! 831: (in an attempt to make things work right with C compilers that have ! 832: funny padding rules for substructures, e.g., Sun C compilers). ! 833: Minor cleanup of exec.c (should not affect generated C). ! 834: f2c/src files changed: exec.c formatdata.c version.c xsum0.out ! 835: ! 836: Mon Apr 30 23:13:51 EDT 1990: ! 837: Fix bug in handling return values of functions having multiple ! 838: entry points of differing return types. ! 839: ! 840: Sat May 5 01:45:18 EDT 1990: ! 841: Fix type inference bug in ! 842: subroutine foo(x) ! 843: call goo(x) ! 844: end ! 845: subroutine goo(i) ! 846: i = 3 ! 847: end ! 848: Instead of warning of inconsistent calling sequences for goo, ! 849: f2c was simply making i a real variable; now i is correctly ! 850: typed as an integer variable, and f2c issues an error message. ! 851: Adjust error messages issued at end of declarations so they ! 852: don't blame the first executable statement. ! 853: f2c/src files changed: error.c expr.c proc.c version.c xsum0.out ! 854: ! 855: Sun May 6 01:29:07 EDT 1990: ! 856: Fix bug in -P and -Ps: warn when the definition of a subprogram adds ! 857: information that would change prototypes or previous declarations. ! 858: f2c/src files changed: format.c proc.c putpcc.c version.c xsum0.out ! 859: ! 860: Thu May 10 18:09:15 EDT 1990: ! 861: Fix further obscure bug with (default) -it: inconsistent calling ! 862: sequences and I/O statements could interact to cause a memory fault. ! 863: Example: ! 864: SUBROUTINE FOO ! 865: CALL GOO(' Something') ! Forgot integer first arg ! 866: END ! 867: SUBROUTINE GOO(IUNIT,MSG) ! 868: CHARACTER*(*)MSG ! 869: WRITE(IUNIT,'(1X,A)') MSG ! 870: END ! 871: f2c/src files changed: io.c version.c xsum0.out ! 872: ! 873: Fri May 11 16:49:11 EDT 1990: ! 874: Under -!c, do not delete any .c files (when there are errors). ! 875: Avoid dereferencing 0 when a fatal error occurs while reading ! 876: Fortran on stdin. ! 877: f2c/src files changed: error.c main.c version.c xsum0.out ! 878: ! 879: Mon Jun 4 12:53:08 EDT 1990: ! 880: Diagnose I/O units of invalid type. ! 881: Add specific error msg about dummy arguments in common. ! 882: f2c/src files changed: io.c proc.c version.c xsum0.out ! 883: ! 884: Wed Jun 13 12:43:17 EDT 1990: ! 885: Under -A, supply a missing "[1]" for CHARACTER*1 variables that appear ! 886: both in a DATA statement and in either COMMON or EQUIVALENCE. ! 887: f2c/src files changed: formatdata.c version.c xsum0.out ! 888: ! 889: Mon Jun 18 16:58:31 EDT 1990: ! 890: Trivial updates to f2c.ps . ("Fortran 8x" --> "Fortran 90"; omit ! 891: "(draft)" from "(draft) ANSI C".) ! 892: ! 893: Tue Jun 19 07:36:32 EDT 1990: ! 894: Fix incorrect code generated for ELSE IF(expression involving ! 895: function call passing non-constant substring). ! 896: Under -h, preserve the property that strings are null-terminated ! 897: where possible. ! 898: Remove spaces between # and define in lex.c output.c parse.h . ! 899: f2c/src files changed: ! 900: expr.c format.c formatdata.c lex.c names.c output.c ! 901: parse.h putpcc.c version.c xsum0.out ! 902: ! 903: Mon Jun 25 07:22:59 EDT 1990: ! 904: Minor tweak to makefile to reduce unnecessary recompilations. ! 905: f2c/src files changed: makefile ! 906: ! 907: Tue Jun 26 11:49:53 EDT 1990: ! 908: Fix unintended truncation of some integer constants on machines ! 909: where casting a long to (int) may change the value. E.g., when f2c ! 910: ran on machines with 16-bit ints, "i = 99999" was being translated ! 911: to "i = -31073;". ! 912: f2c/src files changed: p1output.c version.c xsum0.out ! 913: ! 914: Wed Jun 27 11:05:32 EDT 1990: ! 915: Arrange for CHARACTER-valued PARAMETERs to honor their length ! 916: specifications. Allow CHAR(nn) in expressions defining such PARAMETERs. ! 917: f2c/src files changed: data.c expr.c putpcc.c version.c xsum0.out ! 918: ! 919: Fri Jul 20 09:17:30 EDT 1990: ! 920: Avoid dereferencing 0 when a FORMAT statement has no label. ! 921: f2c/src files changed: io.c version.c xsum0.out ! 922: ! 923: Thu Jul 26 11:09:39 EDT 1990: ! 924: Remarks about VOID and binread,binwrite added to README. ! 925: Tweaks to parse_args: should be invisible unless your compiler ! 926: complained at (short)*store. ! 927: f2c/src files changed: parse.h parse_args.c README version.c xsum0.out ! 928: ! 929: Thu Aug 2 02:07:58 EDT 1990: ! 930: f2c.ps: change the first line of page 5 from ! 931: include stuff ! 932: to ! 933: include 'stuff' ! 934: ! 935: Tue Aug 14 13:21:24 EDT 1990: ! 936: libi77: libI77 adjusted to treat tabs as spaces in list input. ! 937: ! 938: Fri Aug 17 07:24:53 EDT 1990: ! 939: libi77: libI77 adjusted so a blank='ZERO' clause (upper case Z) ! 940: in an open of a currently open file works right. ! 941: ! 942: Tue Aug 28 01:56:44 EDT 1990: ! 943: Fix bug in warnings of inconsistent calling sequences: if an ! 944: argument to a subprogram was never referenced, then a previous ! 945: invocation of the subprogram (in the same source file) that ! 946: passed something of the wrong type for that argument did not ! 947: elicit a warning message. ! 948: f2c/src files changed: format.c version.c xsum0.out ! 949: ! 950: Thu Aug 30 09:46:12 EDT 1990: ! 951: libi77: prevent embedded blanks in list output of complex values; ! 952: omit exponent field in list output of values of magnitude between ! 953: 10 and 1e8; prevent writing stdin and reading stdout or stderr; ! 954: don't close stdin, stdout, or stderr when reopening units 5, 6, 0. ! 955: ! 956: Tue Sep 4 12:30:57 EDT 1990: ! 957: Fix bug in C emitted under -I2 or -i2 for INTEGER*4 FUNCTION. ! 958: Warn of missing final END even if there are previous errors. ! 959: f2c/src files changed: main.c proc.c version.c xsum0.out ! 960: ! 961: Fri Sep 7 13:55:34 EDT 1990: ! 962: Remark about "make xsum.out" and "make f2c" added to README. ! 963: f2c/src files changed: README xsum0.out ! 964: ! 965: Tue Sep 18 23:50:01 EDT 1990: ! 966: Fix null dereference (and, on some systems, writing of bogus *_com.c ! 967: files) under -ec or -e1c when a prototype file (*.p or *.P) describes ! 968: COMMON blocks that do not appear in the Fortran source. ! 969: libi77: ! 970: Add some #ifdef lines (#ifdef MSDOS, #ifndef MSDOS) to avoid ! 971: references to stat and fstat on non-UNIX systems. ! 972: On UNIX systems, add component udev to unit; decide that old ! 973: and new files are the same iff both the uinode and udev components ! 974: of unit agree. ! 975: When an open stmt specifies STATUS='OLD', use stat rather than ! 976: access (on UNIX systems) to check the existence of the file (in case ! 977: directories leading to the file have funny permissions and this is ! 978: a setuid or setgid program). ! 979: f2c/src files changed: names.c version.c xsum0.out ! 980: ! 981: Thu Sep 27 16:04:09 EDT 1990: ! 982: Supply missing entry for Impldoblock in blksize array of cpexpr ! 983: (in expr.c). No examples are known where this omission caused trouble. ! 984: f2c/src files changed: expr.c version.c xsum0.out ! 985: ! 986: Tue Oct 2 22:58:09 EDT 1990: ! 987: libf77: test signal(...) == SIG_IGN rather than & 01 in main(). ! 988: libi77: adjust rewind.c so two successive rewinds after a write ! 989: don't clobber the file. ! 990: ! 991: Thu Oct 11 18:00:14 EDT 1990: ! 992: libi77: minor cleanups: add #include "fcntl.h" to endfile.c, err.c, ! 993: open.c; adjust g_char in util.c for segmented memories; in f_inqu ! 994: (inquire.c), define x appropriately when MSDOS is defined. ! 995: ! 996: Mon Oct 15 20:02:11 EDT 1990: ! 997: Add #ifdef MSDOS pointer adjustments to mem.c; treat NAME= as a ! 998: synonym for FILE= in OPEN statements (an extension that, at least for ! 999: now, will not be reflected in f2c.ps). ! 1000: f2c/src files changed: io.c mem.c version.c xsum0.out ! 1001: ! 1002: Wed Oct 17 16:40:37 EDT 1990: ! 1003: libf77, libi77: minor cleanups: _cleanup() and abort() invocations ! 1004: replaced by invocations of sig_die in main.c; some error messages ! 1005: previously lost in buffers will now appear. ! 1006: ! 1007: Mon Oct 22 16:11:27 EDT 1990: ! 1008: libf77: separate sig_die from main (for folks who don't want to use ! 1009: the main in libF77). ! 1010: libi77: minor tweak to comments in README. ! 1011: ! 1012: Fri Nov 2 13:49:35 EST 1990: ! 1013: Use two underscores rather than one in generated temporary variable ! 1014: names to avoid conflict with COMMON names. f2c.ps updated to reflect ! 1015: this change and the NAME= extension introduced 15 Oct. ! 1016: Repair a rare memory fault in io.c . ! 1017: f2c/src files changed: io.c names.c version.c xsum0.out ! 1018: ! 1019: Mon Nov 5 16:43:55 EST 1990: ! 1020: libi77: changes to open.c (and err.c): complain if an open stmt ! 1021: specifies new= and the file already exists (as specified by Fortrans 77 ! 1022: and 90); allow file= to be omitted in open stmts and allow ! 1023: status='replace' (Fortran 90 extensions). ! 1024: ! 1025: Fri Nov 30 10:10:14 EST 1990: ! 1026: Adjust malloc.c for unusual systems whose sbrk() can return values ! 1027: not properly aligned for doubles. ! 1028: Arrange for slightly more helpful and less repetitive warnings for ! 1029: non-character variables initialized with character data; these warnings ! 1030: are (still) suppressed by -w66. ! 1031: f2c/src files changed: data.c malloc.c version.c xsum0.out ! 1032: ! 1033: Fri Nov 30 15:57:59 EST 1990: ! 1034: Minor tweak to README (about changing VOID in f2c.h). ! 1035: ! 1036: Mon Dec 3 07:36:20 EST 1990: ! 1037: Fix spelling of "character" in f2c.1t. ! 1038: ! 1039: Tue Dec 4 09:48:56 EST 1990: ! 1040: Remark about link_msg and libf2c added to f2c/README. ! 1041: ! 1042: Thu Dec 6 08:33:24 EST 1990: ! 1043: Under -U, render label nnn as L_nnn rather than Lnnn. ! 1044: f2c/src files changed: names.c version.c xsum0.out ! 1045: ! 1046: Fri Dec 7 18:05:00 EST 1990: ! 1047: Add more names from f2c.h (e.g. integer, real) to the c_keywords ! 1048: list of names to which an underscore is appended to avoid confusion. ! 1049: f2c/src files changed: names.c version.c xsum0.out ! 1050: ! 1051: Mon Dec 10 19:11:15 EST 1990: ! 1052: Minor tweaks to makefile (./xsum) and README (binread/binwrite). ! 1053: libi77: a few modifications for POSIX systems; meant to be invisible ! 1054: elsewhere. ! 1055: f2c/src files changed: README makefile xsum0.out ! 1056: ! 1057: Sun Dec 16 23:03:16 EST 1990: ! 1058: Fix null dereference caused by unusual erroneous input, e.g. ! 1059: call foo('abc') ! 1060: end ! 1061: subroutine foo(msg) ! 1062: data n/3/ ! 1063: character*(*) msg ! 1064: end ! 1065: (Subroutine foo is illegal because the character statement comes after a ! 1066: data statement.) ! 1067: Use decimal rather than hex constants in xsum.c (to prevent ! 1068: erroneous warning messages about constant overflow). ! 1069: f2c/src files changed: misc.c proc.c version.c xsum.c xsum0.out ! 1070: ! 1071: Mon Dec 17 12:26:40 EST 1990: ! 1072: Fix rare extra underscore in character length parameters passed ! 1073: for multiple entry points. ! 1074: f2c/src files changed: proc.c version.c xsum0.out ! 1075: ! 1076: Wed Dec 19 17:19:26 EST 1990: ! 1077: Allow generation of C despite error messages about bad alignment ! 1078: forced by equivalence. ! 1079: Allow variable-length concatenations in I/O statements, such as ! 1080: open(3, file=bletch(1:n) // '.xyz') ! 1081: f2c/src files changed: equiv.c io.c putpcc.c version.c xsum0.out ! 1082: ! 1083: Fri Dec 28 17:08:30 EST 1990: ! 1084: Fix bug under -p with formats and internal I/O "units" in COMMON, ! 1085: as in ! 1086: COMMON /FIGLEA/F ! 1087: CHARACTER*20 F ! 1088: F = '(A)' ! 1089: WRITE (*,FMT=F) 'Hello, world!' ! 1090: END ! 1091: f2c/src files changed: io.c version.c xsum0.out ! 1092: ! 1093: Tue Jan 15 12:00:24 EST 1991: ! 1094: Fix bug when two equivalence groups are merged, the second with ! 1095: nonzero offset, and the result is then merged into a common block. ! 1096: Example: ! 1097: INTEGER W(3), X(3), Y(3), Z(3) ! 1098: COMMON /ZOT/ Z ! 1099: EQUIVALENCE (W(1),X(1)), (X(2),Y(1)), (Z(3),X(1)) ! 1100: ***** W WAS GIVEN THE WRONG OFFSET ! 1101: Recognize Fortran 90's optional NML= in NAMELIST READs and WRITEs. ! 1102: (Currently NML= and FMT= are treated as synonyms -- there's no ! 1103: error message if, e.g., NML= specifies a format.) ! 1104: libi77: minor adjustment to allow internal READs from character ! 1105: string constants in read-only memory. ! 1106: f2c/src files changed: equiv.c io.c version.c xsum0.out ! 1107: Change to equiv.c: in eqveqv, add rather than subtract delta to ! 1108: eqvoffset. ! 1109: ! 1110: Fri Jan 18 22:56:15 EST 1991: ! 1111: Add comment to README about needing to comment out the typedef of ! 1112: size_t in sysdep.h on some systems, e.g. Sun 4.1. ! 1113: Fix misspelling of "statement" in an error message in lex.c ! 1114: f2c/src files changed: README lex.c version.c xsum0.out ! 1115: ! 1116: Wed Jan 23 00:38:48 EST 1991: ! 1117: Allow hex, octal, and binary constants to have the qualifying letter ! 1118: (z, x, o, or b) either before or after the quoted string containing the ! 1119: digits. For now this change will not be reflected in f2c.ps . ! 1120: f2c/src files changed: lex.c version.c xsum0.out ! 1121: ! 1122: Tue Jan 29 16:23:45 EST 1991: ! 1123: Arrange for character-valued statement functions to give results of ! 1124: the right length (that of the statement function's name). ! 1125: f2c/src files changed: exec.c expr.c version.c xsum0.out ! 1126: ! 1127: Wed Jan 30 07:05:32 EST 1991: ! 1128: More tweaks for character-valued statement functions: an error ! 1129: check and an adjustment so a right-hand side of nonconstant length ! 1130: (e.g., a substring) is handled right. ! 1131: f2c/src files changed: expr.c version.c xsum0.out ! 1132: ! 1133: Wed Jan 30 09:49:36 EST 1991: ! 1134: Fix p1_head to avoid printing (char *)0 with %s. ! 1135: f2c/src files changed: p1output.c version.c xsum0.out ! 1136: ! 1137: Thu Jan 31 13:53:44 EST 1991: ! 1138: Add a test after the cleanup call generated for I/O statements with ! 1139: ERR= or END= clauses to catch the unlikely event that the cleanup ! 1140: routine encounters an error. ! 1141: f2c/src files changed: io.c version.c xsum0.out ! 1142: ! 1143: Mon Feb 4 08:00:58 EST 1991: ! 1144: Minor cleanup: omit unneeded jumps and labels from code generated for ! 1145: some NAMELIST READs and WRITEs with IOSTAT=, ERR=, and/or END=. ! 1146: f2c/src files changed: io.c version.c xsum0.out ! 1147: ! 1148: Tue Feb 5 01:39:36 EST 1991: ! 1149: Change Mktemp to mktmp (for the benefit of systems so brain-damaged ! 1150: that they do not distinguish case in external names -- and that for ! 1151: some reason want to load mktemp). Try to get xsum0.out right this ! 1152: time (it somehow didn't get updated on 4 Feb. 1991). ! 1153: Add note to libi77/README about adjusting the interpretation of ! 1154: RECL= specifiers in OPENs for direct unformatted I/O. ! 1155: f2c/src files changed: defs.h exec.c expr.c intr.c io.c ! 1156: proc.c putpcc.c version.c xsum0.out ! 1157: ! 1158: Thu Feb 7 17:24:42 EST 1991: ! 1159: New option -r casts values of REAL functions, including intrinsics, ! 1160: to REAL. This only matters for unportable code like ! 1161: real r ! 1162: r = asin(1.) ! 1163: if (r .eq. asin(1.)) ... ! 1164: [The behavior of such code varies with the Fortran compiler used -- ! 1165: and sometimes is affected by compiler options.] For now, the man page ! 1166: at the end of f2c.ps is the only part of f2c.ps that reflects this new ! 1167: option. ! 1168: f2c/src files changed: f2c.1 f2c.1t main.c output.c version.c xsum0.out ! 1169: ! 1170: Fri Feb 8 18:12:51 EST 1991: ! 1171: Cast pointer differences passed as arguments to the appropriate type. ! 1172: This matters, e.g., with MSDOS compilers that yield a long pointer ! 1173: difference but have int == short. ! 1174: Disallow nonpositive dimensions. ! 1175: f2c/src files changed: format.c gram.dcl gram.exec intr.c io.c ! 1176: malloc.c proc.c version.c xsum0.out ! 1177: ! 1178: Fri Feb 15 12:24:15 EST 1991: ! 1179: Change %d to %ld in sprintf call in putpower in putpcc.c. ! 1180: Free more memory (e.g. allowing translation of larger Fortran ! 1181: files under MS-DOS). ! 1182: Recognize READ (character expression) and WRITE (character expression) ! 1183: as formatted I/O with the format given by the character expression. ! 1184: Update year in Notice. ! 1185: f2c/src files changed: Notice io.c output.c p1output.c ! 1186: putpcc.c version.c xsum0.out ! 1187: ! 1188: Sat Feb 16 00:42:32 EST 1991: ! 1189: Recant recognizing WRITE(character expression) as formatted output ! 1190: -- Fortran 77 is not symmetric in its syntax for READ and WRITE. ! 1191: f2c/src files changed: io.c version.c xsum0.out ! 1192: ! 1193: Mon Mar 4 15:19:42 EST 1991: ! 1194: Fix bug in passing the real part of a complex argument to an intrinsic ! 1195: function. Omit unneeded parentheses in nested calls to intrinsics. ! 1196: Example: ! 1197: subroutine foo(x, y) ! 1198: complex y ! 1199: x = exp(sin(real(y))) + exp(imag(y)) ! 1200: end ! 1201: f2c/src files changed: output.c version.c xsum0.out ! 1202: 54,56d53 ! 1203: < ! 1204: < /* Have to find out more about CONCAT before it can be implemented */ ! 1205: < ! 1206: 63a61,62 ! 1207: > /* OPCALL 19 */ { BINARY_OP, 15, SPECIAL_FMT }, ! 1208: > /* OPCCALL 20 */ { BINARY_OP, 15, SPECIAL_FMT }, ! 1209: 65,69d63 ! 1210: < /* Have to find out more about CALL before it can be implemented */ ! 1211: < ! 1212: < /* OPCALL 19 */ { BINARY_OP, 0, SPECIAL_FMT }, ! 1213: < /* OPCCALL 20 */ { BINARY_OP, 0, SPECIAL_FMT }, ! 1214: < ! 1215: 75,77d68 ! 1216: < ! 1217: < /* Why is this a binary operator? 15-jun-88 mwm */ ! 1218: < ! 1219: 1080c1071,1072 ! 1220: < if (byvalue && q -> headblock.vtype != TYCHAR) { ! 1221: --- ! 1222: > if (q -> headblock.vtype != TYCHAR) ! 1223: > if (byvalue) { ! 1224: 1082,1084d1073 ! 1225: < /* Think about array access, too! Don't just think about argument storage ! 1226: < */ ! 1227: < ! 1228: 1086,1087c1075,1076 ! 1229: < !(q -> addrblock.uname_tag == UNAM_NAME && ! 1230: < q -> addrblock.user.name -> vdim) && ! 1231: --- ! 1232: > q -> addrblock.uname_tag == UNAM_NAME && ! 1233: > ! q -> addrblock.user.name -> vdim && ! 1234: 1089,1090c1078,1079 ! 1235: < M(STGARG)|M(STGEQUIV))) ! 1236: < ! 1237: --- ! 1238: > M(STGARG)|M(STGEQUIV)) && ! 1239: > ! ISCOMPLEX(q->addrblock.user.name->vtype)) ! 1240: 1098c1087 ! 1241: < } else if (q->headblock.vtype != TYCHAR) { ! 1242: --- ! 1243: > } else { ! 1244: ! 1245: Fri Mar 8 15:05:42 EST 1991: ! 1246: Fix a comment in expr.c; omit safstrncpy.c (which had bugs in ! 1247: cases not used by f2c). ! 1248: f2c/src files changed: ! 1249: expr.c makefile niceprintf.c version.c xsum0.out ! 1250: omitted: safstrncpy.c ! 1251: ! 1252: Wed Mar 13 02:27:23 EST 1991: ! 1253: Initialize firstmemblock->next in mem_init in mem.c . [On most ! 1254: systems it was fortuituously 0, but with System V, -lmalloc could ! 1255: trip on this missed initialization.] ! 1256: f2c/src files changed: mem.c version.c xsum0.out ! 1257: ! 1258: Wed Mar 13 11:47:42 EST 1991: ! 1259: Fix a reference to freed memory. ! 1260: f2c/src files changed: output.c version.c xsum0.out ! 1261: ! 1262: Wed Mar 27 00:42:19 EST 1991: ! 1263: Fix a memory fault caused by such illegal Fortran as ! 1264: function foo ! 1265: x = 3 ! 1266: logical foo ! declaration among executables ! 1267: foo=.false. ! used to suffer memory fault ! 1268: end ! 1269: f2c/src files changed: proc.c version.c xsum0.out ! 1270: ! 1271: Fri Apr 5 08:30:31 EST 1991: ! 1272: Fix loss of % in some format expressions, e.g. ! 1273: write(*,'(1h%)') ! 1274: Fix botch introduced 27 March 1991 that caused subroutines with ! 1275: multiple entry points to have extraneous declarations of ret_val. ! 1276: f2c/src files changed: mem.c proc.c version.c xsum0.out ! 1277: ! 1278: Fri Apr 5 12:44:02 EST 1991 ! 1279: Try again to omit extraneous ret_val declarations -- this morning's ! 1280: fix was sometimes wrong. ! 1281: f2c/src files changed: proc.c version.c xsum0.out ! 1282: ! 1283: Mon Apr 8 13:47:06 EDT 1991: ! 1284: Arrange for s_rnge to have the right prototype under -A -C . ! 1285: f2c/src files changed: format.c version.c xsum0.out ! 1286: ! 1287: Wed Apr 17 13:36:03 EDT 1991: ! 1288: New fatal error message for apparent invocation of a recursive ! 1289: statement function. ! 1290: f2c/src files changed: expr.c version.c xsum0.out ! 1291: ! 1292: Thu Apr 25 15:13:37 EDT 1991: ! 1293: F2c and libi77 adjusted so NAMELIST works with -i2. (I forgot ! 1294: about -i2 when adding NAMELIST.) This required a change to f2c.h ! 1295: (that only affects NAMELIST I/O under -i2.) Man-page description of ! 1296: -i2 adjusted to reflect that -i2 stores array lengths in short ints. ! 1297: f2c/src files changed: f2c.1t f2c.h format.c io.c version.c xsum0.out ! 1298: ! 1299: Fri Apr 26 02:54:41 EDT 1991: ! 1300: Libi77: fix some bugs in NAMELIST reading of multi-dimensional arrays ! 1301: (file rsne.c). ! 1302: ! 1303: Tue May 7 09:04:48 EDT 1991: ! 1304: gram.c added to f2c/src (for folks who have trouble generating it. It ! 1305: is not in "all from f2c", nor in the list of current timestamps below.) ! 1306: ! 1307: Thu May 9 02:13:51 EDT 1991: ! 1308: Omit a trailing space in expr.c (could cause a false xsum value if ! 1309: a mailer drops the trailing blank). ! 1310: ! 1311: Thu May 16 13:14:59 EDT 1991: ! 1312: Libi77: increase LEFBL in lio.h to overcome a NeXT bug. ! 1313: Tweak for compilers that recognize "nested" comments: inside comments, ! 1314: turn /* into /+ (as well as */ into +/). ! 1315: f2c/src files changed: p1output.c version.c xsum0.out ! 1316: ! 1317: Sat May 25 11:44:25 EDT 1991: ! 1318: libf77: s_rnge: declare line long int rather than int. ! 1319: ! 1320: Fri May 31 07:51:50 EDT 1991: ! 1321: libf77: system_: officially return status. ! 1322: ! 1323: Mon Jun 17 16:52:53 EDT 1991 ! 1324: Minor tweaks: omit unnecessary declaration of strcmp (that caused ! 1325: trouble on a system where strcmp was a macro) from misc.c; add ! 1326: SHELL = /bin/sh to makefiles. ! 1327: Fix a dereference of null when a CHARACTER*(*) declaration appears ! 1328: (illegally) after DATA. Complain only once per subroutine about ! 1329: declarations appearing after DATA. ! 1330: f2c/src files changed: ! 1331: gram.dcl gram.head makefile misc.c proc.c version.c xsum0.out ! 1332: ! 1333: Mon Jul 1 00:28:13 EDT 1991: ! 1334: Add test and error message for illegal use of subroutine names, e.g. ! 1335: SUBROUTINE ZAP(A) ! 1336: ZAP = A ! 1337: END ! 1338: f2c/src files changed: expr.c version.c xsum0.out ! 1339: ! 1340: Mon Jul 8 21:49:20 EDT 1991: ! 1341: Issue a warning about things like ! 1342: integer i ! 1343: i = 'abc' ! 1344: (which is treated as i = ichar('a')). [It might be nice to treat 'abc' ! 1345: as an integer initialized (in a DATA statement) with 'abc', but ! 1346: other matters have higher priority.] ! 1347: Render ! 1348: i = ichar('A') ! 1349: as ! 1350: i = 'A'; ! 1351: rather than ! 1352: i = 65; ! 1353: (which assumes ASCII). ! 1354: f2c/src files changed: expr.c intr.c version.c xsum0.out ! 1355: ! 1356: Fri Jul 12 07:41:30 EDT 1991: ! 1357: Note added to README about erroneous definitions of __STDC__ . ! 1358: f2c/src files changed: README xsum0.out ! 1359: ! 1360: Sat Jul 13 13:38:54 EDT 1991: ! 1361: Fix bugs in double type convesions of complex values, e.g. ! 1362: sngl(real(...)) or dble(real(...)) (where ... is complex). ! 1363: f2c/src files changed: putpcc.c version.c xsum0.out ! 1364: ! 1365: Mon Jul 15 13:21:42 EDT 1991: ! 1366: Fix bug introduced 8 July 1991 that caused erroneous warnings ! 1367: "ichar([first char. of] char. string) assumed for conversion to numeric" ! 1368: when a subroutine had an array of character strings as an argument. ! 1369: f2c/src files changed: expr.c version.c xsum0.out ! 1370: ! 1371: Wed Aug 28 01:12:17 EDT 1991: ! 1372: Omit an unused function in format.c, an unused variable in proc.c . ! 1373: Under -r8, promote complex to double complex (as the man page claims). ! 1374: f2c/src files changed: ! 1375: defs.h expr.c format.c gram.dcl main.c proc.c version.c xsum0.out ! 1376: ! 1377: Fri Aug 30 17:19:17 EDT 1991: ! 1378: f2c.ps updated: slightly expand description of intrinsics and,or,xor, ! 1379: not; add mention of intrinsics lshift, rshift; add note about f2c ! 1380: accepting Fortran 90 inline comments (starting with !); update Cobalt ! 1381: Blue address. ! 1382: ! 1383: Tue Sep 17 07:17:33 EDT 1991: ! 1384: libI77: err.c and open.c modified to use modes "rb" and "wb" ! 1385: when (f)opening unformatted files; README updated to point out ! 1386: that it may be necessary to change these modes to "r" and "w" ! 1387: on some non-ANSI systems. ! 1388: ! 1389: Tue Oct 15 10:25:49 EDT 1991: ! 1390: Minor tweaks that make some PC compilers happier: insert some ! 1391: casts, add args to signal functions. ! 1392: Change -g to emit uncommented #line lines -- and to emit more of them; ! 1393: update fc, f2c.1, f2c.1t, f2c.ps to reflect this. ! 1394: Change uchar to Uchar in xsum.c . ! 1395: Bring gram.c up to date. ! 1396: f2c/src files changed: ! 1397: defines.h expr.c f2c.1 f2c.1t format.c formatdata.c gram.c ! 1398: main.c niceprintf.c p1output.c proc.c sysdep.c sysdep.h ! 1399: version.c xsum.c xsum0.out ! 1400: ! 1401: Thu Oct 17 09:22:05 EDT 1991: ! 1402: libi77: README, fio.h, sue.c, uio.c changed so the length field ! 1403: in unformatted sequential records has type long rather than int ! 1404: (unless UIOLEN_int is #defined). This is for systems where sizeof(int) ! 1405: can vary, depending on the compiler or compiler options. ! 1406: ! 1407: Thu Oct 17 13:42:59 EDT 1991: ! 1408: libi77: inquire.c: when MSDOS is defined, don't strcmp units[i].ufnm ! 1409: when it is NULL. ! 1410: ! 1411: Fri Oct 18 15:16:00 EDT 1991: ! 1412: Correct xsum0.out in "all from f2c/src" (somehow botched on 15 Oct.). ! 1413: ! 1414: Tue Oct 22 18:12:56 EDT 1991: ! 1415: Fix memory fault when a character*(*) argument is used (illegally) ! 1416: as a dummy variable in the definition of a statement function. (The ! 1417: memory fault occurred when the statement function was invoked.) ! 1418: Complain about implicit character*(*). ! 1419: f2c/src files changed: init.c output.c proc.c version.c xsum0.out ! 1420: ! 1421: Thu Nov 14 08:50:42 EST 1991: ! 1422: libi77: change uint to Uint in fmt.h, rdfmt.c, wrtfmt.c; this change ! 1423: should be invisible unless you're running a brain-damaged system. ! 1424: ! 1425: Mon Nov 25 19:04:40 EST 1991: ! 1426: libi77: correct botches introduced 17 Oct. 1991 and 14 Nov. 1991 ! 1427: (change uint to Uint in lwrite.c; other changes that only matter if ! 1428: sizeof(int) != sizeof(long)). ! 1429: Add a more meaningful error message when bailing out due to an attempt ! 1430: to invoke a COMMON variable as a function. ! 1431: ! 1432: Sun Dec 1 19:29:24 EST 1991: ! 1433: libi77: uio.c: add test for read failure (seq. unformatted reads); ! 1434: adjust an error return from EOF to off end of record. ! 1435: ! 1436: Tue Dec 10 17:42:28 EST 1991: ! 1437: Add tests to prevent memory faults with bad uses of character*(*). ! 1438: ! 1439: Thu Dec 12 11:24:41 EST 1991: ! 1440: libi77: fix bug with internal list input that caused the last ! 1441: character of each record to be ignored; adjust error message in ! 1442: internal formatted input from "end-of-file" to "off end of record" ! 1443: if the format specifies more characters than the record contains. ! 1444: ! 1445: Wed Dec 18 17:48:11 EST 1991: ! 1446: Fix bug in translating nonsensical ichar invocations involving ! 1447: concatenations. ! 1448: Fix bug in passing intrinsics lle, llt, lge, lgt as arguments; ! 1449: hl_le was being passed rather than l_le, etc. ! 1450: libf77: adjust length parameters from long to ftnlen, for ! 1451: compiling with f2c_i2 defined. ! 1452: f2c/src files changed: intr.c put.c putpcc.c version.c xsum0.out ! 1453: ! 1454: Sat Dec 21 15:30:57 EST 1991: ! 1455: Allow DO nnn ... to end with an END DO statement labelled nnn. ! 1456: f2c/src files changed: exec.c version.c xsum0.out ! 1457: ! 1458: Tue Dec 31 13:53:47 EST 1991: ! 1459: Fix bug in handling dimension a(n**3,2) -- pow_ii was called ! 1460: incorrectly. ! 1461: Fix bug in translating ! 1462: subroutine x(abc,n) ! 1463: character abc(n) ! 1464: write(abc,'(i10)') 123 ! 1465: end ! 1466: (omitted declaration and initialiation of abc_dim1). ! 1467: Complain about dimension expressions of such invalid types ! 1468: as complex and logical. ! 1469: f2c/src files changed: expr.c io.c proc.c version.c xsum0.out ! 1470: ! 1471: Fri Jan 17 11:54:20 EST 1992: ! 1472: Diagnose some illegal uses of main program name (rather than ! 1473: memory faulting). ! 1474: libi77: (1) In list and namelist input, treat "r* ," and "r*," ! 1475: alike (where r is a positive integer constant), and fix a bug in ! 1476: handling null values following items with repeat counts (e.g., ! 1477: 2*1,,3). (2) For namelist reading of a numeric array, allow a new ! 1478: name-value subsequence to terminate the current one (as though the ! 1479: current one ended with the right number of null values). ! 1480: (3) [lio.h, lwrite.c]: omit insignificant zeros in list and namelist ! 1481: output. (Compile with -DOld_list_output to get the old behavior.) ! 1482: f2c/src files changed: Notice proc.c version.c xsum0.out ! 1483: ! 1484: Sat Jan 18 15:58:01 EST 1992: ! 1485: libi77: make list output consistent with F format by printing .1 ! 1486: rather than 0.1 (introduced yesterday). ! 1487: ! 1488: Wed Jan 22 08:32:43 EST 1992: ! 1489: libi77: add comment to README pointing out preconnection of ! 1490: Fortran units 5, 6, 0 to stdin, stdout, stderr (respectively). ! 1491: ! 1492: Mon Feb 3 11:57:53 EST 1992: ! 1493: libi77: fix namelist read bug that caused the character following ! 1494: a comma to be ignored. ! 1495: ! 1496: Fri Feb 28 01:04:26 EST 1992: ! 1497: libf77: fix buggy z_sqrt.c (double precision square root), which ! 1498: misbehaved for arguments in the southwest quadrant. ! 1499: ! 1500: Thu Mar 19 15:05:18 EST 1992: ! 1501: Fix bug (introduced 17 Jan 1992) in handling multiple entry points ! 1502: of differing types (with implicitly typed entries appearing after ! 1503: the first executable statement). ! 1504: Fix memory fault in the following illegal Fortran: ! 1505: double precision foo(i) ! 1506: * illegal: above should be "double precision function foo(i)" ! 1507: foo = i * 3.2 ! 1508: entry moo(i) ! 1509: end ! 1510: Note about ANSI_Libraries (relevant, e.g., to IRIX 4.0.1 and AIX) ! 1511: added to README. ! 1512: Abort zero divides during constant simplification. ! 1513: f2c/src files changed: README expr.c proc.c version.c xsum0.out ! 1514: ! 1515: Sat Mar 21 01:27:09 EST 1992: ! 1516: Tweak ckalloc (misc.c) for systems where malloc(0) = 0; this matters ! 1517: for subroutines with multiple entry points but no arguments. ! 1518: Add "struct memblock;" to init.c (irrelevant to most compilers). ! 1519: f2c/src files changed: init.c misc.c version.c xsum0.out ! 1520: ! 1521: Wed Mar 25 13:31:05 EST 1992: ! 1522: Fix bug with IMPLICIT INTEGER*4(...): under -i2 or -I2, the *4 was ! 1523: ignored. ! 1524: f2c/src files changed: init.c version.c xsum0.out ! 1525: ! 1526: Tue May 5 09:53:55 EDT 1992: ! 1527: Tweaks to README; e.g., ANSI_LIbraries changed to ANSI_Libraries . ! 1528: ! 1529: Wed May 6 23:49:07 EDT 1992 ! 1530: Under -A and -C++, have subroutines return 0 (even if they have ! 1531: no * arguments). Omit unused decl of types3 in entrypt(). ! 1532: Adjust libi77 (rsne.c and lread.c) for systems where ungetc is ! 1533: a macro. Tweak lib[FI]77/makefile to use unique intermediate file ! 1534: names (for parallel makes). ! 1535: f2c/src files changed: proc.c version.c xsum0.out ! 1536: ! 1537: Tue May 19 09:03:05 EDT 1992: ! 1538: Adjust libI77 to make err= work with internal list and formatted I/O. ! 1539: ! 1540: Sat May 23 18:17:42 EDT 1992: ! 1541: Under -A and -C++, supply "return 0;" after the code generated for ! 1542: a STOP statement -- the C compiler doesn't know that s_stop won't ! 1543: return. ! 1544: New (mutually exclusive) options: ! 1545: -f treats all input lines as free-format lines, ! 1546: honoring text that appears after column 72 ! 1547: and not padding lines shorter than 72 characters ! 1548: with blanks (which matters if a character string ! 1549: is continued across 2 or more lines). ! 1550: -72 treats text appearing after column 72 as an error. ! 1551: f2c/src files changed: ! 1552: f2c.1t gram.exec lex.c main.c proc.c version.c xsum0.out ! 1553: ! 1554: Sun May 24 09:45:37 EDT 1992: ! 1555: Tweak description of -f in f2c.1 and f2c.1t; update f2c.ps . ! 1556: ! 1557: Fri May 29 01:17:15 EDT 1992: ! 1558: Complain about externals used as variables. Example ! 1559: subroutine foo(a,b) ! 1560: external b ! 1561: a = a*b ! illegal use of b; perhaps should be b() ! 1562: end ! 1563: f2c/src files changed: expr.c version.c xsum0.out ! 1564: ! 1565: Mon Jun 15 11:15:27 EDT 1992: ! 1566: Fix bug in handling namelists with names that have underscores. ! 1567: f2c/src files changed: format.c version.c xsum0.out ! 1568: ! 1569: Sat Jun 27 17:30:59 EDT 1992: ! 1570: Under -A and -C++, end Main program aliases with "return 0;". ! 1571: Under -A and -C++, use .P files and usage in previous subprograms ! 1572: in the current file to give prototypes for functions declared EXTERNAL ! 1573: but not invoked. ! 1574: Fix memory fault under -d1 -P . ! 1575: Under -A and -C++, cast arguments to the right types in calling ! 1576: a function that has been defined in the current file or in a .P file. ! 1577: Fix bug in handling multi-dimensional arrays with array references ! 1578: in their leading dimensions. ! 1579: Fix bug in the intrinsic cmplx function when the first argument ! 1580: involves an expression for which f2c generates temporary variables, ! 1581: e.g. cmplx(abs(real(a)),1.) . ! 1582: f2c/src files changed: defs.h expr.c format.c main.c output.c ! 1583: pread.c proc.c putpcc.c sysdep.c vax.c version.c xsum0.out ! 1584: ! 1585: Sat Jul 18 07:36:58 EDT 1992: ! 1586: Fix buglet with -e1c (invisible on most systems) temporary file ! 1587: f2c_functions was unlinked before being closed. ! 1588: libf77: fix bugs in evaluating m**n for integer n < 0 and m an ! 1589: integer different from 1 or a real or double precision 0. ! 1590: Catch SIGTRAP (to print "Trace trap" before aborting). Programs ! 1591: that previously erroneously computed 1 for 0**-1 may now fault. ! 1592: Relevant routines: main.c pow_di.c pow_hh.c pow_ii.c pow_ri.c . ! 1593: f2c/src files changed: names.c version.c xsum0.out ! 1594: ! 1595: Sat Jul 18 08:40:10 EDT 1992: ! 1596: libi77: allow namelist input to end with & (e.g. &end). ! 1597: ! 1598: Thu Jul 23 00:14:43 EDT 1992 ! 1599: Append two underscores rather than one to C keywords used as ! 1600: local variables to avoid conflicts with similarly named COMMON blocks. ! 1601: f2c/src files changed: names.c version.c xsum0.out ! 1602: ! 1603: Thu Jul 23 11:20:55 EDT 1992: ! 1604: libf77, libi77 updated to assume ANSI prototypes unless KR_headers ! 1605: is #defined. ! 1606: libi77 now recognizes a Z format item as in Fortran 90; ! 1607: the implementation assumes 8-bit bytes and botches character strings ! 1608: on little-endian machines (by printing their bytes from right to ! 1609: left): expect this bug to persist; fixing it would require a ! 1610: change to the I/O calling sequences. ! 1611: ! 1612: Tue Jul 28 15:18:33 EDT 1992: ! 1613: libi77: insert missed "#ifdef KR_headers" lines around getnum ! 1614: header in rsne.c. Version not updated. ! 1615: ! 1616: Fri Aug 14 08:07:09 EDT 1992: ! 1617: libi77: tweak wrt_E in wref.c to avoid signing NaNs. ! 1618: ! 1619: Sun Aug 23 19:05:22 EDT 1992: ! 1620: fc: supply : after O in getopt invocation (for -O1 -O2 -O3). ! 1621: ! 1622: Mon Aug 24 18:37:59 EDT 1992: ! 1623: Recant above tweak to fc: getopt is dumber than I thought; ! 1624: it's necessary to say -O 1 (etc.). ! 1625: libF77/README: add comments about ABORT, ERF, DERF, ERFC, DERFC, ! 1626: GETARG, GETENV, IARGC, SIGNAL, and SYSTEM. ! 1627: ! 1628: Tue Oct 27 01:57:42 EST 1992: ! 1629: libf77, libi77: ! 1630: 1. Fix botched indirection in signal_.c. ! 1631: 2. Supply missing l_eof = 0 assignment to s_rsne() in rsne.c (so ! 1632: end-of-file on other files won't confuse namelist reads of external ! 1633: files). ! 1634: 3. Prepend f__ to external names that are only of internal ! 1635: interest to lib[FI]77.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.