This is to announce that I have started work on an implementation
of Oz in Java codenamed "OzScript". I am aware of the earlier
work of Berlioz, but the difference is that OzScript will feature
multiple light-weight OzScript threads running on one Java-thread.
An OzScript engine has been implemented featuring call-stack
management of Oz tasks. This not only enables the afore mentioned
running of light-weight threads, but also easy implementation of
last-call elimination.
For testing, I am running a hand-compiled version of the Producer/Consumer
benchmark featured on http://www.sics.se/~seif/JavaVSMozart.html.
(BTW, the times for the benchmarks seem to be a lot faster
nowadays for Java 1.4 and Mozart 1.2.5)
When the benchmark is rewritten to allow early GC for CONS elements
that are not needed any more, the OzScript engine already manages
to beat the Java two-thread version! Alternatively, keeping a reference to the
full list of 1 million integers means a big performance hit.
Work has now started on a compiler for OzScript-to-Java that will cover
the declarative concurrent subset of Oz.
The name OzScript was chosen to convey that a) it will be slower than
Mozart and single-thread Java and b) there will be slight differences with
Oz like the use of 16-bit chars inherited from Java.
Cheers,
Mark van der Kraan
-
Please send submissions to users@mozart-oz.org
and administriva mail to users-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.
Please send bug reports to bugs@mozart-oz.org.