Skip to content

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

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions