monolithic-concatenate-source-op misses a few dependencies

Robert Goldman rpgoldman at sift.info
Sat Oct 14 17:17:58 UTC 2017


Will you please clarify for my benefit, since I don't actually use any 
of the image operations.

Is the problem that somewhere in the process of loading Postmodern, or 
one of its dependencies, some bit of code invokes `REQUIRE`?  Or is this 
an issue with ASDF's `REQUIRE-SYSTEM`.

If it's the former, then I believe this is simply a bad implementation 
in the relevant system.

If it's the latter, we should do something about it.  However, I believe 
that `REQUIRE-SYSTEM`, despite its name, doesn't actually use `REQUIRE`, 
instead it "acts like `require`."

Thanks,
R

On 14 Oct 2017, at 11:45, Faré wrote:

> 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
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20171014/c1108322/attachment.html>


More information about the asdf-devel mailing list