[Ecls-list] ECL 0.9d released
Juan Jose Garcia Ripoll
lisp at arrakis.es
Tue Nov 2 10:07:49 UTC 2004
Julian Stecklina wrote:
>w00t. :) I'll update the FreeBSD port ASAP.
This time the 64-bit platforms should compile out of the box. At least
the NetBSD-Alpha does.
>> - ECL now uses the configuration files of GMP [...]
>I thought you made simple-conf default on most platforms except on
Oops, a typo got in the announcement :-(
>>* System design: Compiler
>> - The optimizer for tail-recursive calls has been fixed.[...]
>Does this fix the compiler in respect to the random tester?
Not entirely. One of the reasons I wanted to make this release is to
commit a second rewrite of the lexical environment analyzer, which
really does solve all problems releated to the random tester, except for
some which have to do with optimized code producing wrong results, and
wrong inline expansions, etc --- there is still a long way ahead before
The problem with this second revision of the compiler is that it
changes, once more, the data structures which are used. Just in case
somebody is interested, intermediate code will be stored as a graph,
variables keep track of places where they are modified, and each
function keeps a list of the variables that it references, which are
external to it. Then, the compiler traverses the function graph,
identifying which functions need a full closure (i.e. an environment
which is stored as a linked list), a lexical closure (somewhat more
efficient, stack allocated environments), or uses no external variables.
The new algorithm has indeed made ECL smaller by about 10k on my system
by removing closures which were not needed. However, it is the product
of a long weekend (*) and needs to be thoroughly tested.
(*) Allerheiligen, All Saints, 1st of November, is a holiday for us
lucky inhabitants of Bavaria. However, this time no beer was involved in
the coding O:-)
More information about the ecl-devel