This is the mail archive of the kawa@sources.redhat.com mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

recent Kawa changes in CVS


I just checked in support for using the object, define-simple-class,
and define-class forms in the "interpreter".  This has been an annoyance
for a while.  I haven't tested this very heavily, so if you're
interested in this functionality, please test it!

I also fixed a bug where fields in inherited classes did not get
initialized.  This also needs more testing.

There are other recent improvements, though they are mostly
performance-related amd/or internal.  Here is an excerpt from the
NEWS file:

You can now define and use classes defined using object, define-class,
and define-simple-class from the "interpreter", as well as the compiler.
Also, a bug where inherited fields did not get initialized has been fixed.

There are several new procedures useful for servlets.

Numerical comparisions (<, <=, etc) now generates optimized bytecode
if the types of the operands have certain known types. including
efficient code for <int>, <long>, <double>, and <integer>.
Much more code can now (with type declaration) be written just as
efficiently in Scheme as in Java.

There have been some internal re-arranging of how Expressions are
processed.  The Scheme-specific Translator type now inherits from
Compilation, which replaces the old Parser class.  A Complation is now
allocated much earlier, as part of parsing, and includes a
SourceMessages object.  SourcesMessages now includes (default) line
number, which is used by Compilation for the "current" line numbers.
The ExpWalker class includes a SourceMessages instance (which it gets
from the Compilation).  CanInline.inline method now takes ExpWalker
parameter.  Checking of the number or parameters, and mapping known
procedures to Java methods are now both done during the inlining pass.

The user-visible effect is that Kawa can now emit error mesages more
cleanly more places;  the inlining pass can be more agressive, and
can emit better error messages, which yields better type information.
This gives us better code with fewer warnings about unknown methods.
--
	--Per Bothner
per@bothner.com   http://www.bothner.com/per/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]