[0940df]: ANNOUNCEMENT Maximize Restore History

Download this file

ANNOUNCEMENT    99 lines (72 with data), 3.3 kB

Announcement of ECL v0.6
=========================

ECL stands for Embeddable Common-Lisp. The ECL project is an effort to
modernize Giusseppe Attardi's ECL environment to produce an
implementation of the Common-Lisp language which complies to the ANSI
X3J13 definition of the language.

ECL is currently hosted at SourceForge. The home page of the project
is http://ecls.sourceforge.net, and in it you will find source code
releases, a CVS tree and an up to date documentation.

Notes about ECL 0.6
====================

This release adds two new platforms

	- Mac OSX (statically linked)
	- RedHat 7.3 on Intel

to the list of supported ones

	- Debian Linux on Intel
	- Debian Linux on PowerPC
	- FreeBSD 4.x on Intel
	- Cygwin on Microsoft Windows 2000

ECL 0.6
=======

* Supported platforms:

  - ECL now compiles and runs in static mode under MacOSX.

* Errors fixed:

  - Code for handling :IMPORT-FROM in DEFPACKAGE was bogus

  - The arguments of GENSYM should not be remembered by ECL. The
    current behaviour was wrong:
		> (gensym)
		#:G36
		> (gensym "F")
		#:F37
		> (gensym)
		#:F38

* System design:

  - Function SI:NANI has been removed. Its purpose was to provide an
    object which could not be printed or readed so that it could be
    used to mark unbound slots in classes. Now the function SI:UNBOUND
    performs the same task.

  - Mathematical functions which deal with matisas, exponents, etc,
    now make use of the ISO-C99 facilities which are almost
    everywhere.

  - Global function pointer output_ch_fun and read_ch_fun
    disappear. Now the differences between ordinary streams and CLOS
    streams are handled in file.d. Optimizations for synonym streams
    also disappear from read.d and print.d.

  - All information used by FORMAT is kept in stack-allocated
    structures. Now FORMAT is reentrant and can be safely called from
    within PRINT-OBJECT.

  - Most symbols belonging to the LISP package and to the C core, are
    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.

  - ECL relies fully on the Boehm-Weiser garbage collector
    (v. 6.1). The old garbage collector is known to reclaim too much
    data, resulting in heap corruption. Help is welcome on this field.

  - The headers of the Boehm-Weiser garbage collector are installed
    together with ECL.

* Visible changes and ANSI compatibility:

  - New configuration flag --with-clos-streams, enables the user to
    define CLOS objects which behave as lisp streams. Such object must
    have the following methods defined: STREAM-INPUT-P,
    STREAM-OUTPUT-P, STREAM-READ-CHAR, STREAM-UNREAD-CHAR,
    STREAM-LISTEN, STREAM-CLEAR-INPUT, STREAM-WRITE-CHAR,
    STREAM-CLEAR-OUTPUT, STREAM-FORCE-OUTPUT, STREAM-CLOSE.

  - LOAD accepts now a stream as input parameter. However, in this
    case it only tolerates lisp source files, not compiled files or
    libraries. For example, (LOAD (OPEN "foo.lsp")) is equivalent
    to (LOAD "foo.lsp").

  - ECL now uses a hashtable to store objects when *PRINT-CIRCLE* is
    on. This hashtable is not cleared when calling PRINT-OBJECT, so
    that circularities are also detected inside these methods.

  - *PRINT-CIRCLE* defaults to NIL.