[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
>certain platforms?
>  
>
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 
full stability.

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.

Best regards,

Juanjo

(*) 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 mailing list