/[cmucl]/src/general-info/beta-release-notes.txt
ViewVC logotype

Contents of /src/general-info/beta-release-notes.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (hide annotations)
Sat May 30 20:53:18 1992 UTC (21 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.8: +1 -1 lines
File MIME type: text/plain
Lock status: Locked ram
Fix release date...
1 ram 1.9 Release notes for CMU Common Lisp 16d, 30 May 92
2 ram 1.5
3 ram 1.8 16d is our first version 16 general release, and incorporates many changes not
4     present in the 15 series. It is currently fairly close to our current
5     internal development (alpha) systems, and is thus less stable. The major
6     changes are:
7     New Aliens
8     New pathnames
9     New pretty printer
10     New format
11     R5.0 CLX.
12     5/1/90 May Day PCL (REV 4b)
13     Revised manual
14 ram 1.5
15 ram 1.8 The fasl file format is nominally compatible with version 15, but the pathname
16     change affects any pathname constants in fasl files, which includes the
17     defined-from information present in every fasl file. It is probably a good
18     idea to recompile everything.
19 ram 1.7
20 ram 1.8 CLX and Hemlock are now optional. When CMU CL is installed, the maintainer can
21     elect not to load CLX and Hemlock -- this saves 7 megabytes of disk and
22     improves memory usage somewhat. See the installation section of the README
23     file for details.
24 ram 1.5
25 ram 1.8 The ``CMU Common Lisp User's Manual'' has been updated to be more helpful for
26     non-CMU users. The new manual also documents the new Alien facility for
27     foreign function calls and data structure access. The manual is now formatted
28     with Mike Clarkson's LaTeXinfo package, so a consistent version of the
29     documentation is available online in Gnu info format. See `doc/cmu-user.ps'
30     and `doc/cmu-user.info'.
31    
32 ram 1.5
33 ram 1.8 General system code:
34 ram 1.3
35 ram 1.8 ANSI cleanups:
36     -- ANSI Compiler macros are now implemented: see COMPILER-MACRO-FUNCTION,
37     COMPILER-MACROEXPAND, COMPILER-MACROEXPAND-1 and DEFINE-COMPILER-MACRO.
38     -- Fixed things that invoke *MACROEXPAND-HOOK* to coerce it to a function
39     before calling it.
40     -- Fixed MACRO-FUNCTION to take an environment argument.
41     -- SYMBOL-MACROLET now accepts declarations.
42     -- SHADOW now accepts strings in addition to symbols.
43     -- Added UPGRADED-ARRAY-ELEMENT-TYPE and UPGRADED-COMPLEX-PART-TYPE.
44     -- IGNORABLE is now in the LISP package instead of the EXT package.
45     -- ADJUST-ARRAY has been updated to allow adjusting of arrays which were
46     not created with :adjustable non-nil to be adjusted to new dimensions.
47     -- ADJUSTABLE-ARRAY-P has been updated correspondingly. It returns T if
48     adjust ADJUST-ARRAY would return an EQ array.
49     -- The BASE-CHARACTER type has been renamed to BASE-CHAR.
50     -- The REAL type and REALP function are now implemented.
51     -- Changed the default structure printer to print slot names as keywords
52     instead of unqualified symbols.
53 ram 1.3
54 ram 1.8 Enhancements:
55     -- Added MAYBE-INLINE declaration for GET, PUT, etc., so that these
56     functions can be inline expanded according to the compilation policy.
57     -- Added some type declarations so that GET-INTERNAL-REAL-TIME doesn't cons.
58     -- Process the command line before printing the herald so that we can eval
59     some form and quit without printing anything.
60     -- SET now protects against setting T, NIL, and keywords. (SETF
61     SYMBOL-FUNCTION) now expands into FSET, which protects against defining
62     NIL.
63     -- Substantially rearranged function describing to make it more consistent,
64     and added support for describing interpreted functions.
65     -- PURIFY is now called multiple times during system building to improve
66     locality.
67     -- (EVAL-WHEN (EVAL) ...) is now actually eval'ed.
68 ram 1.3
69     Bug fixes:
70 ram 1.8 -- Fixed bug in NTH-VALUE where it expanded into bogus code unless ``n'' was
71     a constant integer.
72     -- Fixed FMAKUNBOUND to return the symbol instead of T.
73     -- Allocate memory as executable so that the OS knows to maintain cache
74     consistency.
75     -- Changed DESCRIBE to allow T or NIL as the stream argument.
76 ram 1.3
77 ram 1.8 Load enhancements and cleanups:
78     -- The initial value of *LOAD-VERBOSE* is now T. Additionally, LOAD no
79     longer always binds *LOAD-VERBOSE* and *LOAD-PRINT*. Now it only
80     binds them when :VERBOSE or :PRINT are explicity supplied. Therefore, you
81     can set either of these in your init file and it will take effect.
82     -- Normally when *LOAD-VERBOSE* is T, only the file name is printed.
83     Formerly, the loaded stream was always printed, whereas now a stream is
84     printed only when the stream is not a file stream.
85     -- Added ANSI features *LOAD-TRUENAME*, *LOAD-PATHNAME* and *LOAD-PRINT*.
86     -- As per ANSI, bind *READTABLE* to itself to make assignments file-local.
87     -- Added new variables EXT:*SOURCE-FILE-TYPES* and EXT:*OBJECT-FILE-TYPES*.
88     When no file type is specified, LOAD tries the types in these lists to
89     locate the source and object files. LOAD now recognizes source types "l",
90     "cl" and "lsp" in addition to "lisp".
91     -- The compiler OPTIMIZE policy is now bound during load, so proclamations in
92     a file don't leave the global policy clobbered when the load is finished.
93     -- Changed the :IF-SOURCE-NEWER option to signal an error and use restarts,
94     rather than PROMPT-FOR-Y-OR-N. Fixed the load source case to actually
95     load the source, rather than loading the object as a source file...
96     -- Changed load to deal with source files having NIL type more reasonably.
97     -- If a wild pathname is given to LOAD, all files matched will be loaded.
98     -- Proceeding from nonexistent file errors has been improved. It is no longer
99     assumed that missing files are always source files. Added condition
100     restarts for missing files.
101     -- Improved formatting of error and warning messages.
102 ram 1.3
103    
104 ram 1.8 Garbage collection:
105     -- Changed the minimal ROOM output to include all easily computed information
106     including whether GC is disabled. The verbose ROOM now conses less.
107     -- Removed the :ENABLE-GC SAVE-LISP option, as it's no longer needed.
108     Garbage collection is now correctly enabled in cores which have been saved
109     and then restarted.
110     -- Added EXT:BYTES-CONSED-BETWEEN-GCS, a function that returns (and sets when
111     used with setf) *BYTES-CONSED-BETWEEN-GCS*. Additionally, it changes
112     *GC-TRIGGER* immediately to reflect the new values of *bytes-consed...*.
113     -- TIME now displays the GC run-time.
114     -- Added EXT:*GC-RUN-TIME* with accumulates the INTERNAL-RUN-TIME spent doing
115     garbage collection. Added declarations to make EXT:GET-BYTES-CONSED more
116     efficient.
117     -- The top-level REP loop now zeros the unused non-zero portion of the
118     control stack to discourage spurious garbage retention.
119     -- The garbage collector now closes open file streams when it reclaims them.
120 ram 1.3
121    
122 ram 1.8 Packages:
123     -- The LISP and USER packages have been renamed to COMMON-LISP and
124     COMMON-LISP-USER. LISP and USER are nicknames, so they can still be used.
125     -- The LISP package namespace has been cleaned up somewhat. For example,
126     *DESCRIBE-PRINT-LEVEL* is no longer exported from LISP.
127     -- The Mach/Unix division in the package system has been clarified a great
128     deal. Unix specific features have been moved from the MACH package to the
129     UNIX package. Mach specific features have been left in (or moved to) the
130     MACH package. For example, all standard Unix syscalls are related
131     definitions are un UNIX, whereas vm_statistics remains in MACH and GR-CALL
132     has been moved to MACH.
133 ram 1.3
134 ram 1.8 SETF cleanups:
135     -- Changed GET-SETF-METHOD-MULTIPLE-VALUE to try to macroexpand-1 the form
136     when it's an atom in case it's a symbol-macro as per the X3J13 cleanup
137     SYMBOL-MACROLET-SEMANTICS:SPECIAL-FORM. Now you can safely INCF, etc.
138     symbol macros where the macroexpansion has side effects.
139     -- Fixed SETF of GETF to evaluate the various parts in the correct order as
140     per X3J13 cleanup SETF-SUB-METHODS:DELAYED-ACCESS-STORES.
141     -- X3J13 cleanup SETF-MULTIPLE-STORE-VARIABLES:
142     Extend the semantics of the macros SETF, PSETF, SHIFTF, ROTATEF, and
143     ASSERT to allow "places" whose SETF methods have more than one "store
144     variable". In such cases, the macros accept as many values from the
145     newvalue form as there are store variables. As usual, extra values
146     are ignored and missing values default to NIL.
147     -- Extended the long form of DEFSETF to allow the specification of more
148     than one "store variable", with the obvious semantics.
149     -- GET-SETF-METHOD signals an error if there would be more than one
150     store-variable.
151 ram 1.3
152 ram 1.8
153     Printer:
154 ram 1.3
155 ram 1.8 Almost all of the printing code has been rewritten/restructured to support
156     all of the printing features added to the language. Some highlights:
157     -- *PRINT-READABLY* is now supported.
158     -- *PRINT-CIRCLE* works irrespective of *PRINT-PRETTY*. Note: the default
159     structure printer currently does not work when *PRINT-CIRCLE* is true: you
160     get #1=#1#.
161     -- *PRINT-LEVEL* abbreviation now works automatically inside structure
162     printers.
163     -- XP has been replaced with a native pretty printer that is fully
164     integrated with the rest of the system. This Supports the ANSI
165     pretty-printing interface instead of the old Waters XP interface. Existing
166     uses of the old interface will need to be updated to use the new names.
167     -- The pretty-printer now unparses backquote forms on printing. To retain
168     this information, the backqoute read macro no longer expands into LIST,
169     CONS, etc. Internal functions are used instead.
170     -- The macros WITH-STANDARD-IO-SYNTAX and PRINT-UNREADABLE-OBJECT have
171     been added.
172     -- All new format. Supports the FORMATTER macro and all the pretty-printing
173     directives. FORMAT has extended to accept a function as the format control
174     (as an alternative to a string.)
175     -- Added support for READTABLE-CASE in symbol printing. Printing when
176     *PRINT-CASE* is :CAPITALIZE and *PRINT-ESCAPE* is NIL is now slightly
177     different than before. Added some missing array type declarations in
178     symbol printing.
179 ram 1.3
180     Bug fixes:
181 ram 1.8 -- Fixed a bug which caused some float printing format directives to
182     infinitely loop when a fixed-width field overflowed.
183     -- Specify stream when printing unbound marker.
184     -- Fixed FORMAT to override printer control variables when printing float
185     exponents so that they are always printed in decimal, etc.
186 ram 1.3
187 ram 1.8
188     Reader:
189 ram 1.3
190 ram 1.8 ANSI Cleanups:
191     -- *READ-EVAL* is now supported. If a #. is encountered while *READ-EVAL*
192     is NIL (default T), an error is signaled. This intended to allow
193     ``secure'' READ-based command interfaces to be written.
194     -- READTABLE-CASE is now supported.
195     -- The reader now signals the correct type of error when things go wrong
196     instead of always signaling a simple-error.
197     -- Changed the return value of SET-SYNTAX-FROM-CHAR from NIL to T as per X3J13
198     cleanup RETURN-VALUES-UNSPECIFIED:SPECIFY. [Hard to believe nobody has
199     complained about not conforming to this one.]
200 ram 1.3
201     Bug fixes:
202 ram 1.8 -- Fixes to several bugs with respect to #+, #-. In particular, stacked
203     conditionals like "#+foo #-bar baz" now work
204     -- #n= and #n# now detect more error conditions and work on structures.
205     -- # is now a non-terminating macro character, so foo#bar is read as a
206     symbol.
207     -- Added Ted's changes to make INTERNAL-READ-EXTENDED-TOKEN work when there
208     are `|' escapes. The main significance of this is that #+nil '|foo;bar|
209     and #:|foobar| now work properly. Also changed this function to recognize
210     unquoted colons so that #:foo:bar will error, but not #:foo\:bar.
211 ram 1.3
212 ram 1.8 Enhancement:
213     -- Export new variable *ignore-extra-close-parentheses* if true (the default),
214     extra close parens are only a warning, not an error. Previously unmatched
215     close parens were quietly ignored.
216 ram 1.3
217    
218 ram 1.8 Pathnames:
219 ram 1.2
220 ram 1.8 This release supports all the new CltL2 pathname features except for logical
221     pathnames. Following is an overview of the new pathname support.
222 ram 1.2
223 ram 1.8 Programs that actually conform to the CLtL1 pathname spec will have very few
224     problems. However, the CLtL1 spec was extremely vague, and CMU CL did not
225     make use of much of the allowed flexibility, so many technically non-portable
226     programs previously worked under CMU CL.
227 ram 1.2
228 ram 1.8 The main incompatible changes from CLtL1 to CLtL2:
229     -- Symbols are no longer acceptable filenames.
230     -- PATHNAME-HOST may be any object.
231     -- :UNSPECIFIC is now a legal pathname component.
232     -- MERGE-PATHNAMES now recognizes relative pathnames and treats them
233     specially.
234 ram 1.2
235 ram 1.8 The format of directories is now specified (to be a list in a certain format.)
236     This required an incompatible change from the previous practice of using a
237     vector PATHNAME-DIRECTORY and using "DEFAULT" or :ABSOLUTE in the
238     PATHNAME-DEVICE to indicate relative and absolute pathnames.
239 ram 1.2
240 ram 1.8 In a related change, the CMU SEARCH-LIST extension was changed so that the
241     search-list now appears in the PATHNAME-DIRECTORY as:
242     (:ABSOLUTE #<Search-list "name"> ...)
243 ram 1.2
244 ram 1.8 Other changes to search-lists:
245     -- (SETF SEARCH-LIST) now accepts a string or pathname, and converts it into
246     a one-element list.
247     -- Search-list elements are now canonicalized to pathnames rather than to
248     strings.
249     -- Instead of returning NIL, SEARCH-LIST now signals an error when it is
250     called on an undefined search list.
251     -- SEARCH-LIST-DEFINED-P is a predicate that tells if the search list is
252     currently defined.
253 ram 1.2
254 ram 1.8 New features which are now supported:
255     -- Wildcard pathnames are now fully supported. In addition to allowing :WILD
256     in any pathname component, "extended wildcards" such as "foo*.*" are also
257     supported. A consequence of this is that PATTERN objects may appear in
258     wildcard pathname components instead of strings. See PATHNAME-MATCH-P and
259     TRANSLATE-PATHNAME.
260     -- As a CMU CL extension, a wildcard pathname may be used as the argument to
261     any filesystem interface (like OPEN) as long as it matches only one file.
262     -- The pathname :COMMON case mechanism provides a way around the problems of
263     portably specifying string pathname components in the presence of operating
264     systems with differing preferred case in their filesystem. An uppercase
265     string "LISP" is mapped to the "customary case" (lowercase on unix.)
266     Lowercase is also inverted: "readme" becomes "README". Mixed case is left
267     alone. Note that this mechanism is explicitly enabled by supplying :CASE
268     :COMMON to functions such as MAKE-PATHNAME. The default is the old
269     behavior (:CASE :LOCAL).
270 ram 1.2
271 ram 1.8 Also, DIRECTORY now actually returns the TRUENAME of each file (as it was
272     always supposed to do.) If a matched file is a symbolic link, the truename may
273     be a file in some other directory that doesn't even match the pattern. The old
274     behavior can be obtained by specifying :FOLLOW-LINKS NIL.
275 ram 1.2
276 ram 1.8 The new wildcard pathname mechanism has not yet been used to replace the old
277     single-wildcard matching in Hemlock DIRED, etc.
278 ram 1.2
279 ram 1.8
280     Debugger:
281     -- Added Miles' changes to keep errors and warnings on one line if they fit.
282     -- The debugger now starts up with the error frame as the current frame, so
283     it is no longer necessary to manually skip over internal frames resulting
284     from the error system invocation.
285     -- Fixed some debugger bugs that appeared when debugging interpreted code.
286     -- Added ``DESCRIBE'' debugger command.
287     -- Merged Miles' changes that allow the use of restart names as debugger
288     commands.
289     -- Changed SHOW-RESTARTS to also display the restart name (but only if it's
290     not shadowed by a higher priority restart). Changed the restart command
291     to look for restarts by name if a symbol is typed.
292     -- Bind *CURRENT-LEVEL* to 0, *PRINT-READABLY* to nil, and *READ-EVAL* to T
293     when entering the debugger to make sure things print as expected.
294 ram 1.2
295 ram 1.8 The debugger programmer (DEBUG-INTERNALS) interface is now documented in the
296     User's Manual. This interface allows the coding of debuggers and debugger
297     extensions without requiring an intimate understanding of the compiler and
298     run-time system. Be warned that DI features (such as breakpoints) not used by
299     the current debugger may not work very well (wait for version 17.)
300 ram 1.2
301 ram 1.8 Debug internals changes:
302     -- DI:DEBUG-FUNCTION-FUNCTION is now implemented.
303     -- Added DI:FLUSH-FRAMES-ABOVE for cleaning up frames to be bound to
304     DEBUG:*STACK-TOP-HINT*.
305 ram 1.2
306 ram 1.8
307     Defstruct:
308 ram 1.2
309 ram 1.8 Various fixes and enhancements to defstruct slot parsing and inclusion.
310     It now works to define structures such as:
311     (defstruct super a)
312     (defstruct (sub1 (:conc-name super)) one)
313     (defstruct (sub2 (:conc-name super)) two)
314     (super-a (make-sub1))
315 ram 1.2
316 ram 1.8 previously, a definition such as for SUB2 would define SUPER-A to be a
317     SUB2-specific function, which could then no longer be used on other types. The
318     spec doesn't clearly say that such a construct is legal, but its use seems
319     fairly common.
320 ram 1.2
321 ram 1.8 Also, slot parsing is now more rigorous. Unrecognized slot options cause an
322     error, as does a slot spec like: (defstruct foo (a :type t))
323 ram 1.2
324 ram 1.8 Fasl dumping of constant structures has been fixed to conform to X3J13. The
325     main significance of this is that DEFSTRUCT structures are no longer dumpable
326     by default. However, the generic function MAKE-LOAD-FORM isn't really used.
327     Instead, a new defstruct option, :MAKE-LOAD-FORM-FUN, has been added that can
328     be used to specify a function that acts like a MAKE-LOAD-FORM method. When we
329     have a CLOS that supports STRUCTURE-CLASS, the default method for
330     MAKE-LOAD-FORM will use this information instead of having the compiler use it
331     directly. The old behavior can be enabled on a structure by structure basis by
332     using the :MAKE-LOAD-FORM-FUN defstruct option:
333     (defstruct (foo (:make-load-form-fun :just-dump-it-normally))
334     ...)
335 ram 1.2
336    
337 ram 1.8 Compiler:
338 ram 1.1
339 ram 1.8 Cleanups:
340     -- Added the LOAD-TIME-VALUE support special form.
341     -- Displaced or adjustable arrays and vectors with fill pointers can now be
342     dumped in fasl files, but are converted to simple array with the same
343     elements.
344     -- Arrays of floats are left as arrays of floats instead of being
345     converted into arrays of element-type T that just so happen to hold a
346     bunch of floats.
347     -- Changed IGNORE and IGNORABLE to recognize #'fn-name for declaring that
348     local functions are not used. Exported IGNORABLE from LISP.
349 ram 1.1
350 ram 1.8 New optimizations:
351     -- Iterations written using tail recursion are now optimized through a
352     special-casing of local functions where all calls but one are
353     tail-recursive self-calls. Such functions are compiled with no
354     environment manipulation, resulting in the same code as explicit
355     iteration.
356     -- Loop rotation (Knuth "while" loop optimization) been added. This is the
357     optimization that negates the loop exit test and places it at the end of
358     the loop, and then jumps there at loop entry. Note that this is part of
359     control optimization, and not simply a recoding of certain iteration
360     macros. In fact, for historical reasons DO, etc. already had the exit
361     test negated, but the compiler was cleverly un-negating the test.
362     -- Flow analysis now recognizes function calls and special forms which do
363     not yield any value because they unwind or signal an error. This results
364     in improved code for error checks, since the compiler can get by with
365     fewer unconditional branches. A function can be declared not to return by
366     declaring its result type to be NIL (not to be confused with NULL). If a
367     function declared NIL does return, an error will be signalled.
368     -- Added derive-type methods for ASIN, ACOS, ACOSH, ATANH and SQRT which
369     figure out whether the result type is real on the basis of the argument
370     range. Also, the result of ATAN is always real, so we don't need a result
371     type assertion.
372     -- Added optimization which deletes MULTIPLE-VALUE-BINDs when all
373     variables have been deleted.
374     -- Eliminated some spurious checking of the result types of safe VOPs (such
375     as the SPARC tadd for fixnum arithmetic.)
376     -- Transform uses of the SEARCH generic sequence function on simple strings
377     into a call to a more efficient string-specific function.
378     -- Added multiplier recoding of (UNSIGNED-BYTE 32) multiplication. This
379     converts 32 bit (or smaller) unsigned multiplication by any compile-time
380     constant into a shift-add sequence. This is much faster when the constant
381     is a near power of two or when general multiplication is slow (as on the
382     SPARC.)
383     -- Added comprehensive handling of arithmetic and logical identities when
384     an arg is -1, 0 or +1.
385     -- Added a RANDOM derive-type method: (random 13) is (integer 0 12).
386 ram 1.1
387    
388     Enhancements:
389 ram 1.8 -- Changed the compiler to temporarily increase *BYTES-CONSED-
390     BETWEEN-GCS* by a factor of 4 during compilation of each top-level form,
391     instead of turning off all garbage collection.
392     -- Bind *PRINT-LINES* around compiler error output to
393     *ERROR-PRINT-LINES*.
394     -- Do not warn about undefined variables, functions or types when the
395     INHIBIT-WARNINGS OPTIMIZE quality is 3.
396     -- Some optimizations are now considered "important"; failure of important
397     optimizations causes an efficiency note even when speed=inhibit-warnings
398     (i.e. by default.)
399     -- Print a error summary even when *COMPILE-VERBOSE* is false. (This is only
400     printed when there are errors, so this doesn't seem a violation of the
401     spirit of the spec.)
402 ram 1.1
403     Bug fixes:
404 ram 1.8 -- Merged Miles' fix to disassembly of the MIPS coprocessor move instructions.
405     -- Fixed spelling of "efficency" in exported variables such as
406     *EFFICIENCY-NOTE-COST-THRESHOLD*
407     -- Fixed some cases where incomplete optimization could happen.
408     -- Fixed some arithmetic "identities" that failed to preserve the sign of
409     -0.0.
410     -- Fixed TYPES-INTERSECT to consider any supertype of T to definitely
411     intersect with anything (even an unknown type.)
412     -- Fixed a problem where inconsistent declarations could fail to be detected
413     at compile time.
414     -- Fixed the VALUES transform (which discards unused subforms) to work
415     on (VALUES).
416     -- More bug fixes to dead code deletion.
417     -- Fixed a problem where a special binding would not be removed on exit from
418     the scope if there was no code in the scope (e.g. it had all been
419     deleted.)
420     -- Fixed handling of named (DEFCONSTANT) constants so that EQ
421     relationships are properly preserved.
422 ram 1.1
423 ram 1.8
424     Extensions:
425 ram 1.1
426 ram 1.8 -- Export FEATUREP from EXT. This takes a feature expression and tests it
427     against the value of *FEATURES*. Allow LISP:AND, LISP:OR, and LISP:NOT in
428     features lists in addition to :AND, :OR, and :NOT. This makes featurep
429     useful outside of #+ and #-.
430     -- The encapsulation mechanism (similar to advise facilities) has been
431     revamped to work on SETF function names as well as symbols.
432     EXT:ENCAPSULATED-DEFINITION
433     Returns whatever definition is stored for name, regardless of whether
434     it is encapsulated. Unlike FDEFINITION, this does not strip off the
435     encapsulation. This is SETF'able.
436     EXT:ENCAPSULATE
437     Replaces the definition of name with a function that binds name's
438     arguments a variable named argument-list, binds name's definition to a
439     variable named basic-definition, and EVAL's body in that context. Type
440     is whatever you would like to associate with this encapsulation for
441     identification in case you need multiple encapsuations of the same
442     name.
443     EXT:UNENCAPSULATE
444     Removes name's most recent encapsulation of the specified type.
445     EXT:ENCAPSULATED-P
446     Returns t if name has an encapsulation of the given type, otherwise
447     nil.
448     EXT:*SETF-FDEFINITION-HOOK*
449     A list of functions invoked by (SETF FDEFINITION) before storing the
450     new value. Each hook function must take the function name and the
451     new-value.
452 ram 1.1
453     Hemlock:
454 ram 1.8 -- Fixed the :FILE branch of "Help on Parse" to trim leading directory
455     components off the pathname if it wouldn't otherwise fit on the screen.
456     -- Fixed GET-EDITOR-TTY-INPUT to not assume that UNIX-READ will always work.
457     -- When we reallocate string table vectors to grow them, clear the old vector
458     so that it won't hold onto garbage (in case the vector was in static space,
459     but pointed to dynamic values.) This was a major cause of memory leakage
460     in Hemlock.
461     -- Added a (setf (ts-stream-char-pos stream) 0) to the accept-input function
462     so that char-pos will be reset to zero whenever the user presses enter.
463 ram 1.1
464 ram 1.8 PCL:
465     -- The version has been updated to "5/1/90 May Day PCL (REV 4b)".
466     -- The Code walker now understands the real SYMBOL-MACROLET, and the PCL macro
467     definition is no longer used.
468     -- Fixed a bug in WALK-ARGLIST where it would ignore the rest of the current
469     arglist if the current arg destructured. This was causing it to compile
470     forms like:
471     (macrolet ((foo ((a b) c) ...)) ...)
472     as:
473     (macrolet ((foo ((a b)) ...)) ...)
474     note the loss of the arg c.
475 ram 1.1
476 ram 1.8
477     System:
478 ram 1.1
479 ram 1.8 -- All the SAP-REF-<n> functions now take byte offsets. Previously, the
480     16 and 32bit versions were scaled by the element size.
481     -- Fixed UNIX-IOCTL to not flame out of the cmd is a ub-32 instead of a sb-32.
482     -- Added Miles' TCSETPGRP, TCGETPGRP, and TTY-PROCESS-GROUP.
483     -- Unix syscalls are now more restrictive in the kind of arguments that they
484     accept. In particular, UNIX:UNIX-READ, etc., no longer automatically
485     accept a vector (or string) argument. You must use VECTOR-SAP to convert
486     the vector to a system area pointer. Note that WITHOUT-GCING should be
487     wrapped around any syscall which is passed a pointer to the Lisp heap,
488     since the object might otherwise move doing the syscall.
489     -- Changed LOAD-FOREIGN to be exported from ALIEN. Changed it have keyword
490     args instead of optionals. Deleted obsolete linker argument.

  ViewVC Help
Powered by ViewVC 1.1.5