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 <b...@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 >