Hi,
McCLIM currently has trouble building on OpenMCL. Do you have a fix for that?
Thanks, David
---------------------------------------------------------------------- No MAKE-LOAD-FORM method is defined for #S(DREI:FACE :INK #.CLIM:+FOREGROUND-INK+ :STYLE #<STANDARD-TEXT-STYLE NIL :ROMAN NIL>) [Condition of type SIMPLE-ERROR]
Restarts: 0: [RETRY-COMPILE-FILE] Retry compiling #P"/home/david/clbuild/source/mcclim/Drei/drawing-options.lisp" 1: [SKIP-COMPILE-FILE] Skip compiling #P"/home/david/clbuild/source/mcclim/Drei/drawing-options.lisp" 2: [RETRY] Retry performing #<COMPILE-OP NIL #x3000410B90ED> on #<CL-SOURCE-FILE "drawing-options" #x30004105FDED>. 3: [ACCEPT] Continue, treating #<COMPILE-OP NIL #x3000410B90ED> on #<CL-SOURCE-FILE "drawing-options" #x30004105FDED> as having been successful. 4: [ABORT] Abort SLIME compilation. 5: [ABORT] Return to SLIME's top level. 6: [ABORT-BREAK] Reset this process 7: [ABORT] Kill this process
Backtrace: 0: (CCL::NO-MAKE-LOAD-FORM-FOR #S(DREI:FACE :INK #.CLIM:+FOREGROUND-INK+ :STYLE #<STANDARD-TEXT-STYLE NIL :ROMAN NIL>)) 1: (CCL::FASL-SCAN-USER-FORM #S(DREI:FACE :INK #.CLIM:+FOREGROUND-INK+ :STYLE #<STANDARD-TEXT-STYLE NIL :ROMAN NIL>)) 2: (CCL::FASL-SCAN-CLFUN #<Anonymous Function #x300041F0E08F>) 3: (CCL::FASL-SCAN '((23 81) (47 "home:clbuild;source;mcclim;Drei;drawing-options.lisp.newest") (4 #<Anonymous Function #x300041EF043F>) (4 #<Anonymous Function #x300041EE843F>) (4 #<Anonymous Function #x300041EE170F>) (4 #<Anonymous Function #x300041F1A9EF>) (4 #<Anonymous Function #x300041F13D7F>) (4 #<Anonymous Function #x300041F0E08F>) (4 #<Anonymous Function #x300041F0839F>) ..)))) 4: (CCL::FASL-SCAN-FORMS-AND-DUMP-FILE '((23 81) (47 "home:clbuild;source;mcclim;Drei;drawing-options.lisp.newest") (4 #<Anonymous Function #x300041EF043F>) (4 #<Anonymous Function #x300041EE843F>) (4 #<Anonymous Function #x300041EE170F>) (4 #<Anonymous Function #x300041F1A9EF>) (4 #<Anonymous Function #x300041F13D7F>) (4 #<Anonymous Function #x300041F0E08F>) (4 #<Anonymous Function #x300041F0839F>) ..))) "/home/david/clbuild/source/mcclim/Drei/drawing-options.lx64fsl" #<LEXICAL-ENVIRONMENT #x300041EF663D>) 5: (CCL::%COMPILE-FILE "/home/david/clbuild/source/mcclim/Drei/drawing-options.lisp" "/home/david/clbuild/source/mcclim/Drei/drawing-options.lx64fsl" 'NIL 'NIL 'NIL 'NIL 'T 'T 'NIL 'NIL #<BACKEND LINUXX8664 #x3000407892CD> ':DEFAULT) 6: (COMPILE-FILE #P"/home/david/clbuild/source/mcclim/Drei/drawing-options.lisp" ':OUTPUT-FILE #P"/home/david/clbuild/source/mcclim/Drei/drawing-options.lx64fsl" ':VERBOSE 'NIL ':PRINT 'NIL ':LOAD 'NIL ':FEATURES 'NIL ':TARGET ':LINUXX8664 ':SAVE-LOCAL-SYMBOLS 'NIL ':SAVE-DOC-STRINGS 'T ':SAVE-DEFINITIONS 'T ':EXTERNAL-FORMAT 'NIL ':FORCE ':DEFAULT) 7: (#<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)> #<COMPILE-OP NIL #x3000410B90ED> #<CL-SOURCE-FILE "drawing-options" #x30004105FDED>) 8: (CCL::%%BEFORE-AND-AFTER-COMBINED-METHOD-DCODE '(NIL #<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)> . 5864064454365)) 9: (CCL::%CALL-NEXT-METHOD '(NIL #<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)> . 5864064454365)) 10: (#<STANDARD-METHOD ASDF:PERFORM :AROUND (T T)> '(NIL #<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)> . 5864064454365) #<COMPILE-OP NIL #x3000410B90ED>) 11: (CCL::%%STANDARD-COMBINED-METHOD-DCODE '(#<STANDARD-METHOD ASDF:PERFORM :AROUND (T T)> (#<STANDARD-METHOD ASDF:PERFORM :BEFORE #>) (#<STANDARD-METHOD ASDF:PERFORM :AFTER #>) #<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)>) 5864064454365) 12: (ASDF:OPERATE 'ASDF:LOAD-OP "mcclim") 13: (#<Anonymous Function #x300040FE12BF>) 14: (#<Anonymous Function #x300040E70BFF> #<COMPILED-LEXICAL-CLOSURE #x3000410176FF>) 15: (SWANK-BACKEND:CALL-WITH-COMPILATION-HOOKS #<COMPILED-LEXICAL-CLOSURE #x3000410176FF>) 16: (SWANK::OPERATE-ON-SYSTEM "mcclim" "LOAD-OP") 17: (#<Anonymous Function #x300040FE1A5F>) 18: (SWANK::MEASURE-TIME-INTERVAL #<COMPILED-LEXICAL-CLOSURE #x30004101774F>) 19: (SWANK::SWANK-COMPILER #<COMPILED-LEXICAL-CLOSURE #x30004101774F>) 20: (SWANK:OPERATE-ON-SYSTEM-FOR-EMACS "mcclim" "LOAD-OP") 21: (CCL::CALL-CHECK-REGS 'SWANK:OPERATE-ON-SYSTEM-FOR-EMACS "mcclim" "LOAD-OP") 22: (#<Anonymous Function #x300040F344EF>) 23: (#<Anonymous Function #x300040E0C16F> #<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x300040F2BF6F> #<COMPILED-LEXICAL-CLOSURE #x3000410177AF>) 24: (SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK #<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x300040F2BF6F> #<COMPILED-LEXICAL-CLOSURE #x3000410177AF>) 25: (SWANK::EVAL-FOR-EMACS '(SWANK:OPERATE-ON-SYSTEM-FOR-EMACS "mcclim" "LOAD-OP") "COMMON-LISP-USER" 12) 26: (FUNCALL 'SWANK::EVAL-FOR-EMACS '(SWANK:OPERATE-ON-SYSTEM-FOR-EMACS "mcclim" "LOAD-OP") "COMMON-LISP-USER" 12) 27: (SWANK::READ-FROM-EMACS) 28: (#<Anonymous Function #x300040EBA10F>) 29: (#<Anonymous Function #x300040E0C16F> #<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x300040F2BF6F> #<Anonymous Function #x300040EBA10F>) 30: (SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK #<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x300040F2BF6F> #<Anonymous Function #x300040EBA10F>) 31: (#<Anonymous Function #x300040EA63AF>) 32: (SWANK::CALL-WITH-REDIRECTED-IO #<CONNECTION #x300040F7163D> #<COMPILED-LEXICAL-CLOSURE #x3000410177FF>) 33: (SWANK::MAYBE-CALL-WITH-IO-REDIRECTION #<CONNECTION #x300040F7163D> #<COMPILED-LEXICAL-CLOSURE #x3000410177FF>) 34: (SWANK::CALL-WITH-CONNECTION #<CONNECTION #x300040F7163D> #<Anonymous Function #x300040EBA10F>) 35: (SWANK::HANDLE-REQUEST #<CONNECTION #x300040F7163D>) 36: (SWANK::REPL-LOOP #<CONNECTION #x300040F7163D>) 37: (#<Anonymous Function #x300040EB4DFF>) 38: (SWANK::CALL-WITH-BINDINGS 'NIL #<COMPILED-LEXICAL-CLOSURE #x300040F882DF>) 39: (#<Anonymous Function #x300040EB4E7F>) 40: (CCL::RUN-PROCESS-INITIAL-FORM #<PROCESS repl-thread(5) [Active] #x300040F7312D> '(#<COMPILED-LEXICAL-CLOSURE #x300040F7309F>)) 41: (#<Anonymous Function #x30004045DE7F> #<PROCESS repl-thread(5) [Active] #x300040F7312D> '(#<COMPILED-LEXICAL-CLOSURE #x300040F7309F>)) 42: (#<Anonymous Function #x30004043CF1F>)
David Lichteblau david@lichteblau.com writes:
Hi,
McCLIM currently has trouble building on OpenMCL. Do you have a fix for that?
I do not understand that error, or why it happens. Drawing-options.lisp is very simple.
Quoting Troels Henriksen (athas@sigkill.dk):
I do not understand that error, or why it happens. Drawing-options.lisp is very simple.
Simple on SBCL, where clim-lisp:defconstant is actually defvar, but perhaps not on Lisps where cl:defconstant is being used?
Changing fix-openmcl.lisp to use defvar for defconstant fixes the problem, but is that the right solution? Is there perhaps a make-load-form missing somewhere?
d.
David Lichteblau david@lichteblau.com writes:
Simple on SBCL, where clim-lisp:defconstant is actually defvar, but perhaps not on Lisps where cl:defconstant is being used?
Changing fix-openmcl.lisp to use defvar for defconstant fixes the problem, but is that the right solution? Is there perhaps a make-load-form missing somewhere?
I got an email from Fred Gilham suggesting that the error is the use of the functions that are automatically created by DEFSTRUCT. These functions are not guaranteed to be available at compile-time. I committed his proposed fix, which was to wrap the defstruct forms in eval-when. Does this fix it?
Quoting Troels Henriksen (athas@sigkill.dk):
I got an email from Fred Gilham suggesting that the error is the use of the functions that are automatically created by DEFSTRUCT. These functions are not guaranteed to be available at compile-time. I committed his proposed fix, which was to wrap the defstruct forms in eval-when. Does this fix it?
No.
Defining MAKE-LOAD-FORM methods for those defstructs helps fix this problem, although it ends up requiring even more MAKE-LOAD-FORM methods on other stuff like %FOREGROUND ink.
Then it fails recompilation because OpenMCL goes all SBCL and complains that +default-stroke-drawer-dispatcher+ is being redefined to a non-EQL value.
I'd think the better solution is to take all DEFCONSTANT uses in Drei and replace them with DEFVAR.
d.
David Lichteblau david@lichteblau.com writes:
Defining MAKE-LOAD-FORM methods for those defstructs helps fix this problem, although it ends up requiring even more MAKE-LOAD-FORM methods on other stuff like %FOREGROUND ink.
I don't understand this problem at all. Why aren't the defstruct-defined functions accessible when drawing-options.lisp is being compiled?