|
|
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.