|
|
1.1 root 1: Update info on the f77 I/O library
2: 28 April, 1983
3:
4: 01 Feb, 1980
5: All instances of:
6: if(!init) f_init();
7: have been removed. f_init() is called from main.c on startup in the new
8: libF77.a .
9:
10: 01 Feb, 1980
11: Backspace now allows non-seek files to reset the EOF flag.
12:
13: 20 Mar, 1980
14: The way SIGINT is handled in libF77/main.c has been changed.
15: If the signal is not SIG_DFL, it is left alone as otherwise the
16: program will be killed if run in the background and the user types DEL.
17: The signal trap that used to be in the I/O lib has been removed.
18:
19: 20 Mar, 1980
20: The ANSI fortran standard requires that I/O routines return to the caller
21: on any error condition if iostat= is specified even if no err= or end=
22: trap is specified. The implication of this is that the program must
23: be prepared to deal with ALL I/O errors if iostat= is specified.
24: If only one trap is specified, end= for example, the program must test the
25: iostat variable for positive/non-zero after the I/O call since return
26: will occur on any error. This seems awkward and I've chosen to make this
27: feature optional. I am interested in other views on this.
28:
29: In the current version of the compiler (using the modified io.c),
30: iostat= is used only to return status information from
31: I/O calls but does not itself cause return on any I/O error. Only
32: the traps, err= and end=, will cause a return/branch, and only for
33: the specified trap(s).
34:
35: This feature has been made a compile time option in the current version
36: of (modified) io.c It implements the standard correctly if compiled
37: with -DKOSHER or -DIOSRETURN. Otherwise it executes as currently
38: implemented.
39:
40: 18 Apr, 1980
41: As originally implemented the '$' specification caused a NULL to be
42: output (inplace of the \n) Actually NULL's should never appear in the
43: formatted output streams. Therefore in "sfe.c" in x_putc() and pr_put()
44: add if (c) before the instances of putc(c,cf)
45:
46: 12 May, 1980
47: Spaces (ASCII 040) do not have significance in FORMAT statements except
48: within strings. In order to accomodate old programs that may have
49: arbitrary occurances of spaces, all spaces are now ignored. Thus the
50: format ( 1 0 X , 1 2 F 1 0 . 4 / ) is accepted.
51:
52: 12 May, 1980
53: A bug in handling partially filled "unformatted direct" records has been
54: fixed by ensuring that all records are complete when written. The bug was
55: that the last record of such a file would cause EOF if a read was attempted
56: for a full record. Existing files of this form should be "fixed" by
57: reading and rewriting the last record using the new version of libI77.a
58:
59: 12 May, 1980
60: BACKSPACE will now open a default file (fort.N) if the specified logical
61: unit is not open. REWIND and other I/O already did this. CLOSE and
62: ENDFILE do not open a default file.
63:
64: ?? November, 1980
65: The modified io.c no longer supported. SIF feels it should conform
66: exactly with the standard. This means that iostat= will cause return
67: in all cases, regardless of the presence or absence of err= or end=.
68:
69: ?? February, 1981
70: Backspace will reset EOF on any unit, even if it can't "seek".
71: You still can't "rewind" non-seekable units.
72:
73: 25 March, 1981
74: There is now a f77 I/O error list available in the lib. libU77.a routines
75: use it. All error numbers have symbollic values.
76:
77: 18 April, 1981
78: Zero fill can be forced on output of true zero by the BZ format control.
79:
80: 28 April, 1981
81: It is now possible to read into a hollerith field in a format string.
82: This is not encouraged!
83:
84: 8 May, 1981
85: There is a pseudo-lib to force ANSI-fortran-66 I/O to logical unit 6:
86: carriage control will be interpreted, and blanks will be '0's.
87: Include -lI66 on the command line.
88:
89: 8 May, 1981
90: The error report will show non-graphic chars as ^X a la vi.
91:
92: 11 August, 1981
93: SFE read with a null list at EOF now takes the error branch.
94: All routines check the return value of 'nowreading/nowwriting'; this
95: should fix the bug causing infinite looping on close of a write
96: protected file on which writing had been attempted (it will take the err=
97: branch, if any)
98:
99: 6 December, 1981
100: t_runc now looks for current pos >= EOF. This solves the bug where
101: it loops indefinitely in close if written to /dev/null.
102:
103: 12 May, 1982
104: backspace on a lu at EOF now clears the stdio flags as well as the libI77
105: EOF flag. This fixes the problem of spurious EOF branches on terminal
106: input.
107:
108: open now checks for a non-zero recl argument on sequential access files.
109: It complains and ignores the recl spec.
110:
111: 10 January, 1983
112: Mag tape I/O routines added. See topen.3f. The reason is that Fortran-77
113: I/O requirements are very difficult (or impossible) to meet on mag tape.
114:
115: 15 April, 1983
116: new routine, ioinit, allows specifying "open at beginning" for files,
117: carriage control on unit 6, and preset association of logical units
118: with file pathnames from the environment.
119:
120: 28 April, 1983
121: The new kernel features of 4.2bsd have been incorporated. A number
122: of obscure bugs fixed.
123:
124: Files are now opened at the BEGINNING!!
125:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.