Re: Compiling a binary that uses quicklisp

Brandon Hale <[email protected]> Fri, 10 Feb 2023 18:37:04 -0500 (EST)
Newsgroups gmane.lisp.ecl.general
Message-ID <[email protected]>
------=_Part_9_46496451.1676072224950
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Wow, thank you so much for figuring all of that out. I tried to make the ch=
anges you suggested, and I'm still running into errors, but I'm not sure I =
have the exact version of str that you do, so I imagine that is the reason.=
 I was able to make a build with a different package ("vector") and it work=
ed fine. Who would have guessed it was a package I was using?

I think I will talk to the str developers upstream and let them know ecl wo=
n't MAKE-BUILD with it. In the meantime, I may implement the functions I us=
ed from str myself, or embed a source code file from str with just the func=
tions I need, depending on the license of str.

Thank you very much for your help,
Brandon Hale

On 2/10/23 14:36, Daniel Kochma=C5=84ski wrote:
> I think that you should not call quickload in the package file. ASDF shou=
ld solve depenencies based on a sole (ql:quickload 'cl-i3).
>=20
> I've tried to reproduce your issue and I've succeeded. After quick invest=
igation it seems that the system cl-str expects that its
> source code will be available to asdf at any time (even after the compila=
tion). The offensive line is this:
>=20
> cl-str-20221106-git/str.lisp:144:(defvar +version+ (asdf:component-versio=
n (asdf:find-system "str")))
>=20
> Basically it is as if you were expecting that both make and linux source =
code are both available at startup.
>=20
> If you replace this line to maintain some reasonable sanity it will look =
like this:
> (defvar +version+ #.(asdf:component-version (asdf:find-system "str")))
>=20
> Another issue with this system is that it does not declare dependencies o=
n "uiop" and "asdf" despite using both. str.asd
> should have
>=20
> :depends-on (:cl-ppcre
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:cl-ppcre-unicode
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:cl-change-case
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"asdf"
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"uiop")
>=20
> note the last two lines. With that the following builds and runs without =
a hitch:
>=20
> brandon.asd:
> (in-package #:asdf-user)
> (asdf:defsystem "brandon"
> =C2=A0 :name "brandon"
> =C2=A0 :depends-on ("str")
> =C2=A0 :components ((:file "main")))
>=20
> main.lisp:
> (defpackage #:brandon
> =C2=A0 (:use #:cl))
> (in-package #:brandon)
>=20
> (defun main (str)
> =C2=A0 (format t "Hello ~a!~%" str))
>=20
> build.lisp (not part of the system):
> (in-package #:cl-user)
>=20
> ;;; Make the system recognizable by ASDF
> (asdf:load-asd "brandon.asd")
>=20
> ;;; Pull dependencies and load macros
> (asdf:load-system "brandon")
>=20
> ;;; Build the program (shared object)
> (asdf:make-build "brandon" :type :program
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0:move-here "./brandon.out")
>=20
> (asdf:make-build "brandon" :type :program
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0:monolithic t
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0:move-here ".")
>=20
> ----
>=20
> note that if you don't want repl then probably you want to add (progn (ma=
in "HI") (ext:quit)) in the epilogue code.
>=20
> Best regards,
> Daniel
>=20
> p.s if you feel like it you may make issues in cl-str repository bugtrack=
er.
>=20
> --
> Daniel Kochma=C5=84ski ;; aka jackdaniel | Przemy=C5=9Bl, Poland
> TurtleWare - Daniel Kochma=C5=84ski=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | www.t=
urtleware.eu[http://www.turtleware.eu]
>=20
> "Be the change that you wish to see in the world." - Mahatma Gandhi
>=20
>=20
> ------- Original Message -------
> On Friday, February 10th, 2023 at 20:02, Brandon Hale <bthaleproductions@=
gmail.com> wrote:
>=20
>> Maybe I should get my project up in a repo, but it looks like I have the=
 dependency listed. Here is my package's .asd named cl-i3.asd:
>>=20
>> (asdf:defsystem #:cl-i3
>> =C2=A0 :name "cl-i3"
>> =C2=A0 :description "A replacement for i3status written in Common Lisp."
>> =C2=A0 :author "Brandon Hale <[email protected]>"
>> =C2=A0 :license "GPLv3"
>> =C2=A0 :version "1.0"
>> =C2=A0 :depends-on (#:cl-ansi-text #:trivial-battery #:str)
>> =C2=A0 :components ((:file "main")))
>>=20
>> And the top portion of my main.lisp:
>>=20
>> (ql:quickload :trivial-battery)
>> (ql:quickload :str)
>> ;; allows for colors to be printed
>> (ql:quickload :cl-ansi-text)
>> (defpackage :cl-i3
>> =C2=A0 (:use #:common-lisp))
>>=20
>> I am definitely not an expert on Common Lisp packages, but this does loa=
d up in slime on my machine when I do a
>>=20
>> (ql:quickload :cl-i3)
>>=20
>> with ecl 21.2.1-3 from Arch Linux.
>>=20
>>=20
>> I need to look at the well-commented example again to see what I'm doing=
 wrong methinks.
>>=20
>> Brandon Hale
>>=20
>> On 2/10/23 01:07, Daniel Kochma=C5=84ski wrote:
>>> Hello Brandon,
>>>=20
>>>=20
>>> ------- Original Message -------
>>> On Friday, February 10th, 2023 at 00:20, Brandon Hale <bthaleproduction=
[email protected]> wrote:
>>>=20
>>>=20
>>>> Hello all,
>>>>=20
>>>> I apologize if this is either the wrong place to get help with ecl, or=
 if this is asked all of the time.
>>> this is the right place, don't worry :)
>>>=20
>>>=20
>>>> I've written a small replacement for i3status with common lisp and wan=
t to use ecl to make a binary so when i3wm loads, it just loads the cl-i3st=
atus binary. I've looked at the ecl documentation online and it suggests do=
ing something like this:
>>>>=20
>>>> (ql:quickload :cl-i3)
>>>>=20
>>>> (asdf:make-build :cl-i3
>>>>=20
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 :type :program
>>>>=20
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 :move-here #P"/home/brandon/Programming/lisp/cl=
-i3/"
>>>>=20
>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 :prologue-code '(require 'asdf))
>>>>=20
>>>> So, I run this and the binary appears. However, when I try to run it, =
I get this output:
>>>>=20
>>>> ;;; Loading #P"/usr/lib/ecl-21.2.1/asdf.fas"
>>>> ;;; Computing Hangul syllable names
>>>> Condition of type: MISSING-COMPONENT
>>>> Component "str" not found
>>>>=20
>>>> Available restarts:
>>>>=20
>>>> 1. (RETRY) Retry ASDF operation.
>>>> 2. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resettin=
g the configuration.
>>>>=20
>>>> Top level in: #<process TOP-LEVEL 0x557ade1c2f80>.
>>>>>=20
>>>> I imagine it is just because of my use of quicklisp packages, but how =
do I compile the packages into the binary?
>>> this error message seems to suggest that you use a system "str" without=
 declaring it in dependencies. In your
>>> project file my-project.asd add
>>>=20
>>> (defsystem "my-project"
>>> =C2=A0 ...
>>> =C2=A0 :depends-on (... "str")
>>> =C2=A0 ...)
>>>=20
>>> depending on what you want from your project you may not need (require =
'asdf) in the prologue code. Also you
>>> may consider passing :monolithic t flag to make-build.
>>>=20
>>> Make sure that you study well-commented example in ecl source repositor=
y under examples/asdf_with_dependence/.
>>>=20
>>> Last but not least make sure that you use the latest release (currently=
 it is 21.2.1) or a build from the branch
>>> "develop" if you are not afraid of cutting your self on the bleeding ed=
ge ;).
>>>=20
>>> If none of these advises helps then please try to minimize the test cas=
e to the minimum (basically an asd system
>>> with a singly stub file and all dependencies you need) and make an issu=
e ticket on gitlab
>>>=20
>>> https://gitlab.com/embeddable-common-lisp/ecl/-/issues
>>>=20
>>> mind that such action requires registration on the gitlab platform.
>>>=20
>>>> Thank you very much for any help you can offer,
>>>>=20
>>>> Brandon Hale
>>> Best regards,
>>> Daniel
>>>=20
>>> --=20
>>> Daniel Kochma=C5=84ski ;; aka jackdaniel | Przemy=C5=9Bl, Poland
>>> TurtleWare - Daniel Kochma=C5=84ski=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | www=
.turtleware.eu[http://www.turtleware.eu]
>>>=20
>>> "Be the change that you wish to see in the world." - Mahatma Gandhi
>>>=20
> =20

------=_Part_9_46496451.1676072224950
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
 <head>
  <meta name=3D"viewport" content=3D"width=3Ddevice-width, initial-scale=3D=
1.0">
 </head>
 <body>
  <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Wow, thank you=
 so much for figuring all of that out. I tried to make the changes you sugg=
ested, and I'm still running into errors, but I'm not sure I have the exact=
 version of str that you do, so I imagine that is the reason. I was able to=
 make a build with a different package ("vector") and it worked fine. Who w=
ould have guessed it was a package I was using?</span> <br> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">I think I will talk to th=
e str developers upstream and let them know ecl won't MAKE-BUILD with it. I=
n the meantime, I may implement the functions I used from str myself, or em=
bed a source code file from str with just the functions I need, depending o=
n the license of str.</span> <br> <br> <span dir=3D"ltr" style=3D"margin-to=
p:0; margin-bottom:0;">Thank you very much for your help,</span> <br> <span=
 dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Brandon Hale</span> <=
br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">On 2/10=
/23 14:36, Daniel Kochma=C5=84ski wrote:</span> <br>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=
=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;">I thin=
k that you should not call quickload in the package file. ASDF should solve=
 depenencies based on a sole (ql:quickload 'cl-i3).</span></span></span> <b=
r> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span st=
yle=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;">I'v=
e tried to reproduce your issue and I've succeeded. After quick investigati=
on it seems that the system cl-str expects that its</span></span></span> <b=
r> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=
=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;">source=
 code will be available to asdf at any time (even after the compilation). T=
he offensive line is this:</span></span></span> <br> <br> <span dir=3D"ltr"=
 style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;">=
<span style=3D"font-family:arial, sans-serif;">cl-str-20221106-git/str.lisp=
:144:(defvar +version+ (asdf:component-version (asdf:find-system "str")))</=
span></span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; marg=
in-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:a=
rial, sans-serif;">Basically it is as if you were expecting that both make =
and linux source code are both available at startup.</span></span></span> <=
br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span s=
tyle=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;">If=
 you replace this line to maintain some reasonable sanity it will look like=
 this:</span></span></span> <br> <span dir=3D"ltr" style=3D"margin-top:0; m=
argin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-famil=
y:arial, sans-serif;">(defvar +version+ #.(asdf:component-version (asdf:fin=
d-system "str")))</span></span></span> <br> <br> <span dir=3D"ltr" style=3D=
"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span sty=
le=3D"font-family:arial, sans-serif;">Another issue with this system is tha=
t it does not declare dependencies on "uiop" and "asdf" despite using both.=
 str.asd</span></span></span> <br> <span dir=3D"ltr" style=3D"margin-top:0;=
 margin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-fam=
ily:arial, sans-serif;">should have</span></span></span> <br> <br> <span di=
r=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size=
:small;"><span style=3D"font-family:arial, sans-serif;">:depends-on (:cl-pp=
cre</span></span></span> <br> <span dir=3D"ltr" style=3D"margin-top:0; marg=
in-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:a=
rial, sans-serif;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:=
cl-ppcre-unicode</span></span></span> <br> <span dir=3D"ltr" style=3D"margi=
n-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"=
font-family:arial, sans-serif;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp;:cl-change-case</span></span></span> <br> <span dir=3D"ltr" sty=
le=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><spa=
n style=3D"font-family:arial, sans-serif;">&nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p; &nbsp; &nbsp; &nbsp;"asdf"</span></span></span> <br> <span dir=3D"ltr" s=
tyle=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><s=
pan style=3D"font-family:arial, sans-serif;">&nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp;"uiop")</span></span></span> <br> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:=
small;"><span style=3D"font-family:arial, sans-serif;">note the last two li=
nes. With that the following builds and runs without a hitch:</span></span>=
</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;=
"><span style=3D"font-size:small;"><span style=3D"font-family:arial, sans-s=
erif;">brandon.asd:</span></span></span> <br> <span dir=3D"ltr" style=3D"ma=
rgin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span style=
=3D"font-family:arial, sans-serif;">(in-package #:asdf-user)</span></span><=
/span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><spa=
n style=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;"=
>(asdf:defsystem "brandon"</span></span></span> <br> <span dir=3D"ltr" styl=
e=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span=
 style=3D"font-family:arial, sans-serif;">&nbsp; :name "brandon"</span></sp=
an></span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">=
<span style=3D"font-size:small;"><span style=3D"font-family:arial, sans-ser=
if;">&nbsp; :depends-on ("str")</span></span></span> <br> <span dir=3D"ltr"=
 style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;">=
<span style=3D"font-family:arial, sans-serif;">&nbsp; :components ((:file "=
main")))</span></span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-t=
op:0; margin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"fon=
t-family:arial, sans-serif;">main.lisp:</span></span></span> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:=
small;"><span style=3D"font-family:arial, sans-serif;">(defpackage #:brando=
n</span></span></span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin=
-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:ari=
al, sans-serif;">&nbsp; (:use #:cl))</span></span></span> <br> <span dir=3D=
"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:sma=
ll;"><span style=3D"font-family:arial, sans-serif;">(in-package #:brandon)<=
/span></span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; mar=
gin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:=
arial, sans-serif;">(defun main (str)</span></span></span> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:=
small;"><span style=3D"font-family:arial, sans-serif;">&nbsp; (format t "He=
llo ~a!~%" str))</span></span></span> <br> <br> <span dir=3D"ltr" style=3D"=
margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span styl=
e=3D"font-family:arial, sans-serif;">build.lisp (not part of the system):</=
span></span></span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bo=
ttom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:arial,=
 sans-serif;">(in-package #:cl-user)</span></span></span> <br> <br> <span d=
ir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-siz=
e:small;"><span style=3D"font-family:arial, sans-serif;">;;; Make the syste=
m recognizable by ASDF</span></span></span> <br> <span dir=3D"ltr" style=3D=
"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span sty=
le=3D"font-family:arial, sans-serif;">(asdf:load-asd "brandon.asd")</span><=
/span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bot=
tom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:arial, =
sans-serif;">;;; Pull dependencies and load macros</span></span></span> <br=
> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D=
"font-size:small;"><span style=3D"font-family:arial, sans-serif;">(asdf:loa=
d-system "brandon")</span></span></span> <br> <br> <span dir=3D"ltr" style=
=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span =
style=3D"font-family:arial, sans-serif;">;;; Build the program (shared obje=
ct)</span></span></span> <br> <span dir=3D"ltr" style=3D"margin-top:0; marg=
in-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:a=
rial, sans-serif;">(asdf:make-build "brandon" :type :program</span></span><=
/span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><spa=
n style=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;"=
>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p; &nbsp; &nbsp; &nbsp;:move-here "./brandon.out")</span></span></span> <br=
> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span sty=
le=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;">(asd=
f:make-build "brandon" :type :program</span></span></span> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:=
small;"><span style=3D"font-family:arial, sans-serif;">&nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p;:monolithic t</span></span></span> <br> <span dir=3D"ltr" style=3D"margin=
-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"f=
ont-family:arial, sans-serif;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:move-here ".")</span>=
</span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bo=
ttom:0;"><span style=3D"font-size:small;"><span style=3D"font-family:arial,=
 sans-serif;">----</span></span></span> <br> <br> <span dir=3D"ltr" style=
=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span =
style=3D"font-family:arial, sans-serif;">note that if you don't want repl t=
hen probably you want to add (progn (main "HI") (ext:quit)) in the epilogue=
 code.</span></span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top=
:0; margin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"font-=
family:arial, sans-serif;">Best regards,</span></span></span> <br> <span di=
r=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size=
:small;"><span style=3D"font-family:arial, sans-serif;">Daniel</span></span=
></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0=
;"><span style=3D"font-size:small;"><span style=3D"font-family:arial, sans-=
serif;">p.s if you feel like it you may make issues in cl-str repository bu=
gtracker.</span></span></span> <br> <br> <span dir=3D"ltr" style=3D"margin-=
top:0; margin-bottom:0;"><span style=3D"font-size:small;"><span style=3D"fo=
nt-family:arial, sans-serif;">--</span></span></span> <br> <span dir=3D"ltr=
" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:small;"=
><span style=3D"font-family:arial, sans-serif;">Daniel Kochma=C5=84ski ;; a=
ka jackdaniel | Przemy=C5=9Bl, Poland</span></span></span> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span style=3D"font-size:=
small;"><span style=3D"font-family:arial, sans-serif;">TurtleWare - Daniel =
Kochma=C5=84ski&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | </span></span><span style=
=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;"><a hre=
f=3D"http://www.turtleware.eu">www.turtleware.eu</a></span></span></span> <=
br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"><span s=
tyle=3D"font-size:small;"><span style=3D"font-family:arial, sans-serif;">"B=
e the change that you wish to see in the world." - Mahatma Gandhi</span></s=
pan></span> <br> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-=
bottom:0;">------- Original Message -------</span> <br> <span dir=3D"ltr" s=
tyle=3D"margin-top:0; margin-bottom:0;">On Friday, February 10th, 2023 at 2=
0:02, Brandon Hale <a href=3D"mailto:[email protected]">&lt;bthal=
[email protected]&gt;</a> wrote:</span> <br> <br>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Maybe I shou=
ld get my project up in a repo, but it looks like I have the dependency lis=
ted. Here is my package's .asd named cl-i3.asd:</span> <br> <br> <span dir=
=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">(asdf:defsystem #:cl-i3</=
span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">&nbsp=
; :name "cl-i3"</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin=
-bottom:0;">&nbsp; :description "A replacement for i3status written in Comm=
on Lisp."</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-botto=
m:0;">&nbsp; :author "Brandon Hale <a href=3D"mailto:bthaleproductions@gmai=
l.com">&lt;[email protected]&gt;</a>"</span> <br> <span dir=3D"lt=
r" style=3D"margin-top:0; margin-bottom:0;">&nbsp; :license "GPLv3"</span> =
<br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">&nbsp; :ver=
sion "1.0"</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bott=
om:0;">&nbsp; :depends-on (#:cl-ansi-text #:trivial-battery #:str)</span> <=
br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">&nbsp; :comp=
onents ((:file "main")))</span> <br> <br> <span dir=3D"ltr" style=3D"margin=
-top:0; margin-bottom:0;">And the top portion of my main.lisp:</span> <br> =
<br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">(ql:quicklo=
ad :trivial-battery)</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; m=
argin-bottom:0;">(ql:quickload :str)</span> <br> <span dir=3D"ltr" style=3D=
"margin-top:0; margin-bottom:0;">;; allows for colors to be printed</span> =
<br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">(ql:quicklo=
ad :cl-ansi-text)</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; marg=
in-bottom:0;">(defpackage :cl-i3</span> <br> <span dir=3D"ltr" style=3D"mar=
gin-top:0; margin-bottom:0;">&nbsp; (:use #:common-lisp))</span> <br> <br> =
<span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">I am definitely =
not an expert on Common Lisp packages, but this does load up in slime on my=
 machine when I do a</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top=
:0; margin-bottom:0;">(ql:quickload :cl-i3)</span> <br> <br> <span dir=3D"l=
tr" style=3D"margin-top:0; margin-bottom:0;">with ecl 21.2.1-3 from Arch Li=
nux.</span> <br> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-=
bottom:0;">I need to look at the well-commented example again to see what I=
'm doing wrong methinks.</span> <br> <br> <span dir=3D"ltr" style=3D"margin=
-top:0; margin-bottom:0;">Brandon Hale</span> <br> <br> <span dir=3D"ltr" s=
tyle=3D"margin-top:0; margin-bottom:0;">On 2/10/23 01:07, Daniel Kochma=C5=
=84ski wrote:</span> <br>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Hello Brand=
on,</span> <br> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-b=
ottom:0;">------- Original Message -------</span> <br> <span dir=3D"ltr" st=
yle=3D"margin-top:0; margin-bottom:0;">On Friday, February 10th, 2023 at 00=
:20, Brandon Hale <a href=3D"mailto:[email protected]">&lt;bthale=
[email protected]&gt;</a> wrote:</span> <br> <br> <br>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;mar=
gin:0;">
      <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Hello all,=
</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;=
">I apologize if this is either the wrong place to get help with ecl, or if=
 this is asked all of the time.</span> <br>
     </blockquote>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">this is the=
 right place, don't worry :)</span> <br> <br> <br>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;mar=
gin:0;">
      <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">I've writt=
en 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 l=
ike this:</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-=
bottom:0;">(ql:quickload :cl-i3)</span> <br> <br> <span dir=3D"ltr" style=
=3D"margin-top:0; margin-bottom:0;">(asdf:make-build :cl-i3</span> <br> <br=
> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp; :type :program</span> <br> <br> <span dir=3D"ltr" style=3D"margin-t=
op:0; margin-bottom:0;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :move-here #P"/home/brandon/P=
rogramming/lisp/cl-i3/"</span> <br> <br> <span dir=3D"ltr" style=3D"margin-=
top:0; margin-bottom:0;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :prologue-code '(require 'as=
df))</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-botto=
m:0;">So, I run this and the binary appears. However, when I try to run it,=
 I get this output:</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:=
0; margin-bottom:0;">;;; Loading #P"/usr/lib/ecl-21.2.1/asdf.fas"</span> <b=
r> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">;;; Computing=
 Hangul syllable names</span> <br> <span dir=3D"ltr" style=3D"margin-top:0;=
 margin-bottom:0;">Condition of type: MISSING-COMPONENT</span> <br> <span d=
ir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Component "str" not fou=
nd</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:=
0;">Available restarts:</span> <br> <br> <span dir=3D"ltr" style=3D"margin-=
top:0; margin-bottom:0;">1. (RETRY) Retry ASDF operation.</span> <br> <span=
 dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">2. (CLEAR-CONFIGURATI=
ON-AND-RETRY) Retry ASDF operation after resetting the configuration.</span=
> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Top =
level in: #&lt;process TOP-LEVEL 0x557ade1c2f80&gt;.</span> <br>
     </blockquote>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;mar=
gin:0;">
      <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;ma=
rgin:0;">
       <br>
      </blockquote>
     </blockquote>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;mar=
gin:0;">
      <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">I imagine =
it is just because of my use of quicklisp packages, but how do I compile th=
e packages into the binary?</span> <br>
     </blockquote>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">this error =
message seems to suggest that you use a system "str" without declaring it i=
n dependencies. In your</span> <br> <span dir=3D"ltr" style=3D"margin-top:0=
; margin-bottom:0;">project file my-project.asd add</span> <br> <br> <span =
dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">(defsystem "my-project=
"</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">&n=
bsp; ...</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom=
:0;">&nbsp; :depends-on (... "str")</span> <br> <span dir=3D"ltr" style=3D"=
margin-top:0; margin-bottom:0;">&nbsp; ...)</span> <br> <br> <span dir=3D"l=
tr" style=3D"margin-top:0; margin-bottom:0;">depending on what you want fro=
m your project you may not need (require 'asdf) in the prologue code. Also =
you</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">=
may consider passing :monolithic t flag to make-build.</span> <br> <br> <sp=
an dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Make sure that you =
study well-commented example in ecl source repository under examples/asdf_w=
ith_dependence/.</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; =
margin-bottom:0;">Last but not least make sure that you use the latest rele=
ase (currently it is 21.2.1) or a build from the branch</span> <br> <span d=
ir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">"develop" if you are no=
t afraid of cutting your self on the bleeding edge ;).</span> <br> <br> <sp=
an dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">If none of these ad=
vises helps then please try to minimize the test case to the minimum (basic=
ally an asd system</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; mar=
gin-bottom:0;">with a singly stub file and all dependencies you need) and m=
ake an issue ticket on gitlab</span> <br> <br> <span dir=3D"ltr" style=3D"m=
argin-top:0; margin-bottom:0;"><a href=3D"https://gitlab.com/embeddable-com=
mon-lisp/ecl/-/issues">https://gitlab.com/embeddable-common-lisp/ecl/-/issu=
es</a></span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bot=
tom:0;">mind that such action requires registration on the gitlab platform.=
</span> <br> <br>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;mar=
gin:0;">
      <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Thank you =
very much for any help you can offer,</span> <br> <br> <span dir=3D"ltr" st=
yle=3D"margin-top:0; margin-bottom:0;">Brandon Hale</span> <br>
     </blockquote>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margi=
n:0;">
    <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;marg=
in:0;">
     <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">Best regard=
s,</span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">D=
aniel</span> <br> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bott=
om:0;">-- </span> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bott=
om:0;">Daniel Kochma=C5=84ski ;; aka jackdaniel | Przemy=C5=9Bl, Poland</sp=
an> <br> <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;">TurtleW=
are - Daniel Kochma=C5=84ski&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <a href=3D"htt=
p://www.turtleware.eu">www.turtleware.eu</a></span> <br> <br> <span dir=3D"=
ltr" style=3D"margin-top:0; margin-bottom:0;">"Be the change that you wish =
to see in the world." - Mahatma Gandhi</span> <br> <br>
    </blockquote>
   </blockquote>
  </blockquote>
  <blockquote style=3D"border-left:3px solid #ccc; padding-left:10px;margin=
:0;">
   <span dir=3D"ltr" style=3D"margin-top:0; margin-bottom:0;"> </span>
  </blockquote>
 </body>
</html>
------=_Part_9_46496451.1676072224950--