[Ecls-list] Release ready

Stas Boukarev stassats at gmail.com
Sun Jan 16 21:20:42 UTC 2011


Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> writes:

> Hi everybody,
> Regarding Stas Boukarev's problems with require-ing ASDF and compiling a
> test file that defines the ASDF package, I could not reproduce it in any
> system with a clean new copy of ECL.
This is quite unfortunate, because this really is a show-stopper here, I
can't load any .fas which weren't compiled in the current instance of
ECL.

Here is my further analyses:
Consider the function
ecl_make_package
http://ecls.git.sourceforge.net/git/gitweb.cgi?p=ecls/ecl;a=blob;f=src/c/package.d;h=5939239084d30db5d484ce3ff8924a3ee64ef004;hb=HEAD#l195
which is eventually called when loading the code I showed earlier.

It calls
x = find_pending_package(env, name, nicknames);

which returns a package, because it finds it in env->packages_to_be_created (which, I
presume, is set up by LOAD), so that means that "if (Null(x)) { ... }" is
not executed, and the variable `other' isn't set to anything.
Next, it iterates over nicknames, which it has none, and `other' is still
untouched.
And finally, it does
if (!Null(other))

but the variable `other' wasn't ever initialized, and when I insert a print
statement there, it shows #<illegal pointer bf9c2d38>, which isn't null,
and it's eventually passed to CEpackage_error, which then
complains "not a lisp data object".

-- 
With Best Regards, Stas.




More information about the ecl-devel mailing list