From: Juanjo
Subject: [ANN] ECLS v0.3
Date: 
Message-ID: <ab4b7d4.0107310929.76386d9a@posting.google.com>
Announcement of ECLS v0.3=========================ECLS stands for
Embeddable Common-Lisp "Spain", and I usually read itas "e-klos". It
is a an implementation of the Common-Lisp languagewhich aims to comply
to the ANSI X3J13 definition of the language.ECLS is currently hosted
at SourceForge. The home page of the projectis
http://ecls.sourceforge.net, and in it you will find source
codereleases, a CVS tree and an up to date documentation.Notes about
ECLS 0.3====================This release represents a major
improvement over previous ones intwo aspects:  - All special forms are
implemented both in the compiler and in the    interpreter. Handling
of toplevel forms has been thoroughly fixed.  - Loading of native code
is handled with the "dlopen" routine, which    means that ECLS should
be easier to port. As usual, this may imply    bugs which have not yet
been discovered.Changes in ECLS 0.3===================* Errors fixed: 
- The dynamic linker in eval.d (link_call) truncated addresses   
larger than MOST_POSITIVE_FIXNUM.  - The routine that outputs
addresses as hexadecimal numbers, and    which is used in
print-unreadable, would only output the first    digit.  - Make sure
that the proclamations in Gabriel's benchmark are    evaluated at
compile time, too.  - Fix the native compiler and the bytecodes
compiler so that when    they finds LOCALLY, MACROLET or
SYMBOL-MACROLET at the top level,    it processes their bodies as top
level forms as well. For    instance, this now works:	(LOCALLY
(EVAL-WHEN (:COMPILE-TOPLEVEL) (PRINT "HELLO")))* Add name mangling to
ECLS:  - In the preprocessed files (*.d) @package::symbol can be used
to    refer to a lisp function, while @'package::symbol can be used to
   refer to a lisp symbol. The preprocessor translates these names   
into valid C names.  - Function SI::MANGLE-NAME returns the C name for
a lisp symbol    or function, and tells whether that symbol has been
defined as    external C function already.  - A new
proclamation	(proclaim '(si::c-export-fname union))    advises the
lisp->C translator to produce a C function with    mangle named
(clLunion in this case), that can be directly called    from other
translated files and from user written code.* Visible changes and ANSI
compatibility:  - Remove variable si::*system-directory* and use
logical hostname    "SYS:" instead.  - Remove *EVALHOOK*, *APPLYHOOK*,
#'EVALHOOK and #'APPLYHOOK, which    make little sense when working in
a early compilation environment.  - Stepper removed until we figure
out how to implement this using    the bytecodes.  - The library
function eval() now accepts an environment as a third    parameter. On
top of this function, SI:EVAL-WITH-ENV, evaluates    a form on a given
environment.  - New accessor ROW-MAJOR-AREF.* System design and
portability:  - Code has been revised so that it works in environments
where stack    grows upwards, as well as in environments where the
parameters to    a function cannot be accessed as an array and only
va_list/va_arg    work.  - Implement loading of object files using the
native "dlopen"    function which is present in most operating
systems. Support for    "dld" has been dropped and the whole of the
CRS library has been    removed  - Remove use of alloca() when
printing circular structures. In a    near future, use of alloca()
should be dropped completely.

From: Juan Jose Garcia Ripoll
Subject: Re: [ANN] ECLS v0.3
Date: 
Message-ID: <8766c9c8d6.fsf@ripoll1.jazzfree.com>
[Sorry for the previous message, broken because of google.]

Announcement of ECLS v0.3
=========================

ECLS stands for Embeddable Common-Lisp "Spain", and I usually read it
as "e-klos". It is a an implementation of the Common-Lisp language
which aims to comply to the ANSI X3J13 definition of the language.

ECLS 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 ECLS 0.3
====================

This release represents a major improvement over previous ones in
two aspects:

  - All special forms are implemented both in the compiler and in the
    interpreter. Handling of toplevel forms has been thoroughly fixed.

  - Loading of native code is handled with the "dlopen" routine, which
    means that ECLS should be easier to port. As usual, this may imply
    bugs which have not yet been discovered.


Changes in ECLS 0.3
===================

* Errors fixed:

  - The dynamic linker in eval.d (link_call) truncated addresses
    larger than MOST_POSITIVE_FIXNUM.

  - The routine that outputs addresses as hexadecimal numbers, and
    which is used in print-unreadable, would only output the first
    digit.

  - Make sure that the proclamations in Gabriel's benchmark are
    evaluated at compile time, too.

  - Fix the native compiler and the bytecodes compiler so that when
    they finds LOCALLY, MACROLET or SYMBOL-MACROLET at the top level,
    it processes their bodies as top level forms as well. For
    instance, this now works:
	(LOCALLY (EVAL-WHEN (:COMPILE-TOPLEVEL) (PRINT "HELLO")))

* Add name mangling to ECLS:

  - In the preprocessed files (*.d) @package::symbol can be used to
    refer to a lisp function, while @'package::symbol can be used to
    refer to a lisp symbol. The preprocessor translates these names
    into valid C names.

  - Function SI::MANGLE-NAME returns the C name for a lisp symbol
    or function, and tells whether that symbol has been defined as
    external C function already.

  - A new proclamation
	(proclaim '(si::c-export-fname union))
    advises the lisp->C translator to produce a C function with
    mangle named (clLunion in this case), that can be directly called
    from other translated files and from user written code.

* Visible changes and ANSI compatibility:

  - Remove variable si::*system-directory* and use logical hostname
    "SYS:" instead.

  - Remove *EVALHOOK*, *APPLYHOOK*, #'EVALHOOK and #'APPLYHOOK, which
    make little sense when working in a early compilation environment.

  - Stepper removed until we figure out how to implement this using
    the bytecodes.

  - The library function eval() now accepts an environment as a third
    parameter. On top of this function, SI:EVAL-WITH-ENV, evaluates
    a form on a given environment.

  - New accessor ROW-MAJOR-AREF.

* System design and portability:

  - Code has been revised so that it works in environments where stack
    grows upwards, as well as in environments where the parameters to
    a function cannot be accessed as an array and only va_list/va_arg
    work.

  - Implement loading of object files using the native "dlopen"
    function which is present in most operating systems. Support for
    "dld" has been dropped and the whole of the CRS library has been
    removed

  - Remove use of alloca() when printing circular structures. In a
    near future, use of alloca() should be dropped completely.
From: Juan Jose Garcia Ripoll
Subject: Re: [ANN] ECLS v0.3
Date: 
Message-ID: <87y9p4c1l0.fsf@ripoll1.jazzfree.com>
To those interested,

sorry once more for the inconvenience, but due to personal problems
I had to interrupt the upload of the source tarball. Everything
is fixed now, and source releases are available at SourceForge

        http://ecls.sourceforge.net/ecls.tgz

        Juanjo