Frage

Weiß jemand, wie (oder ob) Sie ABCL verwenden können, um Lisp -Code für .Cass -Dateien zu kompilieren und eine Hauptmethode zu erstellen, damit das Ganze in eine .jar -Datei verpackt und ausgeführt werden kann?

Weiß jemand, wie man vom ABCL -Code auf Primitive -Java -Typen zugreift?

War es hilfreich?

Lösung

Didier Verner hat seine Erfahrungen gepostet mit einer solchen Verpackungsfrage neulich.

Andere Tipps

Wenn man nach mehr Verpackungen um eine Lösung sucht, kann ABCL ASDF -Definitionen von einem URI laden, den der Klassenlader versteht. Die ASDF-Installation wird durch diesen Mechanismus geladen (verwenden Ein trivialer Test des ASDF -Ladens über URI.

CL-USER> (pushnew #p"jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/" asdf:*central-registry*)
(#P"jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/" #P"jar:file:/Users/evenson/work/abcl/dist/abcl-contrib.jar!/asdf-install/" (MERGE-PATHNAMES ".asdf-install-dir/systems/" (USER-HOMEDIR-PATHNAME)) (MERGE-PATHNAMES "work/lsw/" (USER-HOMEDIR-PATHNAME)))
CL-USER> (asdf:load-system :test)
; Loading system definition from jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/test.asd into #<PACKAGE "ASDF0">
; Registering #<SYSTEM :TEST> as TEST
; Compiling jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/test.lisp ...
; (DEFUN TEST ...)
; Wrote /Users/evenson/.cache/common-lisp/abcl-0.25.0-dev-fasl37-macosx-java/files/asdf-uri-test.jar/asdf-uri-test/ASDF-TMP-test.abcl (0.163 seconds)
T
CL-USER> (test)
"The test function loaded!"

Sie können dieses Glas für Verpackungen studieren, aber im Grunde beinhaltet es nur die Erstellung einer ASDF -Definition und dann einfach als Glas. Beachten Sie, dass das JAR nur Lisp-Quelle enthält, die automatisch über die ASDF2-Implementierung in ein lokales Verzeichnis über den Ausgangsübertragungsmechanismus kompiliert wird. Alle Java -Klassendateien im Glas werden derzeit ignoriert. Obwohl Java -Klassendateien "plattformunabhängig" sein sollten, gibt es da draußen genügend JVM -Implementierungen (QV. Java 5 V Java 6), dass es sinnvoll ist, die LISP pro ABCL -Implementierung zu kompilieren. Es gibt sicherlich die Möglichkeit, eine Abcl -Fasl auch über URI zu laden, sodass die aktuelle ASDF -Implementierung wahrscheinlich geändert werden kann, wenn jemand einen Anwendungsfall für die Nie bei der anfänglichen ASDF -Last hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top