Older blog entries for gadek (starting at number 16)

Getting back to reality...

I finally feel the Christmas and New Year time is over. The classes started, and I am slowly getting back to hacking SableVM. Still, this is just the beginning of the term, so I decided to use my free time for a little retrospective, answering emails I had no time to answer since long time, getting a haircut, getting thru a pile of paperwork, etc. I also noticed some interesting things I missed in the heat of the last weeks of the old year or over the vacations.

SableVM 1.1.8 Java Virtual Machine now in Debian SID

Thanks to help from Jeff Bailey the new packages are available in SID. They're not not in Sarge/Testing yet, because a few problems were reported. This was expected, as the changes since 1.1.6-6 were huge. I'll start looking into these reports soon. (And this also reminds me I should finally get my new GPG key signed by a DD)

Extraordinary support of SableVM for Gentoo...

David is doing great work in improving support for SableVM in Gentoo. He described the process of cross-compiling SableVM on Gentoo, including HOWTO and patches. He also added Gentoo sablevm-svn (staging) ebuild support thanks to which it is a breeze to use an always up-to-date version of SableVM in Gentoo.

SableVM support for GNU Classpath 0.13

I quickly tested the Out-of-the-box support of SableVM for GNU Classpath with 0.13 release using current daily snapshot of SableVM and using the -Xgnuclasspath:/dir/ectory option of java-sablevm command line tool. In the GNU Classpath 0.13 Release announcement you'll also find information about it, but it might be better to take a look at the step-by-step instructions for getting SableVM work directly with GNU Classpath. I think it should make it into some short document finally.

Because the gnucp-overrides.jar file, required to run GNU Classpath (CVS), is auto-built everyday from sablevm-classpath, which in turn is kept up-to-date with GNU Classpath CVS, it is interesting to see for how long it will be possible to run ie. GNU CP 0.13 with daily version of this override jar. This should give us some idea of the level of stability of the VM interfece of GNU Classpath.

30 Dec 2004 (updated 30 Dec 2004 at 18:40 UTC) »

SableVM 1.1.8 (Free Java Virtual Machine) Released !!!

Our previous release wasn't that long ago, but there has been quite a few improvements since then, mainly:

  • Eclipse 2 and 3 works now,
  • It is now possible to run SableVM with GNU Classpath CVS directly with the help of -Xgnuclasspath: option of java-sablevm command (this is intended mainly for GNU Classpath developers, as regular users are adviced to use sablevm-classpath),
  • We merged into sablevm-classpath very fresh GNU Classpath CVS code on Dec 28,
  • We implemented a few missing JNI functions, improved error messages and fixed quite a few bugs.

For the full list of improvements and changes see the SableVM 1.1.8 Java Virtual Machine release announcement

Debian packages are ready for upload at http://gadek.homelinux.org/debian-1.1.8/ and should hit the archive soon (thanks to Jeff Bailey!). Given the cumulative improvements since SableVM 1.1.6-6 I think this new version should definitely go into Sarge.

SableVM Java VM Hall Of Fame updated, and...

Our small "Hall of Fame" is apparently quite popular (according to webalizer, at least :) so I googled a bit and again added a couple of new entries to it, including...

Snap Development Kit -- this one was especially interesting. I think binding together a Free Java Virtual Machine (SableVM, of course :-), class library, compiler and maybe some other basic java tools is the way to go. Would *you* care to help?

SableVM is well and alive! Use it :-)

Somebody wrote that he was looking for a Free Java Virtual Machine and found out that SableVM JVM website was dead. At first I thought that he meant the project activity was very low, which would be rather strange, given the constant stream of gcc warning fixes Etienne applied lately :-) But actually our website was inaccessible for some time. Ah, the joys of network downtimes.

So just to clarify, SableVM is well and alive and daily snapshots of SableVM (this including daily builds of an overrides JAR needed to run GNU Classpath CVS) are available to those for whom the the releases are not enough. Also the instructions on how to run Eclipse on SableVM were updated and extended lately. Enjoy!

30 Nov 2004 (updated 30 Nov 2004 at 09:07 UTC) »

Eclipse, Debian and SableVM (the update I promised)

Given that we have finally got Eclipse 3 running on SableVM Java Virtual Machine I started looking into way of getting a new version of SableVM into Debian Sarge, so that people using it could at least use the included Eclipse. We need to first release SableVM 1.1.8 as 1.1.7 is not able to run Eclipse yet, only our "staging" development version is (you can get fully usable nightly snapshots of SableVM staging if you want to try it out - see the preliminary Eclipse startup script for SableVM to save time!). But this is not the real problem. I should hopefully be able to do it in before Christmas.

There are however other complications, mainly because

It has one grave bug, and it also depends on java-package that has several severe problems. Clearly, Eclipse in Debian need more TLC (Tender, Love & Care). Is there anyone willing to look into that? (please write to debian-java@lists.debian.org http://lists.debian.org/debian-java. Update: see Eclipse alioth project)

Having Eclipse in Debian and working with a completly Free Java Virtual Machine surely would be a great advantage for Debian!

Eclipse 3 on SableVM Java Virtual Machine!!!

The joined efforts of SableVM JVM hackers and GNU Classpath hackers finally allowed Eclipse 3 to run on SableVM!. According to what Etienne told me, he was running Eclipse 3 on his Debian PowerPC for a few hours, including editing, compiling and running simple java programs. And all that using SableVM as the only Java Virtual Machine on his laptop. I wish I had some more time now to try it on myself. WoW!

More on that later this week, as soon as my exams come to a (hopefully happy) end.

Silly pains running Mauve on SableVM Java Virtual Machine

Since I restored (actually rewrote) the machanism of nightly (or daily?) snapshots of SableVM I've been thinking of also performing automated testing. We have our own small and highly specialized test suite for testing SableVM's bytecode execution engine, but this one is mostly useful for porting SableVM to new architectures (especially for porting the (fastest) inlined engine). Once this test suite runs well, there's little chance we can hit any VM-related troubles later, during usage. I had little time lately (end of fall semester) so I only tried running Mauve twice and either it was just hanging after a few tests or all the ran tests were failing. Not getting into the details, on the 3rd try... heh. You can judge by yourself how natural you think such a "good" call to run Mauve is:

export JAVA=/usr/bin/java-sablevm; export JAVAC=/usr/bin/jikes-sablevm; export COMPILER=$JAVAC; export RUNTIME=$JAVA; ./configure --with-mailhost=localhost && make && ./batch_run &>./output

But then I was able to finally get some results. I did the test with the latest Mauve, but I used the debian package of SableVM 1.1.6-6 which is to be released with Sarge. This version is fairly stable and includes many bugfixes that made it into upstream 1.1.7 later, but its classpath is not the newest. Yet, I've heard that with the latest classpath about 250 tests are expected to fail, which I got about 350 failing. Given that mauve has some 10000 tests (IIRC), this is quite a good result. I need to setup automated testing when I have some free time (December?)

Some fun stuff - repeated due to high "hit rate" :-)

I've noticed that SableVM Free Java Virtual Machine Hall Of Fame has been very popular (webalizer was helpful in realizing that fact :-) so I am just reposting the link. I am still looking for new links to put there, so don't hesitate and just add them to the Wiki!

Plans for new SableVM Java Virtual Machine releases

I think I like the idea of doing monthly releases. We haven't been able to really do this until now, because of the lack of automated testing. That is, it'd be easy to just release whatever we have mostly working in the development branch, but we would risk shipping something buggy. So we've always had to manually run certain tests - which always takes time so you don't want to do that too often.

But as soon as we get some automated testing we should be able for ex. to bind releases of SableVM with snapshot releases of GNU Classpath, which, according to what I've heard from Mark, should now be monthly. That would fit quite well! (yes, I know that now you can run SableVM Java Virtual Machine out-of-the-box with GNU Classpath CVS, but still - the releases are more useful to regular users).

PS: If everything is fine, we should have an interesting and useful Christmas gift for the whole Free Java community. Hopefully we'll make it on time ;-)

SableVM JVM running GNU Classpath CVS Out-of-the-box!

Soon after the recent release of SableVM 1.1.7 and yesterday's release of GNU Classpath 0.12 the SableVM Java Virtual Machine joined the group of Free JVMs capable of running directly with GNU Classpath CVS. This ability is mostly useful to developers of GNU Classpath who need to be able to run the latest CVS versions of it. The amount of special setup steps required has been kept to minimum and running this configuration later is trivial (see the original posting for instructions).

For regular users SableVM Java Virtual Machine comes with SableVM Classpath, which is a Java library derived from GNU Classpath code. The development branch of SableVM (staging) is kept up-to-date with respect to changes in GNU Classpath CVS (usually it is only a few days behind it. Actually to use this out-of-the-box feature it is required to fetch a precompiled gnucp-overrides.jar file which is built directly from SableVM Classpath and contains all the SableVM-specific files that are needed to run GNU Classpath. Altough it might not contain all files that are different between SableVM Classpath and GNU Classpath it should contain enough to allow for full useage of the code in GNU Classpath CVS. This file is autobuilt daily and available in the SableVM Snapshots Download area along with daily snapshots of SableVM Java Virtual machine and SableVM Classpath.

Continuing Hall Of Fame development

I looked slightly further on what stories involving SableVM are available on the Internet and added a few new ones to SableVM Java Virtual Machine Hall Of Fame. I think the next step will be to separate out the smiley stories and serious stories (altough all of them are serious, in some sense, some of them make me smile - this is how I would differentiate them). If you found something possibly worth putting there - don't hesitate, just add it to the SableVM Hall Of Fame Wiki page.

Support Free Java! Link to Us!

In a minute you can support the SableVM Project and thru that the Free Java movement. How? For example by putting a small graphical link to SableVM somewhere on your website or your blog. Some already did that for which we (as the SableVM Project) are thankful.

PS: Stay tuned for next updates :)

Finally: SableVM 1.1.7 Java Virtual Machine RELEASED!

Yeah, I know. It's been in preparation since mid-september. Sometimes it's hard to have both: a stable, well-tested release and not give up any of new, important features that are almost there. But I am confident it was worth waiting. We've fixed lots of little-but-important things and a couple of useful features was added. But the changelog should say it all:

  • Imported new GNU Classpath CVS snapshot as of Sun Oct 10 18:00:00 UTC 2004.
  • Added handling of Jar/Zip files on boot classpath.
  • Provided user-friendly failure messages for bootstrap problems. This should get rid of the hated "sablevm: cannot create vm".
  • Allowed for multiple elements and prepending/appending to boot class path.
  • Added --with-profiling switch to make most functions non-"static".
  • Made sablevm-classpath install its files in more standard locations.
  • Explicitely disallowed compilation of classpath with gcj or kjc (it never worked reliably).
  • Made jikes and gcc be less verbose by default (to avoid confusion).
  • Added new Generational Garbage Collector ("experimental", available on request, by passing --with-gc=gencopy to configure).
  • Made several important bugfixes and improvements (see the full announcement)

The development however goes on. For starters I've just merged latest GNU Classpath CVS into staging (our development branch). There are some non-critical issues related to latest intensive changes in Classpath, but hopefully they'll be resolved long before 1.1.8 release. And there's of course this little list of open issues to work on in free time :-)

Starting a not-too-serious "Hall of fame"

Looking at the pages from which people come in onto our web pages I saw a nice user comment, which reminded me that Robilad once found something similar. I grepped thru IRC logs for a while and found out the older URL. I've never thought about "Hall of fame" seriously, but here you go. I'll try to have eyes wide open while sailing internet to pick some more of these. Or maybe you saw an interesting coment you could add there? (Note: these are Wiki pages)

In any case, you might just take a quick look at SableVM Java Virtual Machine Hall Of Fame.

16 Sep 2004 (updated 16 Sep 2004 at 22:36 UTC) »

Prepearing SableVM 1.1.7, Generational GC and so on...

As I mentioned last time, the busy-but-quiet vacation season is finished and SableVM development will look active again. We've started preparations to SableVM 1.1.7. My personal list of things to be included would be something like:

  • SableVM-Classpath based on new GNU Classpath 0.11 release (and possibly further CVS changes). Etienne has just merged latest code into his private branch to test it before merging into out development branch (staging). I hope to see some more Swing working :-)
  • Generational Garbage Collector recently contributed by Carl Lebsack. Preliminary tests show that it improves overall performance a couple of percent (depending on a program). There's still a couple of little things to discuss and iron out before the code makes it into staging, but it should happen soon.
  • Support for compressed (.jar/.zip) bootclasspath. I already have working implementation in my sandbox, but it needs cleaning up before it's merged. It will make a big difference for embedded systems with limited storage. I also implemented support for many elements in bootclasspath (previously only one path was possible) so it'll make it easier to override certain base clases when needed.

This is by no means final, full or official list. I just think these elements will most probably be the most important improvements in 1.1.7. Stay tuned!

30 Aug 2004 (updated 30 Aug 2004 at 14:05 UTC) »

Die, doubles, die!

Yeah, well... It seems that SableVM 1.1.6-6 Debian package should hit testing in next 20 hours. This is very good because this version fixes a couple of sometimes serious problems, mainly related to handling of floating point values (especially doubles). As soon as I have a free hour I'll merge these changes into staging branch. Besides, I am very happy that we finally have fully functional JVM on ARM architecture. Users of embedded systems should be happier now too :)

The summer break is finished and hopefuly as soon as the early-term workload peek passes we should see 1.1.7 release. The latest GNU Classpath has been imported into staging lately, so we'll hopefuly see some improvements in Swing support. We also plan to merge sablevm-classpath content into one singe sablevm tar archive to make the deployment more convinient. We'll see about that.

7 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!