The HVM now runs under Java 8 and supports the use of Java 8 in HVM applications. This is bound to give unforseen problems. So please report any issues.
Thu mar 6 20:31:23 CET 2014
The HVM is now open source. Check out the download and licensing sections
Sun feb 2 20:34:51 CET 2014
Improving performance of SCJ applications running on EV3
Updated icecapSDK.jar - mostly javadoc and jml, a few optimizations
Sun jan 26 21:45:40 CET 2014
Arduino support works with Windows hosts
fre jan 17 14:28:22 CET 2014
Arduino output (devices.Console.println("hello")) is now being routed back to Eclipse and displayed in the Eclipse console
tir jan 14 12:17:58 CET 2014
Added the option to excluded classes and methods from the
executable, even though the dependency analyzer includes
them. Right click on a selection of items in the dependency view
to exclude them. Excluded methods are declared as external native
methods, which must be given an empty implementation. Do this in
natives_allOS.c, or some other file. Some commonly excluded
natives have been added to natives_allOS.c already. These can be
used as templates for others. Excluding the proper set of native
methods reduces the application size and RAM requirements, which
is especially good for the Arduino Uno platform. For EV3 or
Beaglebone there is not much point in playing around with
exclusion of methods.
Man dec 16 12:45:16 CET 2013
Added Lego EV3 support
Sun Nov 3 10:30:05 CET 2013
Added support for Java level debugging in Eclipse
Tue Oct 15 16:23:30 CEST 2013
Added a new Eclipse Launch Configuration to the plugin for easy launching on POSIX hosts
Mon Sep 16 12:27:16 CEST 2013
Added a NXT Java application NXTBrick.tar to demonstrate how to write text to the NXT display using only hardware objects.
Fri May 31 10:09:14 CEST 2013
Support for multi dimensional arrays (both interpreter and compiler)
Compiler optimizations:
Class initializers are now run before main is started. This avoids the need for checking whether they should be run later and simplifies the generated C significantly. This behavior is not proper Java behavior. It is required for SCJ applications, and may be acceptable in many embedded scenarios.
Object and static field access optimized. In compiled code object and static field accesses are now implemented through access to members of structs (the natural way). This allows GCC to produce tighter code than with the previous solution. Structs are automatically generated for all classes and for static class data. This works across compilation/interpretation boundaries and does not assume anything about how the compiler will layout the structs.
Simple reflection layer has been added to support ongoing GC work. Look at classes ObjectInfo and ClassInfo and the tests referring those. Can basically be used to scan the heap and stacks for references
A new Round-Robin Scheduler has been added. Very simple. Supports unprioritized preemptive scheduling of tasks. See the new Thread package in icecapSDK
Wed Apr 24 14:42:41 CEST 2013
Added limited reflection support. See reflect package in icecapSDK.jar, and tests in 'TestReflectClasses1' and 'TestReflectClasses2'
Various other minor corrections
Mon Jan 28 13:49:41 CET 2013
Added support for application download and upgrade. Only supported for interpreted code. Contact the author for more information
Tue Dec 18 12:47:30 CET 2012
Exported the SCJ scoped memory model to be used in non-SCJ applications. Look at TestAllocationArea.java for an example
Exported the SCJ Process model to be used in non-SCJ applications. Look at TestProcess*.java for an example
Various bug fixes. Especially process preemption issues and AllocationArea issues: static data and constants are now allocated in immortal memory
Avoid redundant check for class initialization. Reduces code size for compiled methods significantly
SCJ refactored and uses a clean interface towards the VM (look at VM.java)
Sat Oct 20 22:58:32 CEST 2012
Added cr16c_interrupts.s to support preemptive scheduling on the CR16C embeedded target
Added the CR16CRealtimeClock class to the SDK to support a real time clock for the CR16C embeedded target
Added the TestSCJPrioritySchedule2 to the SDK. This has been verified to run on the CR16C embeedded target
Enabling the SCJ infrastructure (including preemptive scheduling) for low-end embedded 8 and 16 bit micro controllers should be straight forward based on the CR16C example. Readers are invited to contact the author for assistance in enabling new embedded targets