Annotation of 43BSD/usr.lib/libI77/NEWS, revision 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.