Annotation of 43BSDReno/lib/libI77/NEWS, revision 1.1.1.1

1.1       root        1:                Update info on the f77 I/O library
                      2:                        6 June, 1985
                      3:                In order of fix (not in reverse order)
                      4: 
                      5: 01 Feb, 1980
                      6:    All instances of:
                      7:        if(!init) f_init();
                      8:    have been removed. f_init() is called from main.c on startup in the new
                      9:    libF77.a .
                     10: 
                     11: 01 Feb, 1980
                     12:    Backspace now allows non-seek files to reset the EOF flag.
                     13: 
                     14: 20 Mar, 1980
                     15:    The way SIGINT is handled in libF77/main.c has been changed.
                     16:    If the signal is not SIG_DFL, it is left alone as otherwise the
                     17:    program will be killed if run in the background and the user types DEL.
                     18:    The signal trap that used to be in the I/O lib has been removed.
                     19: 
                     20: 20 Mar, 1980
                     21:    The ANSI fortran standard requires that I/O routines return to the caller
                     22:    on any error condition if iostat= is specified even if no err= or end=
                     23:    trap is specified. The implication of this is that the program must
                     24:    be prepared to deal with ALL I/O errors if iostat= is specified.
                     25:    If only one trap is specified, end= for example, the program must test the
                     26:    iostat variable for positive/non-zero after the I/O call since return
                     27:    will occur on any error. This seems awkward and I've chosen to make this
                     28:    feature optional. I am interested in other views on this.
                     29:    
                     30:    In the current version of the compiler (using the modified io.c),
                     31:    iostat= is used only to return status information from
                     32:    I/O calls but does not itself cause return on any I/O error. Only
                     33:    the traps, err= and end=, will cause a return/branch, and only for
                     34:    the specified trap(s).
                     35:    
                     36:    This feature has been made a compile time option in the current version
                     37:    of (modified) io.c It implements the standard correctly if compiled
                     38:    with -DKOSHER or -DIOSRETURN. Otherwise it executes as currently
                     39:    implemented.
                     40: 
                     41: 18 Apr, 1980
                     42:    As originally implemented the '$' specification caused a NULL to be
                     43:    output (inplace of the \n) Actually NULL's should never appear in the
                     44:    formatted output streams. Therefore in "sfe.c" in x_putc() and pr_put()
                     45:    add      if (c)      before the instances of      putc(c,cf)
                     46: 
                     47: 12 May, 1980
                     48:    Spaces (ASCII 040) do not have significance in FORMAT statements except
                     49:    within strings. In order to accomodate old programs that may have
                     50:    arbitrary occurances of spaces, all spaces are now ignored. Thus the
                     51:    format ( 1 0 X , 1 2 F 1 0 . 4 / ) is accepted.
                     52: 
                     53: 12 May, 1980
                     54:    A bug in handling partially filled "unformatted direct" records has been
                     55:    fixed by ensuring that all records are complete when written. The bug was
                     56:    that the last record of such a file would cause EOF if a read was attempted
                     57:    for a full record. Existing files of this form should be "fixed" by
                     58:    reading and rewriting the last record using the new version of libI77.a
                     59: 
                     60: 12 May, 1980
                     61:    BACKSPACE will now open a default file (fort.N) if the specified logical
                     62:    unit is not open. REWIND and other I/O already did this. CLOSE and
                     63:    ENDFILE do not open a default file.
                     64: 
                     65: ?? November, 1980
                     66:    The modified io.c no longer supported. SIF feels it should conform
                     67:    exactly with the standard. This means that iostat= will cause return
                     68:    in all cases, regardless of the presence or absence of err= or end=.
                     69: 
                     70: ?? February, 1981
                     71:    Backspace will reset EOF on any unit, even if it can't "seek".
                     72:    You still can't "rewind" non-seekable units.
                     73: 
                     74: 25 March, 1981
                     75:    There is now a f77 I/O error list available in the lib. libU77.a routines
                     76:    use it. All error numbers have symbollic values.
                     77: 
                     78: 18 April, 1981
                     79:    Zero fill can be forced on output of true zero by the BZ format control.
                     80: 
                     81: 28 April, 1981
                     82:    It is now possible to read into a hollerith field in a format string.
                     83:    This is not encouraged!
                     84: 
                     85: 8 May, 1981
                     86:    There is a pseudo-lib to force ANSI-fortran-66 I/O to logical unit 6:
                     87:    carriage control will be interpreted, and blanks will be '0's.
                     88:    Include -lI66 on the command line.
                     89: 
                     90: 8 May, 1981
                     91:    The error report will show non-graphic chars as ^X a la vi.
                     92: 
                     93: 11 August, 1981
                     94:    SFE read with a null list at EOF now takes the error branch.
                     95:    All routines check the return value of 'nowreading/nowwriting'; this
                     96:    should fix the bug causing infinite looping on close of a write
                     97:    protected file on which writing had been attempted (it will take the err=
                     98:    branch, if any)
                     99: 
                    100: 6 December, 1981
                    101:    t_runc now looks for current pos >= EOF. This solves the bug where
                    102:    it loops indefinitely in close if written to /dev/null.
                    103: 
                    104: 12 May, 1982
                    105:    backspace on a lu at EOF now clears the stdio flags as well as the libI77
                    106:    EOF flag. This fixes the problem of spurious EOF branches on terminal
                    107:    input.
                    108: 
                    109:    open now checks for a non-zero recl argument on sequential access files.
                    110:    It complains and ignores the recl spec.
                    111: 
                    112: 10 January, 1983
                    113:    Mag tape I/O routines added. See topen.3f. The reason is that Fortran-77
                    114:    I/O requirements are very difficult (or impossible) to meet on mag tape.
                    115: 
                    116: 15 April, 1983
                    117:    new routine, ioinit, allows specifying "open at beginning" for files,
                    118:    carriage control on unit 6, and preset association of logical units
                    119:    with file pathnames from the environment.
                    120: 
                    121: 28 April, 1983
                    122:    The new kernel features of 4.2bsd have been incorporated. A number
                    123:    of obscure bugs fixed.
                    124: 
                    125:    Files are now opened at the BEGINNING!!
                    126: 
                    127: 4.3 BSD, Mar-June, 1985:
                    128: 
                    129:    Appropriately named environment variables now override default file
                    130:    names and names in open statements.  See "Intro. to I/O lib." for details.
                    131: 
                    132:    Unit numbers can vary from 0-99, number simultaneously open varies by
                    133:    system - I/O lib. doesn't check this.  No longer explicitly initialize
                    134:    unit table to zero, it's global so C guarantees zeros; why waste space
                    135:    in the modules?
                    136: 
                    137:    Much of input scanning for formatted reads has been rewritten; illegal
                    138:    data will now be caught!  On list directed reads, tabs are now fully
                    139:    equivalent to blanks; <count>* followed by blanks now skips <count>
                    140:    items in the list as the standard requires & counts work with complex data.
                    141: 
                    142:    Formats in format statements are compiled; those in character constants
                    143:    and variables in I/O statements are not.
                    144: 
                    145:    All errors call f77_abort() in libF77 for centralized error handling.
                    146: 
                    147:    Now attempt to get to next record if doing 'err=' branch on error.
                    148:    Standard does not require this, but it is nice not to leave the
                    149:    system hanging in mid record.
                    150: 
                    151:    Lot's of routines and variables made static; number of T,C, and D
                    152:    symbols in the library went from about 230 to 130.
                    153: 
                    154:    .c files reorganized so only get whats needed loaded; e.g.
                    155:    you no longer get formatted read routines loaded if you only do
                    156:    formatted writes.
                    157: 
                    158:    the library now checks for infinite loops in formats - printing multiple
                    159:    records after the list is exhausted.
                    160: 
                    161:    standard error is now buffered.
                    162: 
                    163:    error messages have been improved.
                    164: 
                    165: July 12, 1985:
                    166:    Moved f77_abort() and patch it here from libF77/main.c so that C programs
                    167:    which call Fortran programs which do Fortran I/O will load properly.
                    168: 
                    169: July 25, 1985:
                    170:    fixed auxilliary I/O to be closer to standard: close is no-op on non-existent
                    171:    unit or not connected unit; rewind & backspace are no-ops on non-connected
                    172:    units; endfile opens non-connected unit. inquire returns true when asked
                    173:    if units 0-MAXUNIT exist, false for other integers, it used to return
                    174:    false for legal but unconnected & error for illegal #s.
                    175: 
                    176:    Inquire now fills in all requested fields, even if file or unit doesn't
                    177:    exist or is not connected. inquire by unit now correctly returns unit
                    178:    number.
                    179: 
                    180:    Added Namelist I/O - mostly like IBM, but similar to VMS.
                    181: 
                    182:    Cosmetic change - 'sequential' and 'external' are now set only to YES and NO.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.