Dan*_*ntz 11 java java-native-interface interop common-lisp ffi
所以...试图使用预先存在的轮子,而不是每次都重新发明我自己的轮子,我一直在尝试使用[特定的Java库]来获得一个不错的Common Lisp环境.我的ABCL冒险实际上进展得相当顺利,最终我能够让ABCL很好地与[它]交谈.当然我想要的不仅仅是那个,我想要在[它]和我的半轮,chemicl,一个cheminformatics包之间的互操作性,我开始用Common Lisp编写.这是火车开始下降的轨道.
ABCL和cxml-stp
不久之前,在早些时候,为了获得我的一些化学/生物信息学(https://github.com/slyrus/cl-bio)与ABCL一起工作的尝试,我注意到plexippus-xpath无法加载到ABCL中.这是固定的,所以我被鼓励,事情可能适用于ABCL.但是,cxml-stp似乎打破了ABCL.
希望这是一个可修复的bug,ABCL的一些未来版本将与cxml-stp一起使用.
同时...
其他CL和Java
所以,我想我会尝试其他一些方法来获得Java和Common Lisp实现.我知道,你在想"为什么这个家伙不会使用clojure?毕竟,这就是clojure的设计目的!" 嗯,这是一个很好的问题.我确实使用clojure进行了一些早期的[这个Java库]探索,虽然java集成通常运行良好,但我有一堆现有的Common Lisp代码我想使用它,至少在当时看起来像所有的clojure包装器,在丑陋的Java库周围都有薄包装器.我已经逐渐了解并喜欢很多Common Lisp库,其中很多都可以在QuickLisp中使用,我希望能够使用它们(比如cxml-stp,plexippus-xpath,opticl等... ).
Dan*_*ntz 11
Clozure共Lisp的(CCL),现在五年来,已随JFLI的完全移植分布(JFLI以前依赖的LispWorks FFI)作为具备CCL源分布的"例"的标准组件.JFLI(由富希基,Clojure的创造者)使用过程中的模型,将有可能至少比任何东西更高性能的顺序,你可能会从希基的下一次尝试采用模型放在一起,更广泛地兼容插座为主解决方案他命名为FOIL.
请查看以下URL以浏览Clozure开发主干中当前存在的当前JFLI源代码:
http://trac.clozure.com/ccl/browser/trunk/source/examples/jfli
Rich Hickey向JFLI介绍了他所采用的方法的总结(替代CCL的FFI,他明显地参考了LW-FFI):
我的目标是提供对Java和Java库的全面,安全,动态和Lisp-y访问,就像它们是Lisp库一样,用于Lisp程序,即强调在Lisp而不是Java中工作.我采用的方法是使用JNI在Lisp进程中嵌入JVM实例.我能够使用LispWorks自己的FLI和没有C(或Java!*)代码来实现这一点,这是对LW FLI的致敬.在JNI层(基本上是整个JNI API的包装器)之上,我使用Java Reflection构建了这个用户级API.
归档时间: |
|
查看次数: |
742 次 |
最近记录: |