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:
(asdf:defsystem #:cl-i3:name "cl-i3":description "A replacement for i3status written in Common Lisp.":author "Brandon Hale <bthaleproductions@gmail.com>":license "GPLv3":version "1.0":depends-on (#:cl-ansi-text #:trivial-battery #:str):components ((:file "main")))And the top portion of my main.lisp:
(ql:quickload :trivial-battery)(ql:quickload :str);; allows for colors to be printed(ql:quickload :cl-ansi-text)(defpackage :cl-i3(:use #:common-lisp))I am definitely not an expert on Common Lisp packages, but this does load up in slime on my machine when I do a
(ql:quickload :cl-i3)with ecl 21.2.1-3 from Arch Linux.
I need to look at the well-commented example again to see what I'm doing wrong methinks.
Brandon Hale
On 2/10/23 01:07, Daniel Kochmański wrote:
Hello Brandon, ------- Original Message ------- On Friday, February 10th, 2023 at 00:20, Brandon Hale <bthaleproductions@gmail.com> wrote: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.this is the right place, don't worry :)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?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 (defsystem "my-project" ... :depends-on (... "str") ...) 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. Make sure that you study well-commented example in ecl source repository under examples/asdf_with_dependence/. 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 edge ;). If none of these advises helps then please try to minimize the test case to the minimum (basically an asd system with a singly stub file and all dependencies you need) and make an issue ticket on gitlab https://gitlab.com/embeddable-common-lisp/ecl/-/issues mind that such action requires registration on the gitlab platform.Thank you very much for any help you can offer, Brandon HaleBest regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi