Ich habe versucht, Quicklisp-Pakete in einem ausführbaren Skript von mir zu verwenden. Ein (triviales) Arbeitsbeispiel ist:
%Vor% Nachdem chmod
die Datei mit diesem Code ( test.lisp
) genannt hat, habe ich versucht, sie auszuführen. Ich habe dann jedoch folgende Fehlermeldung erhalten:
Ich bin mir nicht sicher, was hier vor sich geht - wenn ich versuche, etwas Ähnliches vom Toplevel aus zu machen (zB SBCL starten, lisp-unit
mit ql:quickload
laden, usw.), bekomme ich so etwas nicht.
In SBCL lädt --script
Ihre Init-Dateien nicht. Wenn Sie Quicklisp verwenden möchten, müssen Sie das Laden veranlassen. Das bedeutet in der Regel etwas wie (load "~/quicklisp/setup.lisp")
, bevor Sie etwas verwenden, das mit Quicklisp in Verbindung steht.
Ich denke nicht, dass SBCL und Quicklisp für Scripting-Aufgaben geeignet sind. Wenn ich Skripte schreibe, erwarte ich normalerweise nicht, dass sie Sachen aus dem Internet holen wie ql:quickload
. Quicklisp ist auch ziemlich ausführlich. SBCLs FASL-Laden ist ziemlich langsam. Zusammengenommen ergibt das keine sehr gute Skripterfahrung.
Ich bevorzuge es sehr, alles, was ich brauche, in eine Common-Lisp-Sitzung zu laden und dann Funktionen aufzurufen, um Dinge zu erledigen. Wenn ich das nicht benutzen kann (wie zum Beispiel zum Ausführen von Sachen aus Cron oder aus einem Makefile), benutze ich oft Buildapp, um ausführbare Dateien zu erstellen.
Tags und Links common-lisp sbcl quicklisp