|
|
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.