mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			3027 lines
		
	
	
		
			115 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			3027 lines
		
	
	
		
			115 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
31 Aug. 1989:
 | 
						||
   1. A(min(i,j)) now is translated correctly (where A is an array).
 | 
						||
   2. 7 and 8 character variable names are allowed (but elicit a
 | 
						||
      complaint under -ext).
 | 
						||
   3. LOGICAL*1 is treated as LOGICAL, with just one error message
 | 
						||
      per LOGICAL*1 statement (rather than one per variable declared
 | 
						||
      in that statement).  [Note that LOGICAL*1 is not in Fortran 77.]
 | 
						||
      Like f77, f2c now allows the format in a read or write statement
 | 
						||
      to be an integer array.
 | 
						||
 | 
						||
5 Sept. 1989:
 | 
						||
   Fixed botch in argument passing of substrings of equivalenced
 | 
						||
variables.
 | 
						||
 | 
						||
15 Sept. 1989:
 | 
						||
   Warn about incorrect code generated when a character-valued
 | 
						||
function is not declared external and is passed as a parameter
 | 
						||
(in violation of the Fortran 77 standard) before it is invoked.
 | 
						||
Example:
 | 
						||
 | 
						||
	subroutine foo(a,b)
 | 
						||
	character*10 a,b
 | 
						||
	call goo(a,b)
 | 
						||
	b = a(3)
 | 
						||
	end
 | 
						||
 | 
						||
18 Sept. 1989:
 | 
						||
   Complain about overlapping initializations.
 | 
						||
 | 
						||
20 Sept. 1989:
 | 
						||
   Warn about names declared EXTERNAL but never referenced;
 | 
						||
include such names as externs in the generated C (even
 | 
						||
though most C compilers will discard them).
 | 
						||
 | 
						||
24 Sept. 1989:
 | 
						||
   New option -w8 to suppress complaint when COMMON or EQUIVALENCE
 | 
						||
forces word alignment of a double.
 | 
						||
   Under -A (for ANSI C), ensure that floating constants (terminated
 | 
						||
by 'f') contain either a decimal point or an exponent field.
 | 
						||
   Repair bugs sometimes encountered with CHAR and ICHAR intrinsic
 | 
						||
functions.
 | 
						||
   Restore f77's optimizations for copying and comparing character
 | 
						||
strings of length 1.
 | 
						||
   Always assume floating-point valued routines in libF77 return
 | 
						||
doubles, even under -R.
 | 
						||
   Repair occasional omission of arguments in routines having multiple
 | 
						||
entry points.
 | 
						||
   Repair bugs in computing offsets of character strings involved
 | 
						||
in EQUIVALENCE.
 | 
						||
   Don't omit structure qualification when COMMON variables are used
 | 
						||
as FORMATs or internal files.
 | 
						||
 | 
						||
2 Oct. 1989:
 | 
						||
   Warn about variables that appear only in data stmts; don't emit them.
 | 
						||
   Fix bugs in character DATA for noncharacter variables
 | 
						||
involved in EQUIVALENCE.
 | 
						||
   Treat noncharacter variables initialized (at least partly) with
 | 
						||
character data as though they were equivalenced -- put out a struct
 | 
						||
and #define the variables.  This eliminates the hideous and nonportable
 | 
						||
numeric values that were used to initialize such variables.
 | 
						||
   Treat IMPLICIT NONE as IMPLICIT UNDEFINED(A-Z) .
 | 
						||
   Quit when given invalid options.
 | 
						||
 | 
						||
8 Oct. 1989:
 | 
						||
  Modified naming scheme for generated intermediate variables;
 | 
						||
more are recycled, fewer distinct ones used.
 | 
						||
  New option -W nn specifies nn characters/word for Hollerith
 | 
						||
data initializing non-character variables.
 | 
						||
  Bug fix: x(i:min(i+10,j)) used to elicit "Can't handle opcode 31 yet".
 | 
						||
  Integer expressions of the form (i+const1) - (i+const2), where
 | 
						||
i is a scalar integer variable, are now simplified to (const1-const2);
 | 
						||
this leads to simpler translation of some substring expressions.
 | 
						||
  Initialize uninitialized portions of character string arrays to 0
 | 
						||
rather than to blanks.
 | 
						||
 | 
						||
9 Oct. 1989:
 | 
						||
  New option -c to insert comments showing original Fortran source.
 | 
						||
  New option -g to insert line numbers of original Fortran source.
 | 
						||
 | 
						||
10 Oct. 1989:
 | 
						||
  ! recognized as in-line comment delimiter (a la Fortran 88).
 | 
						||
 | 
						||
24 Oct. 1989:
 | 
						||
  New options to ease coping with systems that want the structs
 | 
						||
that result from COMMON blocks to be defined just once:
 | 
						||
  -E causes uninitialized COMMON blocks to be declared Extern;
 | 
						||
if Extern is undefined, f2c.h #defines it to be extern.
 | 
						||
  -ec causes a separate .c file to be emitted for each
 | 
						||
uninitialized COMMON block: COMMON /ABC/ yields abc_com.c;
 | 
						||
thus one can compile *_com.c into a library to ensure
 | 
						||
precisely one definition.
 | 
						||
  -e1c is similar to -ec, except that everything goes into
 | 
						||
one file, along with comments that give a sed script for
 | 
						||
splitting the file into the pieces that -ec would give.
 | 
						||
This is for use with netlib's "execute f2c" service (for which
 | 
						||
-ec is coerced into -e1c, and the sed script will put everything
 | 
						||
but the COMMON definitions into f2c_out.c ).
 | 
						||
 | 
						||
28 Oct. 1989:
 | 
						||
  Convert "i = i op ..." into "i op= ...;" even when i is a
 | 
						||
dummy argument.
 | 
						||
 | 
						||
13 Nov. 1989:
 | 
						||
  Name integer constants (passed as arguments) c__... rather
 | 
						||
than c_... so
 | 
						||
	common /c/stuff
 | 
						||
	call foo(1)
 | 
						||
	...
 | 
						||
is translated correctly.
 | 
						||
 | 
						||
19 Nov. 1989:
 | 
						||
  Floating-point constants are now kept as strings unless they
 | 
						||
are involved in constant expressions that get simplified.  The
 | 
						||
floating-point constants kept as strings can have arbitrarily
 | 
						||
many significant figures and a very large exponent field (as
 | 
						||
large as long int allows on the machine on which f2c runs).
 | 
						||
Thus, for example, the body of
 | 
						||
 | 
						||
	subroutine zot(x)
 | 
						||
	double precision x(6), pi
 | 
						||
	parameter (pi=3.1415926535897932384626433832795028841972)
 | 
						||
	x(1) = pi
 | 
						||
	x(2) = pi+1
 | 
						||
	x(3) = 9287349823749272.7429874923740978492734D-298374
 | 
						||
	x(4) = .89
 | 
						||
	x(5) = 4.0005
 | 
						||
	x(6) = 10D7
 | 
						||
	end
 | 
						||
 | 
						||
now gets translated into
 | 
						||
 | 
						||
    x[1] = 3.1415926535897932384626433832795028841972;
 | 
						||
    x[2] = 4.1415926535897931;
 | 
						||
    x[3] = 9.2873498237492727429874923740978492734e-298359;
 | 
						||
    x[4] = (float).89;
 | 
						||
    x[5] = (float)4.0005;
 | 
						||
    x[6] = 1e8;
 | 
						||
 | 
						||
rather than the former
 | 
						||
 | 
						||
    x[1] = 3.1415926535897931;
 | 
						||
    x[2] = 4.1415926535897931;
 | 
						||
    x[3] = 0.;
 | 
						||
    x[4] = (float)0.89000000000000003;
 | 
						||
    x[5] = (float)4.0004999999999997;
 | 
						||
    x[6] = 100000000.;
 | 
						||
 | 
						||
  Recognition of f77 machine-constant intrinsics deleted, i.e.,
 | 
						||
epbase, epprec, epemin, epemax, eptiny, ephuge, epmrsp.
 | 
						||
 | 
						||
22 Nov. 1989:
 | 
						||
  Workarounds for glitches on some Sun systems...
 | 
						||
  libf77: libF77/makefile modified to point out possible need
 | 
						||
to compile libF77/main.c with -Donexit=on_exit .
 | 
						||
  libi77: libI77/wref.c (and libI77/README) modified so non-ANSI
 | 
						||
systems can compile with USE_STRLEN defined, which will cause
 | 
						||
	sprintf(b = buf, "%#.*f", d, x);
 | 
						||
	n = strlen(b) + d1;
 | 
						||
rather than
 | 
						||
	n = sprintf(b = buf, "%#.*f", d, x) + d1;
 | 
						||
to be compiled.
 | 
						||
 | 
						||
26 Nov. 1989:
 | 
						||
  Longer names are now accepted (up to 50 characters); names may
 | 
						||
contain underscores (in which case they will have two underscores
 | 
						||
appended, to avoid clashes with library names).
 | 
						||
 | 
						||
28 Nov. 1989:
 | 
						||
  libi77 updated:
 | 
						||
	1. Allow 3 (or, on Crays, 4) digit exponents under format Ew.d .
 | 
						||
	2. Try to get things right on machines where ints have 16 bits.
 | 
						||
 | 
						||
29 Nov. 1989:
 | 
						||
  Supplied missing semicolon in parameterless subroutines that
 | 
						||
have multiple entry points (all of them parameterless).
 | 
						||
 | 
						||
30 Nov. 1989:
 | 
						||
  libf77 and libi77 revised to use types from f2c.h.
 | 
						||
  f2c now types floating-point valued C library routines as "double"
 | 
						||
rather than "doublereal" (for use with nonstandard C compilers for
 | 
						||
which "double" is IEEE double extended).
 | 
						||
 | 
						||
1 Dec. 1989:
 | 
						||
  f2c.h updated to eliminate #defines rendered unnecessary (and,
 | 
						||
indeed, dangerous) by change of 26 Nov. to long names possibly
 | 
						||
containing underscores.
 | 
						||
  libi77 further revised: yesterday's change omitted two tweaks to fmt.h
 | 
						||
(tweaks which only matter if float and real or double and doublereal are
 | 
						||
different types).
 | 
						||
 | 
						||
2 Dec. 1989:
 | 
						||
  Better error message (than "bad tag") for NAMELIST, which no longer
 | 
						||
inhibits C output.
 | 
						||
 | 
						||
4 Dec. 1989:
 | 
						||
  Allow capital letters in hex constants (f77 extension; e.g.,
 | 
						||
x'a012BCd', X'A012BCD' and x'a012bcd' are all treated as the integer
 | 
						||
167848909).
 | 
						||
  libi77 further revised: lio.c lio.h lread.c wref.c wrtfmt.c tweaked
 | 
						||
again to allow float and real or double and doublereal to be different.
 | 
						||
 | 
						||
6 Dec. 1989:
 | 
						||
  Revised f2c.h -- required for the following...
 | 
						||
  Simpler looking translations for abs, min, max, using #defines in
 | 
						||
revised f2c.h .
 | 
						||
  libi77: more corrections to types; additions for NAMELIST.
 | 
						||
  Corrected casts in some I/O calls.
 | 
						||
  Translation of NAMELIST; libi77 must still be revised.  Currently
 | 
						||
libi77 gives you a run-time error message if you attempt NAMELIST I/O.
 | 
						||
 | 
						||
7 Dec. 1989:
 | 
						||
  Fixed bug that prevented local integer variables that appear in DATA
 | 
						||
stmts from being ASSIGNed statement labels.
 | 
						||
  Fillers (for DATA statements initializing EQUIVALENCEd variables and
 | 
						||
variables in COMMON) typed integer rather than doublereal (for slightly
 | 
						||
more portability, e.g. to Crays).
 | 
						||
  libi77: missing return values supplied in a few places; some tests
 | 
						||
reordered for better working on the Cray.
 | 
						||
  libf77: better accuracy for complex divide, complex square root,
 | 
						||
real mod function (casts to double; double temporaries).
 | 
						||
 | 
						||
9 Dec. 1989:
 | 
						||
  Fixed bug that caused needless (albeit harmless) empty lines to be
 | 
						||
inserted in the C output when a comment line contained trailing blanks.
 | 
						||
  Further tweak to type of fillers: allow doublereal fillers if the
 | 
						||
struct has doublereal data.
 | 
						||
 | 
						||
11 Dec. 1989:
 | 
						||
  Alteration of rule for producing external (C) names from names that
 | 
						||
contain underscores.  Now the external name is always obtained by
 | 
						||
appending a pair of underscores.
 | 
						||
 | 
						||
12 Dec. 1989:
 | 
						||
  C production inhibited after most errors.
 | 
						||
 | 
						||
15 Dec. 1989:
 | 
						||
  Fixed bug in headers for subroutines having two or more character
 | 
						||
strings arguments:  the length arguments were reversed.
 | 
						||
 | 
						||
19 Dec. 1989:
 | 
						||
  f2c.h libf77 libi77: adjusted so #undefs in f2c.h should not foil
 | 
						||
compilation of libF77 and libI77.
 | 
						||
  libf77: getenv_ adjusted to work with unsorted environments.
 | 
						||
  libi77: the iostat= specifier should now work right with internal I/O.
 | 
						||
 | 
						||
20 Dec. 1989:
 | 
						||
  f2c bugs fixed: In the absence of an err= specifier, the iostat=
 | 
						||
specifier was generally set wrong.  Character strings containing
 | 
						||
explicit nulls (\0) were truncated at the first null.
 | 
						||
  Unlabeled DO loops recognized; must be terminated by ENDDO.
 | 
						||
(Don't ask for CYCLE, EXIT, named DO loops, or DO WHILE.)
 | 
						||
 | 
						||
29 Dec. 1989:
 | 
						||
  Nested unlabeled DO loops now handled properly; new warning for
 | 
						||
extraneous text at end of FORMAT.
 | 
						||
 | 
						||
30 Dec. 1989:
 | 
						||
  Fixed bug in translating dble(real(...)), dble(sngl(...)), and
 | 
						||
dble(float(...)), where ... is either of type double complex or
 | 
						||
is an expression requiring assignment to intermediate variables (e.g.,
 | 
						||
dble(real(foo(x+1))), where foo is a function and x is a variable).
 | 
						||
Regard nonblank label fields on continuation lines as an error.
 | 
						||
 | 
						||
3 Jan. 1990:
 | 
						||
  New option -C++ yields output that should be understood
 | 
						||
by C++ compilers.
 | 
						||
 | 
						||
6 Jan. 1989:
 | 
						||
  -a now excludes variables that appear in a namelist from those
 | 
						||
that it makes automatic.  (As before, it also excludes variables
 | 
						||
that appear in a common, data, equivalence, or save statement.)
 | 
						||
  The syntactically correct Fortran
 | 
						||
	read(*,i) x
 | 
						||
	end
 | 
						||
now yields syntactically correct C (even though both the Fortran
 | 
						||
and C are buggy -- no FORMAT has not been ASSIGNed to i).
 | 
						||
 | 
						||
7 Jan. 1990:
 | 
						||
  libi77: routines supporting NAMELIST added.  Surrounding quotes
 | 
						||
made optional when no ambiguity arises in a list or namelist READ
 | 
						||
of a character-string value.
 | 
						||
 | 
						||
9 Jan. 1990:
 | 
						||
  f2c.src made available.
 | 
						||
 | 
						||
16 Jan. 1990:
 | 
						||
  New options -P to produce ANSI C or C++ prototypes for procedures
 | 
						||
defined.  Change to -A and -C++: f2c tries to infer prototypes for
 | 
						||
invoked procedures unless the new -!P option is given.  New warning
 | 
						||
messages for inconsistent calling sequences among procedures within
 | 
						||
a single file.  Most of f2c/src is affected.
 | 
						||
  f2c.h: typedefs for procedure arguments added; netlib's f2c service
 | 
						||
will insert appropriate typedefs for use with older versions of f2c.h.
 | 
						||
 | 
						||
17 Jan. 1990:
 | 
						||
  f2c/src: defs.h exec.c format.c proc.c putpcc.c version.c xsum0.out
 | 
						||
updated.  Castargs and protofile made extern in defs.h; exec.c
 | 
						||
modified so superfluous else clauses are diagnosed; unused variables
 | 
						||
omitted from declarations in format.c proc.c putpcc.c .
 | 
						||
 | 
						||
21 Jan. 1990:
 | 
						||
  No C emitted for procedures declared external but not referenced.
 | 
						||
  f2c.h: more new types added for use with -P.
 | 
						||
  New feature: f2c accepts as arguments files ending in .p or .P;
 | 
						||
such files are assumed to be prototype files, such as produced by
 | 
						||
the -P option.  All prototype files are read before any Fortran files
 | 
						||
and apply globally to all Fortran files.  Suitable prototypes help f2c
 | 
						||
warn about calling-sequence errors and can tell f2c how to type
 | 
						||
procedures declared external but not explicitly typed; the latter is
 | 
						||
mainly of interest for users of the -A and -C++ options.  (Prototype
 | 
						||
arguments are not available to netlib's "execute f2c" service.)
 | 
						||
  New option -it tells f2c to try to infer types of untyped external
 | 
						||
arguments from their use as parameters to prototyped or previously
 | 
						||
defined procedures.
 | 
						||
  f2c/src: many minor cleanups; most modules changed.  Individual
 | 
						||
files in f2c/src are now in "bundle" format.  The former f2c.1 is
 | 
						||
now f2c.1t; "f2c.1t from f2c" and "f2c.1t from f2c/src" are now the
 | 
						||
same, as are "f2c.1 from f2c" and "f2c.1 from f2c/src".  People who
 | 
						||
do not obtain a new copy of "all from f2c/src" should at least add
 | 
						||
	fclose(sortfp);
 | 
						||
after the call on do_init_data(outfile, sortfp) in format_data.c .
 | 
						||
 | 
						||
22 Jan. 1990:
 | 
						||
  Cleaner man page wording (thanks to Doug McIlroy).
 | 
						||
  -it now also applies to all untyped EXTERNAL procedures, not just
 | 
						||
arguments.
 | 
						||
 | 
						||
23 Jan. 01:34:00 EST 1990:
 | 
						||
  Bug fixes: under -A and -C++, incorrect C was generated for
 | 
						||
subroutines having multiple entries but no arguments.
 | 
						||
  Under -A -P, subroutines of no arguments were given prototype
 | 
						||
calling sequence () rather than (void).
 | 
						||
  Character-valued functions elicited erroneous warning messages
 | 
						||
about inconsistent calling sequences when referenced by another
 | 
						||
procedure in the same file.
 | 
						||
  f2c.1t: omit first appearance of libF77.a in FILES section;
 | 
						||
load order of libraries is -lF77 -lI77, not vice versa (bug
 | 
						||
introduced in yesterday's edits); define .F macro for those whose
 | 
						||
-man lacks it.  (For a while after yesterday's fixes were posted,
 | 
						||
f2c.1t was out of date.  Sorry!)
 | 
						||
 | 
						||
23 Jan. 9:53:24 EST 1990:
 | 
						||
  Character substring expressions involving function calls having
 | 
						||
character arguments (including the intrinsic len function) yielded
 | 
						||
incorrect C.
 | 
						||
  Procedures defined after invocation (in the same file) with
 | 
						||
conflicting argument types also got an erroneous message about
 | 
						||
the wrong number of arguments.
 | 
						||
 | 
						||
24 Jan. 11:44:00 EST 1990:
 | 
						||
  Bug fixes: -p omitted #undefs; COMMON block names containing
 | 
						||
underscores had their C names incorrectly computed; a COMMON block
 | 
						||
having the name of a previously defined procedure wreaked havoc;
 | 
						||
if all arguments were .P files, f2c tried reading the second as a
 | 
						||
Fortran file.
 | 
						||
  New feature: -P emits comments showing COMMON block lengths, so one
 | 
						||
can get warnings of incompatible COMMON block lengths by having f2c
 | 
						||
read .P (or .p) files.  Now by running f2c twice, first with -P -!c
 | 
						||
(or -P!c),  then with *.P among the arguments, you can be warned of
 | 
						||
inconsistent COMMON usage, and COMMON blocks having inconsistent
 | 
						||
lengths will be given the maximum length.  (The latter always did
 | 
						||
happen within each input file; now -P lets you extend this behavior
 | 
						||
across files.)
 | 
						||
 | 
						||
26 Jan. 16:44:00 EST 1990:
 | 
						||
  Option -it made less aggressive: untyped external procedures that
 | 
						||
are invoked are now typed by the rules of Fortran, rather than by
 | 
						||
previous use of procedures to which they are passed as arguments
 | 
						||
before being invoked.
 | 
						||
  Option -P now includes information about references, i.e., called
 | 
						||
procedures, in the prototype files (in the form of special comments).
 | 
						||
This allows iterative invocations of f2c to infer more about untyped
 | 
						||
external names, particularly when multiple Fortran files are involved.
 | 
						||
  As usual, there are some obscure bug fixes:
 | 
						||
1.  Repair of erroneous warning messages about inconsistent number of
 | 
						||
arguments that arose when a character dummy parameter was discovered
 | 
						||
to be a function or when multiple entry points involved character
 | 
						||
variables appearing in a previous entry point.
 | 
						||
2.  Repair of memory fault after error msg about "adjustable character
 | 
						||
function".
 | 
						||
3.  Under -U, allow MAIN_ as a subroutine name (in the same file as a
 | 
						||
main program).
 | 
						||
4.  Change for consistency: a known function invoked as a subroutine,
 | 
						||
then as a function elicits a warning rather than an error.
 | 
						||
 | 
						||
26 Jan. 22:32:00 EST 1990:
 | 
						||
  Fixed two bugs that resulted in incorrect C for substrings, within
 | 
						||
the body of a character-valued function, of the function's name, when
 | 
						||
those substrings were arguments to another function (even implicitly,
 | 
						||
as in character-string assignment).
 | 
						||
 | 
						||
28 Jan. 18:32:00 EST 1990:
 | 
						||
  libf77, libi77: checksum files added; "make check" looks for
 | 
						||
transmission errors.  NAMELIST read modified to allow $ rather than &
 | 
						||
to precede a namelist name, to allow $ rather than / to terminate
 | 
						||
input where the name of another variable would otherwise be expected,
 | 
						||
and to regard all nonprinting ASCII characters <= ' ' as spaces.
 | 
						||
 | 
						||
29 Jan. 02:11:00 EST 1990:
 | 
						||
  "fc from f2c" added.
 | 
						||
  -it option made the default; -!it turns it off.  Type information is
 | 
						||
now updated in a previously missed case.
 | 
						||
  -P option tweaked again; message about when rerunning f2c may change
 | 
						||
prototypes or declarations made more accurate.
 | 
						||
  New option -Ps implies -P and returns exit status 4 if rerunning
 | 
						||
f2c -P with prototype inputs might change prototypes or declarations.
 | 
						||
Now you can execute a crude script like
 | 
						||
 | 
						||
	cat *.f >zap.F
 | 
						||
	rm -f zap.P
 | 
						||
	while :; do
 | 
						||
		f2c -Ps -!c zap.[FP]
 | 
						||
		case $? in 4) ;; *) break;; esac
 | 
						||
		done
 | 
						||
 | 
						||
to get a file zap.P of the best prototypes f2c can determine for *.f .
 | 
						||
 | 
						||
Jan. 29 07:30:21 EST 1990:
 | 
						||
  Forgot to check for error status when setting return code 4 under -Ps;
 | 
						||
error status (1, 2, 3, or, for caught signal, 126) now takes precedence.
 | 
						||
 | 
						||
Jan 29 14:17:00 EST 1990:
 | 
						||
  Incorrect handling of
 | 
						||
	open(n,'filename')
 | 
						||
repaired -- now treated as
 | 
						||
	open(n,file='filename')
 | 
						||
(and, under -ext, given an error message).
 | 
						||
  New optional source file memset.c for people whose systems don't
 | 
						||
provide memset, memcmp, and memcpy; #include <string.h> in mem.c
 | 
						||
changed to #include "string.h" so BSD people can create a local
 | 
						||
string.h that simply says #include <strings.h> .
 | 
						||
 | 
						||
Jan 30 10:34:00 EST 1990:
 | 
						||
  Fix erroneous warning at end of definition of a procedure with
 | 
						||
character arguments when the procedure had previously been called with
 | 
						||
a numeric argument instead of a character argument.  (There were two
 | 
						||
warnings, the second one incorrectly complaining of a wrong number of
 | 
						||
arguments.)
 | 
						||
 | 
						||
Jan 30 16:29:41 EST 1990:
 | 
						||
  Fix case where -P and -Ps erroneously reported another iteration
 | 
						||
necessary.  (Only harm is the extra iteration.)
 | 
						||
 | 
						||
Feb 3 01:40:00 EST 1990:
 | 
						||
  Supply semicolon occasionally omitted under -c .
 | 
						||
  Try to force correct alignment when numeric variables are initialized
 | 
						||
with character data (a non-standard and non-portable practice).  You
 | 
						||
must use the -W option if your code has such data statements and is
 | 
						||
meant to run on a machine with other than 4 characters/word; e.g., for
 | 
						||
code meant to run on a Cray, you would specify -W8 .
 | 
						||
  Allow parentheses around expressions in output lists (in write and
 | 
						||
print statements).
 | 
						||
  Rename source files so their names are <= 12 characters long
 | 
						||
(so there's room to append .Z and still have <= 14 characters);
 | 
						||
renamed files:  formatdata.c niceprintf.c niceprintf.h safstrncpy.c .
 | 
						||
  f2c material made available by anonymous ftp from research.att.com
 | 
						||
(look in dist/f2c ).
 | 
						||
 | 
						||
Feb 3 03:49:00 EST 1990:
 | 
						||
  Repair memory fault that arose from use (in an assignment or
 | 
						||
call) of a non-argument variable declared CHARACTER*(*).
 | 
						||
 | 
						||
Feb 9 01:35:43 EST 1990:
 | 
						||
  Fix erroneous error msg about bad types in
 | 
						||
	subroutine foo(a,adim)
 | 
						||
	dimension a(adim)
 | 
						||
	integer adim
 | 
						||
  Fix improper passing of character args (and possible memory fault)
 | 
						||
in the expression part of a computed goto.
 | 
						||
  Fix botched calling sequences in array references involving
 | 
						||
functions having character args.
 | 
						||
  Fix memory fault caused by invocation of character-valued functions
 | 
						||
of no arguments.
 | 
						||
  Fix botched calling sequence of a character*1-valued function
 | 
						||
assigned to a character*1 variable.
 | 
						||
  Fix bug in error msg for inconsistent number of args in prototypes.
 | 
						||
  Allow generation of C output despite inconsistencies in prototypes,
 | 
						||
but give exit code 8.
 | 
						||
  Simplify include logic (by removing some bogus logic); never
 | 
						||
prepend "/usr/include/" to file names.
 | 
						||
  Minor cleanups (that should produce no visible change in f2c's
 | 
						||
behavior) in intr.c parse.h main.c defs.h formatdata.c p1output.c .
 | 
						||
 | 
						||
Feb 10 00:19:38 EST 1990:
 | 
						||
  Insert (integer) casts when floating-point expressions are used
 | 
						||
as subscripts.
 | 
						||
  Make SAVE stmt (with no variable list) override -a .
 | 
						||
  Minor cleanups: change field to Field in struct Addrblock (for the
 | 
						||
benefit of buggy C compilers); omit system("/bin/cp ...") in misc.c .
 | 
						||
 | 
						||
Feb 13 00:39:00 EST 1990:
 | 
						||
  Error msg fix in gram.dcl: change "cannot make %s parameter"
 | 
						||
to "cannot make into parameter".
 | 
						||
 | 
						||
Feb 14 14:02:00 EST 1990:
 | 
						||
  Various cleanups (invisible on systems with 4-byte ints), thanks
 | 
						||
to Dave Regan: vaxx.c eliminated; %d changed to %ld various places;
 | 
						||
external names adjusted for the benefit of stupid systems (that ignore
 | 
						||
case and recognize only 6 significant characters in external names);
 | 
						||
buffer shortened in xsum.c (e.g. for MS-DOS); fopen modes distinguish
 | 
						||
text and binary files; several unused functions eliminated; missing
 | 
						||
arg supplied to an unlikely fatalstr invocation.
 | 
						||
 | 
						||
Thu Feb 15 19:15:53 EST 1990:
 | 
						||
  More cleanups (invisible on systems with 4 byte ints); casts inserted
 | 
						||
so most complaints from cyntax(1) and lint(1) go away; a few (int)
 | 
						||
versus (long) casts corrected.
 | 
						||
 | 
						||
Fri Feb 16 19:55:00 EST 1990:
 | 
						||
  Recognize and translate unnamed Fortran 8x do while statements.
 | 
						||
  Fix bug that occasionally caused improper breaking of character
 | 
						||
strings.
 | 
						||
  New error message for attempts to provide DATA in a type-declaration
 | 
						||
statement.
 | 
						||
 | 
						||
Sat Feb 17 11:43:00 EST 1990:
 | 
						||
  Fix infinite loop clf -> Fatal -> done -> clf after I/O error.
 | 
						||
  Change "if (addrp->vclass = CLPROC)" to "if (addrp->vclass == CLPROC)"
 | 
						||
in p1_addr (in p1output.c); this was probably harmless.
 | 
						||
  Move a misplaced } in lex.c (which slowed initkey()).
 | 
						||
  Thanks to Gary Word for pointing these things out.
 | 
						||
 | 
						||
Sun Feb 18 18:07:00 EST 1990:
 | 
						||
  Detect overlapping initializations of arrays and scalar variables
 | 
						||
in previously missed cases.
 | 
						||
  Treat logical*2 as logical (after issuing a warning).
 | 
						||
  Don't pass string literals to p1_comment().
 | 
						||
  Correct a cast (introduced 16 Feb.) in gram.expr; this matters e.g.
 | 
						||
on a Cray.
 | 
						||
  Attempt to isolate UNIX-specific things in sysdep.c (a new source
 | 
						||
file).  Unless sysdep.c is compiled with SYSTEM_SORT defined, the
 | 
						||
intermediate files created for DATA statements are now sorted in-core
 | 
						||
without invoking system().
 | 
						||
 | 
						||
Tue Feb 20 16:10:35 EST 1990:
 | 
						||
  Move definition of binread and binwrite from init.c to sysdep.c .
 | 
						||
  Recognize Fortran 8x tokens < <= == >= > <> as synonyms for
 | 
						||
.LT. .LE. .EQ. .GE. .GT. .NE.
 | 
						||
  Minor cleanup in putpcc.c:  fully remove simoffset().
 | 
						||
  More discussion of system dependencies added to libI77/README.
 | 
						||
 | 
						||
Tue Feb 20 21:44:07 EST 1990:
 | 
						||
  Minor cleanups for the benefit of EBCDIC machines -- try to remove
 | 
						||
the assumption that 'a' through 'z' are contiguous.  (Thanks again to
 | 
						||
Gary Word.)  Also, change log2 to log_2 (shouldn't be necessary).
 | 
						||
 | 
						||
Wed Feb 21 06:24:56 EST 1990:
 | 
						||
  Fix botch in init.c introduced in previous change; only matters
 | 
						||
to non-ASCII machines.
 | 
						||
 | 
						||
Thu Feb 22 17:29:12 EST 1990:
 | 
						||
  Allow several entry points to mention the same array.  Protect
 | 
						||
parameter adjustments with if's (for the case that an array is not
 | 
						||
an argument to all entrypoints).
 | 
						||
  Under -u, allow
 | 
						||
	subroutine foo(x,n)
 | 
						||
	real x(n)
 | 
						||
	integer n
 | 
						||
  Compute intermediate variables used to evaluate dimension expressions
 | 
						||
at the right time.  Example previously mistranslated:
 | 
						||
	subroutine foo(x,k,m,n)
 | 
						||
	real x(min(k,m,n))
 | 
						||
	...
 | 
						||
	write(*,*) x
 | 
						||
  Detect duplicate arguments.  (The error msg points to the first
 | 
						||
executable stmt -- not wonderful, but not worth fixing.)
 | 
						||
  Minor cleanup of min/max computation (sometimes slightly simpler).
 | 
						||
 | 
						||
Sun Feb 25 09:39:01 EST 1990:
 | 
						||
  Minor tweak to multiple entry points: protect parameter adjustments
 | 
						||
with if's only for (array) args that do not appear in all entry points.
 | 
						||
  Minor tweaks to format.c and io.c (invisible unless your compiler
 | 
						||
complained at the duplicate #defines of IOSUNIT and IOSFMT or at
 | 
						||
comparisons of p1gets(...) with NULL).
 | 
						||
 | 
						||
Sun Feb 25 18:40:10 EST 1990:
 | 
						||
  Fix bug introduced Feb. 22: if a subprogram contained DATA and the
 | 
						||
first executable statement was labeled, then the label got lost.
 | 
						||
(Just change INEXEC to INDATA in p1output.c; it occurs just once.)
 | 
						||
 | 
						||
Mon Feb 26 17:45:10 EST 1990:
 | 
						||
  Fix bug in handling of " and ' in comments.
 | 
						||
 | 
						||
Wed Mar 28 01:43:06 EST 1990:
 | 
						||
libI77:
 | 
						||
 1. Repair nasty I/O bug: opening two files and closing the first
 | 
						||
(after possibly reading or writing it), then writing the second caused
 | 
						||
the last buffer of the second to be lost.
 | 
						||
 2. Formatted reads of logical values treated all letters other than
 | 
						||
t or T as f (false).
 | 
						||
 libI77 files changed: err.c rdfmt.c Version.c
 | 
						||
 (Request "libi77 from f2c" -- you can't get these files individually.)
 | 
						||
 | 
						||
f2c itself:
 | 
						||
  Repair nasty bug in translation of
 | 
						||
	ELSE IF (condition involving complicated abs, min, or max)
 | 
						||
-- auxiliary statements were emitted at the wrong place.
 | 
						||
  Supply semicolon previously omitted from the translation of a label
 | 
						||
(of a CONTINUE) immediately preceding an ELSE IF or an ELSE.  This
 | 
						||
bug made f2c produce invalid C.
 | 
						||
  Correct a memory fault that occurred (on some machines) when the
 | 
						||
error message "adjustable dimension on non-argument" should be given.
 | 
						||
  Minor tweaks to remove some harmless warnings by overly chatty C
 | 
						||
compilers.
 | 
						||
  Argument arays having constant dimensions but a variable lower bound
 | 
						||
(e.g., x(n+1:n+3)) had a * omitted from scalar arguments involved in
 | 
						||
the array offset computation.
 | 
						||
 | 
						||
Wed Mar 28 18:47:59 EST 1990:
 | 
						||
libf77: add exit(0) to end of main [return(0) encounters a Cray bug]
 | 
						||
 | 
						||
Sun Apr  1 16:20:58 EDT 1990:
 | 
						||
  Avoid dereferencing null when processing equivalences after an error.
 | 
						||
 | 
						||
Fri Apr  6 08:29:49 EDT 1990:
 | 
						||
  Calls involving alternate return specifiers omitted processing
 | 
						||
needed for things like min, max, abs, and // (concatenation).
 | 
						||
  INTEGER*2 PARAMETERs were treated as INTEGER*4.
 | 
						||
  Convert some O(n^2) parsing to O(n).
 | 
						||
 | 
						||
Tue Apr 10 20:07:02 EDT 1990:
 | 
						||
  When inconsistent calling sequences involve differing numbers of
 | 
						||
arguments, report the first differing argument rather than the numbers
 | 
						||
of arguments.
 | 
						||
  Fix bug under -a: formatted I/O in which either the unit or the
 | 
						||
format was a local character variable sometimes resulted in invalid C
 | 
						||
(a static struct initialized with an automatic component).
 | 
						||
  Improve error message for invalid flag after elided -.
 | 
						||
  Complain when literal table overflows, rather than infinitely
 | 
						||
looping.  (The complaint mentions the new and otherwise undocumented
 | 
						||
-NL option for specifying a larger literal table.)
 | 
						||
  New option -h for forcing strings to word (or, with -hd, double-word)
 | 
						||
boundaries where possible.
 | 
						||
  Repair a bug that could cause improper splitting of strings.
 | 
						||
  Fix bug (cast of c to doublereal) in
 | 
						||
	subroutine foo(c,r)
 | 
						||
	double complex c
 | 
						||
	double precision r
 | 
						||
	c = cmplx(r,real(c))
 | 
						||
	end
 | 
						||
  New include file "sysdep.h" has some things from defs.h (and
 | 
						||
elsewhere) that one may need to modify on some systems.
 | 
						||
  Some large arrays that were previously statically allocated are now
 | 
						||
dynamically allocated when f2c starts running.
 | 
						||
  f2c/src files changed:
 | 
						||
	README cds.c defs.h f2c.1 f2c.1t format.c formatdata.c init.c
 | 
						||
	io.c lex.c main.c makefile mem.c misc.c names.c niceprintf.c
 | 
						||
	output.c parse_args.c pread.c put.c putpcc.c sysdep.h
 | 
						||
	version.c xsum0.out
 | 
						||
 | 
						||
Wed Apr 11 18:27:12 EDT 1990:
 | 
						||
  Fix bug in argument consistency checking of character, complex, and
 | 
						||
double complex valued functions.  If the same source file contained a
 | 
						||
definition of such a function with arguments not explicitly typed,
 | 
						||
then subsequent references to the function might get erroneous
 | 
						||
warnings of inconsistent calling sequences.
 | 
						||
  Tweaks to sysdep.h for partially ANSI systems.
 | 
						||
  New options -kr and -krd cause f2c to use temporary variables to
 | 
						||
enforce Fortran evaluation-order rules with pernicious, old-style C
 | 
						||
compilers that apply the associative law to floating-point operations.
 | 
						||
 | 
						||
Sat Apr 14 15:50:15 EDT 1990:
 | 
						||
  libi77: libI77 adjusted to allow list-directed and namelist I/O
 | 
						||
of internal files; bug in namelist I/O of logical and character arrays
 | 
						||
fixed; list input of complex numbers adjusted to permit d or D to
 | 
						||
denote the start of the exponent field of a component.
 | 
						||
  f2c itself: fix bug in handling complicated lower-bound
 | 
						||
expressions for character substrings; e.g., min and max did not work
 | 
						||
right, nor did function invocations involving character arguments.
 | 
						||
  Switch to octal notation, rather than hexadecimal, for nonprinting
 | 
						||
characters in character and string constants.
 | 
						||
  Fix bug (when neither -A nor -C++ was specified) in typing of
 | 
						||
external arguments of type complex, double complex, or character:
 | 
						||
	subroutine foo(c)
 | 
						||
	external c
 | 
						||
	complex c
 | 
						||
now results in
 | 
						||
	/* Complex */ int (*c) ();
 | 
						||
(as, indeed, it once did) rather than
 | 
						||
	complex (*c) ();
 | 
						||
 | 
						||
Sat Apr 14 22:50:39 EDT 1990:
 | 
						||
  libI77/makefile: updated "make check" to omit lio.c
 | 
						||
  lib[FI]77/makefile: trivial change: define CC = cc, reference $(CC).
 | 
						||
  (Request, e.g., "libi77 from f2c" -- you can't ask for individual
 | 
						||
files from lib[FI]77.)
 | 
						||
 | 
						||
Wed Apr 18 00:56:37 EDT 1990:
 | 
						||
  Move declaration of atof() from defs.h to sysdep.h, where it is
 | 
						||
now not declared if stdlib.h is included.  (NeXT's stdlib.h has a
 | 
						||
#define atof that otherwise wreaks havoc.)
 | 
						||
  Under -u, provide a more intelligible error message (than "bad tag")
 | 
						||
for an attempt to define a function without specifying its type.
 | 
						||
 | 
						||
Wed Apr 18 17:26:27 EDT 1990:
 | 
						||
  Recognize \v (vertical tab) in Hollerith as well as quoted strings;
 | 
						||
add recognition of \r (carriage return).
 | 
						||
  New option -!bs turns off recognition of escapes in character strings
 | 
						||
(\0, \\, \b, \f, \n, \r, \t, \v).
 | 
						||
  Move to sysdep.c initialization of some arrays whose initialization
 | 
						||
assumed ASCII; #define Table_size in sysdep.h rather than using
 | 
						||
hard-coded 256 in allocating arrays of size 1 << (bits/byte).
 | 
						||
 | 
						||
Thu Apr 19 08:13:21 EDT 1990:
 | 
						||
  Warn when escapes would make Hollerith extend beyond statement end.
 | 
						||
  Omit max() definition from misc.c (should be invisible except on
 | 
						||
systems that erroneously #define max in stdlib.h).
 | 
						||
 | 
						||
Mon Apr 23 22:24:51 EDT 1990:
 | 
						||
  When producing default-style C (no -A or -C++), cast switch
 | 
						||
expressions to (int).
 | 
						||
  Move "-lF77 -lI77 -lm -lc" to link_msg, defined in sysdep.c .
 | 
						||
  Add #define scrub(x) to sysdep.h, with invocations in format.c and
 | 
						||
formatdata.c, so that people who have systems like VMS that would
 | 
						||
otherwise create multiple versions of intermediate files can
 | 
						||
#define scrub(x) unlink(x)
 | 
						||
 | 
						||
Tue Apr 24 18:28:36 EDT 1990:
 | 
						||
  Pass string lengths once rather than twice to a function of character
 | 
						||
arguments involved in comparison of character strings of length 1.
 | 
						||
 | 
						||
Fri Apr 27 13:11:52 EDT 1990:
 | 
						||
  Fix bug that made f2c gag on concatenations involving char(...) on
 | 
						||
some systems.
 | 
						||
 | 
						||
Sat Apr 28 23:20:16 EDT 1990:
 | 
						||
  Fix control-stack bug in
 | 
						||
	if(...) then
 | 
						||
	else if (complicated condition)
 | 
						||
	else
 | 
						||
	endif
 | 
						||
(where the complicated condition causes assignment to an auxiliary
 | 
						||
variable, e.g., max(a*b,c)).
 | 
						||
 | 
						||
Mon Apr 30 13:30:10 EDT 1990:
 | 
						||
  Change fillers for DATA with holes from substructures to arrays
 | 
						||
(in an attempt to make things work right with C compilers that have
 | 
						||
funny padding rules for substructures, e.g., Sun C compilers).
 | 
						||
  Minor cleanup of exec.c (should not affect generated C).
 | 
						||
 | 
						||
Mon Apr 30 23:13:51 EDT 1990:
 | 
						||
  Fix bug in handling return values of functions having multiple
 | 
						||
entry points of differing return types.
 | 
						||
 | 
						||
Sat May  5 01:45:18 EDT 1990:
 | 
						||
  Fix type inference bug in
 | 
						||
	subroutine foo(x)
 | 
						||
	call goo(x)
 | 
						||
	end
 | 
						||
	subroutine goo(i)
 | 
						||
	i = 3
 | 
						||
	end
 | 
						||
Instead of warning of inconsistent calling sequences for goo,
 | 
						||
f2c was simply making i a real variable; now i is correctly
 | 
						||
typed as an integer variable, and f2c issues an error message.
 | 
						||
  Adjust error messages issued at end of declarations so they
 | 
						||
don't blame the first executable statement.
 | 
						||
 | 
						||
Sun May  6 01:29:07 EDT 1990:
 | 
						||
  Fix bug in -P and -Ps: warn when the definition of a subprogram adds
 | 
						||
information that would change prototypes or previous declarations.
 | 
						||
 | 
						||
Thu May 10 18:09:15 EDT 1990:
 | 
						||
  Fix further obscure bug with (default) -it: inconsistent calling
 | 
						||
sequences and I/O statements could interact to cause a memory fault.
 | 
						||
Example:
 | 
						||
      SUBROUTINE FOO
 | 
						||
      CALL GOO(' Something') ! Forgot integer first arg
 | 
						||
      END
 | 
						||
      SUBROUTINE GOO(IUNIT,MSG)
 | 
						||
      CHARACTER*(*)MSG
 | 
						||
      WRITE(IUNIT,'(1X,A)') MSG
 | 
						||
      END
 | 
						||
 | 
						||
Fri May 11 16:49:11 EDT 1990:
 | 
						||
  Under -!c, do not delete any .c files (when there are errors).
 | 
						||
  Avoid dereferencing 0 when a fatal error occurs while reading
 | 
						||
Fortran on stdin.
 | 
						||
 | 
						||
Wed May 16 18:24:42 EDT 1990:
 | 
						||
  f2c.ps made available.
 | 
						||
 | 
						||
Mon Jun  4 12:53:08 EDT 1990:
 | 
						||
  Diagnose I/O units of invalid type.
 | 
						||
  Add specific error msg about dummy arguments in common.
 | 
						||
 | 
						||
Wed Jun 13 12:43:17 EDT 1990:
 | 
						||
  Under -A, supply a missing "[1]" for CHARACTER*1 variables that appear
 | 
						||
both in a DATA statement and in either COMMON or EQUIVALENCE.
 | 
						||
 | 
						||
Mon Jun 18 16:58:31 EDT 1990:
 | 
						||
  Trivial updates to f2c.ps .  ("Fortran 8x" --> "Fortran 90"; omit
 | 
						||
"(draft)" from "(draft) ANSI C".)
 | 
						||
 | 
						||
Tue Jun 19 07:36:32 EDT 1990:
 | 
						||
  Fix incorrect code generated for ELSE IF(expression involving
 | 
						||
function call passing non-constant substring).
 | 
						||
  Under -h, preserve the property that strings are null-terminated
 | 
						||
where possible.
 | 
						||
  Remove spaces between # and define in lex.c output.c parse.h .
 | 
						||
 | 
						||
Mon Jun 25 07:22:59 EDT 1990:
 | 
						||
  Minor tweak to makefile to reduce unnecessary recompilations.
 | 
						||
 | 
						||
Tue Jun 26 11:49:53 EDT 1990:
 | 
						||
  Fix unintended truncation of some integer constants on machines
 | 
						||
where casting a long to (int) may change the value.  E.g., when f2c
 | 
						||
ran on machines with 16-bit ints, "i = 99999" was being translated
 | 
						||
to "i = -31073;".
 | 
						||
 | 
						||
Wed Jun 27 11:05:32 EDT 1990:
 | 
						||
  Arrange for CHARACTER-valued PARAMETERs to honor their length
 | 
						||
specifications.  Allow CHAR(nn) in expressions defining such PARAMETERs.
 | 
						||
 | 
						||
Fri Jul 20 09:17:30 EDT 1990:
 | 
						||
  Avoid dereferencing 0 when a FORMAT statement has no label.
 | 
						||
 | 
						||
Thu Jul 26 11:09:39 EDT 1990:
 | 
						||
  Remarks about VOID and binread,binwrite added to README.
 | 
						||
  Tweaks to parse_args: should be invisible unless your compiler
 | 
						||
complained at (short)*store.
 | 
						||
 | 
						||
Thu Aug  2 02:07:58 EDT 1990:
 | 
						||
  f2c.ps: change the first line of page 5 from
 | 
						||
	include stuff
 | 
						||
to
 | 
						||
	include 'stuff'
 | 
						||
 | 
						||
Tue Aug 14 13:21:24 EDT 1990:
 | 
						||
  libi77: libI77 adjusted to treat tabs as spaces in list input.
 | 
						||
 | 
						||
Fri Aug 17 07:24:53 EDT 1990:
 | 
						||
  libi77: libI77 adjusted so a blank='ZERO' clause (upper case Z)
 | 
						||
in an open of a currently open file works right.
 | 
						||
 | 
						||
Tue Aug 28 01:56:44 EDT 1990:
 | 
						||
  Fix bug in warnings of inconsistent calling sequences: if an
 | 
						||
argument to a subprogram was never referenced, then a previous
 | 
						||
invocation of the subprogram (in the same source file) that
 | 
						||
passed something of the wrong type for that argument did not
 | 
						||
elicit a warning message.
 | 
						||
 | 
						||
Thu Aug 30 09:46:12 EDT 1990:
 | 
						||
  libi77: prevent embedded blanks in list output of complex values;
 | 
						||
omit exponent field in list output of values of magnitude between
 | 
						||
10 and 1e8; prevent writing stdin and reading stdout or stderr;
 | 
						||
don't close stdin, stdout, or stderr when reopening units 5, 6, 0.
 | 
						||
 | 
						||
Tue Sep  4 12:30:57 EDT 1990:
 | 
						||
  Fix bug in C emitted under -I2 or -i2 for INTEGER*4 FUNCTION.
 | 
						||
  Warn of missing final END even if there are previous errors.
 | 
						||
 | 
						||
Fri Sep  7 13:55:34 EDT 1990:
 | 
						||
  Remark about "make xsum.out" and "make f2c" added to README.
 | 
						||
 | 
						||
Tue Sep 18 23:50:01 EDT 1990:
 | 
						||
  Fix null dereference (and, on some systems, writing of bogus *_com.c
 | 
						||
files) under -ec or -e1c when a prototype file (*.p or *.P) describes
 | 
						||
COMMON blocks that do not appear in the Fortran source.
 | 
						||
  libi77:
 | 
						||
    Add some #ifdef lines (#ifdef MSDOS, #ifndef MSDOS) to avoid
 | 
						||
references to stat and fstat on non-UNIX systems.
 | 
						||
    On UNIX systems, add component udev to unit; decide that old
 | 
						||
and new files are the same iff both the uinode and udev components
 | 
						||
of unit agree.
 | 
						||
    When an open stmt specifies STATUS='OLD', use stat rather than
 | 
						||
access (on UNIX systems) to check the existence of the file (in case
 | 
						||
directories leading to the file have funny permissions and this is
 | 
						||
a setuid or setgid program).
 | 
						||
 | 
						||
Thu Sep 27 16:04:09 EDT 1990:
 | 
						||
  Supply missing entry for Impldoblock in blksize array of cpexpr
 | 
						||
(in expr.c).  No examples are known where this omission caused trouble.
 | 
						||
 | 
						||
Tue Oct  2 22:58:09 EDT 1990:
 | 
						||
  libf77: test signal(...) == SIG_IGN rather than & 01 in main().
 | 
						||
  libi77: adjust rewind.c so two successive rewinds after a write
 | 
						||
don't clobber the file.
 | 
						||
 | 
						||
Thu Oct 11 18:00:14 EDT 1990:
 | 
						||
  libi77: minor cleanups: add #include "fcntl.h" to endfile.c, err.c,
 | 
						||
open.c; adjust g_char in util.c for segmented memories; in f_inqu
 | 
						||
(inquire.c), define x appropriately when MSDOS is defined.
 | 
						||
 | 
						||
Mon Oct 15 20:02:11 EDT 1990:
 | 
						||
  Add #ifdef MSDOS pointer adjustments to mem.c; treat NAME= as a
 | 
						||
synonym for FILE= in OPEN statements.
 | 
						||
 | 
						||
Wed Oct 17 16:40:37 EDT 1990:
 | 
						||
  libf77, libi77: minor cleanups: _cleanup() and abort() invocations
 | 
						||
replaced by invocations of sig_die in main.c; some error messages
 | 
						||
previously lost in buffers will now appear.
 | 
						||
 | 
						||
Mon Oct 22 16:11:27 EDT 1990:
 | 
						||
  libf77: separate sig_die from main (for folks who don't want to use
 | 
						||
the main in libF77).
 | 
						||
  libi77: minor tweak to comments in README.
 | 
						||
 | 
						||
Fri Nov  2 13:49:35 EST 1990:
 | 
						||
  Use two underscores rather than one in generated temporary variable
 | 
						||
names to avoid conflict with COMMON names.  f2c.ps updated to reflect
 | 
						||
this change and the NAME= extension introduced 15 Oct.
 | 
						||
  Repair a rare memory fault in io.c .
 | 
						||
 | 
						||
Mon Nov  5 16:43:55 EST 1990:
 | 
						||
  libi77: changes to open.c (and err.c): complain if an open stmt
 | 
						||
specifies new= and the file already exists (as specified by Fortrans 77
 | 
						||
and 90); allow file= to be omitted in open stmts and allow
 | 
						||
status='replace' (Fortran 90 extensions).
 | 
						||
 | 
						||
Fri Nov 30 10:10:14 EST 1990:
 | 
						||
  Adjust malloc.c for unusual systems whose sbrk() can return values
 | 
						||
not properly aligned for doubles.
 | 
						||
  Arrange for slightly more helpful and less repetitive warnings for
 | 
						||
non-character variables initialized with character data; these warnings
 | 
						||
are (still) suppressed by -w66.
 | 
						||
 | 
						||
Fri Nov 30 15:57:59 EST 1990:
 | 
						||
  Minor tweak to README (about changing VOID in f2c.h).
 | 
						||
 | 
						||
Mon Dec  3 07:36:20 EST 1990:
 | 
						||
  Fix spelling of "character" in f2c.1t.
 | 
						||
 | 
						||
Tue Dec  4 09:48:56 EST 1990:
 | 
						||
  Remark about link_msg and libf2c added to f2c/README.
 | 
						||
 | 
						||
Thu Dec  6 08:33:24 EST 1990:
 | 
						||
  Under -U, render label nnn as L_nnn rather than Lnnn.
 | 
						||
 | 
						||
Fri Dec  7 18:05:00 EST 1990:
 | 
						||
  Add more names from f2c.h (e.g. integer, real) to the c_keywords
 | 
						||
list of names to which an underscore is appended to avoid confusion.
 | 
						||
 | 
						||
Mon Dec 10 19:11:15 EST 1990:
 | 
						||
  Minor tweaks to makefile (./xsum) and README (binread/binwrite).
 | 
						||
  libi77: a few modifications for POSIX systems; meant to be invisible
 | 
						||
elsewhere.
 | 
						||
 | 
						||
Sun Dec 16 23:03:16 EST 1990:
 | 
						||
  Fix null dereference caused by unusual erroneous input, e.g.
 | 
						||
	call foo('abc')
 | 
						||
	end
 | 
						||
	subroutine foo(msg)
 | 
						||
	data n/3/
 | 
						||
	character*(*) msg
 | 
						||
	end
 | 
						||
(Subroutine foo is illegal because the character statement comes after a
 | 
						||
data statement.)
 | 
						||
  Use decimal rather than hex constants in xsum.c (to prevent
 | 
						||
erroneous warning messages about constant overflow).
 | 
						||
 | 
						||
Mon Dec 17 12:26:40 EST 1990:
 | 
						||
  Fix rare extra underscore in character length parameters passed
 | 
						||
for multiple entry points.
 | 
						||
 | 
						||
Wed Dec 19 17:19:26 EST 1990:
 | 
						||
  Allow generation of C despite error messages about bad alignment
 | 
						||
forced by equivalence.
 | 
						||
  Allow variable-length concatenations in I/O statements, such as
 | 
						||
	open(3, file=bletch(1:n) // '.xyz')
 | 
						||
 | 
						||
Fri Dec 28 17:08:30 EST 1990:
 | 
						||
  Fix bug under -p with formats and internal I/O "units" in COMMON,
 | 
						||
as in
 | 
						||
      COMMON /FIGLEA/F
 | 
						||
      CHARACTER*20 F
 | 
						||
      F = '(A)'
 | 
						||
      WRITE (*,FMT=F) 'Hello, world!'
 | 
						||
      END
 | 
						||
 | 
						||
Tue Jan 15 12:00:24 EST 1991:
 | 
						||
  Fix bug when two equivalence groups are merged, the second with
 | 
						||
nonzero offset, and the result is then merged into a common block.
 | 
						||
Example:
 | 
						||
      INTEGER W(3), X(3), Y(3), Z(3)
 | 
						||
      COMMON /ZOT/ Z
 | 
						||
      EQUIVALENCE (W(1),X(1)), (X(2),Y(1)), (Z(3),X(1))
 | 
						||
***** W WAS GIVEN THE WRONG OFFSET
 | 
						||
  Recognize Fortran 90's optional NML= in NAMELIST READs and WRITEs.
 | 
						||
(Currently NML= and FMT= are treated as synonyms -- there's no
 | 
						||
error message if, e.g., NML= specifies a format.)
 | 
						||
  libi77: minor adjustment to allow internal READs from character
 | 
						||
string constants in read-only memory.
 | 
						||
 | 
						||
Fri Jan 18 22:56:15 EST 1991:
 | 
						||
  Add comment to README about needing to comment out the typedef of
 | 
						||
size_t in sysdep.h on some systems, e.g. Sun 4.1.
 | 
						||
  Fix misspelling of "statement" in an error message in lex.c
 | 
						||
 | 
						||
Wed Jan 23 00:38:48 EST 1991:
 | 
						||
  Allow hex, octal, and binary constants to have the qualifying letter
 | 
						||
(z, x, o, or b) either before or after the quoted string containing the
 | 
						||
digits.  For now this change will not be reflected in f2c.ps .
 | 
						||
 | 
						||
Tue Jan 29 16:23:45 EST 1991:
 | 
						||
  Arrange for character-valued statement functions to give results of
 | 
						||
the right length (that of the statement function's name).
 | 
						||
 | 
						||
Wed Jan 30 07:05:32 EST 1991:
 | 
						||
  More tweaks for character-valued statement functions: an error
 | 
						||
check and an adjustment so a right-hand side of nonconstant length
 | 
						||
(e.g., a substring) is handled right.
 | 
						||
 | 
						||
Wed Jan 30 09:49:36 EST 1991:
 | 
						||
  Fix p1_head to avoid printing (char *)0 with %s.
 | 
						||
 | 
						||
Thu Jan 31 13:53:44 EST 1991:
 | 
						||
  Add a test after the cleanup call generated for I/O statements with
 | 
						||
ERR= or END= clauses to catch the unlikely event that the cleanup
 | 
						||
routine encounters an error.
 | 
						||
 | 
						||
Mon Feb  4 08:00:58 EST 1991:
 | 
						||
  Minor cleanup: omit unneeded jumps and labels from code generated for
 | 
						||
some NAMELIST READs and WRITEs with IOSTAT=, ERR=, and/or END=.
 | 
						||
 | 
						||
Tue Feb  5 01:39:36 EST 1991:
 | 
						||
  Change Mktemp to mktmp (for the benefit of systems so brain-damaged
 | 
						||
that they do not distinguish case in external names -- and that for
 | 
						||
some reason want to load mktemp).  Try to get xsum0.out right this
 | 
						||
time (it somehow didn't get updated on 4 Feb. 1991).
 | 
						||
  Add note to libi77/README about adjusting the interpretation of
 | 
						||
RECL= specifiers in OPENs for direct unformatted I/O.
 | 
						||
 | 
						||
Thu Feb  7 17:24:42 EST 1991:
 | 
						||
  New option -r casts values of REAL functions, including intrinsics,
 | 
						||
to REAL.  This only matters for unportable code like
 | 
						||
	real r
 | 
						||
	r = asin(1.)
 | 
						||
	if (r .eq. asin(1.)) ...
 | 
						||
[The behavior of such code varies with the Fortran compiler used --
 | 
						||
and sometimes is affected by compiler options.]  For now, the man page
 | 
						||
at the end of f2c.ps is the only part of f2c.ps that reflects this new
 | 
						||
option.
 | 
						||
 | 
						||
Fri Feb  8 18:12:51 EST 1991:
 | 
						||
  Cast pointer differences passed as arguments to the appropriate type.
 | 
						||
This matters, e.g., with MSDOS compilers that yield a long pointer
 | 
						||
difference but have int == short.
 | 
						||
  Disallow nonpositive dimensions.
 | 
						||
 | 
						||
Fri Feb 15 12:24:15 EST 1991:
 | 
						||
  Change %d to %ld in sprintf call in putpower in putpcc.c.
 | 
						||
  Free more memory (e.g. allowing translation of larger Fortran
 | 
						||
files under MS-DOS).
 | 
						||
  Recognize READ (character expression) and WRITE (character expression)
 | 
						||
as formatted I/O with the format given by the character expression.
 | 
						||
  Update year in Notice.
 | 
						||
 | 
						||
Sat Feb 16 00:42:32 EST 1991:
 | 
						||
  Recant recognizing WRITE(character expression) as formatted output
 | 
						||
-- Fortran 77 is not symmetric in its syntax for READ and WRITE.
 | 
						||
 | 
						||
Mon Mar  4 15:19:42 EST 1991:
 | 
						||
  Fix bug in passing the real part of a complex argument to an intrinsic
 | 
						||
function.  Omit unneeded parentheses in nested calls to intrinsics.
 | 
						||
Example:
 | 
						||
	subroutine foo(x, y)
 | 
						||
	complex y
 | 
						||
	x = exp(sin(real(y))) + exp(imag(y))
 | 
						||
	end
 | 
						||
 | 
						||
Fri Mar  8 15:05:42 EST 1991:
 | 
						||
  Fix a comment in expr.c; omit safstrncpy.c (which had bugs in
 | 
						||
cases not used by f2c).
 | 
						||
 | 
						||
Wed Mar 13 02:27:23 EST 1991:
 | 
						||
  Initialize firstmemblock->next in mem_init in mem.c .  [On most
 | 
						||
systems it was fortuituously 0, but with System V, -lmalloc could
 | 
						||
trip on this missed initialization.]
 | 
						||
 | 
						||
Wed Mar 13 11:47:42 EST 1991:
 | 
						||
  Fix a reference to freed memory.
 | 
						||
 | 
						||
Wed Mar 27 00:42:19 EST 1991:
 | 
						||
  Fix a memory fault caused by such illegal Fortran as
 | 
						||
       function foo
 | 
						||
       x = 3
 | 
						||
       logical foo	! declaration among executables
 | 
						||
       foo=.false.	! used to suffer memory fault
 | 
						||
       end
 | 
						||
 | 
						||
Fri Apr  5 08:30:31 EST 1991:
 | 
						||
  Fix loss of % in some format expressions, e.g.
 | 
						||
	write(*,'(1h%)')
 | 
						||
  Fix botch introduced 27 March 1991 that caused subroutines with
 | 
						||
multiple entry points to have extraneous declarations of ret_val.
 | 
						||
 | 
						||
Fri Apr  5 12:44:02 EST 1991
 | 
						||
  Try again to omit extraneous ret_val declarations -- this morning's
 | 
						||
fix was sometimes wrong.
 | 
						||
 | 
						||
Mon Apr  8 13:47:06 EDT 1991:
 | 
						||
  Arrange for s_rnge to have the right prototype under -A -C .
 | 
						||
 | 
						||
Wed Apr 17 13:36:03 EDT 1991:
 | 
						||
  New fatal error message for apparent invocation of a recursive
 | 
						||
statement function.
 | 
						||
 | 
						||
Thu Apr 25 15:13:37 EDT 1991:
 | 
						||
  F2c and libi77 adjusted so NAMELIST works with -i2.  (I forgot
 | 
						||
about -i2 when adding NAMELIST.)  This required a change to f2c.h
 | 
						||
(that only affects NAMELIST I/O under -i2.)  Man-page description of
 | 
						||
-i2 adjusted to reflect that -i2 stores array lengths in short ints.
 | 
						||
 | 
						||
Fri Apr 26 02:54:41 EDT 1991:
 | 
						||
  Libi77: fix some bugs in NAMELIST reading of multi-dimensional arrays
 | 
						||
(file rsne.c).
 | 
						||
 | 
						||
Thu May  9 02:13:51 EDT 1991:
 | 
						||
  Omit a trailing space in expr.c (could cause a false xsum value if
 | 
						||
a mailer drops the trailing blank).
 | 
						||
 | 
						||
Thu May 16 13:14:59 EDT 1991:
 | 
						||
  Libi77: increase LEFBL in lio.h to overcome a NeXT bug.
 | 
						||
  Tweak for compilers that recognize "nested" comments: inside comments,
 | 
						||
turn /* into /+ (as well as */ into +/).
 | 
						||
 | 
						||
Sat May 25 11:44:25 EDT 1991:
 | 
						||
  libf77: s_rnge: declare line long int rather than int.
 | 
						||
 | 
						||
Fri May 31 07:51:50 EDT 1991:
 | 
						||
  libf77: system_: officially return status.
 | 
						||
 | 
						||
Mon Jun 17 16:52:53 EDT 1991:
 | 
						||
  Minor tweaks: omit unnecessary declaration of strcmp (that caused
 | 
						||
trouble on a system where strcmp was a macro) from misc.c; add
 | 
						||
SHELL = /bin/sh to makefiles.
 | 
						||
  Fix a dereference of null when a CHARACTER*(*) declaration appears
 | 
						||
(illegally) after DATA.  Complain only once per subroutine about
 | 
						||
declarations appearing after DATA.
 | 
						||
 | 
						||
Mon Jul  1 00:28:13 EDT 1991:
 | 
						||
  Add test and error message for illegal use of subroutine names, e.g.
 | 
						||
      SUBROUTINE ZAP(A)
 | 
						||
      ZAP = A
 | 
						||
      END
 | 
						||
 | 
						||
Mon Jul  8 21:49:20 EDT 1991:
 | 
						||
  Issue a warning about things like
 | 
						||
	integer i
 | 
						||
	i = 'abc'
 | 
						||
(which is treated as i = ichar('a')).  [It might be nice to treat 'abc'
 | 
						||
as an integer initialized (in a DATA statement) with 'abc', but
 | 
						||
other matters have higher priority.]
 | 
						||
  Render
 | 
						||
	i = ichar('A')
 | 
						||
as
 | 
						||
	i = 'A';
 | 
						||
rather than
 | 
						||
	i = 65;
 | 
						||
(which assumes ASCII).
 | 
						||
 | 
						||
Fri Jul 12 07:41:30 EDT 1991:
 | 
						||
  Note added to README about erroneous definitions of __STDC__ .
 | 
						||
 | 
						||
Sat Jul 13 13:38:54 EDT 1991:
 | 
						||
  Fix bugs in double type convesions of complex values, e.g.
 | 
						||
sngl(real(...)) or dble(real(...)) (where ... is complex).
 | 
						||
 | 
						||
Mon Jul 15 13:21:42 EDT 1991:
 | 
						||
  Fix bug introduced 8 July 1991 that caused erroneous warnings
 | 
						||
"ichar([first char. of] char. string) assumed for conversion to numeric"
 | 
						||
when a subroutine had an array of character strings as an argument.
 | 
						||
 | 
						||
Wed Aug 28 01:12:17 EDT 1991:
 | 
						||
  Omit an unused function in format.c, an unused variable in proc.c .
 | 
						||
  Under -r8, promote complex to double complex (as the man page claims).
 | 
						||
 | 
						||
Fri Aug 30 17:19:17 EDT 1991:
 | 
						||
  f2c.ps updated: slightly expand description of intrinsics and,or,xor,
 | 
						||
not; add mention of intrinsics lshift, rshift; add note about f2c
 | 
						||
accepting Fortran 90 inline comments (starting with !); update Cobalt
 | 
						||
Blue address.
 | 
						||
 | 
						||
Tue Sep 17 07:17:33 EDT 1991:
 | 
						||
  libI77: err.c and open.c modified to use modes "rb" and "wb"
 | 
						||
when (f)opening unformatted files; README updated to point out
 | 
						||
that it may be necessary to change these modes to "r" and "w"
 | 
						||
on some non-ANSI systems.
 | 
						||
 | 
						||
Tue Oct 15 10:25:49 EDT 1991:
 | 
						||
  Minor tweaks that make some PC compilers happier: insert some
 | 
						||
casts, add args to signal functions.
 | 
						||
  Change -g to emit uncommented #line lines -- and to emit more of them;
 | 
						||
update fc, f2c.1, f2c.1t, f2c.ps to reflect this.
 | 
						||
  Change uchar to Uchar in xsum.c .
 | 
						||
  Bring gram.c up to date.
 | 
						||
 | 
						||
Thu Oct 17 09:22:05 EDT 1991:
 | 
						||
  libi77: README, fio.h, sue.c, uio.c changed so the length field
 | 
						||
in unformatted sequential records has type long rather than int
 | 
						||
(unless UIOLEN_int is #defined).  This is for systems where sizeof(int)
 | 
						||
can vary, depending on the compiler or compiler options.
 | 
						||
 | 
						||
Thu Oct 17 13:42:59 EDT 1991:
 | 
						||
  libi77: inquire.c: when MSDOS is defined, don't strcmp units[i].ufnm
 | 
						||
when it is NULL.
 | 
						||
 | 
						||
Fri Oct 18 15:16:00 EDT 1991:
 | 
						||
  Correct xsum0.out in "all from f2c/src" (somehow botched on 15 Oct.).
 | 
						||
 | 
						||
Tue Oct 22 18:12:56 EDT 1991:
 | 
						||
  Fix memory fault when a character*(*) argument is used (illegally)
 | 
						||
as a dummy variable in the definition of a statement function.  (The
 | 
						||
memory fault occurred when the statement function was invoked.)
 | 
						||
  Complain about implicit character*(*).
 | 
						||
 | 
						||
Thu Nov 14 08:50:42 EST 1991:
 | 
						||
  libi77: change uint to Uint in fmt.h, rdfmt.c, wrtfmt.c; this change
 | 
						||
should be invisible unless you're running a brain-damaged system.
 | 
						||
 | 
						||
Mon Nov 25 19:04:40 EST 1991:
 | 
						||
  libi77: correct botches introduced 17 Oct. 1991 and 14 Nov. 1991
 | 
						||
(change uint to Uint in lwrite.c; other changes that only matter if
 | 
						||
sizeof(int) != sizeof(long)).
 | 
						||
  Add a more meaningful error message when bailing out due to an attempt
 | 
						||
to invoke a COMMON variable as a function.
 | 
						||
 | 
						||
Sun Dec  1 19:29:24 EST 1991:
 | 
						||
  libi77: uio.c: add test for read failure (seq. unformatted reads);
 | 
						||
adjust an error return from EOF to off end of record.
 | 
						||
 | 
						||
Tue Dec 10 17:42:28 EST 1991:
 | 
						||
  Add tests to prevent memory faults with bad uses of character*(*).
 | 
						||
 | 
						||
Thu Dec 12 11:24:41 EST 1991:
 | 
						||
  libi77: fix bug with internal list input that caused the last
 | 
						||
character of each record to be ignored; adjust error message in
 | 
						||
internal formatted input from "end-of-file" to "off end of record"
 | 
						||
if the format specifies more characters than the record contains.
 | 
						||
 | 
						||
Wed Dec 18 17:48:11 EST 1991:
 | 
						||
  Fix bug in translating nonsensical ichar invocations involving
 | 
						||
concatenations.
 | 
						||
  Fix bug in passing intrinsics lle, llt, lge, lgt as arguments;
 | 
						||
hl_le was being passed rather than l_le, etc.
 | 
						||
  libf77: adjust length parameters from long to ftnlen, for
 | 
						||
compiling with f2c_i2 defined.
 | 
						||
 | 
						||
Sat Dec 21 15:30:57 EST 1991:
 | 
						||
  Allow DO nnn ... to end with an END DO statement labelled nnn.
 | 
						||
 | 
						||
Tue Dec 31 13:53:47 EST 1991:
 | 
						||
  Fix bug in handling dimension a(n**3,2) -- pow_ii was called
 | 
						||
incorrectly.
 | 
						||
  Fix bug in translating
 | 
						||
	subroutine x(abc,n)
 | 
						||
	character abc(n)
 | 
						||
	write(abc,'(i10)') 123
 | 
						||
	end
 | 
						||
(omitted declaration and initialiation of abc_dim1).
 | 
						||
  Complain about dimension expressions of such invalid types
 | 
						||
as complex and logical.
 | 
						||
 | 
						||
Fri Jan 17 11:54:20 EST 1992:
 | 
						||
  Diagnose some illegal uses of main program name (rather than
 | 
						||
memory faulting).
 | 
						||
  libi77:  (1) In list and namelist input, treat "r* ," and "r*,"
 | 
						||
alike (where r is a positive integer constant), and fix a bug in
 | 
						||
handling null values following items with repeat counts (e.g.,
 | 
						||
2*1,,3).  (2) For namelist reading of a numeric array, allow a new
 | 
						||
name-value subsequence to terminate the current one (as though the
 | 
						||
current one ended with the right number of null values).
 | 
						||
(3) [lio.h, lwrite.c]:  omit insignificant zeros in list and namelist
 | 
						||
output.  (Compile with -DOld_list_output to get the old behavior.)
 | 
						||
 | 
						||
Sat Jan 18 15:58:01 EST 1992:
 | 
						||
  libi77:  make list output consistent with F format by printing .1
 | 
						||
rather than 0.1 (introduced yesterday).
 | 
						||
 | 
						||
Wed Jan 22 08:32:43 EST 1992:
 | 
						||
  libi77:  add comment to README pointing out preconnection of
 | 
						||
Fortran units 5, 6, 0 to stdin, stdout, stderr (respectively).
 | 
						||
 | 
						||
Mon Feb  3 11:57:53 EST 1992:
 | 
						||
  libi77:  fix namelist read bug that caused the character following
 | 
						||
a comma to be ignored.
 | 
						||
 | 
						||
Fri Feb 28 01:04:26 EST 1992:
 | 
						||
  libf77:  fix buggy z_sqrt.c (double precision square root), which
 | 
						||
misbehaved for arguments in the southwest quadrant.
 | 
						||
 | 
						||
Thu Mar 19 15:05:18 EST 1992:
 | 
						||
  Fix bug (introduced 17 Jan 1992) in handling multiple entry points
 | 
						||
of differing types (with implicitly typed entries appearing after
 | 
						||
the first executable statement).
 | 
						||
  Fix memory fault in the following illegal Fortran:
 | 
						||
        double precision foo(i)
 | 
						||
*	illegal: above should be "double precision function foo(i)"
 | 
						||
        foo = i * 3.2
 | 
						||
        entry moo(i)
 | 
						||
        end
 | 
						||
  Note about ANSI_Libraries (relevant, e.g., to IRIX 4.0.1 and AIX)
 | 
						||
added to README.
 | 
						||
  Abort zero divides during constant simplification.
 | 
						||
 | 
						||
Sat Mar 21 01:27:09 EST 1992:
 | 
						||
  Tweak ckalloc (misc.c) for systems where malloc(0) = 0; this matters
 | 
						||
for subroutines with multiple entry points but no arguments.
 | 
						||
  Add "struct memblock;" to init.c (irrelevant to most compilers).
 | 
						||
 | 
						||
Wed Mar 25 13:31:05 EST 1992:
 | 
						||
  Fix bug with IMPLICIT INTEGER*4(...): under -i2 or -I2, the *4 was
 | 
						||
ignored.
 | 
						||
 | 
						||
Tue May  5 09:53:55 EDT 1992:
 | 
						||
  Tweaks to README; e.g., ANSI_LIbraries changed to ANSI_Libraries .
 | 
						||
 | 
						||
Wed May  6 23:49:07 EDT 1992
 | 
						||
  Under -A and -C++, have subroutines return 0 (even if they have
 | 
						||
no * arguments).
 | 
						||
  Adjust libi77 (rsne.c and lread.c) for systems where ungetc is
 | 
						||
a macro.  Tweak lib[FI]77/makefile to use unique intermediate file
 | 
						||
names (for parallel makes).
 | 
						||
 | 
						||
Tue May 19 09:03:05 EDT 1992:
 | 
						||
  Adjust libI77 to make err= work with internal list and formatted I/O.
 | 
						||
 | 
						||
Sat May 23 18:17:42 EDT 1992:
 | 
						||
  Under -A and -C++, supply "return 0;" after the code generated for
 | 
						||
a STOP statement -- the C compiler doesn't know that s_stop won't
 | 
						||
return.
 | 
						||
  New (mutually exclusive) options:
 | 
						||
	-f	treats all input lines as free-format lines,
 | 
						||
		honoring text that appears after column 72
 | 
						||
		and not padding lines shorter than 72 characters
 | 
						||
		with blanks (which matters if a character string
 | 
						||
		is continued across 2 or more lines).
 | 
						||
	-72	treats text appearing after column 72 as an error.
 | 
						||
 | 
						||
Sun May 24 09:45:37 EDT 1992:
 | 
						||
  Tweak description of -f in f2c.1 and f2c.1t; update f2c.ps .
 | 
						||
 | 
						||
Fri May 29 01:17:15 EDT 1992:
 | 
						||
  Complain about externals used as variables.  Example
 | 
						||
	subroutine foo(a,b)
 | 
						||
	external b
 | 
						||
	a = a*b		! illegal use of b; perhaps should be b()
 | 
						||
	end
 | 
						||
 | 
						||
Mon Jun 15 11:15:27 EDT 1992:
 | 
						||
  Fix bug in handling namelists with names that have underscores.
 | 
						||
 | 
						||
Sat Jun 27 17:30:59 EDT 1992:
 | 
						||
  Under -A and -C++, end Main program aliases with "return 0;".
 | 
						||
  Under -A and -C++, use .P files and usage in previous subprograms
 | 
						||
in the current file to give prototypes for functions declared EXTERNAL
 | 
						||
but not invoked.
 | 
						||
  Fix memory fault under -d1 -P .
 | 
						||
  Under -A and -C++, cast arguments to the right types in calling
 | 
						||
a function that has been defined in the current file or in a .P file.
 | 
						||
  Fix bug in handling multi-dimensional arrays with array references
 | 
						||
in their leading dimensions.
 | 
						||
  Fix bug in the intrinsic cmplx function when the first argument
 | 
						||
involves an expression for which f2c generates temporary variables,
 | 
						||
e.g. cmplx(abs(real(a)),1.) .
 | 
						||
 | 
						||
Sat Jul 18 07:36:58 EDT 1992:
 | 
						||
  Fix buglet with -e1c (invisible on most systems) temporary file
 | 
						||
f2c_functions was unlinked before being closed.
 | 
						||
  libf77: fix bugs in evaluating m**n for integer n < 0 and m an
 | 
						||
integer different from 1 or a real or double precision 0.
 | 
						||
Catch SIGTRAP (to print "Trace trap" before aborting).  Programs
 | 
						||
that previously erroneously computed 1 for 0**-1 may now fault.
 | 
						||
Relevant routines: main.c pow_di.c pow_hh.c pow_ii.c pow_ri.c .
 | 
						||
 | 
						||
Sat Jul 18 08:40:10 EDT 1992:
 | 
						||
  libi77: allow namelist input to end with & (e.g. &end).
 | 
						||
 | 
						||
Thu Jul 23 00:14:43 EDT 1992
 | 
						||
  Append two underscores rather than one to C keywords used as
 | 
						||
local variables to avoid conflicts with similarly named COMMON blocks.
 | 
						||
 | 
						||
Thu Jul 23 11:20:55 EDT 1992:
 | 
						||
  libf77, libi77 updated to assume ANSI prototypes unless KR_headers
 | 
						||
is #defined.
 | 
						||
  libi77 now recognizes a Z format item as in Fortran 90;
 | 
						||
the implementation assumes 8-bit bytes and botches character strings
 | 
						||
on little-endian machines (by printing their bytes from right to
 | 
						||
left): expect this bug to persist; fixing it would require a
 | 
						||
change to the I/O calling sequences.
 | 
						||
 | 
						||
Tue Jul 28 15:18:33 EDT 1992:
 | 
						||
  libi77: insert missed "#ifdef KR_headers" lines around getnum
 | 
						||
header in rsne.c.  Version not updated.
 | 
						||
 | 
						||
NOTE: "index from f2c" now ends with current timestamps of files in
 | 
						||
"all from f2c/src", sorted by time.  To bring your source up to date,
 | 
						||
obtain source files with a timestamp later than the time shown in your
 | 
						||
version.c.
 | 
						||
 | 
						||
Fri Aug 14 08:07:09 EDT 1992:
 | 
						||
  libi77: tweak wrt_E in wref.c to avoid signing NaNs.
 | 
						||
 | 
						||
Sun Aug 23 19:05:22 EDT 1992:
 | 
						||
  fc: supply : after O in getopt invocation (for -O1 -O2 -O3).
 | 
						||
 | 
						||
Mon Aug 24 18:37:59 EDT 1992:
 | 
						||
  Recant above tweak to fc: getopt is dumber than I thought;
 | 
						||
it's necessary to say -O 1 (etc.).
 | 
						||
  libF77/README: add comments about ABORT, ERF, DERF, ERFC, DERFC,
 | 
						||
GETARG, GETENV, IARGC, SIGNAL, and SYSTEM.
 | 
						||
 | 
						||
Tue Oct 27 01:57:42 EST 1992:
 | 
						||
  libf77, libi77:
 | 
						||
    1.  Fix botched indirection in signal_.c.
 | 
						||
    2.  Supply missing l_eof = 0 assignment to s_rsne() in rsne.c (so
 | 
						||
end-of-file on other files won't confuse namelist reads of external
 | 
						||
files).
 | 
						||
    3.  Prepend f__ to external names that are only of internal
 | 
						||
interest to lib[FI]77.
 | 
						||
 | 
						||
Thu Oct 29 12:37:18 EST 1992:
 | 
						||
  libf77: Fix botch in signal_.c when KR_headers is #defined;
 | 
						||
add CFLAGS to makefile.
 | 
						||
  libi77: trivial change to makefile for consistency with
 | 
						||
libF77/makefile.
 | 
						||
 | 
						||
Wed Feb  3 02:05:16 EST 1993:
 | 
						||
  Recognize types INTEGER*1, LOGICAL*1, LOGICAL*2, INTEGER*8.
 | 
						||
INTEGER*8 is not well tested and will only work reasonably on
 | 
						||
systems where int = 4 bytes, long = 8 bytes; on such systems,
 | 
						||
you'll have to modify f2c.h appropriately, changing integer
 | 
						||
from long to int and adding typedef long longint.  You'll also
 | 
						||
have to compile libI77 with Allow_TYQUAD #defined and adjust
 | 
						||
libF77/makefile to compile pow_qq.c.  In the f2c source, changes
 | 
						||
for INTEGER*8 are delimited by #ifdef TYQUAD ... #endif.  You
 | 
						||
can omit the INTEGER*8 changes by compiling with NO_TYQUAD
 | 
						||
#defined.  Otherwise, the new command-line option -!i8
 | 
						||
disables recognition of INTEGER*8.
 | 
						||
  libf77: add pow_qq.c
 | 
						||
  libi77: add #ifdef Allow_TYQUAD stuff.  Changes for INTEGER*1,
 | 
						||
LOGICAL*1, and LOGICAL*2 came last 23 July 1992.  Fix bug in
 | 
						||
backspace (that only bit when the last character of the second
 | 
						||
or subsequent buffer read was the previous newline).  Guard
 | 
						||
against L_tmpnam being too small in endfile.c.  For MSDOS,
 | 
						||
close and reopen files when copying to truncate.  Lengthen
 | 
						||
LINTW (buffer size in lwrite.c).
 | 
						||
  Add \ to the end of #define lines that get broken.
 | 
						||
  Fix bug in handling NAMELIST of items in EQUIVALENCE.
 | 
						||
  Under -h (or -hd), convert Hollerith to integer in general expressions
 | 
						||
(e.g., assignments), not just when they're passed as arguments, and
 | 
						||
blank-pad rather than 0-pad the Hollerith to a multiple of
 | 
						||
sizeof(integer) or sizeof(doublereal).
 | 
						||
  Add command-line option -s, which instructs f2c preserve multi-
 | 
						||
dimensional subscripts (by emitting and using appropriate #defines).
 | 
						||
  Fix glitch (with default type inferences) in examples like
 | 
						||
	call foo('abc')
 | 
						||
	end
 | 
						||
	subroutine foo(goo)
 | 
						||
	end
 | 
						||
This gave two warning messages:
 | 
						||
	Warning on line 4 of y.f: inconsistent calling sequences for foo:
 | 
						||
	        here 1, previously 2 args and string lengths.
 | 
						||
	Warning on line 4 of y.f: inconsistent calling sequences for foo:
 | 
						||
	        here 2, previously 1 args and string lengths.
 | 
						||
Now the second Warning is suppressed.
 | 
						||
  Complain about all inconsistent arguments, not just the first.
 | 
						||
  Switch to automatic creation of "all from f2c/src".  For folks
 | 
						||
getting f2c source via ftp, this means f2c/src/all.Z is now an
 | 
						||
empty file rather than a bundle.
 | 
						||
  Separate -P and -A: -P no longer implies -A.
 | 
						||
 | 
						||
Thu Feb  4 00:32:20 EST 1993:
 | 
						||
  Fix some glitches (introduced yesterday) with -h .
 | 
						||
 | 
						||
Fri Feb  5 01:40:38 EST 1993:
 | 
						||
  Fix bug in types conveyed for namelists (introduced 3 Feb. 1993).
 | 
						||
 | 
						||
Fri Feb  5 21:26:43 EST 1993:
 | 
						||
  libi77: tweaks to NAMELIST and open (after comments by Harold
 | 
						||
Youngren):
 | 
						||
 1. Reading a ? instead of &name (the start of a namelist) causes
 | 
						||
    the namelist being sought to be written to stdout (unit 6);
 | 
						||
    to omit this feature, compile rsne.c with -DNo_Namelist_Questions.
 | 
						||
 2. Reading the wrong namelist name now leads to an error message
 | 
						||
    and an attempt to skip input until the right namelist name is found;
 | 
						||
    to omit this feature, compile rsne.c with -DNo_Bad_Namelist_Skip.
 | 
						||
 3. Namelist writes now insert newlines before each variable; to omit
 | 
						||
    this feature, compile xwsne.c with -DNo_Extra_Namelist_Newlines.
 | 
						||
 4. For OPEN of sequential files, ACCESS='APPEND' (or
 | 
						||
    access='anything else starting with "A" or "a"') causes the file to
 | 
						||
    be positioned at end-of-file, so a write will append to the file.
 | 
						||
    (This is nonstandard, but does not require modifying data
 | 
						||
    structures.)
 | 
						||
 | 
						||
Mon Feb  8 14:40:37 EST 1993:
 | 
						||
  Increase number of continuation lines allowed from 19 to 99,
 | 
						||
and allow changing this limit with -NC (e.g. -NC200 for 200 lines).
 | 
						||
  Treat control-Z (at the beginning of a line) as end-of-file: see
 | 
						||
the new penultimate paragraph of README.
 | 
						||
  Fix a rarely seen glitch that could make an error messages to say
 | 
						||
"line 0".
 | 
						||
 | 
						||
Tue Feb  9 02:05:40 EST 1993
 | 
						||
  libi77: change some #ifdef MSDOS lines to #ifdef NON_UNIX_STDIO,
 | 
						||
and, in err.c under NON_UNIX_STDIO, avoid close(creat(name,0666))
 | 
						||
when the unit has another file descriptor for name.
 | 
						||
 | 
						||
Tue Feb  9 17:12:49 EST 1993
 | 
						||
  libi77: more tweaks for NON_UNIX_STDIO: use stdio routines
 | 
						||
rather than open, close, creat, seek, fdopen (except for f__isdev).
 | 
						||
 | 
						||
Fri Feb 12 15:49:33 EST 1993
 | 
						||
  Update src/gram.c (which was forgotten in the recent updates).
 | 
						||
Most folks regenerate it anyway (wity yacc or bison).
 | 
						||
 | 
						||
Thu Mar  4 17:07:38 EST 1993
 | 
						||
  Increase default max labels in computed gotos and alternate returns
 | 
						||
to 257, and allow -Nl1234 to specify this number.
 | 
						||
  Tweak put.c to check p->tag == TADDR in realpart() and imagpart().
 | 
						||
  Adjust fc script to allow .r (RATFOR) files and -C (check subscripts).
 | 
						||
  Avoid declaring strchr in niceprintf.c under -DANSI_Libraries .
 | 
						||
  gram.c updated again.
 | 
						||
  libi77: err.c, open.c: take declaration of fdopen from rawio.h.
 | 
						||
 | 
						||
Sat Mar  6 07:09:11 EST 1993
 | 
						||
  libi77: uio.c: adjust off-end-of-record test for sequential
 | 
						||
unformatted reads to respond to err= rather than end= .
 | 
						||
 | 
						||
Sat Mar  6 16:12:47 EST 1993
 | 
						||
  Treat scalar arguments of the form (v) and v+0, where v is a variable,
 | 
						||
as expressions: assign to a temporary variable, and pass the latter.
 | 
						||
  gram.c updated.
 | 
						||
 | 
						||
Mon Mar  8 09:35:38 EST 1993
 | 
						||
  "f2c.h from f2c" updated to add types logical1 and integer1 for
 | 
						||
LOGICAL*1 and INTEGER*1.  ("f2c.h from f2c" is supposed to be the
 | 
						||
same as "f2c.h from f2c/src", which was updated 3 Feb. 1993.)
 | 
						||
 | 
						||
Mon Mar  8 17:57:55 EST 1993
 | 
						||
  Fix rarely seen bug that could cause strange casts in function
 | 
						||
invocations (revealed by an example with msdos/f2c.exe).
 | 
						||
  msdos/f2cx.exe.Z and msdos/f2c.exe.Z updated (ftp access only).
 | 
						||
 | 
						||
Fri Mar 12 12:37:01 EST 1993
 | 
						||
  Fix bug with -s in handling subscripts involving min, max, and
 | 
						||
complicated expressions requiring temporaries.
 | 
						||
  Fix bug in handling COMMONs that need padding by a char array.
 | 
						||
  msdos/f2cx.exe.Z and msdos/f2c.exe.Z updated (ftp access only).
 | 
						||
 | 
						||
Fri Mar 12 17:16:16 EST 1993
 | 
						||
  libf77, libi77: updated for compiling under C++.
 | 
						||
 | 
						||
Mon Mar 15 16:21:37 EST 1993
 | 
						||
  libi77: more minor tweaks (for -DKR_headers); Version.c not changed.
 | 
						||
 | 
						||
Thu Mar 18 12:37:30 EST 1993
 | 
						||
  Flag -r (for discarding carriage-returns on systems that end lines
 | 
						||
with carriage-return/newline pairs, e.g. PCs) added to xsum, and
 | 
						||
xsum.c converted to ANSI/ISO syntax (with K&R syntax available with
 | 
						||
-DKR_headers).  [When time permits, the f2c source will undergo a
 | 
						||
similar conversion.]
 | 
						||
  libi77: tweaks to #includes in endfile.c, err.c, open.c, rawio.h;
 | 
						||
Version.c not changed.
 | 
						||
  f2c.ps updated (to pick up revision of 2 Feb. 1993 to f2c.1).
 | 
						||
 | 
						||
Fri Mar 19 09:19:26 EST 1993
 | 
						||
  libi77: add (char *) casts to malloc and realloc invocations
 | 
						||
in err.c, open.c; Version.c not changed.
 | 
						||
 | 
						||
Tue Mar 30 07:17:15 EST 1993
 | 
						||
  Fix bug introduced 6 March 1993: possible memory corruption when
 | 
						||
loops in data statements involve constant subscripts, as in
 | 
						||
	 DATA (GUNIT(1,I),I=0,14)/15*-1/
 | 
						||
 | 
						||
Tue Mar 30 16:17:42 EST 1993
 | 
						||
  Fix bug with -s: (floating-point array item)*(complex item)
 | 
						||
generates an _subscr() reference for the floating-point array,
 | 
						||
but a #define for the _subscr() was omitted.
 | 
						||
 | 
						||
Tue Apr  6 12:11:22 EDT 1993
 | 
						||
  libi77: adjust error returns for formatted inputs to flush the current
 | 
						||
input line when err= is specified.  To restore the old behavior (input
 | 
						||
left mid-line), either adjust the #definition of errfl in fio.h or omit
 | 
						||
the invocation of f__doend in err__fl (in err.c).
 | 
						||
 | 
						||
Tue Apr  6 13:30:04 EDT 1993
 | 
						||
  Fix bug revealed in
 | 
						||
	subroutine foo(i)
 | 
						||
	call goo(int(i))
 | 
						||
	end
 | 
						||
which now passes a copy of i, rather than i itself.
 | 
						||
 | 
						||
Sat Apr 17 11:41:02 EDT 1993
 | 
						||
  Adjust appending of underscores to conform with f2c.ps ("A Fortran
 | 
						||
to C Converter"): names that conflict with C keywords or f2c type
 | 
						||
names now have just one underscore appended (rather than two); add
 | 
						||
"integer1", "logical1", "longint" to the keyword list.
 | 
						||
  Append underscores to names that appear in EQUIVALENCE and are
 | 
						||
component names in a structure declared in f2c.h, thus avoiding a
 | 
						||
problem caused by the #defines emitted for equivalences.  Example:
 | 
						||
	complex a
 | 
						||
	equivalence (i,j)
 | 
						||
	a = 1	! a.i went awry because of #define i
 | 
						||
	j = 2
 | 
						||
	write(*,*) a, i
 | 
						||
	end
 | 
						||
  Adjust line-breaking logic to avoid splitting very long constants
 | 
						||
(and names).  Example:
 | 
						||
	! The next line starts with tab and thus is a free-format line.
 | 
						||
	a=.012345689012345689012345689012345689012345689012345689012345689012345689
 | 
						||
	end
 | 
						||
  Omit extraneous "return 0;" from entry stubs emitted for multiple
 | 
						||
entry points of type character, complex, or double complex.
 | 
						||
 | 
						||
Sat Apr 17 14:35:05 EDT 1993
 | 
						||
  Fix bug (introduced 4 Feb.) in separating -P from -A that kept f2c
 | 
						||
from re-reading a .P file written without -A or -C++ describing a
 | 
						||
routine with an external argument.  [See the just-added note about
 | 
						||
separating -P from -A in the changes above for 3 Feb. 1993.]
 | 
						||
  Fix bug (type UNKNOWN for V in the example below) revealed by
 | 
						||
	subroutine a()
 | 
						||
	external c
 | 
						||
	call b(c)
 | 
						||
	end
 | 
						||
	subroutine b(v)
 | 
						||
	end
 | 
						||
 | 
						||
Sun Apr 18 19:55:26 EDT 1993
 | 
						||
  Fix wrong calling sequence for mem() in yesterday's addition to
 | 
						||
equiv.c .
 | 
						||
 | 
						||
Wed Apr 21 17:39:46 EDT 1993
 | 
						||
  Fix bug revealed in
 | 
						||
 | 
						||
      ASSIGN 10 TO L1
 | 
						||
      GO TO 20
 | 
						||
 10   ASSIGN 30 TO L2
 | 
						||
      STOP 10
 | 
						||
 | 
						||
 20   ASSIGN 10 TO L2	! Bug here because 10 had been assigned
 | 
						||
			! to another label, then defined.
 | 
						||
      GO TO L2
 | 
						||
 30   END
 | 
						||
 | 
						||
Fri Apr 23 18:38:50 EDT 1993
 | 
						||
  Fix bug with -h revealed in
 | 
						||
	CHARACTER*9 FOO
 | 
						||
	WRITE(FOO,'(I6)') 1
 | 
						||
	WRITE(FOO,'(I6)') 2	! struct icilist io___3 botched
 | 
						||
	END
 | 
						||
 | 
						||
Tue Apr 27 16:08:28 EDT 1993
 | 
						||
  Tweak to makefile: remove "size f2c".
 | 
						||
 | 
						||
Tue May  4 23:48:20 EDT 1993
 | 
						||
  libf77: tweak signal_ line of f2ch.add .
 | 
						||
 | 
						||
Tue Jun  1 13:47:13 EDT 1993
 | 
						||
  Fix bug introduced 3 Feb. 1993 in handling multiple entry
 | 
						||
points with differing return types -- the postfix array in proc.c
 | 
						||
needed a new entry for integer*8 (which resulted in wrong
 | 
						||
Multitype suffixes for non-integral types).
 | 
						||
  For (default) K&R C, generate VOID rather than int functions for
 | 
						||
functions of Fortran type character, complex, and double complex.
 | 
						||
  msdos/f2cx.exe.Z and msdos/f2c.exe.Z updated (ftp access only).
 | 
						||
 | 
						||
Tue Jun  1 23:11:15 EDT 1993
 | 
						||
  f2c.h: add Multitype component g and commented type longint.
 | 
						||
  proc.c: omit "return 0;" from stubs for complex and double complex
 | 
						||
entries (when entries have multiple types); add test to avoid memory
 | 
						||
fault with illegal combinations of entry types.
 | 
						||
 | 
						||
Mon Jun  7 12:00:47 EDT 1993
 | 
						||
  Fix memory fault in
 | 
						||
	common /c/ m
 | 
						||
	integer m(1)
 | 
						||
	data m(1)/1/, m(2)/2/	! one too many initializers
 | 
						||
	end
 | 
						||
  msdos/f2cx.exe.Z and msdos/f2c.exe.Z updated (ftp access only).
 | 
						||
 | 
						||
Fri Jun 18 13:55:51 EDT 1993
 | 
						||
  libi77: change type of signal_ in f2ch.add; change type of il in
 | 
						||
union Uint from long to integer (for machines like the DEC Alpha,
 | 
						||
where integer should be the same as int).  Version.c not changed.
 | 
						||
  Tweak gram.dcl and gram.head: add semicolons after some rules that
 | 
						||
lacked them, and remove an extraneous semicolon.  These changes are
 | 
						||
completely transparent to our local yacc programs, but apparently
 | 
						||
matter on some VMS systems.
 | 
						||
 | 
						||
Wed Jun 23 01:02:56 EDT 1993
 | 
						||
  Update "fc" shell script, and bring f2c.1 and f2c.1t up to date:
 | 
						||
they're meant to be linked with (i.e., the same as) src/f2c.1 and
 | 
						||
src/f2c.1t .  [In the last update of f2c.1* (2 Feb. 1993), only
 | 
						||
src/f2c.1 and src/f2c.1t got changed -- a mistake.]
 | 
						||
 | 
						||
Wed Jun 23 09:04:31 EDT 1993
 | 
						||
  libi77: fix bug in format reversions for internal writes.
 | 
						||
Example:
 | 
						||
	character*60 lines(2)
 | 
						||
	write(lines,"('n =',i3,2(' more text',i3))") 3, 4, 5, 6
 | 
						||
	write(*,*) 'lines(1) = ', lines(1)
 | 
						||
	write(*,*) 'lines(2) = ', lines(2)
 | 
						||
	end
 | 
						||
gave an error message that began "iio: off end of record", rather
 | 
						||
than giving the correct output:
 | 
						||
 | 
						||
 lines(1) = n =  3 more text  4 more text  5
 | 
						||
 lines(2) =  more text  6 more text
 | 
						||
 | 
						||
Thu Aug  5 11:31:14 EDT 1993
 | 
						||
  libi77: lread.c: fix bug in handling repetition counts for logical
 | 
						||
data (during list or namelist input).  Change struct f__syl to
 | 
						||
struct syl (for buggy compilers).
 | 
						||
 | 
						||
Sat Aug  7 16:05:30 EDT 1993
 | 
						||
  libi77: lread.c (again): fix bug in namelist reading of incomplete
 | 
						||
logical arrays.
 | 
						||
  Fix minor calling-sequence errors in format.c, output.c, putpcc.c:
 | 
						||
should be invisible.
 | 
						||
 | 
						||
Mon Aug  9 09:12:38 EDT 1993
 | 
						||
  Fix erroneous cast under -A in translating
 | 
						||
	character*(*) function getc()
 | 
						||
	getc(2:3)=' '		!wrong cast in first arg to s_copy
 | 
						||
	end
 | 
						||
  libi77: lread.c: fix bug in namelist reading of an incomplete array
 | 
						||
of numeric data followed by another namelist item whose name starts
 | 
						||
with 'd', 'D', 'e', or 'E'.
 | 
						||
 | 
						||
Fri Aug 20 13:22:10 EDT 1993
 | 
						||
  Fix bug in do while revealed by
 | 
						||
	subroutine skdig (line, i)
 | 
						||
	character line*(*), ch*1
 | 
						||
	integer i
 | 
						||
	logical isdigit
 | 
						||
	isdigit(ch) = ch.ge.'0' .and. ch.le.'9'
 | 
						||
	do while (isdigit(line(i:i)))	! ch__1[0] was set before
 | 
						||
					! "while(...) {...}"
 | 
						||
		i = i + 1
 | 
						||
		enddo
 | 
						||
	end
 | 
						||
 | 
						||
Fri Aug 27 08:22:54 EDT 1993
 | 
						||
  Add #ifdefs to avoid declaring atol when it is a macro; version.c
 | 
						||
not updated.
 | 
						||
 | 
						||
Wed Sep  8 12:24:26 EDT 1993
 | 
						||
  libi77: open.c: protect #include "sys/..." with
 | 
						||
#ifndef NON_UNIX_STDIO; Version date not changed.
 | 
						||
 | 
						||
Thu Sep  9 08:51:21 EDT 1993
 | 
						||
  Adjust "include" to interpret file names relative to the directory
 | 
						||
of the file that contains the "include".
 | 
						||
 | 
						||
Fri Sep 24 00:56:12 EDT 1993
 | 
						||
  Fix offset error resulting from repeating the same equivalence
 | 
						||
statement twice.  Example:
 | 
						||
	real a(2), b(2)
 | 
						||
	equivalence (a(2), b(2))
 | 
						||
	equivalence (a(2), b(2))
 | 
						||
	end
 | 
						||
  Increase MAXTOKENLEN (to roughly the largest allowed by ANSI C).
 | 
						||
 | 
						||
Mon Sep 27 08:55:09 EDT 1993
 | 
						||
  libi77: endfile.c: protect #include "sys/types.h" with
 | 
						||
#ifndef NON_UNIX_STDIO; Version.c not changed.
 | 
						||
 | 
						||
Fri Oct 15 15:37:26 EDT 1993
 | 
						||
  Fix rarely seen parsing bug illustrated by
 | 
						||
	subroutine foo(xabcdefghij)
 | 
						||
	character*(*) xabcdefghij
 | 
						||
               IF (xabcdefghij.NE.'##') GOTO 40
 | 
						||
 40	end
 | 
						||
in which the spacing in the IF line is crucial.
 | 
						||
 | 
						||
Thu Oct 21 13:55:11 EDT 1993
 | 
						||
  Give more meaningful error message (then "unexpected character in
 | 
						||
cds") when constant simplification leads to Infinity or NaN.
 | 
						||
 | 
						||
Wed Nov 10 15:01:05 EST 1993
 | 
						||
  libi77: backspace.c: adjust, under -DMSDOS, to cope with MSDOS
 | 
						||
text files, as handled by some popular PC C compilers.  Beware:
 | 
						||
the (defective) libraries associated with these compilers assume lines
 | 
						||
end with \r\n (conventional MS-DOS text files) -- and ftell (and
 | 
						||
hence the current implementation of backspace) screws up if lines with
 | 
						||
just \n.
 | 
						||
 | 
						||
Thu Nov 18 09:37:47 EST 1993
 | 
						||
  Give a better error (than "control stack empty") for an extraneous
 | 
						||
ENDDO.  Example:
 | 
						||
	enddo
 | 
						||
	end
 | 
						||
  Update comments about ftp in "readme from f2c".
 | 
						||
 | 
						||
Sun Nov 28 17:26:50 EST 1993
 | 
						||
  Change format of time stamp in version.c to yyyymmdd.
 | 
						||
  Sort parameter adjustments (or complain of impossible dependencies)
 | 
						||
so that dummy arguments are referenced only after being adjusted.
 | 
						||
Example:
 | 
						||
	subroutine foo(a,b)
 | 
						||
	integer a(2)		! a must be adjusted before b
 | 
						||
	double precision b(a(1),a(2))
 | 
						||
	call goo(b(3,4))
 | 
						||
	end
 | 
						||
  Adjust structs for initialized common blocks and equivalence classes
 | 
						||
to omit the trailing struct component added to force alignment when
 | 
						||
padding already forces the desired alignment.  Example:
 | 
						||
	PROGRAM TEST
 | 
						||
	COMMON /Z/ A, CC
 | 
						||
	CHARACTER*4 CC
 | 
						||
	DATA cc /'a'/
 | 
						||
	END
 | 
						||
now gives
 | 
						||
	struct {
 | 
						||
	    integer fill_1[1];
 | 
						||
	    char e_2[4];
 | 
						||
	    } z_ = { {0}, {'a', ' ', ' ', ' '} };
 | 
						||
rather than
 | 
						||
struct {
 | 
						||
    integer fill_1[1];
 | 
						||
    char e_2[4];
 | 
						||
    real e_3;
 | 
						||
    } z_ = { {0}, {'a', ' ', ' ', ' '}, (float)0. };
 | 
						||
 | 
						||
Wed Dec  8 16:24:43 EST 1993
 | 
						||
  Adjust lex.c to recognize # nnn "filename" lines emitted by cpp;
 | 
						||
this affects the file names and line numbers in error messages and
 | 
						||
the #line lines emitted under -g.
 | 
						||
  Under -g, arrange for a file that starts with an executable
 | 
						||
statement to have the first #line line indicate line 1, rather
 | 
						||
than the line number of the END statement ending the main program.
 | 
						||
  Adjust fc script to run files ending in .F through /lib/cpp.
 | 
						||
  Fix bug ("Impossible tag 2") in
 | 
						||
	if (t .eq. (0,2)) write(*,*) 'Bug!'
 | 
						||
	end
 | 
						||
  libi77: iio.c: adjust internal formatted reads to treat short records
 | 
						||
as though padded with blanks (rather than causing an "off end of record"
 | 
						||
error).
 | 
						||
 | 
						||
Wed Dec 15 15:19:15 EST 1993
 | 
						||
  fc: adjusted for .F files to pass -D and -I options to cpp.
 | 
						||
 | 
						||
Fri Dec 17 20:03:38 EST 1993
 | 
						||
  Fix botch introduced 28 Nov. 1993 in vax.c; change "version of"
 | 
						||
to "version".
 | 
						||
 | 
						||
Tue Jan  4 15:39:52 EST 1994
 | 
						||
  msdos/f2cx.exe.Z and msdos/f2c.exe.Z updated (ftp access only).
 | 
						||
 | 
						||
Wed Jan 19 08:55:19 EST 1994
 | 
						||
  Arrange to accept
 | 
						||
	integer	Nx, Ny, Nz
 | 
						||
	parameter	(Nx = 10, Ny = 20)
 | 
						||
	parameter	(Nz = max(Nx, Ny))
 | 
						||
	integer	c(Nz)
 | 
						||
	call foo(c)
 | 
						||
	end
 | 
						||
rather than complaining "Declaration error for c: adjustable dimension
 | 
						||
on non-argument".  The necessary changes cause some hitherto unfolded
 | 
						||
constant expressions to be folded.
 | 
						||
  Accept BYTE as a synonym for INTEGER*1.
 | 
						||
 | 
						||
Thu Jan 27 08:57:40 EST 1994
 | 
						||
  Fix botch in changes of 19 Jan. 1994 that broke entry points with
 | 
						||
multi-dimensional array arguments that did not appear in the subprogram
 | 
						||
argument list and whose leading dimensions depend on arguments.
 | 
						||
 | 
						||
Mon Feb  7 09:24:30 EST 1994
 | 
						||
  Remove artifact in "fc" script that caused -O to be ignored:
 | 
						||
	87c87
 | 
						||
	<		# lcc ignores -O...
 | 
						||
	---
 | 
						||
	>		CFLAGS="$CFLAGS $O"
 | 
						||
 | 
						||
Sun Feb 20 17:04:58 EST 1994
 | 
						||
  Fix bugs reading .P files for routines with arguments of type
 | 
						||
INTEGER*1, INTEGER*8, LOGICAL*2.
 | 
						||
  Fix glitch in reporting inconsistent arguments for routines involving
 | 
						||
character arguments:  "arg n" had n too large by the number of
 | 
						||
character arguments.
 | 
						||
 | 
						||
Tue Feb 22 20:50:08 EST 1994
 | 
						||
  Trivial changes to data.c format.c main.c niceprintf.c output.h and
 | 
						||
sysdep.h (consistency improvements).
 | 
						||
  libI77: lread.c: check for NULL return from realloc.
 | 
						||
 | 
						||
Fri Feb 25 23:56:08 EST 1994
 | 
						||
  output.c, sysdep.h: arrange for -DUSE_DTOA to use dtoa.c and g_fmt.c
 | 
						||
for correctly rounded decimal values on IEEE-arithmetic machines
 | 
						||
(plus machines with VAX and IBM-mainframe arithmetic).  These
 | 
						||
routines are available from netlib's fp directory.
 | 
						||
  msdos/f2cx.exe.Z and msdos/f2c.exe.Z updated (ftp access only); the
 | 
						||
former uses -DUSE_DTOA to keep 12 from printing as 12.000000000000001.
 | 
						||
  vax.c: fix wrong arguments to badtag and frchain introduced
 | 
						||
28 Nov. 1993.
 | 
						||
  Source for f2c converted to ANSI/ISO format, with the K&R format
 | 
						||
available by compilation with -DKR_headers .
 | 
						||
  Arrange for (double precision expression) relop (single precision
 | 
						||
constant) to retain the single-precision nature of the constant.
 | 
						||
Example:
 | 
						||
	double precision t
 | 
						||
	if (t .eq. 0.3) ...
 | 
						||
 | 
						||
Mon Feb 28 11:40:24 EST 1994
 | 
						||
  README updated to reflect a modification just made to netlib's
 | 
						||
"dtoa.c from fp":
 | 
						||
96a97,105
 | 
						||
> Also add the rule
 | 
						||
>
 | 
						||
> 	dtoa.o: dtoa.c
 | 
						||
> 		$(CC) -c $(CFLAGS) -DMALLOC=ckalloc -DIEEE... dtoa.c
 | 
						||
>
 | 
						||
> (without the initial tab) to the makefile, where IEEE... is one of
 | 
						||
> IEEE_MC68k, IEEE_8087, VAX, or IBM, depending on your machine's
 | 
						||
> arithmetic.  See the comments near the start of dtoa.c.
 | 
						||
>
 | 
						||
 | 
						||
Sat Mar  5 09:41:52 EST 1994
 | 
						||
  Complain about functions with the name of a previously declared
 | 
						||
common block (which is illegal).
 | 
						||
  New option -d specifies the directory for output .c and .P files;
 | 
						||
f2c.1 and f2c.1t updated.  The former undocumented debug option -dnnn
 | 
						||
is now -Dnnn.
 | 
						||
 | 
						||
Thu Mar 10 10:21:44 EST 1994
 | 
						||
  libf77: add #undef min and #undef max lines to s_paus.c s_stop.c
 | 
						||
and system_.c; Version.c not changed.
 | 
						||
  libi77: add -DPad_UDread lines to uio.c and explanation to README:
 | 
						||
    Some buggy Fortran programs use unformatted direct I/O to write
 | 
						||
    an incomplete record and later read more from that record than
 | 
						||
    they have written.  For records other than the last, the unwritten
 | 
						||
    portion of the record reads as binary zeros.  The last record is
 | 
						||
    a special case: attempting to read more from it than was written
 | 
						||
    gives end-of-file -- which may help one find a bug.  Some other
 | 
						||
    Fortran I/O libraries treat the last record no differently than
 | 
						||
    others and thus give no help in finding the bug of reading more
 | 
						||
    than was written.  If you wish to have this behavior, compile
 | 
						||
    uio.c with -DPad_UDread .
 | 
						||
Version.c not changed.
 | 
						||
 | 
						||
Tue Mar 29 17:27:54 EST 1994
 | 
						||
  Adjust make_param so dimensions involving min, max, and other
 | 
						||
complicated constant expressions do not provoke error messages
 | 
						||
about adjustable dimensions on non-arguments.
 | 
						||
  Fix botch introduced 19 Jan 1994: "adjustable dimension on non-
 | 
						||
argument" messages could cause some things to be freed twice.
 | 
						||
 | 
						||
Tue May 10 07:55:12 EDT 1994
 | 
						||
  Trivial changes to exec.c, p1output.c, parse_args.c, proc.c,
 | 
						||
and putpcc.c: change arguments from
 | 
						||
	type foo[]
 | 
						||
to
 | 
						||
	type *foo
 | 
						||
for consistency with defs.h.  For most compilers, this makes no
 | 
						||
difference.
 | 
						||
 | 
						||
Thu Jun  2 12:18:18 EDT 1994
 | 
						||
  Fix bug in handling FORMAT statements that have adjacent character
 | 
						||
(or Hollerith) strings: an extraneous \002 appeared between the
 | 
						||
strings.
 | 
						||
  libf77: under -DNO_ONEXIT, arrange for f_exit to be called just
 | 
						||
once; previously, upon abnormal termination (including stop statements),
 | 
						||
it was called twice.
 | 
						||
 | 
						||
Mon Jun  6 15:52:57 EDT 1994
 | 
						||
  libf77: Avoid references to SIGABRT and SIGIOT if neither is defined;
 | 
						||
Version.c not changed.
 | 
						||
  libi77: Add cast to definition of errfl() in fio.h; this only matters
 | 
						||
on systems with sizeof(int) < sizeof(long).  Under -DNON_UNIX_STDIO,
 | 
						||
use binary mode for direct formatted files (to avoid any confusion
 | 
						||
connected with \n characters).
 | 
						||
 | 
						||
Fri Jun 10 16:47:31 EDT 1994
 | 
						||
  Fix bug under -A in handling unreferenced (and undeclared)
 | 
						||
external arguments in subroutines with multiple entry points.  Example:
 | 
						||
	subroutine m(fcn,futil)
 | 
						||
	external fcn,futil
 | 
						||
	call fcn
 | 
						||
	entry mintio(i1) ! (D_fp)0 rather than (U_fp)0 for futil
 | 
						||
	end
 | 
						||
 | 
						||
Wed Jun 15 10:38:14 EDT 1994
 | 
						||
  Allow char(constant expression) function in parameter declarations.
 | 
						||
(This was probably broken in the changes of 29 March 1994.)
 | 
						||
 | 
						||
Fri Jul  1 23:54:00 EDT 1994
 | 
						||
  Minor adjustments to makefile (rule for f2c.1 commented out) and
 | 
						||
sysdep.h (#undef KR_headers if __STDC__ is #defined, and base test
 | 
						||
for ANSI_Libraries and ANSI_Prototypes on KR_headers rather than
 | 
						||
__STDC__); version.c touched but not changed.
 | 
						||
  libi77: adjust fp.h so local.h is only needed under -DV10;
 | 
						||
Version.c not changed.
 | 
						||
 | 
						||
Tue Jul  5 03:05:46 EDT 1994
 | 
						||
  Fix segmentation fault in
 | 
						||
	subroutine foo(a,b,k)
 | 
						||
	data i/1/
 | 
						||
	double precision a(k,1)	! sequence error: must precede data
 | 
						||
	b = a(i,1)
 | 
						||
	end
 | 
						||
  libi77: Fix bug (introduced 6 June 1994?) in reopening files under
 | 
						||
NON_UNIX_STDIO.
 | 
						||
  Fix some error messages caused by illegal Fortran.  Examples:
 | 
						||
* 1.
 | 
						||
	x(i) = 0  !Missing declaration for array x
 | 
						||
	call f(x) !Said Impossible storage class 8 in routine mkaddr
 | 
						||
	end	  !Now says invalid use of statement function x
 | 
						||
* 2.
 | 
						||
	f = g	!No declaration for g; by default it's a real variable
 | 
						||
	call g	!Said invalid class code 2 for function g
 | 
						||
	end	!Now says g cannot be called
 | 
						||
* 3.
 | 
						||
	intrinsic foo	!Invalid intrinsic name
 | 
						||
	a = foo(b)	!Said intrcall: bad intrgroup 0
 | 
						||
	end		!Now just complains about line 1
 | 
						||
 | 
						||
Tue Jul  5 11:14:26 EDT 1994
 | 
						||
  Fix glitch in handling erroneous statement function declarations.
 | 
						||
Example:
 | 
						||
	a(j(i) - i) = a(j(i) - i) + 1	! bad statement function
 | 
						||
	call foo(a(3))	! Said Impossible type 0 in routine mktmpn
 | 
						||
	end		! Now warns that i and j are not used
 | 
						||
 | 
						||
Wed Jul  6 17:31:25 EDT 1994
 | 
						||
  Tweak test for statement functions that (illegally) call themselves;
 | 
						||
f2c will now proceed to check for other errors, rather than bailing
 | 
						||
out at the first recursive statement function reference.
 | 
						||
  Warn about but retain divisions by 0 (instead of calling them
 | 
						||
"compiler errors" and quiting).  On IEEE machines, this permits
 | 
						||
	double precision nan, ninf, pinf
 | 
						||
	nan = 0.d0/0.d0
 | 
						||
	pinf = 1.d0/0.d0
 | 
						||
	ninf = -1.d0/0.d0
 | 
						||
	write(*,*) 'nan, pinf, ninf = ', nan, pinf, ninf
 | 
						||
	end
 | 
						||
to print
 | 
						||
	nan, pinf, ninf =   NaN  Infinity -Infinity
 | 
						||
  libi77: wref.c: protect with #ifdef GOOD_SPRINTF_EXPONENT an
 | 
						||
optimization that requires exponents to have 2 digits when 2 digits
 | 
						||
suffice.  lwrite.c wsfe.c (list and formatted external output):
 | 
						||
omit ' ' carriage-control when compiled with -DOMIT_BLANK_CC .
 | 
						||
Off-by-one bug fixed in character count for list output of character
 | 
						||
strings.  Omit '.' in list-directed printing of Nan, Infinity.
 | 
						||
 | 
						||
Mon Jul 11 13:05:33 EDT 1994
 | 
						||
  src/gram.c updated.
 | 
						||
 | 
						||
Tue Jul 12 10:24:42 EDT 1994
 | 
						||
  libi77: wrtfmt.c: under G11.4, write 0. as "  .0000    " rather
 | 
						||
than "  .0000E+00".
 | 
						||
 | 
						||
Thu Jul 14 17:55:46 EDT 1994
 | 
						||
  Fix glitch in changes of 6 July 1994 that could cause erroneous
 | 
						||
"division by zero" warnings (or worse).  Example:
 | 
						||
	subroutine foo(a,b)
 | 
						||
	y = b
 | 
						||
	a = a / y	! erroneous warning of division by zero
 | 
						||
	end
 | 
						||
 | 
						||
Mon Aug  1 16:45:17 EDT 1994
 | 
						||
  libi77: lread.c rsne.c: for benefit of systems with a buggy stdio.h,
 | 
						||
declare ungetc when neither KR_headers nor ungetc is #defined.
 | 
						||
Version.c not changed.
 | 
						||
 | 
						||
Wed Aug  3 01:53:00 EDT 1994
 | 
						||
  libi77: lwrite.c (list output): do not insert a newline when
 | 
						||
appending an oversize item to an empty line.
 | 
						||
 | 
						||
Mon Aug  8 00:51:01 EDT 1994
 | 
						||
  Fix bug (introduced 3 Feb. 1993) that, under -i2, kept LOGICAL*2
 | 
						||
variables from appearing in INQUIRE statements.  Under -I2, allow
 | 
						||
LOGICAL*4 variables to appear in INQUIRE.  Fix intrinsic function
 | 
						||
LEN so it returns a short value under -i2, a long value otherwise.
 | 
						||
  exec.c: fix obscure memory fault possible with bizarre (and highly
 | 
						||
erroneous) DO-loop syntax.
 | 
						||
 | 
						||
Fri Aug 12 10:45:57 EDT 1994
 | 
						||
  libi77: fix glitch that kept ERR= (in list- or format-directed input)
 | 
						||
from working after a NAMELIST READ.
 | 
						||
 | 
						||
Thu Aug 25 13:58:26 EDT 1994
 | 
						||
  Suppress -s when -C is specified.
 | 
						||
  Give full pathname (netlib@research.att.com) for netlib in readme and
 | 
						||
src/README.
 | 
						||
 | 
						||
Wed Sep  7 22:13:20 EDT 1994
 | 
						||
  libi77: typesize.c: adjust to allow types LOGICAL*1, LOGICAL*2,
 | 
						||
INTEGER*1, and (under -DAllow_TYQUAD) INTEGER*8 in NAMELISTs.
 | 
						||
 | 
						||
Fri Sep 16 17:50:18 EDT 1994
 | 
						||
  Change name adjustment for reserved words: instead of just appending
 | 
						||
"_" (a single underscore), append "_a_" to local variable names to avoid
 | 
						||
trouble when a common block is named a reserved word and the same
 | 
						||
reserved word is also a local variable name.  Example:
 | 
						||
	common /const/ a,b,c
 | 
						||
	real const(3)
 | 
						||
	equivalence (const(1),a)
 | 
						||
	a = 1.234
 | 
						||
	end
 | 
						||
  Arrange for ichar() to treat characters as unsigned.
 | 
						||
  libf77: s_cmp.c: treat characters as unsigned in comparisons.
 | 
						||
These changes for unsignedness only matter for strings that contain
 | 
						||
non-ASCII characters.  Now ichar() should always be >= 0.
 | 
						||
 | 
						||
Sat Sep 17 11:19:32 EDT 1994
 | 
						||
  fc: set rc=$? before exit (to get exit code right in trap code).
 | 
						||
 | 
						||
Mon Sep 19 17:49:43 EDT 1994
 | 
						||
  libf77: s_paus.c: flush stderr after PAUSE; add #ifdef MSDOS stuff.
 | 
						||
  libi77: README: point out general need for -DMSDOS under MS-DOS.
 | 
						||
 | 
						||
Tue Sep 20 11:42:30 EDT 1994
 | 
						||
  Fix bug in comparing identically named common blocks, in which
 | 
						||
all components have the same names and types, but at least one is
 | 
						||
dimensioned (1) and the other is not dimensioned.  Example:
 | 
						||
	subroutine foo
 | 
						||
	common /ab/ a
 | 
						||
	a=1.	!!! translated correctly to ab_1.a = (float)1.;
 | 
						||
	end
 | 
						||
	subroutine goo
 | 
						||
	common /ab/ a(1)
 | 
						||
	a(1)=2.	!!! translated erroneously to ab_1.a[0] = (float)2.
 | 
						||
	end
 | 
						||
 | 
						||
Tue Sep 27 23:47:34 EDT 1994
 | 
						||
  Fix bug introduced 16 Sept. 1994: don't add _a_ to C keywords
 | 
						||
used as external names.  In fact, return to earlier behavior of
 | 
						||
appending __ to C keywords unless they are used as external names,
 | 
						||
in which case they get just one underscore appended.
 | 
						||
  Adjust constant handling so integer and logical PARAMETERs retain
 | 
						||
type information, particularly under -I2.  Example:
 | 
						||
	SUBROUTINE FOO
 | 
						||
	INTEGER I
 | 
						||
	INTEGER*1 I1
 | 
						||
	INTEGER*2 I2
 | 
						||
	INTEGER*4 I4
 | 
						||
	LOGICAL L
 | 
						||
	LOGICAL*1 L1
 | 
						||
	LOGICAL*2 L2
 | 
						||
	LOGICAL*4 L4
 | 
						||
	PARAMETER (L=.FALSE., L1=.FALSE., L2=.FALSE., L4=.FALSE.)
 | 
						||
	PARAMETER (I=0,I1=0,I2=0,I4=0)
 | 
						||
	CALL DUMMY(I, I1, I2, I4, L, L1, L2, L4)
 | 
						||
	END
 | 
						||
  f2c.1t: Change f\^2c to f2c (omit half-narrow space) in line following
 | 
						||
".SH NAME" for benefit of systems that cannot cope with troff commands
 | 
						||
in this context.
 | 
						||
 | 
						||
Wed Sep 28 12:45:19 EDT 1994
 | 
						||
  libf77: s_cmp.c fix glitch in -DKR_headers version introduced
 | 
						||
12 days ago.
 | 
						||
 | 
						||
Thu Oct  6 09:46:53 EDT 1994
 | 
						||
  libi77: util.c: omit f__mvgbt (which is never used).
 | 
						||
  f2c.h: change "long" to "long int" to facilitate the adjustments
 | 
						||
by means of sed described above.  Comment out unused typedef of Long.
 | 
						||
 | 
						||
Fri Oct 21 18:02:24 EDT 1994
 | 
						||
  libf77: add s_catow.c and adjust README to point out that changing
 | 
						||
"s_cat.o" to "s_catow.o" in the makefile will permit the target of a
 | 
						||
concatenation to appear on its right-hand side (contrary to the
 | 
						||
Fortran 77 Standard and at the cost of some run-time efficiency).
 | 
						||
 | 
						||
Wed Nov  2 00:03:58 EST 1994
 | 
						||
  Adjust -g output to contain only one #line line per statement,
 | 
						||
inserting \ before the \n ending lines broken because of their
 | 
						||
length [this insertion was recanted 10 Dec. 1994].  This change
 | 
						||
accommodates an idiocy in the ANSI/ISO C standard, which leaves
 | 
						||
undefined the behavior of #line lines that occur within the arguments
 | 
						||
to a macro call.
 | 
						||
 | 
						||
Wed Nov  2 14:44:27 EST 1994
 | 
						||
  libi77: under compilation with -DALWAYS_FLUSH, flush buffers at
 | 
						||
the end of each write statement, and test (via the return from
 | 
						||
fflush) for write failures, which can be caught with an ERR=
 | 
						||
specifier in the write statement.  This extra flushing slows
 | 
						||
execution, but can abort execution or alter the flow of control
 | 
						||
when a disk fills up.
 | 
						||
  f2c/src/io.c: Add ERR= test to e_wsle invocation (end of
 | 
						||
list-directed external output) to catch write failures when libI77
 | 
						||
is compiled with -DALWAYS_FLUSH.
 | 
						||
 | 
						||
Thu Nov  3 10:59:13 EST 1994
 | 
						||
  Fix bug in handling dimensions involving certain intrinsic
 | 
						||
functions of constant expressions: the expressions, rather than
 | 
						||
pointers to them, were passed.  Example:
 | 
						||
      subroutine subtest(n,x)
 | 
						||
      real x(2**n,n) ! pow_ii(2,n) was called; now it's pow_ii(&c__2,n)
 | 
						||
      x(2,2)=3.
 | 
						||
      end
 | 
						||
 | 
						||
Tue Nov  8 23:56:30 EST 1994
 | 
						||
  malloc.c: remove assumption that only malloc calls sbrk.  This
 | 
						||
appears to make malloc.c useful on RS6000 systems.
 | 
						||
 | 
						||
Sun Nov 13 13:09:38 EST 1994
 | 
						||
  Turn off constant folding of integers used in floating-point
 | 
						||
expressions, so the assignment in
 | 
						||
	subroutine foo(x)
 | 
						||
	double precision x
 | 
						||
	x = x*1000000*500000
 | 
						||
	end
 | 
						||
is rendered as
 | 
						||
	*x = *x * 1000000 * 500000;
 | 
						||
rather than as
 | 
						||
	*x *= 1783793664;
 | 
						||
 | 
						||
Sat Dec 10 16:31:40 EST 1994
 | 
						||
  Supply a better error message (than "Impossible type 14") for
 | 
						||
	subroutine foo
 | 
						||
	foo = 3
 | 
						||
	end
 | 
						||
  Under -g, convey name of included files to #line lines.
 | 
						||
  Recant insertion of \ introduced (under -g) 2 Nov. 1994.
 | 
						||
 | 
						||
Thu Dec 15 14:33:55 EST 1994
 | 
						||
  New command-line option -Idir specifies directories in which to
 | 
						||
look for non-absolute include files (after looking in the directory
 | 
						||
of the current input file).  There can be several -Idir options, each
 | 
						||
specifying one directory.  All -Idir options are considered, from
 | 
						||
left to right, until a suitably named file is found.  The -I2 and -I4
 | 
						||
command-line options have precedence, so directories named 2 or 4
 | 
						||
must be spelled by some circumlocation, such as -I./2 .
 | 
						||
  f2c.ps updated to mention the new -Idir option, correct a typo,
 | 
						||
and bring the man page at the end up to date.
 | 
						||
  lex.c: fix bug in reading line numbers in #line lines.
 | 
						||
  fc updated to pass -Idir options to f2c.
 | 
						||
 | 
						||
Thu Dec 29 09:48:03 EST 1994
 | 
						||
  Fix bug (e.g., addressing fault) in diagnosing inconsistency in
 | 
						||
the type of function eta in the following example:
 | 
						||
	function foo(c1,c2)
 | 
						||
	double complex foo,c1,c2
 | 
						||
	double precision eta
 | 
						||
	foo = eta(c1,c2)
 | 
						||
	end
 | 
						||
	function eta(c1,c2)
 | 
						||
	double complex eta,c1,c2
 | 
						||
	eta = c1*c2
 | 
						||
	end
 | 
						||
 | 
						||
Mon Jan  2 13:27:26 EST 1995
 | 
						||
  Retain casts for SNGL (or FLOAT) that were erroneously optimized
 | 
						||
away.  Example:
 | 
						||
	subroutine foo(a,b)
 | 
						||
	double precision a,b
 | 
						||
	a = float(b)	! now rendered as *a = (real) (*b);
 | 
						||
	end
 | 
						||
  Use float (rather than double) temporaries in certain expressions
 | 
						||
of type complex.  Example: the temporary for sngl(b) in
 | 
						||
	complex a
 | 
						||
	double precision b
 | 
						||
	a = sngl(b) - (3.,4.)
 | 
						||
is now of type float.
 | 
						||
 | 
						||
Fri Jan  6 00:00:27 EST 1995
 | 
						||
  Adjust intrinsic function cmplx to act as dcmplx (returning
 | 
						||
double complex rather than complex) if either of its args is of
 | 
						||
type double precision.  The double temporaries used prior to 2 Jan.
 | 
						||
1995 previously gave it this same behavior.
 | 
						||
 | 
						||
Thu Jan 12 12:31:35 EST 1995
 | 
						||
  Adjust -krd to use double temporaries in some calculations of
 | 
						||
type complex.
 | 
						||
  libf77: pow_[dhiqrz][hiq].c: adjust x**i to work on machines
 | 
						||
that sign-extend right shifts when i is the most negative integer.
 | 
						||
 | 
						||
Wed Jan 25 00:14:42 EST 1995
 | 
						||
  Fix memory fault in handling overlapping initializations in
 | 
						||
	block data
 | 
						||
	common /zot/ d
 | 
						||
	double precision d(3)
 | 
						||
	character*6 v(4)
 | 
						||
	real r(2)
 | 
						||
	equivalence (d(3),r(1)), (d(1),v(1))
 | 
						||
	data v/'abcdef', 'ghijkl', 'mnopqr', 'stuvwx'/
 | 
						||
	data r/4.,5./
 | 
						||
	end
 | 
						||
  names.c: add "far", "huge", "near" to c_keywords (causing them
 | 
						||
to have __ appended when used as local variables).
 | 
						||
  libf77: add s_copyow.c, an alternative to s_copy.c for handling
 | 
						||
(illegal) character assignments where the right- and left-hand
 | 
						||
sides overlap, as in a(2:4) = a(1:3).
 | 
						||
 | 
						||
Thu Jan 26 14:21:19 EST 1995
 | 
						||
  libf77: roll s_catow.c and s_copyow.c into s_cat.c and s_copy.c,
 | 
						||
respectively, allowing the left-hand side of a character assignment
 | 
						||
to appear on its right-hand side unless s_cat.c and s_copy.c are
 | 
						||
compiled with -DNO_OVERWRITE (which is a bit more efficient).
 | 
						||
Fortran 77 forbids the left-hand side from participating in the
 | 
						||
right-hand side (of a character assignment), but Fortran 90 allows it.
 | 
						||
  libi77: wref.c: fix glitch in printing the exponent of 0 when
 | 
						||
GOOD_SPRINTF_EXPONENT is not #defined.
 | 
						||
 | 
						||
Fri Jan 27 12:25:41 EST 1995
 | 
						||
  Under -C++ -ec (or -C++ -e1c), surround struct declarations with
 | 
						||
	#ifdef __cplusplus
 | 
						||
	extern "C" {
 | 
						||
	#endif
 | 
						||
and
 | 
						||
	#ifdef __cplusplus
 | 
						||
	}
 | 
						||
	#endif
 | 
						||
(This isn't needed with cfront, but apparently is necessary with
 | 
						||
some other C++ compilers.)
 | 
						||
  libf77: minor tweak to s_copy.c: copy forward whenever possible
 | 
						||
(for better cache behavior).
 | 
						||
 | 
						||
Wed Feb  1 10:26:12 EST 1995
 | 
						||
  Complain about parameter statements that assign values to dummy
 | 
						||
arguments, as in
 | 
						||
	subroutine foo(x)
 | 
						||
	parameter(x = 3.4)
 | 
						||
	end
 | 
						||
 | 
						||
Sat Feb  4 20:22:02 EST 1995
 | 
						||
  fc: omit "lib=/lib/num/lib.lo".
 | 
						||
 | 
						||
Wed Feb  8 08:41:14 EST 1995
 | 
						||
  Minor changes to exec.c, putpcc.c to avoid "bad tag" or "error
 | 
						||
in frexpr" with certain invalid Fortran.
 | 
						||
 | 
						||
Sat Feb 11 08:57:39 EST 1995
 | 
						||
  Complain about integer overflows, both in simplifying integer
 | 
						||
expressions, and in converting integers from decimal to binary.
 | 
						||
  Fix a memory fault in putcx1() associated with invalid input.
 | 
						||
 | 
						||
Thu Feb 23 11:20:59 EST 1995
 | 
						||
  Omit MAXTOKENLEN; realloc token if necessary (to handle very long
 | 
						||
strings).
 | 
						||
 | 
						||
Fri Feb 24 11:02:00 EST 1995
 | 
						||
  libi77: iio.c: z_getc: insert (unsigned char *) to allow internal
 | 
						||
reading of characters with high-bit set (on machines that sign-extend
 | 
						||
characters).
 | 
						||
 | 
						||
Tue Mar 14 18:22:42 EST 1995
 | 
						||
  Fix glitch (in io.c) in handling 0-length strings in format
 | 
						||
statements, as in
 | 
						||
	write(*,10)
 | 
						||
 10	format(' ab','','cd')
 | 
						||
  libi77: lread.c and rsfe.c: adjust s_rsle and s_rsfe to check for
 | 
						||
end-of-file (to prevent infinite loops with empty read statements).
 | 
						||
 | 
						||
Wed Mar 22 10:01:46 EST 1995
 | 
						||
  f2c.ps: adjust discussion of -P on p. 7 to reflect a change made
 | 
						||
3 Feb. 1993: -P no longer implies -A.
 | 
						||
 | 
						||
Fri Apr 21 18:35:00 EDT 1995
 | 
						||
  fc script: remove absolute paths (since PATH specifies only standard
 | 
						||
places).  On most systems, it's still necessary to adjust the PATH
 | 
						||
assignment at the start of fc to fit the local conventions.
 | 
						||
 | 
						||
Fri May 26 10:03:17 EDT 1995
 | 
						||
  fc script: add recognition of -P and .P files.
 | 
						||
  libi77: iio.c: z_wnew: fix bug in handling T format items in internal
 | 
						||
writes whose last item is written to an earlier position than some
 | 
						||
previous item.
 | 
						||
 | 
						||
Wed May 31 11:39:48 EDT 1995
 | 
						||
  libf77: added subroutine exit(rc) (with integer return code rc),
 | 
						||
which works like a stop statement but supplies rc as the program's
 | 
						||
return code.
 | 
						||
 | 
						||
Fri Jun  2 11:56:50 EDT 1995
 | 
						||
  Fix memory fault in
 | 
						||
	parameter (x=2.)
 | 
						||
	data x /2./
 | 
						||
	end
 | 
						||
This now elicits two error messages; the second ("too many
 | 
						||
initializers"), though not desirable, seems hard to eliminate
 | 
						||
without considerable hassle.
 | 
						||
 | 
						||
Mon Jul 17 23:24:20 EDT 1995
 | 
						||
  Fix botch in simplifying constants in certain complex
 | 
						||
expressions.  Example:
 | 
						||
	subroutine foo(s,z)
 | 
						||
	double complex z
 | 
						||
	double precision s, M, P
 | 
						||
	parameter ( M = 100.d0, P = 2.d0 )
 | 
						||
	z = M * M  / s  * dcmplx (1.d0, P/M)
 | 
						||
*** The imaginary part of z was miscomputed ***
 | 
						||
	end
 | 
						||
  Under -ext, complain about nonintegral dimensions.
 | 
						||
 | 
						||
Fri Jul 21 11:18:36 EDT 1995
 | 
						||
  Fix glitch on line 159 of init.c: change
 | 
						||
	"(shortlogical *)0)",
 | 
						||
to
 | 
						||
	"(shortlogical *)0",
 | 
						||
This affects multiple entry points when some but not all have
 | 
						||
arguments of type logical*2.
 | 
						||
  libi77: adjust lwrite.c, wref.c, wrtfmt.c so compiling with
 | 
						||
-DWANT_LEAD_0 causes formatted writes of floating-point numbers of
 | 
						||
magnitude < 1 to have an explicit 0 before the decimal point (if the
 | 
						||
field-width permits it).  Note that the Fortran 77 Standard leaves it
 | 
						||
up to the implementation whether to supply these superfluous zeros.
 | 
						||
 | 
						||
Tue Aug  1 09:25:56 EDT 1995
 | 
						||
  Permit real (or double precision) parameters in dimension expressions.
 | 
						||
 | 
						||
Mon Aug  7 08:04:00 EDT 1995
 | 
						||
  Append "_eqv" rather than just "_" to names that that appear in
 | 
						||
EQUIVALENCE statements as well as structs in f2c.h (to avoid a
 | 
						||
conflict when these names also name common blocks).
 | 
						||
 | 
						||
Tue Aug  8 12:49:02 EDT 1995
 | 
						||
  Modify yesterday's change: merge st_fields with c_keywords, to
 | 
						||
cope with equivalences introduced to permit initializing numeric
 | 
						||
variables with character data.  DATA statements causing these
 | 
						||
equivalences can appear after executable statements, so the only
 | 
						||
safe course is to rename all local variable with names in the
 | 
						||
former st_fields list.  This has the unfortunate side effect that
 | 
						||
the common local variable "i" will henceforth be renamed "i__".
 | 
						||
 | 
						||
Wed Aug 30 00:19:32 EDT 1995
 | 
						||
  libf77: add F77_aloc, now used in s_cat and system_ (to allocate
 | 
						||
memory and check for failure in so doing).
 | 
						||
  libi77: improve MSDOS logic in backspace.c.
 | 
						||
 | 
						||
Wed Sep  6 09:06:19 EDT 1995
 | 
						||
  libf77: Fix return type of system_ (integer) under -DKR_headers.
 | 
						||
  libi77: Move some f_init calls around for people who do not use
 | 
						||
libF77's main(); now open and namelist read statements that are the
 | 
						||
first I/O statements executed should work right in that context.
 | 
						||
Adjust namelist input to treat a subscripted name whose subscripts do
 | 
						||
not involve colons similarly to the name without a subscript:  accept
 | 
						||
several values, stored in successive elements starting at the
 | 
						||
indicated subscript.  Adjust namelist output to quote character
 | 
						||
strings (avoiding confusion with arrays of character strings).
 | 
						||
 | 
						||
Thu Sep  7 00:36:04 EDT 1995
 | 
						||
  Fix glitch in integer*8 exponentiation function: it's pow_qq, not
 | 
						||
pow_qi.
 | 
						||
  libi77: fix some bugs with -DAllow_TYQUAD (for integer*8); when
 | 
						||
looking for the &name that starts NAMELIST input, treat lines whose
 | 
						||
first nonblank character is something other than &, $, or ? as
 | 
						||
comment lines (i.e., ignore them), unless rsne.c is compiled with
 | 
						||
-DNo_Namelist_Comments.
 | 
						||
 | 
						||
Thu Sep  7 09:05:40 EDT 1995
 | 
						||
  libi77: rdfmt.c:  one more tweak for -DAllow_TYQUAD.
 | 
						||
 | 
						||
Tue Sep 19 00:03:02 EDT 1995
 | 
						||
  Adjust handling of floating-point subscript bounds (a questionable
 | 
						||
f2c extension) so subscripts in the generated C are of integral type.
 | 
						||
  Move #define of roundup to proc.c (where its use is commented out);
 | 
						||
version.c left at 19950918.
 | 
						||
 | 
						||
Wed Sep 20 17:24:19 EDT 1995
 | 
						||
  Fix bug in handling ichar() under -h.
 | 
						||
 | 
						||
Thu Oct  5 07:52:56 EDT 1995
 | 
						||
  libi77: wrtfmt.c: fix bug with t editing (f__cursor was not always
 | 
						||
zeroed in mv_cur).
 | 
						||
 | 
						||
Tue Oct 10 10:47:54 EDT 1995
 | 
						||
  Under -ext, warn about X**-Y and X**+Y.  Following the original f77,
 | 
						||
f2c treats these as X**(-Y) and X**(+Y), respectively.  (They are not
 | 
						||
allowed by the official Fortran 77 Standard.)  Some Fortran compilers
 | 
						||
give a bizarre interpretation to larger contexts, making multiplication
 | 
						||
noncommutative: they treat X**-Y*Z as X**(-Y*Z) rather than X**(-Y)*Z,
 | 
						||
which, following the rules of Fortran 77, is the same as (X**(-Y))*Z.
 | 
						||
 | 
						||
Wed Oct 11 13:27:05 EDT 1995
 | 
						||
  libi77: move defs of f__hiwater, f__svic, f__icptr from wrtfmt.c
 | 
						||
to err.c.  This should work around a problem with buggy loaders and
 | 
						||
sometimes leads to smaller executable programs.
 | 
						||
 | 
						||
Sat Oct 21 23:54:22 EDT 1995
 | 
						||
  Under -h, fix bug in the treatment of ichar('0') in arithmetic
 | 
						||
expressions.
 | 
						||
  Demote to -dneg (a new command-line option not mentioned in the
 | 
						||
man page) imitation of the original f77's treatment of unary minus
 | 
						||
applied to a REAL operand (yielding a DOUBLE PRECISION result).
 | 
						||
Previously this imitation (which was present for debugging) occurred
 | 
						||
under (the default) -!R.  It is still suppressed by -R.
 | 
						||
 | 
						||
Tue Nov  7 23:52:57 EST 1995
 | 
						||
  Adjust assigned GOTOs to honor SAVE declarations.
 | 
						||
  Add comments about ranlib to lib[FI]77/README and makefile.
 | 
						||
 | 
						||
Tue Dec 19 22:54:06 EST 1995
 | 
						||
  libf77: s_cat.c: fix bug when 2nd or later arg overlaps lhs.
 | 
						||
 | 
						||
Tue Jan  2 17:54:00 EST 1996
 | 
						||
  libi77: rdfmt.c: move #include "ctype.h" up before "stdlib.h"; no
 | 
						||
change to Version.c.
 | 
						||
 | 
						||
Sun Feb 25 22:20:20 EST 1996
 | 
						||
  Adjust expr.c to permit raising the integer constants 1 and -1 to
 | 
						||
negative constant integral powers.
 | 
						||
  Avoid faulting when -T and -d are not followed by a directory name
 | 
						||
(immediately, without intervening spaces).
 | 
						||
 | 
						||
Wed Feb 28 12:49:01 EST 1996
 | 
						||
  Fix a glitch in handling complex parameters assigned a "wrong" type.
 | 
						||
Example:
 | 
						||
	complex d, z
 | 
						||
	parameter(z = (0d0,0d0))
 | 
						||
	data d/z/	! elicited "non-constant initializer"
 | 
						||
	call foo(d)
 | 
						||
	end
 | 
						||
 | 
						||
Thu Feb 29 00:53:12 EST 1996
 | 
						||
  Fix bug in handling character parameters assigned a char() value.
 | 
						||
Example:
 | 
						||
	character*2 b,c
 | 
						||
	character*1 esc
 | 
						||
	parameter(esc = char(27))
 | 
						||
	integer i
 | 
						||
	data (b(i:i),i=1,2)/esc,'a'/
 | 
						||
	data (c(i:i),i=1,2)/esc,'b'/	! memory fault
 | 
						||
	call foo(b,c)
 | 
						||
	end
 | 
						||
 | 
						||
Fri Mar  1 23:44:51 EST 1996
 | 
						||
  Fix glitch in evaluating .EQ. and .NE. when both operands are
 | 
						||
logical constants (.TRUE. or .FALSE.).
 | 
						||
 | 
						||
Fri Mar 15 17:29:54 EST 1996
 | 
						||
  libi77: lread.c, rsfe.c: honor END= in READ stmts with empty iolist.
 | 
						||
 | 
						||
Tue Mar 19 23:08:32 EST 1996
 | 
						||
  lex.c: arrange for a "statement" consisting of a single short bogus
 | 
						||
keyword to elicit an error message showing the whole keyword.  The
 | 
						||
error message formerly omitted the last letter of the bad keyword.
 | 
						||
  libf77: s_cat.c: supply missing break after overlap detection.
 | 
						||
 | 
						||
Mon May 13 23:35:26 EDT 1996
 | 
						||
  Recognize Fortran 90's /= as a synonym for .NE..  (<> remains a
 | 
						||
synonym for .NE..)
 | 
						||
  Emit an empty int function of no arguments to supply an external
 | 
						||
name to named block data subprograms (so they can be called somewhere
 | 
						||
to force them to be loaded from a library).
 | 
						||
  Fix bug (memory fault) in handling the following illegal Fortran:
 | 
						||
	parameter(i=1)
 | 
						||
	equivalence(i,j)
 | 
						||
	end
 | 
						||
  Treat cdabs, cdcos, cdexp, cdlog, cdsin, and cdsqrt as synonyms for
 | 
						||
the double complex intrinsics zabs, zcos, zexp, zlog, zsin, and zsqrt,
 | 
						||
respectively, unless -cd is specified.
 | 
						||
  Recognize the Fortran 90 bit-manipulation intrinsics btest, iand,
 | 
						||
ibclr, ibits, ibset, ieor, ior, ishft, and ishftc, unless -i90 is
 | 
						||
specified.  Note that iand, ieor, and ior are thus now synonyms for
 | 
						||
"and", "xor", and "or", respectively.
 | 
						||
  Add three macros (bit_test, bit_clear, bit_set) to f2c.h for use
 | 
						||
with btest, ibclr, and ibset, respectively.  Add new functions
 | 
						||
[lq]bit_bits, [lq]bit_shift, and [lq]_bit_cshift to libF77 for
 | 
						||
use with ibits, ishft, and ishftc, respectively.
 | 
						||
  Add integer function ftell(unit) (returning -1 on error) and
 | 
						||
subroutine fseek(unit, offset, whence, *) to libI77 (with branch to
 | 
						||
label * on error).
 | 
						||
 | 
						||
Tue May 14 23:21:12 EDT 1996
 | 
						||
  Fix glitch (possible memory fault, or worse) in handling multiple
 | 
						||
entry points with names over 28 characters long.
 | 
						||
 | 
						||
Mon Jun 10 01:20:16 EDT 1996
 | 
						||
  Update netlib E-mail and ftp addresses in f2c/readme and
 | 
						||
f2c/src/readme (which are different files) -- to reflect the upcoming
 | 
						||
breakup of AT&T.
 | 
						||
  libf77: trivial tweaks to F77_aloc.c and system_.c; Version.c not
 | 
						||
changed.
 | 
						||
  libi77: Adjust rsli.c and lread.c so internal list input with too
 | 
						||
few items in the input string will honor end= .
 | 
						||
 | 
						||
Mon Jun 10 22:59:57 EDT 1996
 | 
						||
  Add Bits_per_Byte to sysdep.h and adjust definition of Table_size
 | 
						||
to depend on Bits_per_Byte (forcing Table_size to be a power of 2); in
 | 
						||
lex.c, change "comstart[c & 0xfff]" to "comstart[c & (Table_size-1)]"
 | 
						||
to avoid an out-of-range subscript on end-of-file.
 | 
						||
 | 
						||
Wed Jun 12 00:24:28 EDT 1996
 | 
						||
  Fix bug in output.c (dereferencing a freed pointer) revealed in
 | 
						||
	print *		!np in out_call in output.c clobbered by free
 | 
						||
	end		!during out_expr.
 | 
						||
 | 
						||
Wed Jun 19 08:12:47 EDT 1996
 | 
						||
  f2c.h: add types uinteger, ulongint (for libF77); add qbit_clear
 | 
						||
and qbit_set macros (in a commented-out section) for integer*8.
 | 
						||
  For integer*8, use qbit_clear and qbit_set for ibclr and ibset.
 | 
						||
  libf77: add casts to unsigned in [lq]bitshft.c.
 | 
						||
 | 
						||
Thu Jun 20 13:30:43 EDT 1996
 | 
						||
  Complain at character*(*) in common (rather than faulting).
 | 
						||
  Fix bug in recognizing hex constants that start with "16#" (e.g.,
 | 
						||
16#1234abcd, which is a synonym for z'1234abcd').
 | 
						||
  Fix bugs in constant folding of expressions involving btest, ibclr,
 | 
						||
and ibset.
 | 
						||
  Fix bug in constant folding of rshift(16#80000000, -31) (on a 32-bit
 | 
						||
machine; more generally, the bug was in constant folding of
 | 
						||
rshift(ibset(0,NBITS-1), 1-NBITS) when f2c runs on a machine with
 | 
						||
long ints having NBITS bits.
 | 
						||
 | 
						||
Mon Jun 24 07:58:53 EDT 1996
 | 
						||
  Adjust struct Literal and newlabel() function to accommodate huge
 | 
						||
source files (with more than 32767 newlabel() invocations).
 | 
						||
  Omit .c file when the .f file has a missing final end statement.
 | 
						||
 | 
						||
Wed Jun 26 14:00:02 EDT 1996
 | 
						||
  libi77: Add discussion of MXUNIT (highest allowed Fortran unit number)
 | 
						||
to libI77/README.
 | 
						||
 | 
						||
Fri Jun 28 14:16:11 EDT 1996
 | 
						||
  Fix glitch with -onetrip: the temporary variable used for nonconstant
 | 
						||
initial loop variable values was recycled too soon.  Example:
 | 
						||
	do i = j+1, k
 | 
						||
		call foo(i+1)	! temp for j+1 was reused here
 | 
						||
		enddo
 | 
						||
	end
 | 
						||
 | 
						||
Tue Jul  2 16:11:27 EDT 1996
 | 
						||
  formatdata.c: add a 0 to the end of the basetype array (for TYBLANK)
 | 
						||
(an omission that was harmless on most machines).
 | 
						||
  expr.c: fix a dereference of NULL that was only possible with buggy
 | 
						||
input, such as
 | 
						||
	subroutine $sub(s)	! the '$' is erroneous
 | 
						||
	character s*(*)
 | 
						||
	s(1:) = ' '
 | 
						||
	end
 | 
						||
 | 
						||
Sat Jul  6 00:44:56 EDT 1996
 | 
						||
  Fix glitch in the intrinsic "real" function when applied to a
 | 
						||
complex (or double complex) variable and passed as an argument to
 | 
						||
some intrinsic functions.  Example:
 | 
						||
	complex a
 | 
						||
	b = sqrt(a)
 | 
						||
	end
 | 
						||
  Fix glitch (only visible if you do not use f2c's malloc and the
 | 
						||
malloc you do use is defective in the sense that malloc(0) returns 0)
 | 
						||
in handling include files that end with another include (perhaps
 | 
						||
followed by comments).
 | 
						||
  Fix glitch with character*(*) arguments named "h" and "i" when
 | 
						||
the body of the subroutine invokes the intrinsic LEN function.
 | 
						||
  Arrange that after a previous "f2c -P foo.f" has produced foo.P,
 | 
						||
running "f2c foo.P foo.f" will produce valid C when foo.f contains
 | 
						||
	call sub('1234')
 | 
						||
	end
 | 
						||
	subroutine sub(msg)
 | 
						||
	end
 | 
						||
Specifically, the length argument in "call sub" is now suppressed.
 | 
						||
With or without foo.P, it is also now suppressed when the order of
 | 
						||
subprograms in file foo.f is reversed:
 | 
						||
	subroutine sub(msg)
 | 
						||
	end
 | 
						||
	call sub('1234')
 | 
						||
	end
 | 
						||
  Adjust copyright notices to reflect AT&T breakup.
 | 
						||
 | 
						||
Wed Jul 10 09:25:49 EDT 1996
 | 
						||
  Fix bug (possible memory fault) in handling erroneously placed
 | 
						||
and inconsistent declarations.  Example that faulted:
 | 
						||
	character*1 w(8)
 | 
						||
	call foo(w)
 | 
						||
	end
 | 
						||
	subroutine foo(m)
 | 
						||
	data h /0.5/
 | 
						||
	integer m(2)	! should be before data
 | 
						||
	end
 | 
						||
  Fix bug (possible fault) in handling illegal "if" constructions.
 | 
						||
Example (that faulted):
 | 
						||
	subroutine foo(i,j)
 | 
						||
	if (i) then		! bug: i is integer, not logical
 | 
						||
	else if (j) then	! bug: j is integer, not logical
 | 
						||
	endif
 | 
						||
	end
 | 
						||
  Fix glitch with character*(*) argument named "ret_len" to a
 | 
						||
character*(*) function.
 | 
						||
 | 
						||
Wed Jul 10 23:04:16 EDT 1996
 | 
						||
  Fix more glitches in the intrinsic "real" function when applied to a
 | 
						||
complex (or double complex) variable and passed as an argument to
 | 
						||
some intrinsic functions.  Example:
 | 
						||
	complex a, b
 | 
						||
	r = sqrt(real(conjg(a))) + sqrt(real(a*b))
 | 
						||
	end
 | 
						||
 | 
						||
Thu Jul 11 17:27:16 EDT 1996
 | 
						||
  Fix a memory fault associated with complicated, illegal input.
 | 
						||
Example:
 | 
						||
	subroutine goo
 | 
						||
	character a
 | 
						||
	call foo(a)	! inconsistent with subsequent def and call
 | 
						||
	end
 | 
						||
	subroutine foo(a)
 | 
						||
	end
 | 
						||
	call foo(a)
 | 
						||
	end
 | 
						||
 | 
						||
Wed Jul 17 19:18:28 EDT 1996
 | 
						||
  Fix yet another case of intrinsic "real" applied to a complex
 | 
						||
argument.  Example:
 | 
						||
	complex a(3)
 | 
						||
	x = sqrt(real(a(2)))	! gave error message about bad tag
 | 
						||
	end
 | 
						||
 | 
						||
Mon Aug 26 11:28:57 EDT 1996
 | 
						||
  Tweak sysdep.c for non-Unix systems in which process ID's can be
 | 
						||
over 5 digits long.
 | 
						||
 | 
						||
Tue Aug 27 08:31:32 EDT 1996
 | 
						||
  Adjust the ishft intrinsic to use unsigned right shifts.  (Previously,
 | 
						||
a negative constant second operand resulted in a possibly signed shift.)
 | 
						||
 | 
						||
Thu Sep 12 14:04:07 EDT 1996
 | 
						||
  equiv.c: fix glitch with -DKR_headers.
 | 
						||
  libi77: fmtlib.c: fix bug in printing the most negative integer.
 | 
						||
 | 
						||
Fri Sep 13 08:54:40 EDT 1996
 | 
						||
  Diagnose some illegal appearances of substring notation.
 | 
						||
 | 
						||
Tue Sep 17 17:48:09 EDT 1996
 | 
						||
  Fix fault in handling some complex parameters.  Example:
 | 
						||
	subroutine foo(a)
 | 
						||
	double complex a, b
 | 
						||
	parameter(b = (0,1))
 | 
						||
	a = b	! f2c faulted here
 | 
						||
	end
 | 
						||
 | 
						||
Thu Sep 26 07:47:10 EDT 1996
 | 
						||
  libi77:  fmt.h:  for formatted writes of negative integer*1 values,
 | 
						||
make ic signed on ANSI systems.  If formatted writes of integer*1
 | 
						||
values trouble you when using a K&R C compiler, switch to an ANSI
 | 
						||
compiler or use a compiler flag that makes characters signed.
 | 
						||
 | 
						||
Tue Oct  1 14:41:36 EDT 1996
 | 
						||
  Give a better error message when dummy arguments appear in data
 | 
						||
statements.
 | 
						||
 | 
						||
Thu Oct 17 13:37:22 EDT 1996
 | 
						||
  Fix bug in typechecking arguments to character and complex (or
 | 
						||
double complex) functions; the bug could cause length arguments
 | 
						||
for character arguments to be omitted on invocations appearing
 | 
						||
textually after the first invocation.  For example, in
 | 
						||
	subroutine foo
 | 
						||
	character c
 | 
						||
	complex zot
 | 
						||
	call goo(zot(c), zot(c))
 | 
						||
	end
 | 
						||
the length was omitted from the second invocation of zot, and
 | 
						||
there was an erroneous error message about inconsistent calling
 | 
						||
sequences.
 | 
						||
 | 
						||
Wed Dec  4 13:59:14 EST 1996
 | 
						||
  Fix bug revealed by
 | 
						||
	subroutine test(cdum,rdum)
 | 
						||
	complex cdum
 | 
						||
	rdum=cos(real(cdum))	! "Unexpected tag 3 in opconv_fudge"
 | 
						||
	end
 | 
						||
  Fix glitch in parsing "DO 10 D0 = 1, 10".
 | 
						||
  Fix glitch in parsing
 | 
						||
	real*8 x
 | 
						||
	real*8 x	! erroneous "incompatible type" message
 | 
						||
	call foo(x)
 | 
						||
	end
 | 
						||
 | 
						||
Mon Dec  9 23:15:02 EST 1996
 | 
						||
  Fix glitch in parameter adjustments for arrays whose lower
 | 
						||
bound depends on a scalar argument.  Example:
 | 
						||
	subroutine bug(p,z,m,n)
 | 
						||
	integer z(*),m,n
 | 
						||
	double precision p(z(m):z(m) + n)	! p_offset botched
 | 
						||
	call foo(p(0), p(n))
 | 
						||
	end
 | 
						||
  libi77: complain about non-positive rec= in direct read and write
 | 
						||
statements.
 | 
						||
  libf77: trivial adjustments; Version.c not changed.
 | 
						||
 | 
						||
Wed Feb 12 00:18:03 EST 1997
 | 
						||
  output.c: fix (seldom problematic) glitch in out_call: put parens
 | 
						||
around the ... in a test of the form "if (q->tag == TADDR && ...)".
 | 
						||
  vax.c: fix bug revealed in the "psi_offset =" assignment in the
 | 
						||
following example:
 | 
						||
	subroutine foo(psi,m)
 | 
						||
	integer z(100),m
 | 
						||
	common /a/ z
 | 
						||
	double precision psi(z(m):z(m) + 10)
 | 
						||
	call foo(m+1, psi(0),psi(10))
 | 
						||
	end
 | 
						||
 | 
						||
Mon Feb 24 23:44:54 EST 1997
 | 
						||
  For consistency with f2c's current treatment of adjacent character
 | 
						||
strings in FORMAT statements, recognize a Hollerith string following
 | 
						||
a string (and merge adjacent strings in FORMAT statements).
 | 
						||
 | 
						||
Wed Feb 26 13:41:11 EST 1997
 | 
						||
  New libf2c.zip, a combination of the libf77 and libi77 bundles (and
 | 
						||
available only by ftp).
 | 
						||
  libf77: adjust functions with a complex output argument to permit
 | 
						||
aliasing it with input arguments.  (For now, at least, this is just
 | 
						||
for possible benefit of g77.)
 | 
						||
  libi77: tweak to ftell_.c for systems with strange definitions of
 | 
						||
SEEK_SET, etc.
 | 
						||
 | 
						||
Tue Apr  8 20:57:08 EDT 1997
 | 
						||
  libf77: [cz]_div.c: tweaks invisible on most systems (that may
 | 
						||
improve things slightly with optimized compilation on systems that use
 | 
						||
gratuitous extra precision).
 | 
						||
  libi77: fmt.c: adjust to complain at missing numbers in formats
 | 
						||
(but still treat missing ".nnn" as ".0").
 | 
						||
 | 
						||
Fri Apr 11 14:05:57 EDT 1997
 | 
						||
  libi77: err.c: attempt to make stderr line buffered rather than
 | 
						||
fully buffered.  (Buffering is needed for format items T and TR.)
 | 
						||
 | 
						||
Thu Apr 17 22:42:43 EDT 1997
 | 
						||
 libf77: add F77_aloc.o to makefile (and makefile.u in libf2c.zip).
 | 
						||
 | 
						||
Fri Apr 25 19:32:09 EDT 1997
 | 
						||
 libf77: add [de]time_.c (which may give trouble on some systems).
 | 
						||
 | 
						||
Tue May 27 09:18:52 EDT 1997
 | 
						||
 libi77: ftell_.c: fix typo that caused the third argument to be
 | 
						||
treated as 2 on some systems.
 | 
						||
 | 
						||
Mon Jun  9 00:04:37 EDT 1997
 | 
						||
 libi77 (and libf2c.zip): adjust include order in err.c lread.c wref.c
 | 
						||
rdfmt.c to include fmt.h (etc.) after system includes.  Version.c not
 | 
						||
changed.
 | 
						||
 | 
						||
Mon Jul 21 16:04:54 EDT 1997
 | 
						||
  proc.c: fix glitch in logic for "nonpositive dimension" message.
 | 
						||
  libi77: inquire.c: always include string.h (for possible use with
 | 
						||
-DNON_UNIX_STDIO); Version.c not changed.
 | 
						||
 | 
						||
Thu Jul 24 17:11:23 EDT 1997
 | 
						||
  Tweak "Notice" to reflect the AT&T breakup -- we missed it when
 | 
						||
updating the copyright notices in the source files last summer.
 | 
						||
  Adjust src/makefile so malloc.o is not used by default, but can
 | 
						||
be specified with "make MALLOC=malloc.o".
 | 
						||
  Add comments to src/README about the "CRAY" T3E.
 | 
						||
 | 
						||
Tue Aug  5 14:53:25 EDT 1997
 | 
						||
  Add definition of calloc to malloc.c; this makes f2c's malloc
 | 
						||
work on some systems where trouble hitherto arose because references
 | 
						||
to calloc brought in the system's malloc.  (On sensible systems,
 | 
						||
calloc is defined separately from malloc.  To avoid confusion on
 | 
						||
other systems, f2c/malloc.c now defines calloc.)
 | 
						||
  libi77: lread.c: adjust to accord with a change to the Fortran 8X
 | 
						||
draft (in 1990 or 1991) that rescinded permission to elide quote marks
 | 
						||
in namelist input of character data; to get the old behavior, compile
 | 
						||
with F8X_NML_ELIDE_QUOTES #defined.  wrtfmt.o: wrt_G: tweak to print
 | 
						||
the right number of 0's for zero under G format.
 | 
						||
 | 
						||
Sat Aug 16 05:45:32 EDT 1997
 | 
						||
  libi77: iio.c: fix bug in internal writes to an array of character
 | 
						||
strings that sometimes caused one more array element than required by
 | 
						||
the format to be blank-filled.  Example: format(1x).
 | 
						||
 | 
						||
Wed Sep 17 00:39:29 EDT 1997
 | 
						||
  libi77: fmt.[ch] rdfmt.c wrtfmt.c: tweak struct syl for machines
 | 
						||
with 64-bit pointers and 32-bit ints that did not 64-bit align
 | 
						||
struct syl (e.g., Linux on the DEC Alpha).  This change should be
 | 
						||
invisible on other machines.
 | 
						||
 | 
						||
Sun Sep 21 22:05:19 EDT 1997
 | 
						||
  libf77: [de]time_.c (Unix systems only): change return type to double.
 | 
						||
 | 
						||
Thu Dec  4 22:10:09 EST 1997
 | 
						||
  Fix bug with handling large blocks of comments (over 4k); parts of the
 | 
						||
second and subsequent blocks were likely to be lost (not copied into
 | 
						||
comments in the resulting C).  Allow comment lines to be longer before
 | 
						||
breaking them.
 | 
						||
 | 
						||
Mon Jan 19 17:19:27 EST 1998
 | 
						||
  makefile: change the rule for making gram.c to one for making gram1.c;
 | 
						||
henceforth, asking netlib to "send all from f2c/src" will bring you a
 | 
						||
working gram.c.  Nowadays there are simply too many broken versions of
 | 
						||
yacc floating around.
 | 
						||
  libi77: backspace.c: for b->ufmt==0, change sizeof(int) to
 | 
						||
sizeof(uiolen).  On machines where this would make a difference, it is
 | 
						||
best for portability to compile libI77 with -DUIOLEN_int, which will
 | 
						||
render the change invisible.
 | 
						||
 | 
						||
Tue Feb 24 08:35:33 EST 1998
 | 
						||
  makefile: remove gram.c from the "make clean" rule.
 | 
						||
 | 
						||
Wed Feb 25 08:29:39 EST 1998
 | 
						||
  makefile: change CFLAGS assignment to -O; add "veryclean" rule.
 | 
						||
 | 
						||
Wed Mar  4 13:13:21 EST 1998
 | 
						||
  libi77: open.c: fix glitch in comparing file names under
 | 
						||
-DNON_UNIX_STDIO.
 | 
						||
 | 
						||
Mon Mar  9 23:56:56 EST 1998
 | 
						||
  putpcc.c: omit an unnecessary temporary variable in computing
 | 
						||
(expr)**3.
 | 
						||
  libf77, libi77: minor tweaks to make some C++ compilers happy;
 | 
						||
Version.c not changed.
 | 
						||
 | 
						||
Wed Mar 18 18:08:47 EST 1998
 | 
						||
  libf77: minor tweaks to [ed]time_.c; Version.c not changed.
 | 
						||
  libi77: endfile.c, open.c: acquire temporary files from tmpfile(),
 | 
						||
unless compiled with -DNON_ANSI_STDIO, which uses mktemp().
 | 
						||
New buffering scheme independent of NON_UNIX_STDIO for handling T
 | 
						||
format items.  Now -DNON_UNIX_STDIO is no longer be necessary for
 | 
						||
Linux, and libf2c no longer causes stderr to be buffered -- the former
 | 
						||
setbuf or setvbuf call for stderr was to make T format items work.
 | 
						||
open.c: use the Posix access() function to check existence or
 | 
						||
nonexistence of files, except under -DNON_POSIX_STDIO, where trial
 | 
						||
fopen calls are used.  In open.c, fix botch in changes of 19980304.
 | 
						||
  libf2c.zip: the PC makefiles are now set for NT/W95, with comments
 | 
						||
about changes for DOS.
 | 
						||
 | 
						||
Fri Apr  3 17:22:12 EST 1998
 | 
						||
  Adjust fix of 19960913 to again permit substring notation on
 | 
						||
character variables in data statements.
 | 
						||
 | 
						||
Sun Apr  5 19:26:50 EDT 1998
 | 
						||
  libi77: wsfe.c: make $ format item work: this was lost in the changes
 | 
						||
of 17 March 1998.
 | 
						||
 | 
						||
Sat May 16 19:08:51 EDT 1998
 | 
						||
  Adjust output of ftnlen constants: rather than appending L,
 | 
						||
prepend (ftnlen).  This should make the resulting C more portable,
 | 
						||
e.g., to systems (such as DEC Alpha Unix systems) on which long
 | 
						||
may be longer than ftnlen.
 | 
						||
  Adjust -r so it also casts REAL expressions passed to intrinsic
 | 
						||
functions to REAL.
 | 
						||
 | 
						||
Wed May 27 16:02:35 EDT 1998
 | 
						||
  libf2c.zip: tweak description of compiling libf2c for INTEGER*8
 | 
						||
to accord with makefile.u rather than libF77/makefile.
 | 
						||
 | 
						||
Thu May 28 22:45:59 EDT 1998
 | 
						||
  libi77: backspace.c dfe.c due.c iio.c lread.c rsfe.c sue.c wsfe.c:
 | 
						||
set f__curunit sooner so various error messages will correctly
 | 
						||
identify the I/O unit involved.
 | 
						||
  libf2c.zip: above, plus tweaks to PC makefiles: for some purposes,
 | 
						||
it's still best to compile with -DMSDOS (even for use with NT).
 | 
						||
 | 
						||
Thu Jun 18 01:22:52 EDT 1998
 | 
						||
  libi77: lread.c: modified so floating-point numbers (containing
 | 
						||
either a decimal point or an exponent field) are treated as errors
 | 
						||
when they appear as list input for integer data.  Compile lread.c with
 | 
						||
-DALLOW_FLOAT_IN_INTEGER_LIST_INPUT to restore the old behavior.
 | 
						||
 | 
						||
Mon Aug 31 10:38:54 EDT 1998
 | 
						||
  formatdata.c: if possible, and assuming doubles must be aligned on
 | 
						||
double boundaries, use existing holes in DATA for common blocks to
 | 
						||
force alignment of the block.  For example,
 | 
						||
	block data
 | 
						||
	common /abc/ a, b
 | 
						||
	double precision a
 | 
						||
	integer b(2)
 | 
						||
	data b(2)/1/
 | 
						||
	end
 | 
						||
used to generate
 | 
						||
	struct {
 | 
						||
	    integer fill_1[3];
 | 
						||
	    integer e_2;
 | 
						||
	    doublereal e_3;
 | 
						||
	    } abc_ = { {0}, 1, 0. };
 | 
						||
and now generates
 | 
						||
	struct {
 | 
						||
	    doublereal fill_1[1];
 | 
						||
	    integer fill_2[1];
 | 
						||
	    integer e_3;
 | 
						||
	    } abc_ = { {0}, {0}, 1 };
 | 
						||
In the old generated C, e_3 was added to force alignment; in the new C,
 | 
						||
fill_1 does this job.
 | 
						||
 | 
						||
Mon Sep  7 19:48:51 EDT 1998
 | 
						||
  libi77: move e_wdfe from sfe.c to dfe.c, where it was originally.
 | 
						||
Why did it ever move to sfe.c?
 | 
						||
 | 
						||
Tue Sep  8 10:22:50 EDT 1998
 | 
						||
  Treat dreal as a synonym for dble unless -cd is specified on the
 | 
						||
command line.
 | 
						||
 | 
						||
Sun Sep 13 22:23:41 EDT 1998
 | 
						||
  format.c: fix bug in writing prototypes under f2c -A ... *.P:
 | 
						||
under some circumstances involving external functions with no known
 | 
						||
type, a null pointer was passed to printf.
 | 
						||
 | 
						||
Tue Oct 20 23:25:54 EDT 1998
 | 
						||
  Comments added to libf2c/README and libF77/README, pointing out
 | 
						||
the need to modify signal1.h on some systems.
 | 
						||
 | 
						||
Wed Feb 10 22:59:52 EST 1999
 | 
						||
  defs.h lex.c: permit long names (up to at least roughly
 | 
						||
MAX_SHARPLINE_LEN = 1000 characters long) in #line lines (which only
 | 
						||
matters under -g).
 | 
						||
  fc: add -U option; recognize .so files.
 | 
						||
 | 
						||
Sat Feb 13 10:18:27 EST 1999
 | 
						||
 libf2c: endfile.c, lread.c, signal1.h0: minor tweaks to make some
 | 
						||
(C++) compilers happier; f77_aloc.c: make exit_() visible to C++
 | 
						||
compilers.  Version strings not changed.
 | 
						||
 | 
						||
Thu Mar 11 23:14:02 EST 1999
 | 
						||
  Modify f2c (exec.c, expr.c) to diagnose incorrect mixing of types
 | 
						||
when (f2c extended) intrinsic functions are involved, as in
 | 
						||
(not(17) .and. 4).  Catching this in the first executable statement
 | 
						||
is a bit tricky, as some checking must be postponed until all statement
 | 
						||
function declarations have been parsed.  Thus there is a chance of
 | 
						||
today's changes introducing bugs under (let us hope) unusual conditions.
 | 
						||
 | 
						||
Sun Mar 28 13:17:44 EST 1999
 | 
						||
  lex.c: tweak to get the file name right in error messages caused
 | 
						||
by statements just after a # nnn "filename" line emitted by the C
 | 
						||
preprocessor.  (The trouble is that the line following the # nnn line
 | 
						||
must be read to see if it is a continuation of the stuff that preceded
 | 
						||
the # nnn line.)  When # nnn "filename" lines appear among the lines
 | 
						||
for a Fortran statement, the filename reported in an error message for
 | 
						||
the statement should now be the file that was current when the first
 | 
						||
line of the statement was read.
 | 
						||
 | 
						||
Sun May  2 22:38:25 EDT 1999
 | 
						||
  libf77, libi77, libf2c.zip: make getenv_() more portable (call
 | 
						||
getenv() rather than knowing about char **environ); adjust some
 | 
						||
complex intrinsics to work with overlapping arguments (caused by
 | 
						||
inappropriate use of equivalence); open.c: get "external" versus
 | 
						||
"internal" right in the error message if a file cannot be opened;
 | 
						||
err.c: cast a pointer difference to (int) for %d; rdfmt.c: omit
 | 
						||
fixed-length buffer that could be overwritten by formats Inn or Lnn
 | 
						||
with nn > 83.
 | 
						||
 | 
						||
Mon May  3 13:14:07 EDT 1999
 | 
						||
  "Invisible" changes to omit a few compiler warnings in f2c and
 | 
						||
libf2c; two new casts in libf2c/open.c that matter with 64-bit longs,
 | 
						||
and one more tweak (libf2c/c_log.c) for pathological equivalences.
 | 
						||
  Minor update to "fc" script: new -L flag and comment correction.
 | 
						||
 | 
						||
Fri Jun 18 02:33:08 EDT 1999
 | 
						||
  libf2c.zip: rename backspace.c backspac.c, and fix a glitch in it
 | 
						||
-- b->ufd may change in t_runc().  (For now, it's still backspace.c
 | 
						||
in the libi77 bundle.)
 | 
						||
 | 
						||
Sun Jun 27 22:05:47 EDT 1999
 | 
						||
  libf2c.zip, libi77: rsne.c: fix bug in namelist input: a misplaced
 | 
						||
increment could cause wrong array elements to be assigned; e.g.,
 | 
						||
"&input k(5)=10*1 &end" assigned k(5) and k(15 .. 23).
 |