Bug report: Loading a FASL into a package which doesn't import SETQ

Robert Munyer 2433647181 at munyer.com
Thu Nov 12 07:02:12 UTC 2020


Thank you for working on these!

I haven't been able to compile or test your changes, nor to write up
the latest bug I found ("compile-file not doing minimal compilation
inside defconstant/defparameter/defvar"), because I've been preparing
for a not-quite-hurricane.

But I do have time to answer your question...

>>>> It's conceivably possible that _all_ of the manipulation of
>>>> *PACKAGE* that happens during COMPILE-FILE could be removed,
>>>> because the user is already required to have *PACKAGE* set
>>>> correctly when invoking LOAD.
>>>
>>> I don't think this is true:  COMPILE-FILE should actually capture
>>> the current package when COMPILE-FILE is invoked, arranging to have
>>> this package present when LOAD occurs.  [An example of this][1]
>>> works on SBCL/CCL but fails on ABCL even with all of your
>>> suggestions.  Please correct me if you believe this isn't the case.

This was discussed and voted on as issue COMPILE-FILE-SYMBOL-HANDLING:
http://www.lispworks.com/documentation/HyperSpec/Issues/iss063_w.htm

To see the outcome of that vote in the spec, see the subsection
labeled "symbol:" in section 3.2.4.4:
http://www.lispworks.com/documentation/HyperSpec/Body/03_bdd.htm

I haven't looked at your test cases, but some of them may be trying
to do things that 3.2.4.4 says that programs are not allowed to do,
and compiler implementors are not expected to support.



More information about the armedbear-devel mailing list