Pregunta

¿Alguien sabe cómo (o si) se puede utilizar ABCL para compilar el código Lisp a los archivos .class y crear un método principal para que todo el asunto podría ser empaquetado en un archivo .jar y correr?

Además, ¿alguien sabe cómo primitivas de acceso tipos Java de código ABCL?

¿Fue útil?

Solución

Didier Verner logró su experiencias con sólo como un embalaje pregunta el otro día.

Otros consejos

Si uno está buscando más el envasado en torno a una solución, ABCL tiene la capacidad de carga de las definiciones ASDF desde un URI que el cargador de clases entiende. El ASDF a instalar se carga por este mecanismo (use la acumulación objetivo Ant 'abcl.contrib'), pero como un ejemplo simple, el siguiente código dinámicamente cargar una prueba trivial de ASDF carga a través de 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!"

Se puede estudiar ese frasco para envases, pero básicamente sólo implica la creación de una definición ASDF, entonces simplemente se empaquete como JAR. Tenga en cuenta que el JAR solo contiene fuente de Lisp que se compila automáticamente a través de la implementación ASDF2 a un directorio local a través del mecanismo de salida-traducción en la localización. Cualquier archivo de clase Java en el JAR están actualmente ignorados. Aunque los archivos de clase Java debe ser "independiente de la plataforma", hay bastantes implementaciones de JVM por ahí (vid. Java v Java 6 5) que tiene sentido para compilar la aplicación Lisp por ABCL. Ciertamente, hay la posibilidad de cargar un FASL ABCL a través de URI, así que la implementación actual ASDF probablemente podría ser modificada si alguien tiene un caso de uso para compilar Nunca en la carga inicial ASDF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top