mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			792 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			792 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | |
| ====== old index for f2c, now "readme from f2c" ============
 | |
| 
 | |
| FILES:
 | |
| 
 | |
| f2c.h	Include file necessary for compiling output of the converter.
 | |
| 	See the second NOTE below.
 | |
| 
 | |
| f2c.1	Man page for f2c.
 | |
| 
 | |
| f2c.1t	Source for f2c.1 (to be processed by troff -man or nroff -man).
 | |
| 
 | |
| libf77	Library of non I/O support routines the generated C may need.
 | |
| 	Fortran main programs result in a C function named MAIN__ that
 | |
| 	is meant to be invoked by the main() in libf77.
 | |
| 
 | |
| libi77	Library of Fortran I/O routines the generated C may need.
 | |
| 	Note that some vendors (e.g., BSD, Sun and MIPS) provide a
 | |
| 	libF77 and libI77 that are incompatible with f2c -- they
 | |
| 	provide some differently named routines or routines with the
 | |
| 	names that f2c expects, but with different calling sequences.
 | |
| 	On such systems, the recommended procedure is to merge
 | |
| 	libf77 and libi77 into a single library, say libf2c, and to
 | |
|         install it where you can access it by specifying -lf2c .  The
 | |
|         definition of link_msg in sysdep.c assumes this arrangement.
 | |
| 
 | |
| 	Both libf77 and libi77 are bundles, meant to be unpacked by the
 | |
| 	Bourne (or Korn) shell.  MS-DOS users can use the MKS Toolkit
 | |
| 	to unpack libf77 and libi77.
 | |
| 
 | |
| libf2c.zip
 | |
| 	Only available by ftp: combination of libf77 and libi77, with
 | |
| 	Unix and PC makefiles.
 | |
| 
 | |
| f2c.ps	Postscript for a technical report on f2c.  After you strip the
 | |
| 	mail header, the first line should be "%!PS".
 | |
| 
 | |
| fixes	The complete change log, reporting bug fixes and other changes.
 | |
| 	(Some recent change-log entries are given below).
 | |
| 
 | |
| fc	A shell script that uses f2c and imitates much of the behavior
 | |
| 	of commonly found f77 commands.  You will almost certainly
 | |
| 	need to adjust some of the shell-variable assignments to make
 | |
| 	this script work on your system.
 | |
| 
 | |
| 
 | |
| SUBDIRECTORY:
 | |
| 
 | |
| f2c/src	Source for the converter itself, including a file of checksums
 | |
| 	and source for a program to compute the checksums (to verify
 | |
| 	correct transmission of the source), is available: ask netlib
 | |
| 	(e.g., netlib@netlib.bell-labs.com) to
 | |
| 		send all from f2c/src
 | |
| 	If the checksums show damage to just a few source files, or if
 | |
| 	the change log file (see "fixes" below) reports corrections to
 | |
| 	some source files, you can request those files individually
 | |
| 	"from f2c/src".  For example, to get defs.h and xsum0.out, you
 | |
| 	would ask netlib to
 | |
| 		send defs.h xsum0.out from f2c/src
 | |
| 	"all from f2c/src" is about 640 kilobytes long; for convenience
 | |
| 	(and checksums), it includes copies of f2c.h, f2c.1, and f2c.1t.
 | |
| 
 | |
| 	Tip: if asked to send over 99,000 bytes in one request, netlib
 | |
| 	breaks the shipment into 1000 line pieces and sends each piece
 | |
| 	separately (since otherwise some mailers might gag).  To avoid
 | |
| 	the hassle of reassembling the pieces, try to keep each request
 | |
| 	under 99,000 bytes long.  The final number in each line of
 | |
| 	xsum0.out gives the length of each file in f2c/src.  For
 | |
| 	example,
 | |
| 		send exec.c expr.c from f2c/src
 | |
| 		send format.c format_data.c from f2c/src
 | |
| 	will give you slightly less hassle than
 | |
| 		send exec.c expr.c format.c format_data.c from f2c/src
 | |
| 	Alternatively, if all the mailers in your return path allow
 | |
| 	long messages, you can supply an appropriate mailsize line in
 | |
| 	your netlib request, e.g.
 | |
| 		mailsize 200k
 | |
| 		send exec.c expr.c format.c format_data.c from f2c/src
 | |
| 
 | |
| 	The makefile used to generate gram.c; now we distribute a
 | |
| 	working gram.c, and you must say
 | |
| 		make gram1.c
 | |
| 		mv gram1.c gram.c
 | |
| 	if you want to generate your own gram.c -- there are just too
 | |
| 	many broken variants of yacc floating around nowadays for
 | |
| 	generation of gram.c to be the default.
 | |
| 
 | |
| NOTE:	You may exercise f2c by sending netlib@netlib.bell-labs.com
 | |
| 	a message whose first line is "execute f2c" and whose remaining
 | |
| 	lines are the Fortran 77 source that you wish to have converted.
 | |
| 	Return mail brings you the resulting C, with f2c's error
 | |
| 	messages between #ifdef uNdEfInEd and #endif at the end.
 | |
| 	(To understand line numbers in the error messages, regard
 | |
| 	the "execute f2c" line as line 0.  It is stripped away by
 | |
| 	the netlib software before f2c sees your Fortran input.)
 | |
| 	Options described in the man page may be transmitted to
 | |
| 	netlib by having the first line of input be a comment
 | |
| 	whose first 6 characters are "c$f2c " and whose remaining
 | |
| 	characters are the desired options, e.g., "c$f2c -R -u".
 | |
| 
 | |
| 	You may say "execute f2c" in the Subject line instead of (but
 | |
| 	*not* in addition to) in the first line of the message body.
 | |
| 
 | |
| 	The incoming Fortran is saved, at least for a while.  Don't
 | |
| 	send any secrets!
 | |
| 
 | |
| 
 | |
| BUGS:	Please send bug reports (including the shortest example
 | |
| 	you can find that illustrates the bug) to research!dmg
 | |
| 	or dmg@bell-labs.com .  You might first check whether
 | |
| 	the bug goes away when you turn optimization off.
 | |
| 
 | |
| 
 | |
| NOTE:	f2c.h defines several types, e.g., real, integer, doublereal.
 | |
| 	The definitions in f2c.h are suitable for most machines, but if
 | |
| 	your machine has sizeof(double) > 2*sizeof(long), you may need
 | |
| 	to adjust f2c.h appropriately.  f2c assumes
 | |
| 		sizeof(doublecomplex) = 2*sizeof(doublereal)
 | |
| 		sizeof(doublereal) = sizeof(complex)
 | |
| 		sizeof(doublereal) = 2*sizeof(real)
 | |
| 		sizeof(real) = sizeof(integer)
 | |
| 		sizeof(real) = sizeof(logical)
 | |
| 		sizeof(real) = 2*sizeof(shortint)
 | |
| 	EQUIVALENCEs may not be translated correctly if these
 | |
| 	assumptions are violated.
 | |
| 
 | |
| 	On machines, such as those using a DEC Alpha processor, on
 | |
| 	which sizeof(short) == 2, sizeof(int) == sizeof(float) == 4,
 | |
| 	and sizeof(long) == sizeof(double) == 8, it suffices to
 | |
| 	modify f2c.h by removing the first occurrence of "long "
 | |
| 	on each line containing "long ", e.g., by issuing the
 | |
| 	commands
 | |
| 		mv f2c.h f2c.h0
 | |
| 		sed 's/long //' f2c.h0 >f2c.h
 | |
| 	On such machines, one can enable INTEGER*8 by uncommenting
 | |
| 	the typedef of longint in f2c.h, so it reads
 | |
| 		typedef long longint;
 | |
| 	by compiling libI77 with -DAllow_TYQUAD, and by adjusting
 | |
| 	libF77/makefile as described in libF77/README.
 | |
| 
 | |
| 	Some machines may have sizeof(int) == 4, sizeof(float) == 8,
 | |
| 	and sizeof(long long) == 8.  On such machines, adjust f2c.h
 | |
| 	by changing "long int " to "long long ", e.g., by saying
 | |
| 		mv f2c.h f2c.h0
 | |
| 		sed 's/long int /long long /' f2c.h0 >f2c.h
 | |
| 	One can enable INTEGER*8 on such machines as described
 | |
| 	above, but with
 | |
| 		typedef long long longint;
 | |
| 
 | |
| 	There exists a C compiler that objects to the lines
 | |
| 		typedef VOID C_f;	/* complex function */
 | |
| 		typedef VOID H_f;	/* character function */
 | |
| 		typedef VOID Z_f;	/* double complex function */
 | |
| 	in f2c.h .  If yours is such a compiler, do two things:
 | |
| 	1. Complain to your vendor about this compiler bug.
 | |
| 	2. Find the line
 | |
| 		#define VOID void
 | |
| 	   in f2c.h and change it to
 | |
| 		#define VOID int
 | |
| 	(For readability, the f2c.h lines shown above have had two
 | |
| 	tabs inserted before their first character.)
 | |
| 
 | |
| FTP:	All the material described above is now available by anonymous
 | |
| 	ftp from netlib.bell-labs.com (login: anonymous; Password: your
 | |
| 	E-mail address; cd netlib/f2c).  Note that you can say, e.g.,
 | |
| 
 | |
| 		cd /netlib/f2c/src
 | |
| 		binary
 | |
| 		prompt
 | |
| 		mget *.gz
 | |
| 
 | |
| 	to get all the .gz files in src.  You must uncompress the .gz
 | |
| 	files once you have a copy of them, e.g., by
 | |
| 
 | |
| 		gzip -dN *.gz
 | |
| 
 | |
| 	You can also get the entire f2c tree as a tar file:
 | |
| 
 | |
| 		ftp://netlib.bell-labs.com/netlib/f2c.tar
 | |
| 
 | |
| 	(which is a synthetic file -- created on the fly and not visible
 | |
| 	to ftp's "ls" or "dir" commands).
 | |
| 
 | |
| 	Subdirectory msdos contains two PC versions of f2c,
 | |
| 	f2c.exe.gz and f2cx.exe.gz; the latter uses extended memory.
 | |
| 	The README in that directory provides more details.
 | |
| 
 | |
| 	Changes appear first in the f2c files available by E-mail
 | |
| 	from netlib@netlib.bell-labs.com.  If the deamons work right,
 | |
| 	changed files are available the next day by ftp from
 | |
| 	netlib.bell-labs.com.  In due course, they reach other netlib servers.
 | |
| 
 | |
| CHANGE NOTIFICATION:
 | |
| 	Send the E-mail message
 | |
| 		subscribe f2c
 | |
| 	to netlib@netlib.bell-labs.com to request notification of new and
 | |
| 	changed f2c files.  (Beware that automatically sent change
 | |
| 	notifications may reach you before changes have reached
 | |
| 	ftp://netlib.bell-labs.com/netlib/f2c or to other netlib servers.)
 | |
| 	Send the E-mail message
 | |
| 		unsubscribe f2c
 | |
| 	to recant your notification request.
 | |
| 
 | |
| -----------------
 | |
| Recent change log (partial)
 | |
| -----------------
 | |
| 
 | |
| 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(real(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
 | |
|   lib[FI]77/makefile: add comment about omitting -x under Solaris.
 | |
| 
 | |
| 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 Jun  9 14:29:13 EDT 1997
 | |
|  src/gram.c updated; somehow it did not reflect the change of
 | |
| 19961001 to gram.dcl.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| Thu Nov 12 15:34:09 EST 1998
 | |
|   libf77, libf2c.zip: minor tweaks to [de]time_.c and the makefiles,
 | |
| so makefile.sy, makefile.vc, and makefile.wat deal with [de]time_.c.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| Tue May  4 10:06:26 EDT 1999
 | |
|   libf77, libf2c.zip: forgot to copy yesterday's latest updates to
 | |
| netlib.
 | |
| 
 | |
| 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).
 | |
| 
 | |
| 
 | |
| Current timestamps of files in "all from f2c/src", sorted by time,
 | |
| appear below (mm/dd/year hh:mm:ss).  To bring your source up to date,
 | |
| obtain source files with a timestamp later than the time shown in your
 | |
| version.c.  Note that the time shown in the current version.c is the
 | |
| timestamp of the source module that immediately follows version.c below:
 | |
| 
 | |
|  5/03/1999  12:46:15  version.c
 | |
|  5/03/1999  12:39:35  formatdata.c
 | |
|  5/03/1999  12:31:14  format.c
 | |
|  5/03/1999  12:27:17  p1output.c
 | |
|  5/03/1999  12:27:17  data.c
 | |
|  5/03/1999  10:01:12  xsum0.out
 | |
|  5/03/1999   9:59:36  io.c
 | |
|  5/03/1999   9:59:36  misc.c
 | |
|  5/03/1999   9:59:36  init.c
 | |
|  3/26/1999  23:18:11  lex.c
 | |
|  3/11/1999  16:44:17  expr.c
 | |
|  3/11/1999  16:42:42  exec.c
 | |
|  2/10/1999  17:43:01  defs.h
 | |
|  9/08/1998  10:16:51  f2c.1
 | |
|  9/08/1998  10:16:48  f2c.1t
 | |
|  9/08/1998  10:14:53  intr.c
 | |
|  5/16/1998  16:55:49  output.c
 | |
|  4/03/1998  17:15:05  gram.c
 | |
|  4/03/1998  17:14:59  gram.dcl
 | |
|  3/09/1998   0:30:23  putpcc.c
 | |
|  2/25/1998   8:18:04  makefile
 | |
| 12/04/1997  17:44:11  niceprintf.c
 | |
|  8/05/1997  10:31:26  malloc.c
 | |
|  7/24/1997  17:10:55  README
 | |
|  7/24/1997  16:06:19  Notice
 | |
|  7/21/1997  12:58:44  proc.c
 | |
|  2/11/1997  23:39:14  vax.c
 | |
| 12/04/1996  13:07:53  gram.exec
 | |
|  9/12/1996  12:12:46  equiv.c
 | |
|  8/26/1996   9:41:13  sysdep.c
 | |
|  7/09/1996  10:40:45  names.c
 | |
|  7/04/1996   9:55:45  sysdep.h
 | |
|  7/04/1996   9:55:43  put.c
 | |
|  7/04/1996   9:55:41  pread.c
 | |
|  7/04/1996   9:55:40  parse_args.c
 | |
|  7/04/1996   9:55:36  mem.c
 | |
|  7/04/1996   9:55:36  memset.c
 | |
|  7/04/1996   9:55:35  main.c
 | |
|  7/04/1996   9:55:29  error.c
 | |
|  7/04/1996   9:55:27  cds.c
 | |
|  7/03/1996  15:47:49  xsum.c
 | |
|  6/19/1996   7:04:27  f2c.h
 | |
|  6/19/1996   2:52:05  defines.h
 | |
|  5/13/1996   0:40:32  gram.head
 | |
|  2/25/1994   2:07:19  parse.h
 | |
|  2/22/1994  19:07:20  iob.h
 | |
|  2/22/1994  18:56:53  p1defs.h
 | |
|  2/22/1994  18:53:46  output.h
 | |
|  2/22/1994  18:51:14  names.h
 | |
|  2/22/1994  18:30:41  format.h
 | |
|  1/18/1994  18:12:52  tokens
 | |
|  3/06/1993  14:13:58  gram.expr
 | |
|  1/28/1993   9:03:16  ftypes.h
 | |
|  4/06/1990   0:00:57  gram.io
 | |
|  2/03/1990   0:58:26  niceprintf.h
 | |
|  1/07/1990   1:20:01  usignal.h
 | |
| 11/27/1989   8:27:37  machdefs.h
 | |
|  7/01/1989  11:59:44  pccdefs.h
 |