Compiling a binary that uses quicklisp

Brandon Hale bthaleproductions at gmail.com
Fri Feb 10 00:07:59 UTC 2023


> ecl produces elf binaries.  You will want to compile, and link all 
> your code into this executable file. So you don't need to load asdf or 
> anything else at run-time (in the prologue-code).  Instead, you load 
> asdf, quicklisp, and your code, when you generate the executable with 
> make-build.
>
> Have a look at the hello-world project
> https://gitlab.com/informatimago/hw/
> to see how to produce executables.
>
> In particular, in the case of ecl:
>
> https://gitlab.com/informatimago/hw/-/blob/master/generate.lisp#L216 
Thank you, I will look into this link. I must admit, I don't know much C 
at all, but it looks like the code I really need is all in Common Lisp. 
I will study all of this and try to make sense of what is happening 
here. It looks like there is a lot to it!

Brandon Hale

On 2/9/23 18:28, Pascal Bourguignon wrote:
> Le 10/02/2023 à 00:20, Brandon Hale a écrit :
>> Hello all,
>>
>> I apologize if this is either the wrong place to get help with ecl, 
>> or if this is asked all of the time. I've written a small replacement 
>> for i3status with common lisp and want to use ecl to make a binary so 
>> when i3wm loads, it just loads the cl-i3status binary. I've looked at 
>> the ecl documentation online and it suggests doing something like this:
>>
>> (ql:quickload :cl-i3)
>>
>> (asdf:make-build :cl-i3
>>
>>                   :type :program
>>
>>                   :move-here #P"/home/brandon/Programming/lisp/cl-i3/"
>>
>>                   :prologue-code '(require 'asdf))
>>
>> So, I run this and the binary appears. However, when I try to run it, 
>> I get this output:
>>
>> ;;; Loading #P"/usr/lib/ecl-21.2.1/asdf.fas"
>> ;;; Computing Hangul syllable names
>> Condition of type: MISSING-COMPONENT
>> Component "str" not found
>>
>> Available restarts:
>>
>> 1. (RETRY) Retry ASDF operation.
>> 2. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after 
>> resetting the configuration.
>>
>> Top level in: #<process TOP-LEVEL 0x557ade1c2f80>.
>>>
>>
>> I imagine it is just because of my use of quicklisp packages, but how 
>> do I compile the packages into the binary?
>>
>> Thank you very much for any help you can offer,
>
>
> ecl produces elf binaries.  You will want to compile, and link all 
> your code into this executable file.  So you don't need to load asdf 
> or anything else at run-time (in the prologue-code). Instead, you load 
> asdf, quicklisp, and your code, when you generate the executable with 
> make-build.
>
> Have a look at the hello-world project
> https://gitlab.com/informatimago/hw/
> to see how to produce executables.
>
> In particular, in the case of ecl:
>
> https://gitlab.com/informatimago/hw/-/blob/master/generate.lisp#L216
>
>



More information about the ecl-devel mailing list