guicho271828 / trivia

Pattern Matcher Compatible with Optima
Other
334 stars 22 forks source link

no-applicable-method for mop:compute-slots on structure classes in ABCL #118

Closed mthom closed 3 years ago

mthom commented 3 years ago

I'm trying to load my project that uses trivia into ABCL through asdf, and I get a no-applicable-method error for mop:compute-slots, with backtrace:

Backtrace:
  0: (#<FUNCTION {6E17A35E}> #<SIMPLE-ERROR {5F040AF6}> #<FUNCTION {6E17A35E}>)
  1: (APPLY #<FUNCTION {6E17A35E}> (#<SIMPLE-ERROR {5F040AF6}> #<FUNCTION {6E17A35E}>))
  2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<SIMPLE-ERROR {5F040AF6}> #<FUNCTION {6E17A35E}>)
  3: (INVOKE-DEBUGGER #<SIMPLE-ERROR {5F040AF6}>)
  4: (ERROR "There is no applicable method for the generic function ~S when called with arguments ~S." #<STANDARD-GENERIC-FUNCTION {A199C6}> (#<STRUCTURE-CLASS RULEML-DOCUMENT>))
  5: (NO-APPLICABLE-METHOD #<STANDARD-GENERIC-FUNCTION {A199C6}> #<STRUCTURE-CLASS RULEML-DOCUMENT>)
  6: (APPLY #<NO-APPLICABLE-METHOD {38C58F05}> #<STANDARD-GENERIC-FUNCTION {A199C6}> (#<STRUCTURE-CLASS RULEML-DOCUMENT>))
      Locals:
        EXTENSIONS::|function| = #<FUNCTION #<NO-APPLICABLE-METHOD {38C58F05}> {38C58F05}>
        EXTENSIONS::|&rest|#1 = #<STANDARD-GENERIC-FUNCTION MOP:COMPUTE-SLOTS {A199C6}>
        EXTENSIONS::|args|#2 = (#<STRUCTURE-CLASS RULEML-DOCUMENT {6D5EA260}>)
  7: (MOP:COMPUTE-SLOTS #<STRUCTURE-CLASS RULEML-DOCUMENT>)
      Locals:
        "arg0" = #<STRUCTURE-CLASS RULEML-DOCUMENT {6D5EA260}>
  8: (TRIVIA.LEVEL2.IMPL::FIND-EFFECTIVE-SLOT :BASE RULEML-DOCUMENT)
      Locals:
        SYMBOL = :BASE
        TYPE#1 = RULEML-DOCUMENT
  9: (TRIVIA.LEVEL2.IMPL::ACCESSOR-FORM-ON-STRUCTURE #:IT315038 RULEML-DOCUMENT (:BASE BASE))
 10: (#<FUNCTION {4DBE843E}> (:BASE BASE))
 11: (MAPCAR #<FUNCTION {4DBE843E}> ((:BASE BASE) (:PREFIXES PREFIXES) (:IMPORTS IMPORTS) (:PERFORMATIVES PERFORMATIVES)))
 12: (APPLY #<MAPCAR {5F956734}> #<FUNCTION {4DBE843E}> (((:BASE BASE) (:PREFIXES PREFIXES) (:IMPORTS IMPORTS) (:PERFORMATIVES PERFORMATIVES))))
 13: (ALEXANDRIA:MAPPEND #<FUNCTION {4DBE843E}> ((:BASE BASE) (:PREFIXES PREFIXES) (:IMPORTS IMPORTS) (:PERFORMATIVES PERFORMATIVES)))
 14: (TRIVIA.LEVEL2.IMPL::MAP-ACCESSORS ((:BASE BASE) (:PREFIXES PREFIXES) (:IMPORTS IMPORTS) (:PERFORMATIVES PERFORMATIVES)) #:IT315038 RULEML-DOCUMENT)
 15: (#<FUNCTION {766F1D9A}> RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES ...)
 16: (APPLY #<FUNCTION {766F1D9A}> (RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...))
 17: (PATTERN-EXPAND-1 (STRUCTURE RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES ...))
 18: (PATTERN-EXPAND (RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...))
 19: (PATTERN-EXPAND-ALL (RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...))
 20: (TRIVIA.LEVEL2.IMPL::PATTERN-EXPAND-ALL/LIFT0 (RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...))
 21: (TRIVIA.LEVEL2.IMPL::PATTERN-EXPAND-ALL/LIFT (RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...))
 22: (TRIVIA.LEVEL2.IMPL::EXPAND-MULTIPATTERNS ((RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...)))
 23: (TRIVIA.LEVEL2.IMPL::EXPAND-CLAUSE (((RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...)) (FUNCALL KEY (MAKE-RULEML-DOCUMENT :BASE # :PREFIXES # :IMPORTS ...))))
 24: ((MACRO-FUNCTION MATCH2*+) (MATCH2*+ (TERM) (T) ((#) (FUNCALL KEY #)) ((#) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ((#) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ...) #<ENVIRONMENT {..
 25: (MACROEXPAND-1 (MATCH2*+ (TERM) (T) ((#) (FUNCALL KEY #)) ((#) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ((#) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ...) #<ENVIRONMENT {68F9116F}>)
 26: (PRECOMPILER::PRECOMPILE1 (MATCH2*+ (TERM) (T) ((#) (FUNCALL KEY #)) ((#) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ((#) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ...))
 27: (PRECOMPILER::PRECOMPILE1 (MATCH2+ TERM T ((RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...) (FUNCALL KEY #)) ((RULEML-ASSERT :ITEMS TERMS) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...))..
 28: (PRECOMPILER::PRECOMPILE1 (MATCH2 TERM ((RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...) (FUNCALL KEY #)) ((RULEML-ASSERT :ITEMS TERMS) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ((..
 29: (PRECOMPILER::PRECOMPILE1 (MATCH TERM ((RULEML-DOCUMENT :BASE BASE :PREFIXES PREFIXES :IMPORTS ...) (FUNCALL KEY #)) ((RULEML-ASSERT :ITEMS TERMS) (FUNCALL KEY # :POSITIVE POSITIVE :NEGATIVE ...)) ((R..
 30: (PRECOMPILER::PRECOMPILE-FLET/LABELS (FLET ((DEFAULT-PROPAGATOR # #)) (MATCH TERM (# #) (# #) (# #) (# #) ...)))
 31: (PRECOMPILER::PRECOMPILE1 (FLET ((DEFAULT-PROPAGATOR # #)) (MATCH TERM (# #) (# #) (# #) (# #) ...)))
 32: (PRECOMPILER::PRECOMPILE-BLOCK (BLOCK TRANSFORM-AST (FLET (#) (MATCH TERM # # # # ...))))
 33: (PRECOMPILER::PRECOMPILE1 (BLOCK TRANSFORM-AST (FLET (#) (MATCH TERM # # # # ...))))
 34: (PRECOMPILER::PRECOMPILE-LAMBDA (LAMBDA (TERM KEY &KEY POSITIVE NEGATIVE EXTERNAL ...) (BLOCK TRANSFORM-AST (FLET # #))))
 35: (PRECOMPILER::PRECOMPILE1 (LAMBDA (TERM KEY &KEY POSITIVE NEGATIVE EXTERNAL ...) (BLOCK TRANSFORM-AST (FLET # #))))
 36: (JVM:COMPILE-DEFUN TRANSFORM-AST (LAMBDA (TERM KEY &KEY POSITIVE NEGATIVE EXTERNAL ...) (BLOCK TRANSFORM-AST (FLET # #))) NIL #P"/home/mark/Projects/CL/PSOATransRun/psoa_ast_480.cls" #<FILE-STREAM {17..
 37: (SYSTEM::PROCESS-TOPLEVEL-DEFUN (DEFUN TRANSFORM-AST (TERM KEY &KEY POSITIVE NEGATIVE EXTERNAL ...) "Performs a post-order traversal of an abstract syntax tree of PSOA
     RuleML nodes, all of which have ..
 38: (SYSTEM::PROCESS-TOPLEVEL-FORM (DEFUN TRANSFORM-AST (TERM KEY &KEY POSITIVE NEGATIVE EXTERNAL ...) "Performs a post-order traversal of an abstract syntax tree of PSOA
     RuleML nodes, all of which have s..
 39: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {7DAD4A00}>)
 40: (SYSTEM::COMPILE-FROM-STREAM #<FILE-STREAM {5DFF5EB3}> #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.abcl" #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.abcl-tmp" #P"/home/mark/Projects/CL/PSOATra..
 41: (COMPILE-FILE #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" :OUTPUT-FILE #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.abcl")
 42: (#<FUNCTION (LAMBDA ()) {653B2C35}>)
 43: (JAVA:JRUN-EXCEPTION-PROTECTED #<FUNCTION (LAMBDA ()) {653B2C35}>)
 44: ((FLET SWANK/BACKEND:SWANK-COMPILE-FILE) #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.abcl" NIL :DEFAULT :POLICY ...)
 45: (APPLY #<(FLET SWANK-COMPILE-FILE) {7CE71428}> #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.abcl" NIL :DEFAULT ...)
 46: (SWANK/BACKEND:SWANK-COMPILE-FILE #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.abcl" NIL :DEFAULT :POLICY ...)
 47: (SWANK::SWANK-COMPILE-FILE* #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T)
 48: (APPLY SWANK::SWANK-COMPILE-FILE* #P"/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T NIL)
 49: (#<FUNCTION {6B0DACFE}>)
 50: (#<FUNCTION {4CA06DEA}>)
 51: (SWANK::MEASURE-TIME-INTERVAL #<FUNCTION {4CA06DEA}>)
 52: (SWANK::COLLECT-NOTES #<FUNCTION {6B0DACFE}>)
 53: (#<FUNCTION {70C6AACF}>)
 54: (RUTILS.ABBR:CALL #<FUNCTION {70C6AACF}>)
 55: (#<FUNCTION (LAMBDA (SWANK/BACKEND::FN)) {48401CAD}> #<FUNCTION {70C6AACF}>)
 56: (APPLY #<FUNCTION (LAMBDA (SWANK/BACKEND::FN)) {48401CAD}> #<FUNCTION {70C6AACF}> NIL)
 57: (SWANK/BACKEND:CALL-WITH-SYNTAX-HOOKS #<FUNCTION {70C6AACF}>)
 58: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<FUNCTION {70C6AACF}>)
 59: (SWANK:COMPILE-FILE-FOR-EMACS "/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T)
 60: (SYSTEM::%EVAL (SWANK:COMPILE-FILE-FOR-EMACS "/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T))
 61: (EVAL (SWANK:COMPILE-FILE-FOR-EMACS "/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T))
 62: (SWANK:EVAL-FOR-EMACS (SWANK:COMPILE-FILE-FOR-EMACS "/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T) "#:psoa-ast" 83)
 63: (APPLY #<EVAL-FOR-EMACS {C887C6A}> ((SWANK:COMPILE-FILE-FOR-EMACS "/home/mark/Projects/CL/PSOATransRun/psoa-ast.lisp" T) "#:psoa-ast" 83))
 64: (#<FUNCTION {34C4A6AB}>)
 65: (RUTILS.ABBR:CALL #<FUNCTION {34C4A6AB}>)
 66: ((FLET SWANK/BACKEND:CALL-WITH-DEBUGGER-HOOK) #<SWANK-DEBUGGER-HOOK {6952175E}> #<FUNCTION {34C4A6AB}>)
 67: (APPLY #<(FLET CALL-WITH-DEBUGGER-HOOK) {32A88691}> #<SWANK-DEBUGGER-HOOK {6952175E}> #<FUNCTION {34C4A6AB}> NIL)
 68: (SWANK/BACKEND:CALL-WITH-DEBUGGER-HOOK #<SWANK-DEBUGGER-HOOK {6952175E}> #<FUNCTION {34C4A6AB}>)
 69: (#<FUNCTION {7DA86213}>)
 70: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-INPUT* . #S(EXTENSIONS:SLIME-INPUT-STREAM)) (*STANDARD-OUTPUT* . #S(EXTENSIONS:SLIME-OUTPUT-STREAM)) (*TRACE-OUTPUT* . #S(EXTENSIONS:SLIME-OUTPUT-STREAM)) (*ERRO..
 71: (#<FUNCTION {299D37F1}>)
 72: (SWANK::CALL-WITH-BINDINGS NIL #<FUNCTION {299D37F1}>)
 73: (#<FUNCTION {5FF7A05D}>)
 74: (RUTILS.ABBR:CALL #<FUNCTION {5FF7A05D}>)
 75: (#<FUNCTION (LAMBDA ()) {6171F94A}>)
 76: (THREADS::THREAD-FUNCTION-WRAPPER #<FUNCTION (LAMBDA ()) {6171F94A}>)

when compiling this file: https://github.com/mthom/cl-psoatransrun/blob/master/psoa-ast.lisp

guicho271828 commented 3 years ago

you should wrap defstruct in an eval-when :compile-toplevel :load-toplevel :execue