With everything up-to-date (including clbuild and SBCL), SBCL fails to compile
weblocks' html.lisp in Darwin with the following output:
bash-3.2$ ./clbuild recompile weblocks
; loading system definition from /Users/admin/cl/clbuild/systems/cl-ppcre.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM :CL-PPCRE {1003480D41}> as CL-PPCRE
; registering #<SYSTEM :CL-PPCRE-TEST {1002C99861}> as CL-PPCRE-TEST
Loading weblocks-demo...
; loading system definition from /usr/local/lib/sbcl/sb-grovel/sb-grovel.asd
; into #<PACKAGE "ASDF1">
; registering #<SYSTEM SB-GROVEL {1002EB8B41}> as SB-GROVEL
; file: /Users/admin/cl/clbuild/source/weblocks/src/utils/html.lisp
; in: DEFMETHOD RENDER-EXTRA-TAGS
; (CLOSER-MOP:DEFMETHOD WEBLOCKS::RENDER-EXTRA-TAGS
; (WEBLOCKS::TAG-CLASS COUNT)
; "Renders extra tags to get around CSS limitations. 'tag-class'
; is a string that specifies the class name and 'count' is the
; number of extra tags to render.
; Ex:
; (render-extra-tags \"extra-\" 2) =>
; \"<div class=\"extra-1\"></div><div class=\"extra-1\"></div>\""
; (CL-WHO:WITH-HTML-OUTPUT (WEBLOCKS:*WEBLOCKS-OUTPUT-STREAM*)
; (LOOP PARENSCRIPT:FOR WEBLOCKS::I WEBLOCKS::FROM 1 WEBLOCKS::TO
; COUNT
; PARENSCRIPT:FOR WEBLOCKS::ATTR = (FORMAT NIL "~A~A"
; WEBLOCKS::TAG-CLASS
; WEBLOCKS::I)
; DO ...)))
;
; caught WARNING:
; No generic function RENDER-EXTRA-TAGS present when encountering macroexpansion of defmethod. Assuming it will be an instance of standard-generic-function.
WARNING:
COMPILE-FILE warned while performing
#<COMPILE-OP (:VERBOSE NIL) {1003AFE891}> on
#<CL-SOURCE-FILE "html" {10049018E1}>.
unhandled ASDF:COMPILE-FAILED in thread #<SB-THREAD:THREAD "initial thread" RUNNING {100361EDE1}>:
erred while invoking #<COMPILE-OP (:VERBOSE NIL) {1003AFE891}> on
#<CL-SOURCE-FILE "html" {10049018E1}>
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {10033AB979}>)[:EXTERNAL]
1: (BACKTRACE 128 #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDERR* {1000157B71}>)
2: (SB-DEBUG::DEBUGGER-DISABLED-HOOK
#<ASDF:COMPILE-FAILED {10033A8741}>
#<unavailable argument>)
3: (INVOKE-DEBUGGER #<ASDF:COMPILE-FAILED {10033A8741}>)
4: (ERROR ASDF:COMPILE-FAILED)[:EXTERNAL]
5: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE))
#<unavailable argument>
#<unavailable argument>
#<ASDF:COMPILE-OP (:VERBOSE NIL) {1003AFE891}>
#<ASDF:CL-SOURCE-FILE "html" {10049018E1}>)
6: ((LAMBDA
(SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1.))
#<unavailable argument>
#<unavailable argument>
#<ASDF:COMPILE-OP (:VERBOSE NIL) {1003AFE891}>
#<ASDF:CL-SOURCE-FILE "html" {10049018E1}>)
7: ((SB-PCL::FAST-METHOD ASDF:PERFORM ASDF:AROUND
(ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL
:FUNCTION #<CLOSURE # {1004C15769}>
:PV NIL
:NEXT-METHOD-CALL NIL
:ARG-INFO (2))
#<ASDF:COMPILE-OP (:VERBOSE NIL) {1003AFE891}>
#<ASDF:CL-SOURCE-FILE "html" {10049018E1}>)
8: ((LAMBDA ()))
9: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
10: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]291))
11: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK
#<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {31FF259}>
#S(SB-THREAD:MUTEX
:NAME "World Lock"
:%OWNER #<SB-THREAD:THREAD "initial thread" RUNNING {100361EDE1}>
:LUTEX #<unknown pointer object, widetag=#x66 {10007F169F}>))
12: (SB-C::%WITH-COMPILATION-UNIT #<CLOSURE (LAMBDA #) {1004352129}>)[:EXTERNAL]
13: (ASDF:OPERATE ASDF:LOAD-OP "weblocks-demo")[:EXTERNAL]
14: ((FLET CLBUILD::BUILD))
15: ((LAMBDA ()))
16: (SB-INT:SIMPLE-EVAL-IN-LEXENV
(CLBUILD::WITH-APPLICATION (CLBUILD::PROJECTS-STRING &KEY CLBUILD::DUMP
CLBUILD::VERBOSE CLBUILD::FORCE)
(LET ((CLBUILD::PROJECTS
(CL-PPCRE:SPLIT "\\s+" CLBUILD::PROJECTS-STRING))
(CLBUILD::BLACKLISTED-SYSTEMS
(UNLESS CLBUILD::FORCE CLBUILD::*BLACKLISTED-SYSTEMS*))
(CLBUILD::SKIPPED-SYSTEMS 'NIL)
(*PACKAGE* (FIND-PACKAGE :CL-USER)))
(SETF CLBUILD::PROJECTS (SORT CLBUILD::PROJECTS #'STRING-LESSP))
(FLET ((CLBUILD::BUILD ()
(DOLIST (CLBUILD::PROJECT CLBUILD::PROJECTS)
(DOLIST
(CLBUILD::SYSTEM
(CLBUILD::PROJECT-TO-SYSTEMS CLBUILD::PROJECT))
(COND
((FIND CLBUILD::SYSTEM CLBUILD::BLACKLISTED-SYSTEMS
:TEST #'EQUAL)
(PUSH CLBUILD::SYSTEM CLBUILD::SKIPPED-SYSTEMS))
(T (FORMAT T "Loading ~A...~%" CLBUILD::SYSTEM)
(ASDF:OPERATE 'ASDF:LOAD-OP CLBUILD::SYSTEM :VERBOSE
CLBUILD::VERBOSE)))))))
(IF CLBUILD::VERBOSE
(CLBUILD::BUILD)
(HANDLER-BIND ((STYLE-WARNING #'MUFFLE-WARNING)
(COMPILER-NOTE #'MUFFLE-WARNING))
(LET ((*COMPILE-VERBOSE* NIL)
(*COMPILE-PRINT* NIL)
(*LOAD-VERBOSE* NIL)
(*LOAD-PRINT* NIL))
(CLBUILD::BUILD)))))
(WHEN CLBUILD::SKIPPED-SYSTEMS
(FORMAT T
"WARNING: The following black-listed systems were skipped: ~
~{~A~^, ~}~%~
Try --force t to include them.~%"
CLBUILD::SKIPPED-SYSTEMS))
(WHEN CLBUILD::DUMP
(FORMAT T "Dumping monster.core...~%")
(FORCE-OUTPUT)
(SAVE-LISP-AND-DIE "monster.core"))))
#<NULL-LEXENV>)
17: (SB-FASL::LOAD-AS-SOURCE
#<SB-SYS:FD-STREAM for "file /Users/admin/cl/clbuild/clbuild.lisp" {1002D49871}>
NIL
NIL)
18: ((FLET SB-FASL::LOAD-STREAM)
#<SB-SYS:FD-STREAM for "file /Users/admin/cl/clbuild/clbuild.lisp" {1002D49871}>
NIL)
19: (LOAD "/Users/admin/cl/clbuild/clbuild.lisp")[:EXTERNAL]
20: (SB-INT:SIMPLE-EVAL-IN-LEXENV
(LOAD "/Users/admin/cl/clbuild/clbuild.lisp")
#<NULL-LEXENV>)
21: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS
((:EVAL . "(require :asdf)")
(:EVAL
. "(setq asdf:*central-registry* '(#p\"/Users/admin/cl/clbuild/systems/\"))")
(:EVAL . "nil")
(:EVAL . "(load \"/Users/admin/cl/clbuild/clbuild.lisp\")")))
22: (SB-IMPL::TOPLEVEL-INIT)
23: ((LABELS SB-IMPL::RESTART-LISP))
unhandled condition in --disable-debugger mode, quitting
;
; compilation unit aborted
; caught 1 fatal ERROR condition
; caught 1 WARNING condition
bash-3.2$
Seb
--
Emacs' AlsaPlayer - Music Without Jolts
Lightweight, full-featured and mindful of your idyllic happiness.
http://home.gna.org/eap
Scratch my last message - I was using the wrong box...
SBCL on my Darwin box is version "1.0.32.10", i.e., very up-to-date.
It may be some time before a global switch to control the emission of warnings
is implemented in closer-mop, and then utilised in weblocks.
Can you suggest a workaround in the meantime? Perhaps a magic darcs
incantation in clbuild/source/closer-mop/ that will 'un-apply' the offending
patch?
I think it will be implemented by the end of next week, and Weblocks
wouldn't need to be modified at all since the switch would default to
the previous behavior.
> Can you suggest a workaround in the meantime? Perhaps a magic darcs
> incantation in clbuild/source/closer-mop/ that will 'un-apply' the offending
> patch?
Sorry, my Darcs-fu is bad and I haven't identified the changeset. But
you could just apply this patch to closer-mop in the meantime:
--- old-closer-mop/pcl/closer-mop.lisp 2009-11-04 14:52:22.431451931
+0100
+++ new-closer-mop/pcl/closer-mop.lisp 2009-11-04 14:52:22.431451931
+0100
@@ -402,6 +402,7 @@
(defmacro defmethod (&whole form name &body body)
(declare (ignore body))
(let ((generic-function (when (fboundp name) (fdefinition name))))
+ #+(or)
(unless generic-function
(warn "No generic function ~S present when encountering
macroexpansion of defmethod. Assuming it will be an instance of
standard-generic-function." name))
`(cl:defmethod ,@(cdr form)))))
Hitting the ACCEPT restart after ASDF breaks on the warning might also
work.
Leslie
It's been updated already! The CL community really is special.
Unfortunately, weblocks still won't compile. "Symbol DROP-INSTANCE not found in
the ELEPHANT package". Needless to say, elephant is up-to-date.
bash-3.2$ ./clbuild recompile weblocks
; loading system definition from /Users/admin/cl/clbuild/systems/cl-ppcre.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM :CL-PPCRE {1003480D41}> as CL-PPCRE
; registering #<SYSTEM :CL-PPCRE-TEST {1002C99861}> as CL-PPCRE-TEST
Loading weblocks-demo...
; loading system definition from /usr/local/lib/sbcl/sb-grovel/sb-grovel.asd
; into #<PACKAGE "ASDF1">
; registering #<SYSTEM SB-GROVEL {1003EB9751}> as SB-GROVEL
; loading system definition from
; /Users/admin/cl/clbuild/systems/cl-prevalence.asd into #<PACKAGE "ASDF0">
; registering #<SYSTEM :CL-PREVALENCE {1002FC43F1}> as CL-PREVALENCE
; loading system definition from /Users/admin/cl/clbuild/systems/s-sysdeps.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM :S-SYSDEPS {10033F9571}> as S-SYSDEPS
; loading system definition from /Users/admin/cl/clbuild/systems/s-xml.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM :S-XML {10036ABAA1}> as S-XML
; registering #<SYSTEM :S-XML.TEST {100393EF61}> as S-XML.TEST
; registering #<SYSTEM :S-XML.EXAMPLES {10037991C1}> as S-XML.EXAMPLES
Loading weblocks-elephant...
Attempting to load libmemutil.dylib...
Loaded /Users/admin/cl/clbuild/source/elephant/src/memutil/libmemutil.dylib
; compilation aborted because of fatal error:
; READ failure in COMPILE-FILE:
; SB-INT:SIMPLE-READER-PACKAGE-ERROR at 3521 (line 100, column 27) on #<SB-SYS:FD-STREAM for "file /Users/admin/cl/clbuild/source/weblocks/src/store/elephant/elephant.lisp" {1002BBA6F1}>:
; Symbol "DROP-INSTANCE" not found in the ELEPHANT package.
WARNING:
COMPILE-FILE warned while performing
#<COMPILE-OP (:VERBOSE NIL) {1002C4BE91}> on
#<CL-SOURCE-FILE "elephant" {100416D441}>.
unhandled ASDF:COMPILE-FAILED in thread #<SB-THREAD:THREAD "initial thread" RUNNING {100361EDE1}>:
erred while invoking #<COMPILE-OP (:VERBOSE NIL) {1002C4BE91}> on
#<CL-SOURCE-FILE "elephant" {100416D441}>
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {1003982059}>)[:EXTERNAL]
1: (BACKTRACE 128 #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDERR* {1000157B71}>)
2: (SB-DEBUG::DEBUGGER-DISABLED-HOOK
#<ASDF:COMPILE-FAILED {100397E891}>
#<unavailable argument>)
3: (INVOKE-DEBUGGER #<ASDF:COMPILE-FAILED {100397E891}>)
4: (ERROR ASDF:COMPILE-FAILED)[:EXTERNAL]
5: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE))
#<unavailable argument>
#<unavailable argument>
#<ASDF:COMPILE-OP (:VERBOSE NIL) {1002C4BE91}>
#<ASDF:CL-SOURCE-FILE "elephant" {100416D441}>)
6: ((LAMBDA
(SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1.))
#<unavailable argument>
#<unavailable argument>
#<ASDF:COMPILE-OP (:VERBOSE NIL) {1002C4BE91}>
#<ASDF:CL-SOURCE-FILE "elephant" {100416D441}>)
7: ((SB-PCL::FAST-METHOD ASDF:PERFORM ASDF:AROUND
(ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL
:FUNCTION #<CLOSURE # {1002BA46C9}>
:PV NIL
:NEXT-METHOD-CALL NIL
:ARG-INFO (2))
#<ASDF:COMPILE-OP (:VERBOSE NIL) {1002C4BE91}>
#<ASDF:CL-SOURCE-FILE "elephant" {100416D441}>)
8: ((LAMBDA ()))
9: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
10: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]291))
11: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK
#<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {31FF259}>
#S(SB-THREAD:MUTEX
:NAME "World Lock"
:%OWNER #<SB-THREAD:THREAD "initial thread" RUNNING {100361EDE1}>
:LUTEX #<unknown pointer object, widetag=#x66 {10007F169F}>))
12: (SB-C::%WITH-COMPILATION-UNIT #<CLOSURE (LAMBDA #) {100399ED69}>)[:EXTERNAL]
13: (ASDF:OPERATE ASDF:LOAD-OP "weblocks-elephant")[:EXTERNAL]
; caught 2 fatal ERROR conditions
bash-3.2$
Regards,
Quoth "Leslie P. Polzer" <leslie.polze...@public.gmane.org>:
>> Unfortunately, weblocks still won't compile. "Symbol DROP-INSTANCE not found
>> in the ELEPHANT package". Needless to say, elephant is up-to-date.
>
> Not quite. clbuild still points at the 0.9 repository of Elephant, but you'll
> need 1.0.
Ah... thanks.
Just out of interest, is there any reason (that you know of) as to why they
haven't upped the version number in clbuild?
Seb
> Ah... thanks.
>
> Just out of interest, is there any reason (that you know of) as to why they
> haven't upped the version number in clbuild?
I think nobody has told them to use the 1.0 repository, that's all.
Would you like to?
Consider it done.