Annotation of 43BSDReno/share/doc/smm/12.uchanges/1.t, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1986 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)1.t 6.12 (Berkeley) 4/15/86
                      6: .\"
                      7: .sp
                      8: .ce
                      9: .LG
                     10: .B "Bug fixes and changes"
                     11: .SM
                     12: .sp
                     13: .LP
                     14: .LP
                     15: .LG
                     16: .ce
                     17: Section 1
                     18: .SM
                     19: .sp
                     20: .PP
                     21: .de BP
                     22: .IP \fB\\$1\\fR 14n
                     23: ..
                     24: .BP adb
                     25: Locates the stack frame when debugging the kernel.
                     26: Slight changes were made to output formats.
                     27: .BP arcv
                     28: Has been retired to \fI/usr/old\fP.
                     29: .BP as
                     30: The default data alignment may now be specified on the
                     31: command line with a \fB\-a\fP flag.
                     32: A problem in handling filled data was fixed.
                     33: Some bugs in the handling of dbx stab information were fixed.
                     34: .BP at
                     35: The user may now choose to run \fIsh\fP or \fIcsh\fP.
                     36: Mail can now be sent to the user after the job has run;
                     37: mail is always sent if there were any errors during execution.
                     38: .I At
                     39: now runs with the user's full permissions.
                     40: All spool files are now owned by ``daemon''.
                     41: The last update time is in seconds instead of hours.
                     42: The problems with day and year increments have been fixed.
                     43: .BP awk
                     44: Problems when writing to pipes have been corrected.
                     45: .BP bc
                     46: .I Bc
                     47: will continue reading from standard input,
                     48: after failing to open a file specified from the command line.
                     49: .BP calendar
                     50: Now allows tabs as separators.
                     51: A subject line with the date of the reminder is added to each message.
                     52: .BP cat
                     53: Problems opening standard input multiple times have been fixed.
                     54: .I Cat
                     55: now runs much faster in the default (optionless) case.
                     56: .BP cb
                     57: No longer dumps core for unterminated comments
                     58: or large block comments.
                     59: For most purposes,
                     60: .I indent (1)
                     61: is far superior to
                     62: .I cb .
                     63: .BP cc
                     64: The C compiler has some new features as well as numerous bug fixes.
                     65: The principal new feature is a
                     66: .B \-f
                     67: flag that tells the compiler to compute expressions
                     68: of type
                     69: .B float
                     70: in single precision,
                     71: following the ANSI C standard proposals.
                     72: The C preprocessor has been extended to generate the dependency list for
                     73: source files.
                     74: The output is designed for inclusion in a makefile without
                     75: modification.
                     76: .IP
                     77: The bug fixes are many and varied.
                     78: Several fixes deal with type coercion and sign extension.
                     79: Signed
                     80: .B char
                     81: and
                     82: .B short
                     83: values are now properly sign-extended
                     84: in comparisons with unsigned values
                     85: of the same length.
                     86: Conversion of a signed
                     87: .B char
                     88: value to \fBunsigned short\fP now correctly sign-extends
                     89: to 16 bits (on the VAX).
                     90: Non-integer switch expressions now elicit warnings
                     91: and the appropriate conversions are emitted.
                     92: Unsigned longs were being treated as signed for the purpose of
                     93: conversion to floating types; the compiler now produces the appropriate
                     94: complicated instruction sequence to do this right.
                     95: An ancient misunderstanding that caused
                     96: .I "i *= d
                     97: to be treated as \fIi = i *\fP (\fBint\fP) \fId\fP
                     98: instead of \fIi =\fP (\fBdouble\fP) \fIi * d\fP
                     99: for \fBint\fP \fIi\fP
                    100: and \fBdouble\fP \fId\fP
                    101: has been corrected.
                    102: If a signed integer division or modulus is cast to unsigned,
                    103: the unsigned division or modulus routine
                    104: is no longer used to compute the operation.
                    105: .IP
                    106: Some problems with bogus input and bogus output
                    107: are now handled better;
                    108: more syntax errors are caught and
                    109: fewer code errors are emitted.
                    110: Many declarations and expressions involving type
                    111: .B void
                    112: that used to be disallowed now work;
                    113: some expressions that were not supposed to work
                    114: are now caught.
                    115: A pointer to a structure no longer stands a chance
                    116: of being incremented by the size of its first element
                    117: instead of the size of the structure
                    118: when the value of the element is used at the same
                    119: time the pointer is postincremented.
                    120: Side effects in the left hand side of
                    121: an unsigned assignment operator expression
                    122: are now performed only once.
                    123: Hex constants of the form 01234x56789 are now illegal.
                    124: External declarations of functions
                    125: may now possess arguments only if
                    126: they are also definitions of functions.
                    127: Declarations or initializations for objects of type structure
                    128: where the particular structure was not previously defined
                    129: used to result in confusing messages or even compiler errors;
                    130: it's now possible to deduce one's mistake.
                    131: .IP
                    132: Some effort has been put into
                    133: making the compiler more robust.
                    134: Initializers containing casts sometimes would draw
                    135: complaints about compiler loops or other problems;
                    136: these now work properly.
                    137: The register resource calculation now
                    138: takes into account implicit conversions from
                    139: .B float
                    140: to
                    141: .B double
                    142: type, so that the code generator
                    143: will not block by running out of registers.
                    144: The compiler is more diligent about
                    145: reducing structure type arguments to functions
                    146: and no longer gives up when it cannot
                    147: reduce the address to an offset from a register
                    148: in only two tries.
                    149: Programs that end in ``\|\e\|n\|#\|'' no longer cause compiler core dumps.
                    150: The compiler no longer dumps core
                    151: for floating point exceptions that
                    152: occur during reduction of constant expressions.
                    153: The compiler expression tree table
                    154: was enlarged so that it does not run out
                    155: of space as quickly when processing complex expressions
                    156: such as
                    157: .I putchar(c) .
                    158: The C preprocessor no longer uses a statically allocated
                    159: space for strings.
                    160: The preprocessor also now handles
                    161: .B "#\ line
                    162: directives properly
                    163: and correctly treats standard input from a terminal or a pipe.
                    164: Two fencepost errors in the C peephole optimizer
                    165: were adjusted and it now dumps core less often.
                    166: .IP
                    167: Some minor code efficiency changes were made.
                    168: An important change is that the compiler
                    169: now recognizes unsigned division and modulus operations
                    170: that can be done with masking and shifting;
                    171: this avoids the usual subroutine call overhead
                    172: associated with these operations.
                    173: The computation of register resources
                    174: has improved so that
                    175: the number of registers required for an expression
                    176: is not overestimated as often.
                    177: Register storage declarations for
                    178: .B float
                    179: variables now cause them to be put in registers
                    180: if the
                    181: .B \-f
                    182: flag is used.
                    183: The compiler itself is somewhat faster,
                    184: thanks primarily to a change that considerably
                    185: reduces symbol table searches
                    186: when entering and leaving blocks.
                    187: .IP
                    188: The compiler sources have been rearranged to make maintenance easier.
                    189: The names of some source files have been changed to protect the innocent;
                    190: header files now end in
                    191: .I .h ,
                    192: and names of files reflect their functions.
                    193: Configuration control has been simplified,
                    194: so that only a simple configuration include file
                    195: and the makefile flags variable should have to be considered
                    196: when putting the compiler together.
                    197: Redundant information has been eliminated from
                    198: include files and the makefile,
                    199: to reduce the chance of introducing changes
                    200: that will make data structures or defines inconsistent.
                    201: Values for opcodes are now taken
                    202: from an include file
                    203: .I pcc.h
                    204: that is common to all the compilers
                    205: that use the C compiler back end.
                    206: The peephole optimizer can now be compiled without
                    207: .B \-w .
                    208: .BP checknr
                    209: The
                    210: .B "\&.T&
                    211: .I tbl
                    212: directive was added to the list of known commands.
                    213: .BP chfn
                    214: Has been merged into
                    215: .I passwd (1).
                    216: .BP chgrp
                    217: An option has been added for recursively
                    218: changing the group of a directory tree.
                    219: .BP chmod
                    220: Can now recursively modify the permissions on a directory tree.
                    221: The mode string was extended to turn on the execute bit
                    222: conditionally if the file is executable or is a directory.
                    223: .BP chsh
                    224: Has been merged into
                    225: .I passwd (1).
                    226: .BP clear
                    227: Now has a proper exit status.
                    228: .BP colrm
                    229: Line length limitations have been removed.
                    230: .BP compact
                    231: Has been retired to \fI/usr/old\fP.
                    232: .BP compress
                    233: Replaces \fIcompact\fP as the preferred method to use in saving file
                    234: system space.
                    235: .BP cp
                    236: No longer suffers
                    237: problems when copying a directory to a nonexistent name or when
                    238: some directories are not writable in a recursive copy.
                    239: The \fB\-p\fP flag was added to preserve modes
                    240: and times when copying files.
                    241: .BP crypt
                    242: Waits for
                    243: .I makekey
                    244: to finish before reading from its pipe.
                    245: .BP csh
                    246: Has a new flag to stop argument processing so set user id shell scripts are more
                    247: secure.  File name completion may be optionally enabled.
                    248: .I Csh
                    249: keeps better
                    250: track of the current directory when traversing symbolic links.
                    251: Some major work was done on performance.
                    252: .BP ctags
                    253: .I Ctags
                    254: was modified to recognize LEX and YACC input files.
                    255: Files ending in
                    256: .I "\&.y
                    257: are presumed to be YACC input,
                    258: and a tag is generated for each non-terminal defined,
                    259: plus a tag
                    260: .B yyparse
                    261: for the first %% line in the file.
                    262: Files ending in \fI.l\fP are checked to see if they are
                    263: LEX or Lisp files.
                    264: A tag \fByylex\fP is generated for the first %% line in a LEX file.
                    265: In addition, for both kinds of files,
                    266: any C source after a second %% is scanned for tags.
                    267: .BP date
                    268: The
                    269: .I date
                    270: command can now be used to set the date on all machines in a network using the
                    271: .I timed (8)
                    272: program.
                    273: More information is logged regarding the setting of time.
                    274: .BP dbx
                    275: Major improvements have been made to
                    276: .I dbx
                    277: since the 4.2BSD release.
                    278: Large numbers of bug fixes have made
                    279: .I dbx
                    280: much more pleasant to use;
                    281: in particular many pointer errors that used to cause
                    282: .I dbx
                    283: to crash have been caught.
                    284: Some new features have been installed;
                    285: for instance it is now possible to search
                    286: for source lines with regular expressions.
                    287: The Fortran and Pascal language support is much improved,
                    288: and the DEC Western Research Labs Modula-2 compiler
                    289: is now supported.
                    290: .BP dd
                    291: Exit codes have been changed to correspond with normal conventions.
                    292: .BP deroff
                    293: .I Deroff
                    294: no longer throws out two letter words.
                    295: .BP diff
                    296: Context diffs merge nearby changes.
                    297: New flags were added for ignoring white space
                    298: differences and for insensitivity to case.
                    299: .BP diff3
                    300: The RCS version of \fIdiff3\fP has been merged
                    301: into the standard \fIdiff3\fP
                    302: under two new flags, \fB\-E\fP and \fB\-X\fP.
                    303: .BP echo
                    304: No longer accepts \fB\-n\fIanything\fR in place of \fB\-n\fP.
                    305: .BP error
                    306: Support for the DEC Western Research Labs Modula-2 compiler has been added.
                    307: .I Error
                    308: will now be able to run when there is no associated tty,
                    309: so it may now be driven from \fIat\fP(1), etc.
                    310: If the \fB\-n\fP and \fB\-t\fP options are selected,
                    311: .I error
                    312: will not touch files.
                    313: .BP ex
                    314: Support for changing window size has been added,
                    315: and terminals with many lines,
                    316: such as the WE5620,
                    317: are now handled.
                    318: Several small bug fixes were installed
                    319: and various facilities have been made faster.
                    320: .I Ex
                    321: only reads the file
                    322: .I "\&.exrc
                    323: if it is owned by the user, unless
                    324: the \fIsourceany\fP option is set.
                    325: It only looks for ``mode lines'' if the \fImodeline\fP option is set.
                    326: If Lisp mode is set, it allows ``\-'' to be used in ``words''.
                    327: .I Expreserve
                    328: now provides a better description of what happened
                    329: to a user's buffer when disaster struck.
                    330: .BP eyacc
                    331: \fIeyacc\fP is no longer a standard utility.
                    332: It has been moved to the Pascal source directory.
                    333: .BP f77
                    334: The Fortran compiler has been substantially improved.
                    335: Many serious bugs have been fixed since the last release;
                    336: the compiler now passes several widely used tests
                    337: such as the Navy Fortran Compiler Validation System and
                    338: the IMSL and NAG mathematical libraries.
                    339: The optimizer is now trustworthy and robust;
                    340: the many gruesome bugs that it used to inflict on programs,
                    341: such as resolving different variables in the same
                    342: .B common
                    343: block into the same temporary for purposes
                    344: of common subexpression elimination,
                    345: have been fixed.
                    346: .B Do
                    347: loops, which used to suffer from deadly problems
                    348: where loop variables, limit values and tests all managed
                    349: to misfire even without the help of the optimizer,
                    350: now produce proper results.
                    351: Many severe bugs with
                    352: .B character
                    353: variables and expressions have been fixed;
                    354: it is now possible to have variable length
                    355: .B character
                    356: variables on either side of an assignment,
                    357: and the lengths of concatenations are properly computed.
                    358: Several register allocation bugs have been fixed,
                    359: among them the awful bug that
                    360: .I "a = f\|(a)
                    361: where
                    362: .I a
                    363: is in a register would not alter the value of \fIa\fP.
                    364: Register allocation, though significantly improved,
                    365: is still pitifully naive compared
                    366: with the methods found in production Fortran compilers.
                    367: .B Save
                    368: statements cause variables to be retained,
                    369: even if a subroutine returns from inside a loop.
                    370: It is no longer possible to modify constants
                    371: that are passed as parameters to subroutines
                    372: and thus change all future uses of the constant
                    373: when it is used as a subroutine parameter.
                    374: Multi-level equivalences are no longer scrambled,
                    375: and the
                    376: .B cmplx
                    377: intrinsic conversion function
                    378: no longer garbles its result.
                    379: The compiler now generates integer move instructions
                    380: where it used to produce floating point move instructions,
                    381: even when not optimizing, so that non-standard use of equivalences
                    382: between
                    383: .B real
                    384: and
                    385: .B integer
                    386: types work as on most other systems.
                    387: .B Assign
                    388: statements now work with
                    389: .B format
                    390: statements.
                    391: The ``first character'' parameter of a substring
                    392: is now evaluated only once instead of twice.
                    393: Restrictions on
                    394: .B parameter
                    395: variables are now enforced,
                    396: and the compiler no longer aborts while
                    397: trying to make sense of impossible
                    398: .B parameter
                    399: variables.
                    400: The restrictions on array dimension declarators
                    401: are much closer to the standard and much more stringent.
                    402: Statement ordering used to be much more flexible, and wrong;
                    403: it is now strictly enforced,
                    404: leading to fewer compiler errors.
                    405: The compiler now chides the user for
                    406: declaring adjustable length character variables
                    407: that are not dummy arguments.
                    408: The compiler understands that subroutines and functions
                    409: are different and prevents them from being used interchangeably.
                    410: The parser is no longer fooled by excess
                    411: ``positional I/O control'' parameters in I/O statements.
                    412: .IP
                    413: Several changes have been made to prevent the compiler
                    414: itself from aborting;
                    415: in particular, computed \fBgoto\fPs
                    416: do not elicit compiler core dumps,
                    417: nor do multiplications by zero,
                    418: nor do unusual statement numbers.
                    419: The compiler now recognizes and complains about
                    420: various kinds of hardware errors that
                    421: can result from evaluating constant expressions,
                    422: such as integer and floating overflow;
                    423: it no longer dies when it receives a SIGFPE.
                    424: Several memory management bugs that
                    425: caused the compiler to dump core for
                    426: seemingly random things have met their demise.
                    427: Some conversion operations used to cause
                    428: the code generator to emit impossible
                    429: assembly language instructions
                    430: that in turn caused the assembler some indigestion;
                    431: these are now fixed.
                    432: Some symbol table modifications were made to help out \fIdbx\fP(1),
                    433: so that values of
                    434: .B common
                    435: and
                    436: .B parameter
                    437: storage classes
                    438: and
                    439: .B logical
                    440: types are now accessible from \fIdbx\fP.
                    441: When the compiler does abort,
                    442: the error messages produced are now comprehensible to human beings
                    443: and messy core dumps are no longer left behind.
                    444: Some effort has been made to improve error reporting
                    445: for program errors and to handle exceptional conditions in which
                    446: the old compiler used to punt.
                    447: .IP
                    448: Some improvements in optimization were
                    449: added to the compiler.
                    450: Offsets to static data are now
                    451: shorter than before;
                    452: the compiler used to produce 32-bit offsets
                    453: for all local variables.
                    454: .B Real
                    455: variables may now be allocated to registers.
                    456: Format strings in \fBformat\fP statements are compiled
                    457: for considerable runtime savings;
                    458: for various reasons, format strings
                    459: in character constants and variables in I/O statements are not.
                    460: Common subexpression elimination
                    461: now reduces the re-evaluation of exponentiations
                    462: in polynomial expressions.
                    463: Some problems with alignment of data
                    464: that caused ghastly performance degradation have been repaired.
                    465: .IP
                    466: Some changes have been made in the way the compiler is put together.
                    467: The compiler front end now uses the common intermediate code format
                    468: established in the include file
                    469: .I pcc.h
                    470: to communicate with the back end.
                    471: The back end has been re-merged with the C compiler sources,
                    472: so that bug fixes to the C compiler
                    473: are automatically propagated to the Fortran back end.
                    474: Similarly, the Fortran and C peephole optimizers were re-merged.
                    475: .IP
                    476: Some new features were added to the compiler.
                    477: There is now a
                    478: .B \-r8
                    479: flag to coerce
                    480: .B real
                    481: and
                    482: .B complex
                    483: variables and constants to
                    484: double precision and double complex
                    485: types for extended precision.
                    486: There is a
                    487: .B \-q
                    488: flag to suppress listing of file and entry names during compilation.
                    489: Some foolproofing was added to the compiler driver;
                    490: it is no longer possible to wipe out a source file
                    491: by entering ``f77 \-o foo.f'',
                    492: and it now complains about incompatible combinations of options.     
                    493: .IP
                    494: Many I/O library bugs were fixed.
                    495: Auxiliary I/O has been fixed to be closer to the standard:
                    496: \fIclose\fP is a no-op on a non-existent or unconnected unit;
                    497: \fIrewind\fP and \fIbackspace\fP are no-ops on an unconnected unit;
                    498: \fIendfile\fP opens an unconnected unit.
                    499: \fIInquire\fP returns \fBtrue\fP when asked
                    500: if units 0-MAXUNIT exist, \fBfalse\fP for other integers; it used to return
                    501: \fBfalse\fP for legal but unconnected file numbers
                    502: and errors for illegal numbers.
                    503: \fIInquire\fP now fills in all requested fields,
                    504: even if the file or unit does not
                    505: exist or is unconnected.
                    506: \fIInquire\fP by unit now correctly returns the unit number.
                    507: Most of the formatted I/O input scanning has been rewritten to check
                    508: for invalid input.
                    509: For example, with an
                    510: .I f10.0
                    511: format term, the following all used to read as 12.345:
                    512: ``1+2.345'', ``12.3abc45'', ``12.3.45'', ``12345e1-'';
                    513: they now generate errors.
                    514: Conversely, the legal datum ``12345-2'' for 12.345 used to be misread
                    515: as -1234.52.
                    516: The
                    517: .I b
                    518: format term is now fixed,
                    519: and
                    520: .I bz
                    521: now works for short records.
                    522: Reads of short
                    523: .B logical
                    524: variables no longer overwrite neighboring data
                    525: in memory.
                    526: Infinite loops in formatted output (an I/O list but no conversion terms
                    527: in the format) are now caught,
                    528: printing multiple records after the list is exhausted.
                    529: In list directed reads, a repeat count, \fIr\fP,
                    530: followed by an asterisk and
                    531: a space (and no comma) now follows the standard and skips
                    532: .I r
                    533: list items.
                    534: Repeat counts for complex constants now work.
                    535: Tabs are now fully equivalent to spaces in list directed input.
                    536: There are two new formatting terms,
                    537: .I x
                    538: for hex
                    539: and
                    540: .I o
                    541: for octal.
                    542: The library now attempts to get to the next record if doing an
                    543: \fBerr=\fP branch on error;
                    544: the standard does not require this,
                    545: but it is undesirable to leave the system hanging in mid record.
                    546: After input errors, the I/O library now tries to skip to
                    547: the next line if there is another read.
                    548: This functionality is not required by the standard
                    549: and is still not guaranteed to work.
                    550: .IP
                    551: The Fortran runtime and I/O libraries have several new features.
                    552: Many routines and variables have been made static, cutting
                    553: the number of symbols defined by the library almost in half.
                    554: Many source files have been reorganized to eliminate the loading of
                    555: extraneous routines; for example,
                    556: the formatted read routines are not loaded
                    557: if a program only performs formatted writes.
                    558: Standard error is now buffered.
                    559: All error processing is now centralized in a single routine, \fIf77_abort\fP.
                    560: The \fIf77_abort\fP
                    561: routine has been separated from the normal Fortran main routine so
                    562: that C code can call Fortran subroutines.  Fortran programs
                    563: that abort normally get a core file only if they are loaded with
                    564: \fB\-g\fP; the environment variable \fBf77_dump_flag\fP may be used to override
                    565: this by setting it to \fIy\fP or \fIn\fP.
                    566: The
                    567: .I rindex
                    568: routine now works as documented.
                    569: The C library
                    570: .I malloc
                    571: and
                    572: .I random
                    573: routines may now be accessed from Fortran.
                    574: .IP
                    575: The new VAX math library has been incorporated
                    576: and some bugs in calling math library routines have been fixed.
                    577: The routine \fId_dprod\fP was added for use with the \fB\-r8\fP flag.
                    578: The \fIsinh\fP and \fItanh\fP routines have been deleted as
                    579: they are loaded directly from the math library.
                    580: The \fIlog10\fP routine from the math library
                    581: is now used by \fIr_lg10\fP and \fId_lg10\fP.  
                    582: The \fIpow\fP routines now divide by zero when zero is raised
                    583: to a negative power so as to generate an exception.
                    584: Complex division by zero now generates an error message.
                    585: .IP
                    586: Appropriately named environment variables now override default file
                    587: names and names in open statements;
                    588: see ``Introduction to the f77 I/O Library'' for details.
                    589: Unit numbers may vary from 0 to 99; the maximum number 
                    590: that can be open simultaneously
                    591: depends on the system configuration limit
                    592: (the library does not check this value).
                    593: Namelist I/O similar to that in VMS Fortran has been added to the compiler,
                    594: and library routines to implement it have been added to the I/O library.
                    595: The documents ``A Portable Fortran 77 Compiler'' and ``Introduction
                    596: to the f77 I/O Library'' have been revised to describe these changes.
                    597: The new \fIhelp\fP system on the distribution tape in the user contributed
                    598: software section contains a large set of help files for f77.
                    599: .BP fed
                    600: Has been retired to \fI/usr/old\fP.
                    601: .BP find
                    602: Some new options have been added.
                    603: It is now possible to choose users or groups that have no names
                    604: by using the \fB\-nouser\fP and \fB\-nogroup\fP options.
                    605: The \fB\-ls\fP option provides a built in
                    606: .I ls
                    607: facility to allow the printing of various file attributes;
                    608: it is identical to ``ls \-lgids''.
                    609: It is now possible to restrict
                    610: .I find
                    611: to the file system of the initial path name with the \fB\-xdev\fP option.
                    612: A new type, \fB\-type\fP \fIs\fP,
                    613: for sockets has been added.
                    614: Symbolic links are now handled better.
                    615: Globbing is now faster.
                    616: .I Find
                    617: supports an abbreviated notation, ``find \fIpattern\fP,''
                    618: which searches for a pattern in a database
                    619: of the system's path names;
                    620: this is much faster than the standard method.
                    621: .BP finger
                    622: Despite numerous changes, \fIfinger\fP still has Berkeley parochialisms.
                    623: It has been modified to provide finger information over the network.
                    624: Control characters are mapped to their printable equivalents
                    625: (e.g. ^X) to avoid trojan horses in
                    626: \fI\&.plan\fP and \fI.profile\fP files.
                    627: .BP file
                    628: .I File
                    629: has been extended to recognize sockets,
                    630: compressed files (\fI.Z\fP),
                    631: and shell scripts.
                    632: When it determines that a file is a shell script, 
                    633: it tries to discover whether it is a Bourne shell script or a C shell script.
                    634: The special bits set user id, sticky, and append-only are also noted.
                    635: The value of a symbolic link is now printed.
                    636: .BP from
                    637: An error message is printed if the requested mailbox cannot be opened.
                    638: .BP ftp
                    639: Many bugs have been fixed.
                    640: New features are:
                    641: support for new RFC959 FTP features (such as ``store unique''),
                    642: new commands that manipulate local and remote file names
                    643: to better support connections to non-UNIX systems,
                    644: support for third party file transfers between two 
                    645: simultaneously connected remote hosts,
                    646: transfer abort support,
                    647: expanded and documented initialization procedures (the \fI.netrc\fP file),
                    648: and a simple command macro facility.
                    649: .BP gprof
                    650: Uses \fIsetitimer\fP to discover the clock frequency
                    651: instead of looking it up in \fI/dev/kmem\fP.
                    652: An alphabetical index printing routine has been added.
                    653: A few changes were made to the output format; a new column
                    654: indicates milliseconds per call.
                    655: .BP groups
                    656: Now prints out the group listed in the password file in addition to the 
                    657: groups listed in the groups file.
                    658: .BP help
                    659: Has been superseded by the \fIhelp\fP facility included in the
                    660: User Contributed Software.
                    661: .BP hostid
                    662: Has been extended to take an Internet address or hostname.
                    663: .BP indent
                    664: Has been completely rewritten;
                    665: its default mode now produces programs
                    666: somewhat more closely reflecting the local Berkeley style.
                    667: .BP install
                    668: The \fIchmod\fP in the \fIinstall\fP script
                    669: uses \fB\-f\fP so that it does not complain if it fails.
                    670: When \fImv\fP'ing and \fIstrip\fP'ing a binary (\fB\-s\fP and not \fB\-c\fP),
                    671: the \fIstrip\fP is done before the \fImv\fP to
                    672: avoid fragmentation on the destination file system.
                    673: .BP iostat
                    674: Disk statistics are collected by an alternate clock, if it exists.
                    675: Overflow detection has been added to avoid printing negative times.
                    676: A call to
                    677: \fIfflush\fP was added so that \fIiostat\fP works through pipes and sockets.
                    678: Code to handle additional disks was added in the same way as in \fIvmstat\fP.
                    679: The header is reprinted when \fIiostat\fP is restarted.
                    680: .BP kill
                    681: Signal 0 may now be used as documented.
                    682: .BP lastcomm
                    683: Several bug fixes were installed.
                    684: \fILastcomm\fP now understands the revised accounting units.
                    685: .BP ld
                    686: A list of directories to search for libraries may now be specified on
                    687: the command line.
                    688: .BP learn
                    689: The ``files'' lesson has been updated to reflect the default
                    690: system tty conventions for erase and kill characters.
                    691: .I Learn
                    692: now uses directory access routines so that trash files
                    693: can be removed properly between lessons.
                    694: .BP leave
                    695: Now ignores SIGTTOU and properly handles the +\fIhhmm\fP option.
                    696: .BP lex
                    697: The error messages have been made more informative.
                    698: .BP lint
                    699: Tests for negative or excessively large constant shifts were added.
                    700: For \fB\-a\fP, warnings for
                    701: expressions of type \fBlong\fP that are cast to type \fBvoid\fP
                    702: are no longer emitted.
                    703: A bug which caused \fIlint\fP to incorrectly report
                    704: clashes for the return types of functions has been fixed.
                    705: \fILint\fP now understands that \fBenum\fPs are not \fBint\fPs.
                    706: The lint description for the C library was updated to reflect
                    707: sections two and three of the Programmers Manual more accurately.
                    708: Several more libraries in
                    709: .I /usr/lib
                    710: now have lint libraries.
                    711: Changes were made to accommodate the restructuring of the C compiler
                    712: for common header files.
                    713: .BP lisp
                    714: The Berkeley version of Franz Lisp has not been changed much
                    715: since the 4.2BSD release.
                    716: It has been updated to reflect changes in the C library.
                    717: .BP ln
                    718: Now prints a more accurate error message
                    719: when asked to make a symbolic link into an unwritable directory.
                    720: .BP lock
                    721: .I Lock
                    722: now has a default fifteen minute timeout.
                    723: The root password may be used to override the lock.
                    724: If an EOF is typed, it is now cleared instead of spinning in a tight
                    725: loop until the timeout period.
                    726: .BP logger
                    727: A new program that logs its standard input using \fIsyslog\fP(3).
                    728: .BP login
                    729: The environment may be set up by another process that calls \fIlogin\fP.
                    730: It now uses the new
                    731: .IR getttyent (3)
                    732: routines to read \fI/etc/ttys\fP.
                    733: .BP lpr
                    734: Now supports ``restricted access'' to a printer\- printer use may
                    735: be restricted to only those users in a specific group-id.
                    736: .BP mail
                    737: \fIMail\fP now expects RFC822 headers instead of
                    738: the obsolete RFC733 headers.
                    739: A \fBretain\fP command has been added.
                    740: If the PAGER variable is set in the environment,
                    741: it is used to page messages instead of \fImore\fP\|(1).
                    742: The \fBwrite\fP command now deletes the entire header
                    743: instead of only the first line.
                    744: An \fBunread\fP/\fBUnread\fP command (to mark messages as not read) was added.
                    745: If \fBReplyall\fP is set,
                    746: the senses of \fBreply\fP and \fBReply\fP are reversed.
                    747: When editing a different file,
                    748: \fImail\fP always prints the headers of the first few messages.
                    749: \fIFlock\fP(2) is used for mailbox locking.
                    750: Commands ``\fB\-\fP'' and ``\fB+\fP'' skip over deleted messages;
                    751: \fBtype\fP\ \fIuser\fP now does a substring match
                    752: instead of a literal comparison.
                    753: A \fB\-I\fP flag was added
                    754: which causes \fImail\fP to assume that input is a terminal.
                    755: .BP make
                    756: A bug which caused \fImake\fP to run out of file descriptors
                    757: because too many files and directories were left open
                    758: has been fixed.
                    759: Long path names should not be a problem now.
                    760: A VPATH macro has been added to allow the user to specify
                    761: a path of directories to search for source files.
                    762: .BP man
                    763: Support for alternate manual directories for \fIman\fP,
                    764: \fIapropos\fP and \fIwhatis\fP was added.
                    765: A side effect of this is that the \fIwhatis\fP database
                    766: was moved to the \fIman\fP directory.
                    767: If the source for a manual page is not available,
                    768: \fIman\fP will display the formatted version.
                    769: This allows machines to avoid storing both formatted and unformatted
                    770: versions of the manual pages.
                    771: The environment variable MANPATH overrides the default directory \fI/usr/man\fP.
                    772: The \fB\-t\fP option is no longer supported.
                    773: The printing process has been streamlined by using ``more \-s \fIcatfile\fP''
                    774: instead of ``cat \-s \fIcatfile\fP | ul | more \-f''.
                    775: Searches of \fI/usr/man/mano\fP are more lenient about file name extensions.
                    776: The source for \fIman\fP was considerably cleaned up;
                    777: the magic search lists and commands were put at the top of the source file
                    778: and the private copy of \fIsystem\fP was deleted.
                    779: .BP mesg
                    780: So that terminals need not be writable to the world,
                    781: .I mesg
                    782: only changes the group ``write'' permission.
                    783: (Terminals are now placed in group \fItty\fP
                    784: so that users may restrict terminal write permission
                    785: to programs which are set-group-id \fItty\fP.)
                    786: .BP mkdir
                    787: Prints a ``usage'' error message
                    788: instead of an uninformative ``arg count'' message.
                    789: .BP more
                    790: Now allows backward scanning.
                    791: It will also handle window size changes.
                    792: It simulates ``crt'' style erase and kill processing if the terminal
                    793: mode includes those options.
                    794: .BP msgs
                    795: Will no longer update \fI.msgsrc\fP
                    796: if the saved message number is out of bounds.
                    797: .BP mv
                    798: No longer runs
                    799: .I cp (1)
                    800: to copy a file;
                    801: instead it does the copy itself.
                    802: .BP netstat
                    803: Routes and interfaces for Xerox NS networks are now shown.
                    804: The \fB\-I\fP option has been added to specify a particular interface
                    805: for the default display.
                    806: The \fB\-u\fP option has been added to show UNIX domain information.
                    807: Several new mbuf types and statistics are now displayed;
                    808: subnetting is now understood.
                    809: .BP nice
                    810: Is relative as documented, not absolute.
                    811: .BP nroff
                    812: No longer replaces single spaces with tabs when using the
                    813: \fB\-h\fP option.
                    814: .BP Pascal
                    815: The Pascal compiler and interpreter have been extensively
                    816: rewritten so that they will (nearly) pass through \fIlint\fP.
                    817: In theory they have not changed from a semantic point of view.
                    818: A few bugs have been fixed, and undoubtedly some new ones introduced.
                    819: The Pascal runtime support has improved error diagnostics.
                    820: Real number input scanning
                    821: now corresponds to standard Pascal conventions rather than
                    822: those of \fIscanf\fP\|(3S).
                    823: .BP passwd
                    824: The \fIpasswd\fP program incorporates the functions of
                    825: \fIchfn\fP and \fIchsh\fP under \fB\-f\fP and \fB\-s\fP flags. 
                    826: Whenever information is changed \fIpasswd\fP also
                    827: updates the associated \fIndbm\fP(3X) database used by
                    828: \fIgetpwnam\fP and \fIgetpwuid\fP.
                    829: Office room and phone numbers are less dependent on Berkeley's usage.
                    830: Checks are made for write errors before renaming the password file.
                    831: .BP plot
                    832: The output device resolution can now be specified using the \fB\-r\fP option.
                    833: Support has been added for the Imagen laser printer and the Tektronix 4013.
                    834: .BP pr
                    835: The buffer is now large enough for 66 x 132 output.
                    836: .BP print
                    837: Has been retired to \fI/usr/old\fP;
                    838: use ``lpr \-p'' instead.
                    839: .BP prmail
                    840: Has been retired to \fI/usr/old\fP;
                    841: use ``Mail -u \fIuser\fP'' instead.
                    842: .BP prof
                    843: Uses \fIsetitimer\fP to determine the clock frequency
                    844: instead of assuming 60 hertz.
                    845: .BP ps
                    846: Saves static information for faster startup.
                    847: It now prints symbolic
                    848: values for wait channels.
                    849: .BP pti
                    850: Has been retired to \fI/usr/old\fP.
                    851: .BP ptx
                    852: Cleans up after itself and exits with a zero status on successful completion.
                    853: .BP quota
                    854: Verifies that the system supports quotas before trying to
                    855: interpret the quota files.
                    856: .BP ranlib
                    857: The \fB\-t\fP option updates a library's internal time stamp without
                    858: rebuilding the table of contents.
                    859: ``Old format'' and ``mangled string table'' are now warnings rather
                    860: than fatal errors.
                    861: Memory allocation is done dynamically.
                    862: .BP rcp
                    863: For the convenience of system managers, \fIrcp\fP has moved from \fI/usr/ucb\fP
                    864: to \fI/bin\fP, hence it can be used without mounting \fI/usr\fP.
                    865: Remote user names are now specified as \fIuser\fP@\fIhost\fP instead of
                    866: \fIhost.user\fP to support Internet domain hostnames
                    867: that contain periods (``.'').
                    868: A \fB\-p\fP option has been added that preserves file and directory
                    869: modes, access time, and modify time.
                    870: It now uses \fIgetservbyname\fP instead of compile time constants.
                    871: .BP rdist
                    872: A new program that keeps files on multiple machines consistent with
                    873: those on a master machine.
                    874: .BP refer
                    875: The key letter code was fixed so that control characters are not generated.
                    876: Several problems that caused the generation of duplicate citations,
                    877: particularly with the \fB\-e\fP and \fB\-s\fP options, have been fixed.
                    878: EOF on standard input is now properly handled.
                    879: \fIRefer\fP folds upper and lower case when sorting.
                    880: .BP rlogin
                    881: \fIRlogin\fP negotiates with \fIrlogind\fP to determine whether window
                    882: size changes should be passed through.
                    883: If the remote end is running a 4.3BSD \fIrlogind\fP,
                    884: it will agree to accept and pass through SIGWINCH signals
                    885: to user processes under its control.
                    886: The \fB\-8\fP flag allows an 8-bit path on input.
                    887: The \fB\-L\fP flag allows an 8-bit path on output.    
                    888: The escape character is now echoed as soon as a second non-command 
                    889: character is typed.
                    890: A new command character
                    891: \fI^Y\fP has been added to suspend only the input end of the
                    892: session without stopping output from the remote end
                    893: (unless \fBtostop\fP has been set).
                    894: The \fIioctl\fP TIOCSPGRP has been changed to \fIfcntl\fP F_SETOWN.
                    895: Several changes have been made to reduce the amount of data
                    896: sent after an interrupt has been typed, and to avoid flushing data when
                    897: changing modes.
                    898: .BP rm
                    899: The \fB\-f\fP option produces no error messages and exits with status 0.
                    900: The problem of running out of file descriptors when doing a recursive
                    901: remove have been fixed.
                    902: .BP rmdir
                    903: Improved error messages, in the same fashion as \fImkdir\fP.
                    904: .BP rsh
                    905: The \fB\-L\fP, \fB\-w\fP, and \fB\-8\fP flags are ignored so that they may be 
                    906: passed along with \fB\-e\fP to rlogin.
                    907: .BP ruptime
                    908: The \fB\-r\fP flag has been added to reverse sort order.
                    909: .BP rwho
                    910: Now allows hosts with long names
                    911: (greater than 16 characters).
                    912: .BP script
                    913: Now propagates window size changes.
                    914: .BP sed
                    915: No longer loops when the first regular expression is null.
                    916: .BP sendbug
                    917: Allows command line \fB\-D\fP arguments to override built in
                    918: defaults for name and host address of the bugs mailing list.
                    919: The ``Repeat-By'' field is now optional.
                    920: .I Sendbug
                    921: now checks the EDITOR environment variable instead of assuming \fIvi\fP.
                    922: .BP sh
                    923: ``#'' is no longer considered a comment character when \fIsh\fP is interactive.
                    924: The IFS variable is not imported when \fIsh\fP runs
                    925: as root or if the effective user id differs from the real user id.
                    926: .BP size
                    927: Now exits with the number of errors encountered.
                    928: .BP sort
                    929: Checks for and exits on write errors.
                    930: .BP spell
                    931: A couple of trouble-causing words have been removed from \fIspell\fP's
                    932: stoplist; \fIe.g.\fP ``reus'' that caused ``reused'' to be flagged.
                    933: A few words that \fIspell\fP would not derive have been
                    934: removed from the stoplist.
                    935: Several hundred words that \fIspell\fP derives without
                    936: difficulty from existing words (\fIe.g.\fP ``getting'' from ``get''), or that
                    937: \fIspell\fP would accept anyway, \fIe.g.\fP ``1st, 2nd'' etc., have been removed
                    938: from \fI/usr/dict/words\fP.
                    939: .BP stty
                    940: Has been extended to handle window sizes and 8-bit input data paths.
                    941: "stty size" prints only the size of the associated terminal.
                    942: .BP su
                    943: Only members of group 0 may become root.
                    944: .BP symorder
                    945: Now reorders the string table as well as the name list.
                    946: .BP sysline
                    947: Now understands how to run in one-line windows and how to
                    948: adjust to window size changes.
                    949: Numerous small changes have been made in the output format.
                    950: .BP systat
                    951: A new program that provides a cursed form of \fIvmstat\fP,
                    952: as well as several other status displays.
                    953: .BP tail
                    954: Makes use of a much larger buffer.
                    955: .BP talk
                    956: The new version of \fItalk\fP has an incompatible
                    957: but well-defined protocol that works across a much broader
                    958: range of architectures.
                    959: The new talk rendezvouses at a new port so that the old version
                    960: can still be used during the conversion.
                    961: .I Talkd
                    962: looks for a writable terminal instead of giving up if a user's
                    963: first entry in \fI/etc/utmp\fP is not writable.
                    964: Root may always interrupt.
                    965: .I Talk
                    966: now runs set-group-id to group \fItty\fP so that it is no longer
                    967: necessary to make terminals world writable.
                    968: .BP tar
                    969: Preserves modified times of extracted directories.
                    970: The \fB\-B\fP option is turned on when reading from standard input.
                    971: Some sections were rewritten for efficiency.
                    972: .BP tbl
                    973: The hardwired line length has been removed.
                    974: .BP tcopy
                    975: A new program for doing tape to tape copy of multifile, arbitrarily
                    976: blocked magnetic tapes.
                    977: .BP tee
                    978: \fITee\fP's buffer size was increased.
                    979: .BP telnet
                    980: \fITelnet\fP first tries to interpret the destination as an address;
                    981: if that fails, it is then passed off to \fIgethostbyname\fP.
                    982: If multiple addresses are returned, each is tried in turn
                    983: until one succeeds, or the list is exhausted.
                    984: If a non-standard port is specified, the initial ``Suppress Go Ahead''
                    985: option is not sent.
                    986: Commands were added to escape the escape character,
                    987: send an interrupt command, and send ``Are You There''.
                    988: Carriage return is now mapped to carriage return, newline.
                    989: .BP tftp
                    990: Has many bug fixes.
                    991: It no longer loops upon reading EOF from standard input.
                    992: Re-transmission to send was added,
                    993: as well as an input buffer flush to both send and receive.
                    994: .BP tip
                    995: Lock files are no longer left lying about after
                    996: .I tip
                    997: exits,
                    998: and the \fIuucp\fP spool directory does not need to be world writable.
                    999: A new ``~$'' command sends output from a local program to a remote host.
                   1000: Alternate phone numbers are separated only by ``,'';
                   1001: thus several dialer characters that were previously illegal may now be used.
                   1002: .I Tip
                   1003: now arranges to copy a phone number argument to a safe place, then zero
                   1004: out the original version.
                   1005: This narrows the window in which the phone number
                   1006: is visible to miscreants using \fIps\fP or \fIw\fP.
                   1007: Also fixed was a bug that caused the phone number to be written in place of
                   1008: the connection message.
                   1009: Carrier loss is recognized and an appropriate disconnect action is taken.
                   1010: Bugs in calculating time and fielding signals have been fixed.
                   1011: Several new dialers were added.
                   1012: .BP tn3270
                   1013: A new program for emulating an IBM 3270 over a \fItelnet\fP connection.
                   1014: .BP tp
                   1015: Memory allocation was changed to avoid \fIrealloc\fP.
                   1016: .BP tr
                   1017: Checks for and exits on write errors.
                   1018: .BP trman
                   1019: Has been retired to \fI/usr/old\fP.
                   1020: .BP tset
                   1021: Can now set the interrupt character.
                   1022: The defaults have been changed when the interrupt,
                   1023: kill, or erase characters are NULL.
                   1024: \fIReset\fP is now part of \fItset\fP.
                   1025: The window size is set if it has not already been set.
                   1026: \fITset\fP continues to prompt as long as the terminal type
                   1027: is unknown.
                   1028: .BP users
                   1029: Now much quieter if there are no users logged on.
                   1030: .BP uucp
                   1031: Several fixes and changes from the Usenet have been incorporated.
                   1032: The maximum length of a sitename has been increased from 7 to 14 characters.
                   1033: .I Uucp
                   1034: has been changed to understand the new format of \fI/etc/ttys\fP.
                   1035: Support for more dialers has been added.
                   1036: .BP vacation
                   1037: A new program that answers mail while you are on vacation.
                   1038: .BP vgrind
                   1039: Has been extended to handle the DEC Western Research Labs Modula-2 compiler 
                   1040: and \fIyacc\fP.
                   1041: .BP vlp
                   1042: Now properly handles indented lines.
                   1043: .BP vmstat
                   1044: The \fB\-i\fP flag was added to summarize interrupt activity.
                   1045: The \fB\-s\fP listing was expanded to include cache hit rates for the
                   1046: name cache and the text cache.
                   1047: The standard display has been generalized to allow command line selection
                   1048: of the disks to be displayed.
                   1049: A new header is printed after the program is restarted.
                   1050: If an alternative clock is being used to gather statistics,
                   1051: it is properly taken into account.
                   1052: .BP vpr
                   1053: Has been retired to \fI/usr/old\fP.
                   1054: .BP w
                   1055: Users logged in for more than one day have login day and hour listed;
                   1056: users idle for more than one day have their idle time listed in days.
                   1057: .BP wall
                   1058: Will now notify all users on large systems.
                   1059: .BP whereis
                   1060: Now also checks \fImanl\fP, \fImann\fP, and \fImano\fP.
                   1061: .BP which
                   1062: Now sets prompt before sourcing the user's \fI.cshrc\fP file to ensure
                   1063: that initialization for interactive shells is done.
                   1064: .BP whoami
                   1065: Uses the effective user id instead of the real user id.
                   1066: .BP window
                   1067: A new program that provides multiple windows on ASCII terminals.
                   1068: .BP write
                   1069: Looks for a writable terminal instead of giving up if a user's
                   1070: first entry in \fI/etc/utmp\fP is not writable.
                   1071: Root may always interrupt.
                   1072: Non-printable escape sequences can no longer be sent
                   1073: to an unsuspecting user's terminal.
                   1074: .I Write
                   1075: now runs set-group-id to group \fItty\fP so that it is no longer
                   1076: necessary to make terminals world writable.
                   1077: .BP xsend
                   1078: Notice of secret mail is now sent with a subject line showing
                   1079: who sent the mail.
                   1080: The body of the message includes the name of the machine
                   1081: on which the mail can be read.
                   1082: .BP xstr
                   1083: Now handles multiple-line strings.

unix.superglobalmegacorp.com

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