]>
Commit | Line | Data |
---|---|---|
81fea2b1 JL |
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 | ||
a843efa0 CB |
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. | |
81fea2b1 JL |
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 | ||
fbc6d363 DL |
141 | Some machines may have sizeof(int) == 4, sizeof(float) == 8, |
142 | and sizeof(long long) == 8. On such machines, adjust f2c.h | |
81fea2b1 JL |
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 | |
a843efa0 | 170 | mget *.gz |
81fea2b1 | 171 | |
a843efa0 | 172 | to get all the .gz files in src. You must uncompress the .gz |
81fea2b1 JL |
173 | files once you have a copy of them, e.g., by |
174 | ||
a843efa0 CB |
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). | |
81fea2b1 JL |
183 | |
184 | Subdirectory msdos contains two PC versions of f2c, | |
a843efa0 | 185 | f2c.exe.gz and f2cx.exe.gz; the latter uses extended memory. |
81fea2b1 JL |
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 | ||
a843efa0 CB |
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 | ||
fbc6d363 DL |
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 | ||
81fea2b1 JL |
616 | Current timestamps of files in "all from f2c/src", sorted by time, |
617 | appear below (mm/dd/year hh:mm:ss). To bring your source up to date, | |
618 | obtain source files with a timestamp later than the time shown in your | |
619 | version.c. Note that the time shown in the current version.c is the | |
620 | timestamp of the source module that immediately follows version.c below: | |
621 | ||
fbc6d363 DL |
622 | 5/16/1998 19:07:45 xsum0.out |
623 | 5/16/1998 17:17:01 f2c.1 | |
624 | 5/16/1998 17:16:53 f2c.1t | |
625 | 5/16/1998 16:56:15 version.c | |
626 | 5/16/1998 16:55:49 output.c | |
a843efa0 | 627 | 4/03/1998 17:15:05 gram.c |
a843efa0 CB |
628 | 4/03/1998 17:14:59 gram.dcl |
629 | 3/09/1998 0:30:23 putpcc.c | |
630 | 2/25/1998 8:18:04 makefile | |
631 | 12/04/1997 17:44:11 format.c | |
632 | 12/04/1997 17:44:11 niceprintf.c | |
633 | 12/04/1997 17:14:05 lex.c | |
81fea2b1 JL |
634 | 8/05/1997 10:31:26 malloc.c |
635 | 7/24/1997 17:10:55 README | |
81fea2b1 JL |
636 | 7/24/1997 16:06:19 Notice |
637 | 7/21/1997 12:58:44 proc.c | |
81fea2b1 | 638 | 2/11/1997 23:39:14 vax.c |
81fea2b1 | 639 | 12/04/1996 13:07:53 gram.exec |
81fea2b1 | 640 | 10/01/1996 14:36:18 defs.h |
a843efa0 | 641 | 10/01/1996 14:36:18 init.c |
81fea2b1 JL |
642 | 10/01/1996 14:36:17 data.c |
643 | 9/17/1996 17:29:44 expr.c | |
644 | 9/12/1996 12:12:46 equiv.c | |
645 | 8/27/1996 8:30:32 intr.c | |
646 | 8/26/1996 9:41:13 sysdep.c | |
81fea2b1 JL |
647 | 7/09/1996 10:40:45 names.c |
648 | 7/04/1996 9:58:31 formatdata.c | |
649 | 7/04/1996 9:55:45 sysdep.h | |
650 | 7/04/1996 9:55:43 put.c | |
651 | 7/04/1996 9:55:41 pread.c | |
a843efa0 | 652 | 7/04/1996 9:55:40 parse_args.c |
fbc6d363 | 653 | 7/04/1996 9:55:40 p1output.c |
81fea2b1 JL |
654 | 7/04/1996 9:55:37 misc.c |
655 | 7/04/1996 9:55:36 memset.c | |
656 | 7/04/1996 9:55:36 mem.c | |
657 | 7/04/1996 9:55:35 main.c | |
658 | 7/04/1996 9:55:33 io.c | |
659 | 7/04/1996 9:55:30 exec.c | |
660 | 7/04/1996 9:55:29 error.c | |
661 | 7/04/1996 9:55:27 cds.c | |
662 | 7/03/1996 15:47:49 xsum.c | |
663 | 6/19/1996 7:04:27 f2c.h | |
664 | 6/19/1996 2:52:05 defines.h | |
665 | 5/13/1996 0:40:32 gram.head | |
81fea2b1 JL |
666 | 2/25/1994 2:07:19 parse.h |
667 | 2/22/1994 19:07:20 iob.h | |
668 | 2/22/1994 18:56:53 p1defs.h | |
669 | 2/22/1994 18:53:46 output.h | |
670 | 2/22/1994 18:51:14 names.h | |
671 | 2/22/1994 18:30:41 format.h | |
672 | 1/18/1994 18:12:52 tokens | |
673 | 3/06/1993 14:13:58 gram.expr | |
674 | 1/28/1993 9:03:16 ftypes.h | |
675 | 4/06/1990 0:00:57 gram.io | |
676 | 2/03/1990 0:58:26 niceprintf.h | |
677 | 1/07/1990 1:20:01 usignal.h | |
678 | 11/27/1989 8:27:37 machdefs.h | |
679 | 7/01/1989 11:59:44 pccdefs.h |