Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ABCL instantiates effective-column-slot with unbound slot #257

Open
PiotrWasik opened this issue Dec 7, 2020 · 3 comments
Open

ABCL instantiates effective-column-slot with unbound slot #257

PiotrWasik opened this issue Dec 7, 2020 · 3 comments

Comments

@PiotrWasik
Copy link

In fresh quicklisp, ABCL 1.8.0

(in-package :postmodern)

(defclass country ()
  ((name :col-type string :initarg :name
         :reader country-name)
   (inhabitants :col-type integer :initarg :inhabitants
                :accessor country-inhabitants)
   (sovereign :col-type (or db-null string) :initarg :sovereign
              :accessor country-sovereign))
  (:metaclass dao-class)
  (:keys name))

gives this error:

The slot DIRECT-SLOT is unbound in the object #<EFFECTIVE-COLUMN-SLOT {2F2C4370}>.
   [Condition of type COMMON-LISP:UNBOUND-SLOT]

Restarts:
 0: [RETRY] Retry SLY mREPL evaluation request.
 1: [*ABORT] Return to SLY's top level.
 2: [ABORT] Abort thread.

Backtrace:
 0: (#<FUNCTION {45C39EEE}> #<UNBOUND-SLOT {FA49E2E}> #<FUNCTION {5FD903B3}>)
 1: (#<FUNCTION {5FD903B3}> #<UNBOUND-SLOT {FA49E2E}> #<FUNCTION {5FD903B3}>)
 2: (COMMON-LISP:APPLY #<FUNCTION {5FD903B3}> (#<UNBOUND-SLOT {FA49E2E}> #<FUNCTION {5FD903B3}>))
 3: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<UNBOUND-SLOT {FA49E2E}> #<FUNCTION {5FD903B3}>)
 4: (COMMON-LISP:INVOKE-DEBUGGER #<UNBOUND-SLOT {FA49E2E}>)
 5: (COMMON-LISP:ERROR COMMON-LISP:UNBOUND-SLOT :INSTANCE #<EFFECTIVE-COLUMN-SLOT {2F2C4370}> :NAME DIRECT-SLOT)
 6: (#<FUNCTION {7427A388}> (#<COMMON-LISP:STANDARD-CLASS EFFECTIVE-COLUMN-SLOT {3A9BE9CF}> #<EFFECTIVE-COLUMN-SLOT {2F2C4370}> DIRECT-SLOT))
 7: (SLOT-COLUMN #<EFFECTIVE-COLUMN-SLOT {2F2C4370}>)
 8: (DAO-COLUMN-SLOTS #<DAO-CLASS {39DD59BF}>)
 9: (DAO-COLUMN-FIELDS #<DAO-CLASS {39DD59BF}>)
10: (COMMON-LISP:EVERY #<FUNCTION {60B09484}> (NAME))
11: (#<FUNCTION {7763D7BA}> (#<DAO-CLASS {39DD59BF}>))
12: (MOP:FINALIZE-INHERITANCE #<DAO-CLASS {39DD59BF}>)
13: (MOP::MAYBE-FINALIZE-CLASS-SUBTREE #<DAO-CLASS {39DD59BF}>)
14: (MOP::STD-AFTER-INITIALIZATION-FOR-CLASSES #<DAO-CLASS {39DD59BF}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...)
15: (COMMON-LISP:APPLY #<STD-AFTER-INITIALIZATION-FOR-CLASSES {EB64ED5}> #<DAO-CLASS {39DD59BF}> (:NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...))
16: (#<FUNCTION {3E11113D}> #<DAO-CLASS {39DD59BF}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...)
17: (COMMON-LISP:APPLY #<FUNCTION {3E11113D}> (#<DAO-CLASS {39DD59BF}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SUPERCLASSES ...))
18: (#<FUNCTION {6D52B7E1}> (#<DAO-CLASS {39DD59BF}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SUPERCLASSES ...))
19: (#<COMMON-LISP:STANDARD-GENERIC-FUNCTION {23BDEC01}> #<DAO-CLASS {39DD59BF}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...)
20: (COMMON-LISP:APPLY #<COMMON-LISP:STANDARD-GENERIC-FUNCTION {23BDEC01}> #<DAO-CLASS {39DD59BF}> (:NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...))
21: (#<FUNCTION {9220A7B}> #<COMMON-LISP:STANDARD-CLASS DAO-CLASS {6D06813A}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...)
22: (COMMON-LISP:APPLY #<FUNCTION {9220A7B}> (#<COMMON-LISP:STANDARD-CLASS DAO-CLASS {6D06813A}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SUPERCLASSES ...))
23: (#<COMMON-LISP:STANDARD-GENERIC-FUNCTION {33051A05}> #<COMMON-LISP:STANDARD-CLASS DAO-CLASS {6D06813A}> :NAME COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL ...)
24: (COMMON-LISP:APPLY #<COMMON-LISP:STANDARD-GENERIC-FUNCTION {33051A05}> #<COMMON-LISP:STANDARD-CLASS DAO-CLASS {6D06813A}> :NAME COUNTRY :DIRECT-SUPERCLASSES ...)
25: (#<FUNCTION {6015C2E2}> COMMON-LISP:NIL COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SLOTS ...)
26: (COMMON-LISP:APPLY #<FUNCTION {6015C2E2}> (COMMON-LISP:NIL COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SLOTS ((:NAME NAME :INITARGS # :READERS # ...) (:NAME INHABITANTS :INITARGS # :READERS #..
27: (#<COMMON-LISP:STANDARD-GENERIC-FUNCTION {C1DD4A6}> COMMON-LISP:NIL COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SLOTS ...)
28: (COMMON-LISP:APPLY #<COMMON-LISP:STANDARD-GENERIC-FUNCTION {C1DD4A6}> COMMON-LISP:NIL COUNTRY (:DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SLOTS ((:NAME NAME :INITARGS # :READERS # ...) (:NAME INHABI..
29: (MOP:ENSURE-CLASS COUNTRY :DIRECT-SUPERCLASSES COMMON-LISP:NIL :DIRECT-SLOTS ((:NAME NAME :INITARGS (:NAME) :READERS (COUNTRY-NAME) ...) (:NAME INHABITANTS :INITARGS (:INHABITANTS) :READERS (COUNTRY-I..
30: (SYSTEM::%EVAL (COMMON-LISP:DEFCLASS COUNTRY COMMON-LISP:NIL ((NAME :COL-TYPE COMMON-LISP:STRING :INITARG :NAME :READER ...) (INHABITANTS :COL-TYPE COMMON-LISP:INTEGER :INITARG :INHABITANTS :ACCESSOR ..
31: (COMMON-LISP:EVAL (COMMON-LISP:DEFCLASS COUNTRY COMMON-LISP:NIL ((NAME :COL-TYPE COMMON-LISP:STRING :INITARG :NAME :READER ...) (INHABITANTS :COL-TYPE COMMON-LISP:INTEGER :INITARG :INHABITANTS :ACCESS..
32: (#<FUNCTION {56BBAF24}>)
33: (SLYNK::CALL-WITH-RETRY-RESTART "Retry SLY mREPL evaluation request." #<FUNCTION {56BBAF24}>)
34: (#<FUNCTION {2E2EF7AD}>)
35: (#<FUNCTION {37C651C1}>)
36: (SLYNK::CALL-WITH-BINDINGS ((COMMON-LISP:*PACKAGE* . #<PACKAGE POSTMODERN>) (COMMON-LISP:* . #<PACKAGE POSTMODERN>) (COMMON-LISP:** :POSTMODERN) (COMMON-LISP:***) (COMMON-LISP:/ #<PACKAGE POSTMODERN>)..


@sabracrolleton
Copy link
Collaborator

I will look at it this weekend.

@sabracrolleton
Copy link
Collaborator

Right now it seems to be a more general bug in abcl 1.8 with respect to CLOS superclasses. It does not appear in 1.7.1 and has been reported by Pascal Costanza. The ticket is here: https://abcl.org/trac/ticket/479. I will hold this open so I monitor it.

Thank you for flagging this.

Sabra

@sabracrolleton
Copy link
Collaborator

I have to admit I have not been able to solve this one. If anyone has any bright ideas, let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants