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