+ The bytecodes compiler now alloes a lambda list with &key and no keywords
+ WITH-HASHTABLE-ITERATOR implemented
+ QUIT is now silent
+ In MAKE-PATHNAME, values supplied with a value of NIL would be overwritten
by the content of :DEFAULTS.
delimiter_char removed. Function readc_stream and unreadc_stream renamed
to ecl_getc and ecl_ungetc. They now have a C-like behavior, do not
complain about EOF and return the special value EOF when the end of the
file is reached.
FIXNUM_BITS and CHAR_BIT do not rely now on "char" being 8-bit
large.
+ All configuration settings are now grouped in config.h. This file
has two parts, and the second one, containing flags which are only
needed during the build process, is deleted when installing ECL.
+ File critical.h merged into lwp.h.
be saved, because it may be overwritten by a BLOCK or TAGBODY inside
the normal exit form.
2) Implement Invocation History Stack as a chain of stack-allocated records.
3) In compiled TAGBODY forms, replace tags with numbers to save space.
a symbol SI::. which is recognized by LEFT-PARENTHESIS-READER. This avoids
using global variables "in_list_flag" and "dot_flag". No need for function
read_object_recursive(), since read_object() is equivalent to it.
kept in a single array, "cl_symbols". The translator "dpp" and the
routine SI::MANGLE-NAME, output the right name for any symbol
which is in this array.
disappear. All code pertaining CLOS streams is moved to file.d. This code
allows the user to supply an arbitrary object instead of a stream. The object
must have the following methods defined: STREAM-READ-CHAR, STREAM-UNREAD-CHAR,
STREAM-LISTEN, STREAM-CLEAR-INPUT, STREAM-WRITE-CHAR, STREAM-CLEAR-OUTPUT,
STREAM-FORCE-OUTPUT, STREAM-CLOSE. With these methods it can be used for
input and output. This implementation of streams is enabled with the flag
--with-clos-streams during configuration phase.
- Enable simple allocator to use mmap()
- Rewrite cmpwt.lsp so that it produces files with short lines and ANSI strings
- Fix mkdir so that it accepts a parameter for the mode
These hash tables can be dumped to help files which are understood by ECLS.
Most documentation strings have been moved back to the lisp source files
from which "SYS:help.doc" is built.
- The value of *package* is correctly set and restored while loading
compiled code. This way, 'ecls -eval "(print *package*)"' produces
the expected result #<"COMMON-LISP-USER" package>
- COMPILE-FILE now outputs three values.
- The value of si::*keep-definitions* determines whether the
interpreter keeps the source of defined functions, for later use
with COMPILE and DISASSEMBLE. For instance,
> (set si::*keep-definitions* t)
> (defun foo (x) (1+ x))
> (compile 'foo)
> (foo 2)
3
> (compile 'foo)
;;; Error ....
These definitions are lost once the function is compiled, hence
the second error message.