首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABCL编译和原语

ABCL编译和原语
EN

Stack Overflow用户
提问于 2011-01-22 05:19:07
回答 2查看 1K关注 0票数 5

有谁知道如何(或者是否)可以使用ABCL将Lisp代码编译成.class文件,并创建一个.jar方法,以便将整个代码打包成一个main文件并运行?

另外,有人知道如何从ABCL代码中访问原语Java类型吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-26 18:18:14

Didier Verner posted his experiences前几天就遇到了这样的包装问题。

票数 2
EN

Stack Overflow用户

发布于 2011-01-26 18:41:38

如果您正在寻找围绕解决方案的更多打包,ABCL可以从类加载器理解的URI加载ASDF定义。ASDF-INSTALL是通过这种机制加载的(使用Ant构建目标'abcl.contrib'),但作为一个简单的示例,下面的代码将动态加载a trivial test of ASDF loading via URI

代码语言:javascript
复制
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!"

您可以研究该JAR以进行打包,但基本上它只涉及创建一个ASDF定义,然后简单地将其打包为jar。请注意,JAR只包含Lisp源代码,该源代码通过ASDF2实现自动编译为本地目录(通过输出转换位置机制)。JAR中的任何Java类文件当前都被忽略。尽管Java类文件应该是“平台独立的”,但有足够的JVM实现(qv.Java5和Java6),按照ABCL实现来编译Lisp是有意义的。当然也有通过URI加载ABCL FASL的能力,所以如果有人有一个从不在初始ASDF加载时编译的用例,那么当前的ASDF实现可能会被修改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4763910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档