Вопрос

Кто -нибудь знает, как (или если) вы можете использовать ABCL для составления кода LISP в файлы.

Кроме того, кто -нибудь знает, как получить доступ к примитивам типов Java из кода ABCL?

Это было полезно?

Решение

Дидье Вернер опубликовал свой опыт С таким же упаковочным вопросом на днях.

Другие советы

Если кто -то ищет больше упаковки вокруг решения, ABCL может загружать определения ASDF из URI, который понимает класс -загрузчик. ASDF-Install загружается этим механизмом (используйте целевую цель Ant Build 'abcl.contrib'), но в качестве простого примера следующий код будет динамически загружаться тривиальный тест загрузки ASDF через 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!"

Вы можете изучить эту банку для упаковки, но в основном она просто включает в себя создание определения ASDF, а затем просто упаковывать ее как банку. Обратите внимание, что JAR просто содержит источник LISP, который автоматически составлен с помощью реализации ASDF2 в локальный каталог с помощью механизма размещения выходного транлиации. Любые файлы класса Java в JAR в настоящее время игнорируются. Хотя файлы классов Java должны быть «независимыми от платформы», существует достаточно реализаций JVM (QV. Java 5 V Java 6), чтобы иметь смысл компилировать реализацию LISP на ABCL. Безусловно, есть возможность загружать ABCL FASL через URI, поэтому текущая реализация ASDF, вероятно, может быть изменена, если у кого -то есть вариант использования для никогда не компиляции при начальной нагрузке ASDF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top