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

Reply via email to