Skip to content

File compiler & loader are sometimes sensitive to package consistency rules #749

@kreuter

Description

@kreuter

ABCL's file compiler and loader sometimes involve the printer & reader (e.g., for the __loader__._ piece of the compiled file), which turns out to make the combination of the compiler & loader subject to package consistency rules around interned symbols. This file hits a couple types of READER-ERROR during LOAD when a symbol referenced in the compiled file has a different status at load-time. (I don't know exactly which parts of which forms ABCL externalizes & reloads this way; it's clearly not all.)

I don't think signaling the errors ABCL does is correct. Although I wish ANSI 3.2.4 were more straightforward, I think it implies that however the file compiler externalizes an interned symbol, provided there's a package with the same primary name at load time, the loader is supposed to find an existing symbol with the same name or else intern a new one.

So it seems to me that wherever the file compiler externalizes an interned symbol as text for the loader to parse, it should use a notation for which the loader's parser will not error during a subsequent load when a package of the appropriate name exists at load-time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions