Will you please post a backtrace from SBCL for this. I'm not at all sure I understand what you mean by "this line fails."

What did you do to trigger the error?

(asdf:load-system "hello")

?

On 8 Jan 2025, at 17:37, Russell L. Carter wrote:

Greetings,

I am a common-lisp noob. I am not a programmer noob, nor
a build system noob.

I have carefully studied fare's asdf manual, pages
25-26 in the pdf and backwards through the reverse dependencies
of the terms used, about the package-inferred-system. I have a
problem that I've whittled down to a very small snippet.

I'm using SBCL 2.4.10.117-507e7ae05 and its native ASDF, but
also tested against ASDF repo head (ln -s into ~/common-lisp,
verified in the repl).

My question is why this system, located in file
"./hello.asd", containing:


(asdf:defsystem "hello"
:class :package-inferred-system
:depends-on ("hello/src/main"))


paired with the system/package file "./src/main.lisp",
containing:


(uiop:define-package :hello/src/main
;; (:use :alexandria) ;; XXXRLC This line fails: "The variable MAIN
;; is unbound". I have no idea why. Backtrace provides no clues
;; (to me). Load the library in the repl matters not. Elide that
;; line and (asdf:load-system "hello") => T and then CL-USER>
;; (hello/src/main:main) => urg \n "urg" as expected.
(:export #:main))

(in-package :hello/src/main)
(defun main () (write-line "urg"))


fails as described in the comment. Sure I would like the answer but
the more interesting question is how could I debug this failure?

I slogged through the late '90s debugging complex C++
template programming errors. Pages and pages of output. I don't
mind doing it again. But I don't know where to start with this
ASDF build system.

Thank you for any suggestions, obviously the answer must be trivial.

All the best,
Russell L. Carter

Robert P. Goldman
Research Fellow
Smart Information Flow Technologies (d/b/a SIFT, LLC)

319 N. First Ave., Suite 400
Minneapolis, MN 55401

Google Voice: (612) 326-3934
Cell: (612) 384-3454
Email: rpgoldman@SIFT.net