monolithic-concatenate-source-op misses a few dependencies

Faré fahree at gmail.com
Sat Oct 14 16:45:57 UTC 2017


Dear Ben,

sorry I won't be developing this feature, but I'll happily merge your
patch if you do. "Just" add support for dumping source code for a
(:require ...) dependency.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Guns & bullets don't kill people — blood loss and organ damage kills people.


On Thu, Oct 12, 2017 at 4:07 PM, Ben Vulpes <benv at mavn.is> wrote:
> On SBCL 1.3.11, when producing a monolithic source concatenation with
> the library "Postmodern", asdf produces a file that needs a Lisp image
> to need manual calls to (require :usocket) and (require :md5) in order
> to load completely.
>
> Given:
>
> concatenatrix.asd as:
>
> (asdf:defsystem :concatenatrix
>   :build-operation monolithic-concatenate-source-op
>   :build-pathname "build/full-concatenation"
>   :depends-on (:postmodern)
>   :components
>   ((:file "concatenatrix")))
>
> concatenatrix.lisp as:
>
> (defpackage :concatenatrix
>   (:use :cl :postmodern))
> (in-package :concatenatrix)
>
> (defun wat (it)
>   (format t "~A~%" it))
>
> Concatenated sources produced with:
>
> (asdf:make :concatenatrix)
>
> Loading tested with:
>
> sbcl --noinform --disable-debugger --load build/full-concatenation.lisp
>
> Produces:
>
> Unhandled SB-C::INPUT-ERROR-IN-LOAD in thread #<SB-THREAD:THREAD "main
> thread" RUNNING
>                                                  {10027FE873}>:
>   READ error during LOAD:
>
>     Package SB-ROTATE-BYTE does not exist.
>
>       Line: 221, Column: 29, File-Position: 8706
>
>       Stream: #<SB-INT:FORM-TRACKING-STREAM for "file
> /home/b/quicklisp/local-projects/concatenatrix/build/full-concatenation.lisp"
> {1003CFCA03}>
>
>
> Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10027FE873}>
> 0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-C::INPUT-ERROR-IN-LOAD
> {1004014AC3}> #<unavailable argument>)
> 1: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK*
> #<SB-C::INPUT-ERROR-IN-LOAD {1004014AC3}>)
> 2: (INVOKE-DEBUGGER #<SB-C::INPUT-ERROR-IN-LOAD {1004014AC3}>)
> 3: (ERROR #<SB-C::INPUT-ERROR-IN-LOAD {1004014AC3}>)
> 4: (SB-C:COMPILER-ERROR SB-C::INPUT-ERROR-IN-LOAD :CONDITION
> #<SB-INT:SIMPLE-READER-PACKAGE-ERROR "Package ~A does not exist."
> {10040149E3}> :STREAM #<SB-INT:FORM-TRACKING-STREAM for "file
> /home/b/quicklisp/local-projects/concatenatrix/build/full-concatenation.lisp"
> {1003CFCA03}>)
> 5: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY
> :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE)
> {1003D004FB}> #<SB-C::SOURCE-INFO {1003D004B3}>
> SB-C::INPUT-ERROR-IN-LOAD)
> 6: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file
> /home/b/quicklisp/local-projects/concatenatrix/build/full-concatenation.lisp"
> {1003CFCA03}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
> 7: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM
> for "file /home/b/quicklisp/local-projects/concatenatrix/build/full-concatenation.lisp"
> {1003CFCA03}> NIL)
> 8: (LOAD #P"build/full-concatenation.lisp" :VERBOSE NIL :PRINT NIL
> :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
> 9: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:LOAD .
> "build/full-concatenation.lisp")))
> 10: (SB-IMPL::TOPLEVEL-INIT)
> 11: ((FLET #:WITHOUT-INTERRUPTS-BODY-90 :IN SB-EXT:SAVE-LISP-AND-DIE))
> 12: ((LABELS SB-IMPL::RESTART-LISP :IN SB-EXT:SAVE-LISP-AND-DIE))
>
> There is another complaint about usocket, which is confusing, as
> cl-postgres explicitly doesn't require usocket on sbcl by my read (
> http://marijnhaverbeke.nl/git/?p=postmodern;a=blob;f=cl-postgres.asd;h=683edf0f131a4ebe172b44425f597d7f67656e70;hb=HEAD#l16
> ).
>
> Loading is resolved by requiring both libraries in question, as:
>
> sbcl --eval "(require :md5)" --eval "(require :usocket)" --load
> build/full-concatenation.lisp
>
> Yours,
> Benjamin
>



More information about the asdf-devel mailing list