mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-06 17:30:41 -08:00
158 lines
5.7 KiB
Text
158 lines
5.7 KiB
Text
ECL 1.0:
|
|
========
|
|
|
|
* New platforms:
|
|
|
|
- Support for GNU/kFreeBSD
|
|
|
|
* New features:
|
|
|
|
- New commands, :RESTART, :R1, :R2, etc, allow invoking restarts (contributed
|
|
by Chui Tey).
|
|
|
|
- Interpreted functions can now be disassembled in the debugger. The commands
|
|
are :D and :DISASSEMBLE.
|
|
|
|
- New (private) function EXT::FUNCTION-LAMBDA-LIST, returns the lambda list of
|
|
a function whenever it was recorded.
|
|
|
|
- Implemented finalization on the lisp level. Only available for the Boehm
|
|
Weiser GC. Finalizers are closures which can be attached to objects
|
|
using SI:SET-FINALIZER and SI:GET-FINALIZER. Only one closure per
|
|
object is allowed.
|
|
|
|
- [Win32] Command-line arguments are now available for programs compiled with
|
|
:SYSTEM set to :WINDOWS (M. Goffioul)
|
|
|
|
- MAPCAR, MAPLIST, MAPC, MAPL, MAPCAN, MAPCON have now compiler macro functions
|
|
which create equivalent inlined forms.
|
|
|
|
- Support for C "long double" as lisp long-double datatype (originated from
|
|
a patch by Lars Brinkhoff). Still missing compiler support for unboxed
|
|
long double types.
|
|
|
|
* Bugs fixed:
|
|
|
|
- STREAMP signals an error for Gray streams.
|
|
|
|
- ENOUGH-NAMESTRING provided too large directory names (Contributed by Tim S)
|
|
|
|
- ADJUST-ARRAY accepted a fill-pointer even for arrays that did not have any.
|
|
|
|
- Instead of using SHORT-FLOAT and LONG-FLOAT as basic floating point types,
|
|
we use SINGLE-FLOAT and DOUBLE-FLOAT now. The names of the C functions have
|
|
changed accordingly (Contributed by Lars Brinkhoff).
|
|
|
|
- There was a problem with the variable capture when creating accessors
|
|
methods for classes.
|
|
|
|
- [Win32] Processes are now correctly listed with MP:ALL-PROCESSES (M. Goffioul)
|
|
|
|
- DIRECTORY behaves more according to people's expectations
|
|
(DIRECTORY "*/") => List all directories in current path
|
|
(DIRECTORY "*.*") => List all files in current path
|
|
This means you need to make two calls to DIRECTORY to get all the content of
|
|
it, but it allows you to select whether you want to list files or
|
|
not. Furthermore, the paths returned by DIRECTORY are more or less
|
|
guaranteed to match the mask -- the exception are links, for whose the
|
|
truename is returned.
|
|
|
|
- [Win32] DIRECTORY did not take the drive letter into account.
|
|
|
|
- [Win32] si_trap_fpe is now exported by ecl.dll
|
|
|
|
- Instead of sharing a single string buffer (cl_env.token), ECL now has a pool
|
|
of small strings which can be used for temporary operations. This fixes a
|
|
number of problems with the reader.
|
|
|
|
- DIRECTORY would always match NIL entries, independent of the mask. Now, the
|
|
following two statements differ:
|
|
(directory "foo*") => ("foo")
|
|
(directory "foo*.*") => ("foo" "foo.log")
|
|
|
|
- The code in contrib/sockets.lisp was not compatible with C++ because of
|
|
multiple implicit pointer conversions, and additionally it had some pointer
|
|
miscalculations.
|
|
|
|
- GET-INTERNAL-REAL-TIME now works on Windows with 1/60s precision
|
|
(contributed by Dustin Long)
|
|
|
|
- When :INITFORM was a constant variable but not self evaluating (i.e. not T,
|
|
NIL, or a keyword), it was not processed properly
|
|
(defclass a () ((a :initform most-positive-fixnum)))
|
|
(slot-value (make-instance a) 'a) => most-positive-fixnum
|
|
|
|
- The namestring "." was improperly parsed as having file type "".
|
|
|
|
- Now the file type is determined by the last dot in the name.
|
|
(pathname-type "foo.mpq.txt") => "txt"
|
|
|
|
- When iterating over a hash table we now check that the argument is really a
|
|
hash table.
|
|
|
|
- *COMPILE-VERBOSE* and *COMPILE-PRINT* now also have effect when compiling
|
|
isolated lambda forms using COMPILE. Additionally, these variables are
|
|
defined even without the compiler loaded.
|
|
|
|
- DESCRIBE was not prepare for the number range types returned by TYPE-OF.
|
|
|
|
- In OS X, ECL can now load shared libraries (Extension *.dylib) thanks
|
|
to using dlopen() instead of the obsolete NSLinkModule() function.
|
|
|
|
- (CONCATENATE 'STRING ...) does no longer have an ad-hoc limit in the number
|
|
of strings.
|
|
|
|
* Unicode:
|
|
|
|
- MAKE-STRING only allowed :ELEMENT-TYPE to be one of CHARACTER, BASE-CHAR, or
|
|
STANDARD-CHAR.
|
|
|
|
- The FFI will signal a type error when converting extended characters to
|
|
the C types "char" or "unsigned char".
|
|
|
|
* Other visible changes:
|
|
|
|
- EXT:PROCESS-COMMAND-ARGS now allows for a default rule.
|
|
|
|
- Variable EXT:*HELP-MESSAGE* and EXT:+DEFAULT-COMMAND-ARG-RULES+ exported.
|
|
|
|
- C:BUILD-PROGRAM now uses a unique prefix for the initialization function,
|
|
init_ECL_PROGRAM, to avoid collisions when both the program and a component
|
|
have the same name:
|
|
(C:BUILD-PROGRAM "ls" :lisp-files '("ls.o"))
|
|
|
|
- FFI:CLINES is no longer restricted to appear as a toplevel form. The
|
|
following code is thus valid:
|
|
(defun c-sin (x)
|
|
(ffi:clines "#include <math.h>")
|
|
(ffi:c-inline (x) (:double) :double "sin(#0)" :one-liner t))
|
|
|
|
- Minimized the number of headers included by ecl/ecl.h. In particular,
|
|
stdio.h, inittypes.h and pthread.h are no longer used.
|
|
|
|
- When a compiler finds a literal standard object, the load and initialization
|
|
forms it generates are now closer to the first reference to the object. This
|
|
allows to have, in the same file, a class definition and a constant which
|
|
is an object of that class.
|
|
|
|
- Support for hierarchical package names, as in Allegro Common-Lisp.
|
|
|
|
- C functions which disappear: si_set_compiled_function_name(),
|
|
si_extended_string_concatenate()
|
|
|
|
- Lisp functions which disappear: si:set-compiled-function-name,
|
|
si:extended-string-concatenate.
|
|
|
|
- New C functions: ecl_stream_to_handle(), ecl_base_char_code().
|
|
|
|
- Functions renamed: backup_fopen() -> ecl_backup_fopen()
|
|
char_code() -> ecl_char_code()
|
|
|
|
* Contributed code:
|
|
|
|
- New examples: cmdline/ls.lsp, ffi/uffi.lsp, ffi/cffi.lsp
|
|
|
|
;;; Local Variables: ***
|
|
;;; mode:text ***
|
|
;;; fill-column:79 ***
|
|
;;; End: ***
|