[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 (Embeddable Common-Lisp) 0.9i (CVS 2007-10-13)
"0.9i (CVS 2007-10-13)"
Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)
More information about the ecl-devel