metaclass & recompilation issue

Bug #746132 reported by Nikodemus Siivola
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

This is not an actual test case--I at least could not reproduce this just now. The symptom went away, and I'm not sure why. ...but I just spent a while scratching my headed at an odd error, and figure the way it happened must have been *something* like this:

1. BKNR.DATASTORE compiled and loaded
2. Core dumped
3. Timestamps on source files jump without actual changes
4. New SBCL instance from the saved core.
5. Reload BKNR.DATASTORE--muchos recompilation due to the timestamps.
6. Exit SBCL.
7. Nuke core, new clean SBCL.
8. Load BKNR.DATASTORE from the compiled files.

...BOOM, trying to FIND-CLASSOID-CELL with :CREATE NIL during load of object.lisp, class PERSISTENT-EFFECTIVE-SLOT-DEFINITION doesn't exist.

description: updated
Changed in sbcl:
status: New → Incomplete
Revision history for this message
Stas Boukarev (stassats) wrote :

commit 993c261469bbf6201c6fae04fcdf255d38cf419d
Author: Stas Boukarev <email address hidden>
Date: Thu Oct 3 20:28:05 2013 +0400

    Forward referenced classoid-cells can now be loaded from FASLs.

    When
    (defun x (x)
      (typep x 'bar))

    (defclass bar ()
      ())

    is compiled twice, the typecheck is optimized and a classoid-cell is
    dumped into the FASL, but upon load in a new instance it's
    reconstructed using FIND-CLASSOID-CELL with :errorp t, resulting in an
    error, defeating the stated reason for indirection.

Changed in sbcl:
status: Incomplete → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.