OESF Portables Forum
Model Specific Forums => Sharp Zaurus => Zaurus - pdaXrom => Topic started by: LordDavon on March 02, 2004, 09:19:47 pm
-
JamVM \"Features\" (from the home page)
For those interested in the design of virtual machines, JamVM includes a number of optimisations to improve speed and reduce foot-print. A list, in no particular order, is given below.
Uses native threading (posix threads). Full thread implementation including Thread.interrupt()
Object references are direct pointers (i.e. no handles)
Supports class loaders
Efficient thin locks for fast locking in uncontended cases (the majority of locking) without using spin-locking
Two word object header to minimise heap overhead (lock word and class pointer)
Execution engine supports basic switched interpreter and threaded intepreter, to minimise dispatch overhead (requires gcc value labels)
Stop-the-world mark and sweep garbage collector
Thread suspension uses signals to reduce suspend latency and improve performance (no suspension checks during normal execution)
Full object finalisation support within the garbage collector (with finaliser thread)
Garbage collector can run synchronously or asynchronously within its own thread
String constants within class files are stored in hash table to minimise class data overhead (string constants shared between all classes)
Supports JNI and dynamic loading for use with standard libraries
Uses its own lightweight native interface for internal native methods without overhead of JNI
JavaVM is written in C, with a small amount of platform dependent assembler, and is easily portable to other architectures.
http://zaurus.spy.org/feeds/davonz (http://zaurus.spy.org/feeds/davonz)
Feedback appreciated.
LD
-
What Java VM did you port? Do you have a link to the home page?
-
http://jamvm.sourceforge.net/ (http://jamvm.sourceforge.net/)
-
how did you compile it?
I\'m running the standard Sharp rom and I get this:
./jamvm -cp .
Couldn\'t allocate the heap. Abording.
bash-2.05$ free
total used free shared buffers
Mem: 29644 25756 3888 0 188
Swap: 0 0 0
Total: 29644 25756 3888
bash-2.05$ ldd jamvm
libpthread.so.0 => /lib/libpthread.so.0 (0x40022000)
libdl.so.2 => /lib/libdl.so.2 (0x40040000)
libm.so.6 => /lib/libm.so.6 (0x4004b000)
libXft.so.2 => /home/QtPalmtop/lib/libXft.so.2 (0x40079000)
libXrender.so.1 => /home/QtPalmtop/lib/libXrender.so.1 (0x40092000)
libXext.so.6 => /home/QtPalmtop/lib/libXext.so.6 (0x400a1000)
libfontconfig.so.1 => /home/QtPalmtop/lib/libfontconfig.so.1 (0x400b7000)
libexpat.so.1 => /home/QtPalmtop/lib/libexpat.so.1 (0x400e3000)
libfreetype.so.6 => /home/QtPalmtop/lib/libfreetype.so.6 (0x40108000)
libX11.so.6 => /home/QtPalmtop/lib/libX11.so.6 (0x40159000)
libc.so.6 => /lib/libc.so.6 (0x40209000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
-
It is for the X11 ROM.
LD
-
so I can\'t use it with Xqt? :-(
-
awesome! is there any way to integrate this with the firefox?!
Scott
-
LD,
sorry for granted question:
have you tried to load any java awt/swing application?
cause i\'m having this problem loading a sample jar from swingset
jamvm -cp /mnt/cf/Notepad.jar Notepad
Exception occurred while VM initialising.
java/lang/NoClassDefFoundError: java/lang/Thread
am i forgetting anything?
-
I \"think\" you need to compile the GNU classpath 0.0.7
-
Classpath uploaded to the feed. Untar to /usr/local.
For the questions about usage, please refer to the web page. Let me know how it works. I have not tried this as I did everything rather rushed (if you can\'t tell).
LD
-
Here is one to try also. http://www.acunia.com/wonka/wonka-bin-arm-...-release.tar.gz (http://www.acunia.com/wonka/wonka-bin-arm-linux-0.9.6-release.tar.gz) Let me know if it works before I try and reinvent the wheel.
LD