Release 0.8.1

This is the current release of Wonka. It is fully compatible with all previous releases, so if you are still using e.g. release 0.7.2 or 0.8 then we urge you to upgrade.

Principal Changes from 0.8

Configuration stuff:
Wonka will now read in and interpret the file $ETCDIR/device.config during startup in order to initialize serial ports, mouse etc. (provided Wonka was built with FICL=true). This should prove more convenient than editing wonka/src/driver/linux/comms.c ...
AWT/Rudolph:
Added an AWT_DEVICE called 'none'. This will compile the AWT, but you don't have any output (screen) or input (mouse/keyboard). Could be useful for testing without X or framebuffer or when porting Wonka to a different platform.
Added keyboard support to most components, and beginnings of support for ps/2 mouse.
Added support for GIF files: this is disabled by default. To enable GIF support, recompile Wonka with -sAWT_GIF_SUPPORT=true; note that in order to deply the resulting binary you may need a license from Unisys, who own a patent on the LZW compression scheme used in many GIF images.
Added a simple taskbar and popup keyboard for use on handhelds.
Extended AWT coverage, e.g. by addition of java.awt.Choice.
java.sqli/JDBC
Added basic support.
Unicode
Added full support for getType() and other Java2 stuff.
Security
Much of the Java2 framework is now working (work continues in HEAD to read and apply policy files, etc.). We have as yet no javax.crypto implementation (that's fit to release), but you can try looking at the Cryptix stuff. Note that the security code has not yet been subjected to a full review or audit, so don't rely on it!
VM internals
Many changes aimed at reducing heap usage.
General:
Added some more README files - README.build, README.install, etc..
The alert reader will note the presence of directories "winnt", "o4e", etc.: these contain work-in-progress for porting Wonka to Win32 (and hopefully thus WinCE as well as NT) and eCos. If you are interested in participating in this work, join the developers' mailing list!
See also the directory "roadmap", which contains a number of text files describing current development ideas.

Known Problems

The detailed test report is available as a plain-text file. For a detailed description of what is implemented and working at the class library level, see the package status directory. You can also check the Javadoc for release 0.8.1, which shows the implementation status of each method of each class.

Anonymous CVS Server

This repository is updated nightly, so you can easily track the current source tree:

cvs -d :pserver:anonymous@wonka.acunia.com:/home/wonka/cvs login
(no password is required)
cvs -d :pserver:anonymous@wonka.acunia.com:/home/wonka/cvs co open-wonka

(Or you can also use cvsup).

Normally keeping up with the latest source tree is a Good Thing, but there are times when you may wish to checkout an official release. You can do this by supplying a tag to the CVS server, e.g. to checkout the 0.8.1 release use the command

cvs -d :pserver:anonymous@wonka.acunia.com:/home/wonka/cvs co -r WONKA-0-8-1-RELEASE open-wonka

Forthcoming Releases

The next planned release is 0.9, which we hope to bring around Easter 2002. (This is not a product announcement. Offer subject to availability). Release 0.9 should include full suport for the Java2 security framework, improved support for non-European languages (particularly Japanese), and a number of performance enhancements.

Release 0.8

This is provided for reference purposes only: the current release is 0.8.1.

Principal Changes from 0.7.2

Configuration stuff:
It is now possible to build wonka in such a way that it can be installed in /usr/local/bin and used as a drop-in replacement for JDK: it supports the same command-line options. The old `fsroot' way of doing things can still be used. This makes it easier to integrate Wonka into your development process: you should be able to set up your IDE to use the wonka binary as its java executable and wonka's classes.zip as the class library environment. The installation in /usr/local/bin can be accomplished using a .rpm file.
Memory management:
Completed implementation of Soft, Weak, and Phantom References, and re-implemented WeakHashMap the way it should be. Made the gc() and finalize() methods of Runtime do something useful. Reduced memory consumption in many small (and not-so-small) ways, and fixed several memory leaks. Wonka is now much lazier in resolving references to other classes.
Limited number of frames in a java stack to 300 - after that we throw StackOverflowError. (In tests we never see more than 30 frames). This prevents infinite recursion from chewing up all available memory.
AWT/Rudolph:
Rudolph's screen can now be rotated through 90 degrees, or set smaller than the physical screen.
Implemented a whole load of stuff concerning Image, scaling, filtering, GridBagLayout, ScrollPane, Window. Fixed several clipping-related bugs along the way.
Many improvements to layout management and preferred / maximum size handling.
Loaded images are now cached using SoftReference's.
Another decrease in memory when using images. Up until now pixel data for one and the same image was kept 3 times in memory: in PNGImageSource, in Image and also in a native buffer in Image. Now the data in the java part of Image is removed after it's passed on to the native buffer.
Multimedia corner:
Applet-style sound support (AppletAudioClip) added. (For the moment only .au files can be played and only if they are encoded with mu-Law.)
General core libraries:
When all non-daemon threads have terminated, Wonka will now run shutdown hooks and exit.
Added a lot of stuff to the text-handling libraries (collation, canonical and compatibility decompositions, all that lovely stuff). Added some Locale handling and basic timezone support.
Fixed some bugs which were reported in java.lang.Thread.
Fixed some small bugs in math, sockets, class loading, reflection.
RTOS (OSwald):
Some bugfixes and optimisations, clean-up a few APIs.
Miscellaneous:
Reduced size of object headers, and generally reduced heap usage.
Added many more tests to the Mauve and VisualTestEngine suites.

Snapshot 0.7.3

This is dubbed a "snapshot" rather than a release because it has not been through the full battery of 11000+ tests, etc.. It forms the basis of the anonymous CVS server.

Release 0.7.2

In this release (Wonka 0.7.2) we have fixed one major bug (in garbage collection: objects having a finalizer were not getting collected after the finalizer was run). We also made a number of smaller bugfixes and extended the coverage of the class library. Fixes to Float.floatToIntBits and Double.doubleToLongBits actually cause us to fail more of our own tests, as the implementation is now more correct than the test. The test will be fixed before the next release ...

Principal Changes from 0.7.1

Configuration stuff:
New config variables BUILDROOT and FSROOT: the former specifies where files should be put on the build machine, the latter specifies (for FILESYSTEM=native only) where Wonka will look for them on the target. Useful for cross-compilation!
New config variables BOOTCLASSDIR and BOOTCLASSFILE tell the bootstrap class loader where to look for classes.zip (or whatever you choose to call it).
New variable DUMPFILE determines where woempa's will be logged (useful if e.g. FSROOT is / or /usr/local/share/wonka).
VM (Wonka):
Fixed a major problem with GC: finalizable objects were not completing their life-cycle properly, so not getting garbage-collected.
New code for handling constant pool, reducing memory consumption and fragmentation.
AWT (Rudolph):
A good deal of refactoring which should improve performance and stability. Most noticeable improvements are in the areas of scrollbars, checkboxes, and buttons (which no longer stay pressed when they shouldn't).
RTOS (OSwald):
Made a start on a native exception handling system: see open-wonka/kernel/oswald/tests/exception_test.c for more info. Not yet used by Wonka.
Miscellaneous:
The following command-line switches are now implemented and act as expected (?):
-classpath/-cp, -D, -Xbootclasspath, -version, -help, -X,-?
Work has begun on implementing 'Java Platform Debugger Interface' (JPDA) and 'Java Debug Wire Protocol' (JDWP). See open-wonka/jdpa.
The adaptive compiler (code-named `J-spot') is beginning to take shape: see directory open-wonka/compiler-jspot.

The detailed test report is available as a plain-text file.