Skip to content

LCOM vs DFASL of commonlisp files, esp for files early in the loadup #1355

@rmkaplan

Description

@rmkaplan

(This is a follow on to problems mentioned in #1331)

Some files that can't be compiled with the byte compiler (LCOM) are marked as FILETYPE = CL:COMPILE-TYPE, but they appear as .LCOM files. CMLCHARACTER is a case in point.

With EXPORTS.ALL loaded,
(TCOMPL 'CMLCHARACTER) produces an error.

(CL:COMPILE-FILE 'CMLCHARACTER) appears to go through without error.

The loader seems to prefer the LCOM if both of them are there, even though the DFASL is later.

So, one might think that you could simply delete the LCOM, and that the DFASL would therefore be unmasked.

But: you can'd do a makeinit if CMLCHARACTER is a DFASL, or if FASLOAD and some others are DFASLs. I suspect that this is because the initial memory image doesn't contain the DFASL reader, that LCOM's are required for early files in the loadup sequence.

So then: how do you get a proper LCOM for such a file? In this case (#1331) I just wanted to get a clean compile after a MAKEFILE NEW that changed only the filemap

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Status

    No status

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions