On 1/18/16 Jan 18 -5:30 AM, Thomas Lynch wrote:
New at this, sure could use a pointer. I'm not able to get the code to build consistently. It works only after a failure. So I have to do it twice to get it to go. Sure would like to know what is wrong here.
I can't swear to it without doing more checks, but note that the canonical case for ASDF system names is *lower-case*.
That means that :LE is interpreted as "le". "LE" however, will be interepreted as "LE".
From the manual (defsystem grammar):
If a symbol is given [as system name -rpg], it will be translated into a string, and downcased in the process. The downcasing of symbols is unconventional, but was selected after some consideration. Observations suggest that the type of systems we want to support either have lowercase as customary case (Unix, Mac, windows) or silently convert lowercase to uppercase (lpns), so this makes more sense than attempting to use ':case :common' as argument to 'make-pathname', which is reported not to work on some implementations.
Short answer: just don't do this. Stick to lower-case system names.
These are the directories:
/home/LE/sbcl/LE.asd ;holds the definition, as shown below /home/LE/sbcl/src ;holds the lisp source files for my project
The system is Debian, udpated today. quicklisp is installed.
These are the commands I type:
(require :asdf) (pushnew (truename ".") asdf:*central-registry* :test #'equal) (asdf:load-system :LE) (require :LE) (use-package 'LE)
in a fresh environment this fails, and dumps me in the debugger, asdf:load-system tells me:
"Component :LE not found:
Then I exit the debugger, and run it a second time and it works. Not sure, may need quotes the first time, a colon the second, i.e. it is quirky.
I have tried a lot of variations of the above, pretty much every example I've been able to find, some have "LE" instead of :LE everywhere.
Here is the value of asdf:*central-registry* after the push:
* asdf:*central-registry* (#P"/home/LE/sbcl/" #P"/home/mordecai/quicklisp/quicklisp/")
Here is the asdf file that is located in /home/LE/sbcl:
(in-package :asdf-user) (defsystem #:LE :name "LE" :version "0.1" :author "Thomas W. Lynch <thomas.lynch@reasoningtechnology.com <mailto:thomas.lynch@reasoningtechnology.com>>" :description "Lynch's extensions" :depends-on ("local-time") ;; :serial t :components((:module "src" :components ( (:file "package") (:file "fundamental" :depends-on ("package")) (:file "test" :depends-on ("fundamental")) (:file "string" :depends-on ("test")) (:file "functions" :depends-on ("test")) (:file "list-0" :depends-on ("functions")) ;; (:file "list-L" :depends-on ("list-0")) ))))