This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: bytecode interpreter + dynamic compilation
Doug Evans <dje@transmeta.com> writes:
> One question is whether Kawa is appropriate for all intended
> uses of Guile.
Well, Kawa is more heavy-weight than Guile: It requires a
Java run-time environment, which can be a lot of stuff.
(There are small JVMs available, including "PersonalJava"
and "EmbeddedJava", bu I haven't tried porting Kawa to them.)
For most desktop/server applications, it shouldn't be an issue.
If you want to add a scripting layer on top of an application mostly
written in C or C++, then Guile is probably more suitable than Kawa.
However, for applications that are mostly Scheme (with perhaps a small
amount of "foreign code"), I think Kawa is worth considering. (For
applications mostly written in Java, even more so, of course.) It is
GNU software; it should run faster than Guile; feature-wise it is
comparable to Guile (Guile has some features Kawa doesn't have and
vice versa); and Kawa has a reasonably complete reference manual. (I
try to document features as I implement them.)
There are also "Free Software" issues. I have mostly developed Kawa
using Sun's JDK, which is "free" but far from "Free". In theory Gcj
(the gcc-based Gnu Compiler for the Java language) should be able to
compile Kawa, but it's been a while since I've been able to get that
to work. (Another free JVM I haven't tried in a while is Kaffe.)
> Also, a personal goal is to have an application independent
> dynamic compilation toolkit (which Guile would be but one user of).
Yes, that would be nice, especially if it could be used for a
Java-bytecode JIT, as well as other "front-ends". (Java bytecode
works OK for Scheme, as long as you don't require full tail-call
elimination and call/cc. Those features can be implemented on the
JVM, but it's somewhat painful.)
--
--Per Bothner
per@bothner.com http://www.bothner.com/~per/