[Ecls-list] Mayor bug fixed

Juan Jose Garcia-Ripoll jjgarcia at users.sourceforge.net
Sat Oct 13 09:27:13 UTC 2007


running Paul's random test generator is both a blessing and a
nightmare :-) Thing is a rather obscure and old bug was uncovered
which relates the way ECL creates C code.

It goes like this. When calling a function, sometimes the arguments
are expanded in the same line, and other times they are kept in
temporary variables. This is most of the times ok unless one of the
in-lined statements references a variable that is changed by a
statement which cannot be in-lined.

This is rather old code, part of the batch of files that have to be
thoroughly tested and simplified. Luckily the solution is simple: use
temporary variables for everything but the simplest lines. This only
leads to slightly more verbose code, but the C compiler usually does a
good work at simplifying the code and producing efficient binaries.

The result is that the random test generator is now at 10000 tests and
keeps working. Let's see if we can get close to a million, haha :-)

BTW, with the new CVS version tagging mechanism, these changes are
reflected on the lisp implementation version:

$ ecl
ECL (Embeddable Common-Lisp) 0.9i (CVS 2007-10-13)
> (lisp-implementation-version)
"0.9i (CVS 2007-10-13)"

Best regards,


Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)

More information about the ecl-devel mailing list