Sync with FreeBSD. This adds read-only support for zip and ISO9660.
[dragonfly.git] / contrib / libf2c / readme.netlib
1
2 ====== old index for f2c, now "readme from f2c" ============
3
4 FILES:
5
6 f2c.h   Include file necessary for compiling output of the converter.
7         See the second NOTE below.
8
9 f2c.1   Man page for f2c.
10
11 f2c.1t  Source for f2c.1 (to be processed by troff -man or nroff -man).
12
13 libf77  Library of non I/O support routines the generated C may need.
14         Fortran main programs result in a C function named MAIN__ that
15         is meant to be invoked by the main() in libf77.
16
17 libi77  Library of Fortran I/O routines the generated C may need.
18         Note that some vendors (e.g., BSD, Sun and MIPS) provide a
19         libF77 and libI77 that are incompatible with f2c -- they
20         provide some differently named routines or routines with the
21         names that f2c expects, but with different calling sequences.
22         On such systems, the recommended procedure is to merge
23         libf77 and libi77 into a single library, say libf2c, and to
24         install it where you can access it by specifying -lf2c .  The
25         definition of link_msg in sysdep.c assumes this arrangement.
26
27         Both libf77 and libi77 are bundles, meant to be unpacked by the
28         Bourne (or Korn) shell.  MS-DOS users can use the MKS Toolkit
29         to unpack libf77 and libi77.
30
31 libf2c.zip
32         Only available by ftp: combination of libf77 and libi77, with
33         Unix and PC makefiles.
34
35 f2c.ps  Postscript for a technical report on f2c.  After you strip the
36         mail header, the first line should be "%!PS".
37
38 fixes   The complete change log, reporting bug fixes and other changes.
39         (Some recent change-log entries are given below).
40
41 fc      A shell script that uses f2c and imitates much of the behavior
42         of commonly found f77 commands.  You will almost certainly
43         need to adjust some of the shell-variable assignments to make
44         this script work on your system.
45
46
47 SUBDIRECTORY:
48
49 f2c/src Source for the converter itself, including a file of checksums
50         and source for a program to compute the checksums (to verify
51         correct transmission of the source), is available: ask netlib
52         (e.g., netlib@netlib.bell-labs.com) to
53                 send all from f2c/src
54         If the checksums show damage to just a few source files, or if
55         the change log file (see "fixes" below) reports corrections to
56         some source files, you can request those files individually
57         "from f2c/src".  For example, to get defs.h and xsum0.out, you
58         would ask netlib to
59                 send defs.h xsum0.out from f2c/src
60         "all from f2c/src" is about 640 kilobytes long; for convenience
61         (and checksums), it includes copies of f2c.h, f2c.1, and f2c.1t.
62
63         Tip: if asked to send over 99,000 bytes in one request, netlib
64         breaks the shipment into 1000 line pieces and sends each piece
65         separately (since otherwise some mailers might gag).  To avoid
66         the hassle of reassembling the pieces, try to keep each request
67         under 99,000 bytes long.  The final number in each line of
68         xsum0.out gives the length of each file in f2c/src.  For
69         example,
70                 send exec.c expr.c from f2c/src
71                 send format.c format_data.c from f2c/src
72         will give you slightly less hassle than
73                 send exec.c expr.c format.c format_data.c from f2c/src
74         Alternatively, if all the mailers in your return path allow
75         long messages, you can supply an appropriate mailsize line in
76         your netlib request, e.g.
77                 mailsize 200k
78                 send exec.c expr.c format.c format_data.c from f2c/src
79
80         The makefile used to generate gram.c; now we distribute a
81         working gram.c, and you must say
82                 make gram1.c
83                 mv gram1.c gram.c
84         if you want to generate your own gram.c -- there are just too
85         many broken variants of yacc floating around nowadays for
86         generation of gram.c to be the default.
87
88 NOTE:   You may exercise f2c by sending netlib@netlib.bell-labs.com
89         a message whose first line is "execute f2c" and whose remaining
90         lines are the Fortran 77 source that you wish to have converted.
91         Return mail brings you the resulting C, with f2c's error
92         messages between #ifdef uNdEfInEd and #endif at the end.
93         (To understand line numbers in the error messages, regard
94         the "execute f2c" line as line 0.  It is stripped away by
95         the netlib software before f2c sees your Fortran input.)
96         Options described in the man page may be transmitted to
97         netlib by having the first line of input be a comment
98         whose first 6 characters are "c$f2c " and whose remaining
99         characters are the desired options, e.g., "c$f2c -R -u".
100
101         You may say "execute f2c" in the Subject line instead of (but
102         *not* in addition to) in the first line of the message body.
103
104         The incoming Fortran is saved, at least for a while.  Don't
105         send any secrets!
106
107
108 BUGS:   Please send bug reports (including the shortest example
109         you can find that illustrates the bug) to research!dmg
110         or dmg@bell-labs.com .  You might first check whether
111         the bug goes away when you turn optimization off.
112
113
114 NOTE:   f2c.h defines several types, e.g., real, integer, doublereal.
115         The definitions in f2c.h are suitable for most machines, but if
116         your machine has sizeof(double) > 2*sizeof(long), you may need
117         to adjust f2c.h appropriately.  f2c assumes
118                 sizeof(doublecomplex) = 2*sizeof(doublereal)
119                 sizeof(doublereal) = sizeof(complex)
120                 sizeof(doublereal) = 2*sizeof(real)
121                 sizeof(real) = sizeof(integer)
122                 sizeof(real) = sizeof(logical)
123                 sizeof(real) = 2*sizeof(shortint)
124         EQUIVALENCEs may not be translated correctly if these
125         assumptions are violated.
126
127         On machines, such as those using a DEC Alpha processor, on
128         which sizeof(short) == 2, sizeof(int) == sizeof(float) == 4,
129         and sizeof(long) == sizeof(double) == 8, it suffices to
130         modify f2c.h by removing the first occurrence of "long "
131         on each line containing "long ", e.g., by issuing the
132         commands
133                 mv f2c.h f2c.h0
134                 sed 's/long //' f2c.h0 >f2c.h
135         On such machines, one can enable INTEGER*8 by uncommenting
136         the typedef of longint in f2c.h, so it reads
137                 typedef long longint;
138         by compiling libI77 with -DAllow_TYQUAD, and by adjusting
139         libF77/makefile as described in libF77/README.
140
141         Some machines may have sizeof(int) == 4, sizeof(float) == 8,
142         and sizeof(long long) == 8.  On such machines, adjust f2c.h
143         by changing "long int " to "long long ", e.g., by saying
144                 mv f2c.h f2c.h0
145                 sed 's/long int /long long /' f2c.h0 >f2c.h
146         One can enable INTEGER*8 on such machines as described
147         above, but with
148                 typedef long long longint;
149
150         There exists a C compiler that objects to the lines
151                 typedef VOID C_f;       /* complex function */
152                 typedef VOID H_f;       /* character function */
153                 typedef VOID Z_f;       /* double complex function */
154         in f2c.h .  If yours is such a compiler, do two things:
155         1. Complain to your vendor about this compiler bug.
156         2. Find the line
157                 #define VOID void
158            in f2c.h and change it to
159                 #define VOID int
160         (For readability, the f2c.h lines shown above have had two
161         tabs inserted before their first character.)
162
163 FTP:    All the material described above is now available by anonymous
164         ftp from netlib.bell-labs.com (login: anonymous; Password: your
165         E-mail address; cd netlib/f2c).  Note that you can say, e.g.,
166
167                 cd /netlib/f2c/src
168                 binary
169                 prompt
170                 mget *.gz
171
172         to get all the .gz files in src.  You must uncompress the .gz
173         files once you have a copy of them, e.g., by
174
175                 gzip -dN *.gz
176
177         You can also get the entire f2c tree as a tar file:
178
179                 ftp://netlib.bell-labs.com/netlib/f2c.tar
180
181         (which is a synthetic file -- created on the fly and not visible
182         to ftp's "ls" or "dir" commands).
183
184         Subdirectory msdos contains two PC versions of f2c,
185         f2c.exe.gz and f2cx.exe.gz; the latter uses extended memory.
186         The README in that directory provides more details.
187
188         Changes appear first in the f2c files available by E-mail
189         from netlib@netlib.bell-labs.com.  If the deamons work right,
190         changed files are available the next day by ftp from
191         netlib.bell-labs.com.  In due course, they reach other netlib servers.
192
193 CHANGE NOTIFICATION:
194         Send the E-mail message
195                 subscribe f2c
196         to netlib@netlib.bell-labs.com to request notification of new and
197         changed f2c files.  (Beware that automatically sent change
198         notifications may reach you before changes have reached
199         ftp://netlib.bell-labs.com/netlib/f2c or to other netlib servers.)
200         Send the E-mail message
201                 unsubscribe f2c
202         to recant your notification request.
203
204 -----------------
205 Recent change log (partial)
206 -----------------
207
208 Mon May 13 23:35:26 EDT 1996
209   Recognize Fortran 90's /= as a synonym for .NE..  (<> remains a
210 synonym for .NE..)
211   Emit an empty int function of no arguments to supply an external
212 name to named block data subprograms (so they can be called somewhere
213 to force them to be loaded from a library).
214   Fix bug (memory fault) in handling the following illegal Fortran:
215         parameter(i=1)
216         equivalence(i,j)
217         end
218   Treat cdabs, cdcos, cdexp, cdlog, cdsin, and cdsqrt as synonyms for
219 the double complex intrinsics zabs, zcos, zexp, zlog, zsin, and zsqrt,
220 respectively, unless -cd is specified.
221   Recognize the Fortran 90 bit-manipulation intrinsics btest, iand,
222 ibclr, ibits, ibset, ieor, ior, ishft, and ishftc, unless -i90 is
223 specified.  Note that iand, ieor, and ior are thus now synonyms for
224 "and", "xor", and "or", respectively.
225   Add three macros (bit_test, bit_clear, bit_set) to f2c.h for use
226 with btest, ibclr, and ibset, respectively.  Add new functions
227 [lq]bit_bits, [lq]bit_shift, and [lq]_bit_cshift to libF77 for
228 use with ibits, ishft, and ishftc, respectively.
229   Add integer function ftell(unit) (returning -1 on error) and
230 subroutine fseek(unit, offset, whence, *) to libI77 (with branch to
231 label * on error).
232
233 Tue May 14 23:21:12 EDT 1996
234   Fix glitch (possible memory fault, or worse) in handling multiple
235 entry points with names over 28 characters long.
236
237 Mon Jun 10 01:20:16 EDT 1996
238   Update netlib E-mail and ftp addresses in f2c/readme and
239 f2c/src/readme (which are different files) -- to reflect the upcoming
240 breakup of AT&T.
241   libf77: trivial tweaks to F77_aloc.c and system_.c; Version.c not
242 changed.
243   libi77: Adjust rsli.c and lread.c so internal list input with too
244 few items in the input string will honor end= .
245
246 Mon Jun 10 22:59:57 EDT 1996
247   Add Bits_per_Byte to sysdep.h and adjust definition of Table_size
248 to depend on Bits_per_Byte (forcing Table_size to be a power of 2); in
249 lex.c, change "comstart[c & 0xfff]" to "comstart[c & (Table_size-1)]"
250 to avoid an out-of-range subscript on end-of-file.
251
252 Wed Jun 12 00:24:28 EDT 1996
253   Fix bug in output.c (dereferencing a freed pointer) revealed in
254         print *         !np in out_call in output.c clobbered by free
255         end             !during out_expr.
256
257 Wed Jun 19 08:12:47 EDT 1996
258   f2c.h: add types uinteger, ulongint (for libF77); add qbit_clear
259 and qbit_set macros (in a commented-out section) for integer*8.
260   For integer*8, use qbit_clear and qbit_set for ibclr and ibset.
261   libf77: add casts to unsigned in [lq]bitshft.c.
262
263 Thu Jun 20 13:30:43 EDT 1996
264   Complain at character*(*) in common (rather than faulting).
265   Fix bug in recognizing hex constants that start with "16#" (e.g.,
266 16#1234abcd, which is a synonym for z'1234abcd').
267   Fix bugs in constant folding of expressions involving btest, ibclr,
268 and ibset.
269   Fix bug in constant folding of rshift(16#80000000, -31) (on a 32-bit
270 machine; more generally, the bug was in constant folding of
271 rshift(ibset(0,NBITS-1), 1-NBITS) when f2c runs on a machine with
272 long ints having NBITS bits.
273
274 Mon Jun 24 07:58:53 EDT 1996
275   Adjust struct Literal and newlabel() function to accommodate huge
276 source files (with more than 32767 newlabel() invocations).
277   Omit .c file when the .f file has a missing final end statement.
278
279 Wed Jun 26 14:00:02 EDT 1996
280   libi77: Add discussion of MXUNIT (highest allowed Fortran unit number)
281 to libI77/README.
282
283 Fri Jun 28 14:16:11 EDT 1996
284   Fix glitch with -onetrip: the temporary variable used for nonconstant
285 initial loop variable values was recycled too soon.  Example:
286         do i = j+1, k
287                 call foo(i+1)   ! temp for j+1 was reused here
288                 enddo
289         end
290
291 Tue Jul  2 16:11:27 EDT 1996
292   formatdata.c: add a 0 to the end of the basetype array (for TYBLANK)
293 (an omission that was harmless on most machines).
294   expr.c: fix a dereference of NULL that was only possible with buggy
295 input, such as
296         subroutine $sub(s)      ! the '$' is erroneous
297         character s*(*)
298         s(1:) = ' '
299         end
300
301 Sat Jul  6 00:44:56 EDT 1996
302   Fix glitch in the intrinsic "real" function when applied to a
303 complex (or double complex) variable and passed as an argument to
304 some intrinsic functions.  Example:
305         complex a
306         b = sqrt(real(a))
307         end
308   Fix glitch (only visible if you do not use f2c's malloc and the
309 malloc you do use is defective in the sense that malloc(0) returns 0)
310 in handling include files that end with another include (perhaps
311 followed by comments).
312   Fix glitch with character*(*) arguments named "h" and "i" when
313 the body of the subroutine invokes the intrinsic LEN function.
314   Arrange that after a previous "f2c -P foo.f" has produced foo.P,
315 running "f2c foo.P foo.f" will produce valid C when foo.f contains
316         call sub('1234')
317         end
318         subroutine sub(msg)
319         end
320 Specifically, the length argument in "call sub" is now suppressed.
321 With or without foo.P, it is also now suppressed when the order of
322 subprograms in file foo.f is reversed:
323         subroutine sub(msg)
324         end
325         call sub('1234')
326         end
327   Adjust copyright notices to reflect AT&T breakup.
328
329 Wed Jul 10 09:25:49 EDT 1996
330   Fix bug (possible memory fault) in handling erroneously placed
331 and inconsistent declarations.  Example that faulted:
332         character*1 w(8)
333         call foo(w)
334         end
335         subroutine foo(m)
336         data h /0.5/
337         integer m(2)    ! should be before data
338         end
339   Fix bug (possible fault) in handling illegal "if" constructions.
340 Example (that faulted):
341         subroutine foo(i,j)
342         if (i) then             ! bug: i is integer, not logical
343         else if (j) then        ! bug: j is integer, not logical
344         endif
345         end
346   Fix glitch with character*(*) argument named "ret_len" to a
347 character*(*) function.
348
349 Wed Jul 10 23:04:16 EDT 1996
350   Fix more glitches in the intrinsic "real" function when applied to a
351 complex (or double complex) variable and passed as an argument to
352 some intrinsic functions.  Example:
353         complex a, b
354         r = sqrt(real(conjg(a))) + sqrt(real(a*b))
355         end
356
357 Thu Jul 11 17:27:16 EDT 1996
358   Fix a memory fault associated with complicated, illegal input.
359 Example:
360         subroutine goo
361         character a
362         call foo(a)     ! inconsistent with subsequent def and call
363         end
364         subroutine foo(a)
365         end
366         call foo(a)
367         end
368
369 Wed Jul 17 19:18:28 EDT 1996
370   Fix yet another case of intrinsic "real" applied to a complex
371 argument.  Example:
372         complex a(3)
373         x = sqrt(real(a(2)))    ! gave error message about bad tag
374         end
375
376 Mon Aug 26 11:28:57 EDT 1996
377   Tweak sysdep.c for non-Unix systems in which process ID's can be
378 over 5 digits long.
379
380 Tue Aug 27 08:31:32 EDT 1996
381   Adjust the ishft intrinsic to use unsigned right shifts.  (Previously,
382 a negative constant second operand resulted in a possibly signed shift.)
383
384 Thu Sep 12 14:04:07 EDT 1996
385   equiv.c: fix glitch with -DKR_headers.
386   libi77: fmtlib.c: fix bug in printing the most negative integer.
387
388 Fri Sep 13 08:54:40 EDT 1996
389   Diagnose some illegal appearances of substring notation.
390
391 Tue Sep 17 17:48:09 EDT 1996
392   Fix fault in handling some complex parameters.  Example:
393         subroutine foo(a)
394         double complex a, b
395         parameter(b = (0,1))
396         a = b   ! f2c faulted here
397         end
398
399 Thu Sep 26 07:47:10 EDT 1996
400   libi77:  fmt.h:  for formatted writes of negative integer*1 values,
401 make ic signed on ANSI systems.  If formatted writes of integer*1
402 values trouble you when using a K&R C compiler, switch to an ANSI
403 compiler or use a compiler flag that makes characters signed.
404
405 Tue Oct  1 14:41:36 EDT 1996
406   Give a better error message when dummy arguments appear in data
407 statements.
408
409 Thu Oct 17 13:37:22 EDT 1996
410   Fix bug in typechecking arguments to character and complex (or
411 double complex) functions; the bug could cause length arguments
412 for character arguments to be omitted on invocations appearing
413 textually after the first invocation.  For example, in
414         subroutine foo
415         character c
416         complex zot
417         call goo(zot(c), zot(c))
418         end
419 the length was omitted from the second invocation of zot, and
420 there was an erroneous error message about inconsistent calling
421 sequences.
422
423 Wed Dec  4 13:59:14 EST 1996
424   Fix bug revealed by
425         subroutine test(cdum,rdum)
426         complex cdum
427         rdum=cos(real(cdum))    ! "Unexpected tag 3 in opconv_fudge"
428         end
429   Fix glitch in parsing "DO 10 D0 = 1, 10".
430   Fix glitch in parsing
431         real*8 x
432         real*8 x        ! erroneous "incompatible type" message
433         call foo(x)
434         end
435   lib[FI]77/makefile: add comment about omitting -x under Solaris.
436
437 Mon Dec  9 23:15:02 EST 1996
438   Fix glitch in parameter adjustments for arrays whose lower
439 bound depends on a scalar argument.  Example:
440         subroutine bug(p,z,m,n)
441         integer z(*),m,n
442         double precision p(z(m):z(m) + n)       ! p_offset botched
443         call foo(p(0), p(n))
444         end
445   libi77: complain about non-positive rec= in direct read and write
446 statements.
447   libf77: trivial adjustments; Version.c not changed.
448
449 Wed Feb 12 00:18:03 EST 1997
450   output.c: fix (seldom problematic) glitch in out_call: put parens
451 around the ... in a test of the form "if (q->tag == TADDR && ...)".
452   vax.c: fix bug revealed in the "psi_offset =" assignment in the
453 following example:
454         subroutine foo(psi,m)
455         integer z(100),m
456         common /a/ z
457         double precision psi(z(m):z(m) + 10)
458         call foo(m+1, psi(0),psi(10))
459         end
460
461 Mon Feb 24 23:44:54 EST 1997
462   For consistency with f2c's current treatment of adjacent character
463 strings in FORMAT statements, recognize a Hollerith string following
464 a string (and merge adjacent strings in FORMAT statements).
465
466 Wed Feb 26 13:41:11 EST 1997
467   New libf2c.zip, a combination of the libf77 and libi77 bundles (and
468 available only by ftp).
469   libf77: adjust functions with a complex output argument to permit
470 aliasing it with input arguments.  (For now, at least, this is just
471 for possible benefit of g77.)
472   libi77: tweak to ftell_.c for systems with strange definitions of
473 SEEK_SET, etc.
474
475 Tue Apr  8 20:57:08 EDT 1997
476   libf77: [cz]_div.c: tweaks invisible on most systems (that may
477 improve things slightly with optimized compilation on systems that use
478 gratuitous extra precision).
479   libi77: fmt.c: adjust to complain at missing numbers in formats
480 (but still treat missing ".nnn" as ".0").
481
482 Fri Apr 11 14:05:57 EDT 1997
483   libi77: err.c: attempt to make stderr line buffered rather than
484 fully buffered.  (Buffering is needed for format items T and TR.)
485
486 Thu Apr 17 22:42:43 EDT 1997
487  libf77: add F77_aloc.o to makefile (and makefile.u in libf2c.zip).
488
489 Fri Apr 25 19:32:09 EDT 1997
490  libf77: add [de]time_.c (which may give trouble on some systems).
491
492 Tue May 27 09:18:52 EDT 1997
493  libi77: ftell_.c: fix typo that caused the third argument to be
494 treated as 2 on some systems.
495
496 Mon Jun  9 00:04:37 EDT 1997
497  libi77 (and libf2c.zip): adjust include order in err.c lread.c wref.c
498 rdfmt.c to include fmt.h (etc.) after system includes.  Version.c not
499 changed.
500
501 Mon Jun  9 14:29:13 EDT 1997
502  src/gram.c updated; somehow it did not reflect the change of
503 19961001 to gram.dcl.
504
505 Mon Jul 21 16:04:54 EDT 1997
506   proc.c: fix glitch in logic for "nonpositive dimension" message.
507   libi77: inquire.c: always include string.h (for possible use with
508 -DNON_UNIX_STDIO); Version.c not changed.
509
510 Thu Jul 24 17:11:23 EDT 1997
511   Tweak "Notice" to reflect the AT&T breakup -- we missed it when
512 updating the copyright notices in the source files last summer.
513   Adjust src/makefile so malloc.o is not used by default, but can
514 be specified with "make MALLOC=malloc.o".
515   Add comments to src/README about the "CRAY" T3E.
516
517 Tue Aug  5 14:53:25 EDT 1997
518   Add definition of calloc to malloc.c; this makes f2c's malloc
519 work on some systems where trouble hitherto arose because references
520 to calloc brought in the system's malloc.  (On sensible systems,
521 calloc is defined separately from malloc.  To avoid confusion on
522 other systems, f2c/malloc.c now defines calloc.)
523   libi77: lread.c: adjust to accord with a change to the Fortran 8X
524 draft (in 1990 or 1991) that rescinded permission to elide quote marks
525 in namelist input of character data; to get the old behavior, compile
526 with F8X_NML_ELIDE_QUOTES #defined.  wrtfmt.o: wrt_G: tweak to print
527 the right number of 0's for zero under G format.
528
529 Sat Aug 16 05:45:32 EDT 1997
530   libi77: iio.c: fix bug in internal writes to an array of character
531 strings that sometimes caused one more array element than required by
532 the format to be blank-filled.  Example: format(1x).
533
534 Wed Sep 17 00:39:29 EDT 1997
535   libi77: fmt.[ch] rdfmt.c wrtfmt.c: tweak struct syl for machines
536 with 64-bit pointers and 32-bit ints that did not 64-bit align
537 struct syl (e.g., Linux on the DEC Alpha).  This change should be
538 invisible on other machines.
539
540 Sun Sep 21 22:05:19 EDT 1997
541   libf77: [de]time_.c (Unix systems only): change return type to double.
542
543 Thu Dec  4 22:10:09 EST 1997
544   Fix bug with handling large blocks of comments (over 4k); parts of the
545 second and subsequent blocks were likely to be lost (not copied into
546 comments in the resulting C).  Allow comment lines to be longer before
547 breaking them.
548
549 Mon Jan 19 17:19:27 EST 1998
550   makefile: change the rule for making gram.c to one for making gram1.c;
551 henceforth, asking netlib to "send all from f2c/src" will bring you a
552 working gram.c.  Nowadays there are simply too many broken versions of
553 yacc floating around.
554   libi77: backspace.c: for b->ufmt==0, change sizeof(int) to
555 sizeof(uiolen).  On machines where this would make a difference, it is
556 best for portability to compile libI77 with -DUIOLEN_int, which will
557 render the change invisible.
558
559 Tue Feb 24 08:35:33 EST 1998
560   makefile: remove gram.c from the "make clean" rule.
561
562 Wed Feb 25 08:29:39 EST 1998
563   makefile: change CFLAGS assignment to -O; add "veryclean" rule.
564
565 Wed Mar  4 13:13:21 EST 1998
566   libi77: open.c: fix glitch in comparing file names under
567 -DNON_UNIX_STDIO.
568
569 Mon Mar  9 23:56:56 EST 1998
570   putpcc.c: omit an unnecessary temporary variable in computing
571 (expr)**3.
572   libf77, libi77: minor tweaks to make some C++ compilers happy;
573 Version.c not changed.
574
575 Wed Mar 18 18:08:47 EST 1998
576   libf77: minor tweaks to [ed]time_.c; Version.c not changed.
577   libi77: endfile.c, open.c: acquire temporary files from tmpfile(),
578 unless compiled with -DNON_ANSI_STDIO, which uses mktemp().
579 New buffering scheme independent of NON_UNIX_STDIO for handling T
580 format items.  Now -DNON_UNIX_STDIO is no longer be necessary for
581 Linux, and libf2c no longer causes stderr to be buffered -- the former
582 setbuf or setvbuf call for stderr was to make T format items work.
583 open.c: use the Posix access() function to check existence or
584 nonexistence of files, except under -DNON_POSIX_STDIO, where trial
585 fopen calls are used.  In open.c, fix botch in changes of 19980304.
586   libf2c.zip: the PC makefiles are now set for NT/W95, with comments
587 about changes for DOS.
588
589 Fri Apr  3 17:22:12 EST 1998
590   Adjust fix of 19960913 to again permit substring notation on
591 character variables in data statements.
592
593 Sun Apr  5 19:26:50 EDT 1998
594   libi77: wsfe.c: make $ format item work: this was lost in the changes
595 of 17 March 1998.
596
597 Sat May 16 19:08:51 EDT 1998
598   Adjust output of ftnlen constants: rather than appending L,
599 prepend (ftnlen).  This should make the resulting C more portable,
600 e.g., to systems (such as DEC Alpha Unix systems) on which long
601 may be longer than ftnlen.
602   Adjust -r so it also casts REAL expressions passed to intrinsic
603 functions to REAL.
604
605 Wed May 27 16:02:35 EDT 1998
606   libf2c.zip: tweak description of compiling libf2c for INTEGER*8
607 to accord with makefile.u rather than libF77/makefile.
608
609 Thu May 28 22:45:59 EDT 1998
610   libi77: backspace.c dfe.c due.c iio.c lread.c rsfe.c sue.c wsfe.c:
611 set f__curunit sooner so various error messages will correctly
612 identify the I/O unit involved.
613   libf2c.zip: above, plus tweaks to PC makefiles: for some purposes,
614 it's still best to compile with -DMSDOS (even for use with NT).
615
616 Thu Jun 18 01:22:52 EDT 1998
617   libi77: lread.c: modified so floating-point numbers (containing
618 either a decimal point or an exponent field) are treated as errors
619 when they appear as list input for integer data.  Compile lread.c with
620 -DALLOW_FLOAT_IN_INTEGER_LIST_INPUT to restore the old behavior.
621
622 Mon Aug 31 10:38:54 EDT 1998
623   formatdata.c: if possible, and assuming doubles must be aligned on
624 double boundaries, use existing holes in DATA for common blocks to
625 force alignment of the block.  For example,
626         block data
627         common /abc/ a, b
628         double precision a
629         integer b(2)
630         data b(2)/1/
631         end
632 used to generate
633         struct {
634             integer fill_1[3];
635             integer e_2;
636             doublereal e_3;
637             } abc_ = { {0}, 1, 0. };
638 and now generates
639         struct {
640             doublereal fill_1[1];
641             integer fill_2[1];
642             integer e_3;
643             } abc_ = { {0}, {0}, 1 };
644 In the old generated C, e_3 was added to force alignment; in the new C,
645 fill_1 does this job.
646
647 Mon Sep  7 19:48:51 EDT 1998
648   libi77: move e_wdfe from sfe.c to dfe.c, where it was originally.
649 Why did it ever move to sfe.c?
650
651 Tue Sep  8 10:22:50 EDT 1998
652   Treat dreal as a synonym for dble unless -cd is specified on the
653 command line.
654
655 Sun Sep 13 22:23:41 EDT 1998
656   format.c: fix bug in writing prototypes under f2c -A ... *.P:
657 under some circumstances involving external functions with no known
658 type, a null pointer was passed to printf.
659
660 Tue Oct 20 23:25:54 EDT 1998
661   Comments added to libf2c/README and libF77/README, pointing out
662 the need to modify signal1.h on some systems.
663
664 Thu Nov 12 15:34:09 EST 1998
665   libf77, libf2c.zip: minor tweaks to [de]time_.c and the makefiles,
666 so makefile.sy, makefile.vc, and makefile.wat deal with [de]time_.c.
667
668 Wed Feb 10 22:59:52 EST 1999
669   defs.h lex.c: permit long names (up to at least roughly
670 MAX_SHARPLINE_LEN = 1000 characters long) in #line lines (which only
671 matters under -g).
672   fc: add -U option; recognize .so files.
673
674 Sat Feb 13 10:18:27 EST 1999
675   libf2c: endfile.c, lread.c, signal1.h0: minor tweaks to make some
676 (C++) compilers happier; f77_aloc.c: make exit_() visible to C++
677 compilers.  Version strings not changed.
678
679 Thu Mar 11 23:14:02 EST 1999
680   Modify f2c (exec.c, expr.c) to diagnose incorrect mixing of types
681 when (f2c extended) intrinsic functions are involved, as in
682 (not(17) .and. 4).  Catching this in the first executable statement
683 is a bit tricky, as some checking must be postponed until all statement
684 function declarations have been parsed.  Thus there is a chance of
685 today's changes introducing bugs under (let us hope) unusual conditions.
686
687 Sun Mar 28 13:17:44 EST 1999
688   lex.c: tweak to get the file name right in error messages caused
689 by statements just after a # nnn "filename" line emitted by the C
690 preprocessor.  (The trouble is that the line following the # nnn line
691 must be read to see if it is a continuation of the stuff that preceded
692 the # nnn line.)  When # nnn "filename" lines appear among the lines
693 for a Fortran statement, the filename reported in an error message for
694 the statement should now be the file that was current when the first
695 line of the statement was read.
696
697 Sun May  2 22:38:25 EDT 1999
698   libf77, libi77, libf2c.zip: make getenv_() more portable (call
699 getenv() rather than knowing about char **environ); adjust some
700 complex intrinsics to work with overlapping arguments (caused by
701 inappropriate use of equivalence); open.c: get "external" versus
702 "internal" right in the error message if a file cannot be opened;
703 err.c: cast a pointer difference to (int) for %d; rdfmt.c: omit
704 fixed-length buffer that could be overwritten by formats Inn or Lnn
705 with nn > 83.
706
707 Mon May  3 13:14:07 EDT 1999
708   "Invisible" changes to omit a few compiler warnings in f2c and
709 libf2c; two new casts in libf2c/open.c that matter with 64-bit longs,
710 and one more tweak (libf2c/c_log.c) for pathological equivalences.
711   Minor update to "fc" script: new -L flag and comment correction.
712
713 Tue May  4 10:06:26 EDT 1999
714    libf77, libf2c.zip: forgot to copy yesterday's latest updates to
715 netlib.
716
717 Current timestamps of files in "all from f2c/src", sorted by time,
718 appear below (mm/dd/year hh:mm:ss).  To bring your source up to date,
719 obtain source files with a timestamp later than the time shown in your
720 version.c.  Note that the time shown in the current version.c is the
721 timestamp of the source module that immediately follows version.c below:
722
723  5/03/1999  12:46:15  version.c
724  5/03/1999  12:39:35  formatdata.c
725  5/03/1999  12:31:14  format.c
726  5/03/1999  12:27:17  p1output.c
727  5/03/1999  12:27:17  data.c
728  5/03/1999  10:01:12  xsum0.out
729  5/03/1999   9:59:36  io.c
730  5/03/1999   9:59:36  misc.c
731  5/03/1999   9:59:36  init.c
732  3/26/1999  23:18:11  lex.c
733  3/11/1999  16:44:17  expr.c
734  3/11/1999  16:42:42  exec.c
735  2/10/1999  17:43:01  defs.h
736  9/08/1998  10:16:51  f2c.1
737  9/08/1998  10:16:48  f2c.1t
738  9/08/1998  10:14:53  intr.c
739  5/16/1998  16:55:49  output.c
740  4/03/1998  17:15:05  gram.c
741  4/03/1998  17:14:59  gram.dcl
742  3/09/1998   0:30:23  putpcc.c
743  2/25/1998   8:18:04  makefile
744 12/04/1997  17:44:11  niceprintf.c
745  8/05/1997  10:31:26  malloc.c
746  7/24/1997  17:10:55  README
747  7/24/1997  16:06:19  Notice
748  7/21/1997  12:58:44  proc.c
749  2/11/1997  23:39:14  vax.c
750 12/04/1996  13:07:53  gram.exec
751  9/12/1996  12:12:46  equiv.c
752  8/26/1996   9:41:13  sysdep.c
753  7/09/1996  10:40:45  names.c
754  7/04/1996   9:55:45  sysdep.h
755  7/04/1996   9:55:43  put.c
756  7/04/1996   9:55:41  pread.c
757  7/04/1996   9:55:40  parse_args.c
758  7/04/1996   9:55:36  mem.c
759  7/04/1996   9:55:36  memset.c
760  7/04/1996   9:55:35  main.c
761  7/04/1996   9:55:29  error.c
762  7/04/1996   9:55:27  cds.c
763  7/03/1996  15:47:49  xsum.c
764  6/19/1996   7:04:27  f2c.h
765  6/19/1996   2:52:05  defines.h
766  5/13/1996   0:40:32  gram.head
767  2/25/1994   2:07:19  parse.h
768  2/22/1994  19:07:20  iob.h
769  2/22/1994  18:56:53  p1defs.h
770  2/22/1994  18:53:46  output.h
771  2/22/1994  18:51:14  names.h
772  2/22/1994  18:30:41  format.h
773  1/18/1994  18:12:52  tokens
774  3/06/1993  14:13:58  gram.expr
775  1/28/1993   9:03:16  ftypes.h
776  4/06/1990   0:00:57  gram.io
777  2/03/1990   0:58:26  niceprintf.h
778  1/07/1990   1:20:01  usignal.h
779 11/27/1989   8:27:37  machdefs.h
780  7/01/1989  11:59:44  pccdefs.h