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

Re: What does LOAD use for read table & package?



    It seems to me that, insofar as it is possible, we want to set things up
    so that loading a compiled file has the same effect as loading the
    source file.
                   If the source file does not explicitly specify a package,
    it should be loaded into whatever package is current when Load is
    called.

I don't think that compiled/uncompiled code consistency can be used to resolve
this issue.  One could just as easily say that loading either a source file or
a compiled file should start in some "standard" package (e.g. "USER").

My own bias is that all source files be self-descriptive in the sense of
specifying the environment they need (package, readtable, required modules,
etc.).

Perhaps both alternatives should be supported.  We could define LOAD to start
in a known state (package, readtable) and define a new function INCLUDE that
uses the current environment.  If the model for INCLUDE is "behave as if the
referenced text were directly included here" then it might also differ from
LOAD by (1) not restoring *PACKAGE* when it is done and (2) being implicitly
evaluated by the compiler like INCLUDE in other languages.
-------