[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

What does LOAD use for read table & package?

I'm trying to write a portable program which wants to use LOAD and
COMPILE-FILE with a particular read table and package not specified by
eval-when's or other forms in the file.  I'm not at liberty to edit the
file, and I don't want to bother writing out an intermediate file
(besides being slow, redundant, and impossible to do portably, that
screws up whatever record the CL implementation might be keeping of the
source file for definitions).  But in the implementation I'm using, LOAD
and COMPILE-FILE absoluetly insist on ignoring the binding of readtable
and package, and defaulting them to I don't know what.  (The files don't
have attribute lists.)

CLtL is not explicit on this point.  Is LOAD required to pay attention
to the bindings of *READTABLE* and *PACKAGE*?  If so, I can report a bug
and look forward to a fix N years hence.  Many people will say "no" just
because they want their LOAD to attend to the -*- attribute list, but
what if there isn't any attribute list?  Maybe there should be
:readtable and :package keyword arguments to LOAD and COMPILE-FILE, to
override defaults that the system might have?  Or am I just going to
have to lose completely here?

Jonathan Rees.