This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Re: invoke-static
Jim White wrote:
I thought this was an issue where the compiler could do a better job if
the target supported certain features.
If the question is whether Kawa will try to continue to run on 1.1 JVM's
at all, then I think it would be a considerable shame to lose 1.1
compatibility.
It's the latter. And I agree. The source-code by default will assume
and make use of Java2 features. However, if you do 'make select-java1'
it will patch the source code to only make use of Java 1 features.
I think that's an ok solution.
Seems to me that these host/target platform compatibility issues would
be better handled within Kawa itself (rather than using Java source and
build extensions).
Perhaps Kawa needs to eat more of its own dog food...
Yes, it would be better if more of the Scheme run-time environment
were written in Scheme - and gradually various functions are being
re-written in Scheme. But there are some complications:
* Some of the Kawa run-time (gnu.bytecode, gnu.math, gnu.lists for
example) are generally useful libraries, and I don't want to have
them depend on the Kawa compiler.
* Kawa is not just a Scheme system - it's a multi-language framework.
Should core parts of the Kawa run-time be written in and depend on
Scheme? That means everybody who wants to debug Kawa has to
understand Scheme.
* Having too much of the system be written in a language other
than Java complicates boostrapping and development.
* You would need some kind of conditional compilation mechanism
anyway, though you could use Scheme macros.
I'ld really like to get the Ant build to the point where you use it
rather than make. I know there is some gcj-specific stuff that probably
needs to use make, but that could be generated by the Ant build.
In addition to the gcj-specific stuff - which is a fair bit of code,
if you also include shared library support, there is also 'make check'
and 'make dist'. I run 'make check' all the time. It would be nice
to have Ant support for 'check'. Unfortunately, the Kawa testsuite is
a rather ad hoc collection of different kinds of tests. It would be
nice to standardize these more, perhaps using somthing similar to JUnit,
but not all the tests are easily expressible using a JUnit framework.
One of the cool things that can be done with Ant is that Kawa script can
be embedded in the Ant script itself (via BSF). Also since Ant is Java,
Kawa can easily use Ant tasks for cross-platform file manipulation,
version control, and networking stuff.
Yes. But the "autotools" framework (amke+autoconf+automake+libtool)
is very powerful. It supports cross-compilation and shared library
creation, for example.
--
--Per Bothner
per at bothner dot com http://per.bothner.com/