[armedbear-devel] Mixing Java/Lisp abstraction barrier in ABCL implementation
evenson at panix.com
Sat Apr 16 05:42:06 UTC 2011
Alessio has nicely [committed an simple implementation of
RUN-PROGRAM] to help out Faré's request for XCVB.
As I think most of would rather do things in Lisp than Java were
possible, his implementation uses the JAVA package FFI primtives (JCALL,
JMETHOD, etc) to manipulate the underlying JVM ProcessBuilder
abstraction. When I was mucking around with the PATHNAME work, Ville
objected to code that I had written in a similar manner, and I re-wrote
my patch in Java. As I understand it his objection stememd from the
architectural principle that the core ABCL Lisp is to be written without
direct calls to Java classes to maintain the Java/Lisp abstraction
barrier. So, theoretically, if all the ABCL primitives written in Java
were running on a different JVM (say Dalvik or the CLR), the rest of
ABCL would run as well, modulo the compiler.
But since getting features like RUN-PROGRAM implemented quickly helps
everyone out, maybe we should relax this somehow? Maybe placing such
code in a different directory ("org/armedbear/lisp/jvm"?) Or use the CL
package system to have a SYSTEM-JVM from which SYSTEM can inherit symbols?
Does this architectural principle still make sense?
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the armedbear-devel