|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.