From: Juanjo
Subject: [ANN] ECL v0.7 (ILC release)
Date: 
Message-ID: <ab4b7d4.0210250643.75db0be2@posting.google.com>
Hi,

today I will be travelling to San Francisco, to the International Lisp
conference. I hope to meet many of you there, and maybe get some
feedback about ECL. In any case, I wanted to make a bugfix release
which solves some installation problems and adds some extra features,
so that I may feel more comfortable when talking about it in public
:-)

Announcement of ECL v0.7
=========================

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.

ECL 0.7
=======

* Errors fixed:

  - When installing, ECL would not build all required directories.

  - Symbol BUILD-PROGRAM should be exported from package C.

  - In compiled code UNWIND-PROTECT would procted also the exit form,
    resulting in an infinite loop when the exit form fails.

* System design:

  - Global variables READsuppress, READdefault_float_format,
    READtable, and READbase have been removed. The corresponding
    special variables are used instead.

  - No need for function read_object_recursive(), since read_object()
    is equivalent to it.

  - Changed the algorithm of the list reader. A dot which is not
    escaped is read as a symbol SI::. which is recognized by
    LEFT-PARENTHESIS-READER. This avoids using global variables
    "in_list_flag" and "dot_flag".

  - The calling conventions have been changed. SI::C-ARGUMENTS-LIMIT
    and LAMBDA-PARAMETERS-LIMIT are both 64. Up to C-ARGUMENTS-LIMIT
    may be passed to a function using C calling conventions. If the
    function is to retrieve more arguments, (for instance through a
    &rest variable), this can be done, but then the arguments have to
    be pushed on the lisp stack. This method allows us to raise the
    CALL-ARGUMENTS-LIMIT up to MOST-POSITIVE-FIXNUM. From a users
    point of view, there is no visible change, excep the fact that a
    function may receive more &optional, &key and &rest arguments.

  - The function apply() has been replaced with cl_apply_from_stack().
    The former took a pointer to the list of arguments. The latter
    assumes that the last "narg" elements on the lisp stack are the
    arguments of the function.

* Visible changes:

  - New functions SI:SAFE-EVAL and cl_safe_eval() allow the user to
    evaluate code with errors without jumping into the
    debugger. Useful when embedding ECL in other programs.

  - New function SI:OPEN-UNIX-SOCKET-STREAM creates a two-way stream
    attached to a unix socked (Unix sockets are pipes which programs
    from the same computer may use to communicate with each other, and
    they are either anonymous (not supported by ECL) or associated to
    a file of the filesystem).

  - New function SI:LOOKUP-HOST-ENTRY encompasses the C calls
    gethostbyname() and gethostbyaddress() and it is used to guess the
    address, aliases and hostname of a machine in the Internet
(Currently
    we only support AF_INET protocol).

* ANSI compatibility:

  - READ and READ-PRESERVING-WHITESPACE behave the same when
    RECURSIVE-P is NIL. Furthermore, EOF is detected when EOF-ERROR-P
    is true, regardless of the value of RECURSIVE-P.