Older blog entries for gadek (starting at number 11)

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.

26 May 2004 (updated 12 Jan 2008 at 08:19 UTC) »

SableVM 1.1.4 released

This is what I would call a perfect release. Just in time, when the list of improvements grew enough to justify it :). So, what's new in 1.1.4?

  • Updated to the recent GNU Classpath 0.09 release with later CVS changes.
  • Improved support for AWT and Swing.
  • Eliminated the dependency lt_dlopen(NULL) which seems broken on some platforms such as Cygwin and some *BSD.
  • Switched to new, complete implementation of VMProcess/Process from GNU Classpath instead of using our own previous partial implementation.
  • Added x86_64/Linux (AMD64) support.
  • Improved autodetection of build parameters on non-GNU/Linux systems.
  • Updated and improved manual pages.
  • Made some other little improvements and applied a few bug fixes.

See details and installation instructions on www.sablevm.org. I didn't have time to prepare Debian packages yet, so please simply use the sources.

There are also some other news at our development sub-site.

Personal note...

I was quite quiet lately. Lots of other unfun stuff to do. But I am almost finished now. Just a few hours (and pages of text) more... and I should finally have time to actively work on SableVM, finish configuring our new servers (I am putting SELinux on them), and so on. This will be very, very interesting (and busy) summer!

13 Apr 2004 (updated 13 Apr 2004 at 06:33 UTC) »

SableVM 1.1.3 released

It was supposed to be 1.1.2 but... while I released 1.1.2-pre Etienne silently uploaded 1.1.2 tarballs on sourceforge, then we decided to add some features (see below), so to avoid any possible confusion we decided to release 1.1.3. Ah, what we do for our users! ;)

In any case 1.1.3 is the best release to the date. The only pity is that the release announcement was weak. Much too weak I'd say. But I am sure we'll fix that in 1.1.4. So for 1.1.3 the most IMO important features include:

  • uses code from GNU Classpath 0.08 + very recent CVS changes (merged only few days ago)
  • fixed a few little but sometimes painful bugs reported by users
  • Swing starts to work and AWT works quite nicely! (See the new screenshots section)
  • This is the first version where configure && make && make install will "just work" for both sablevm and sablevm-classpath tarballs w/o need to specify any additional parameters or using build scripts.
Obviously, Debian packages have been just uploaded, they're in incoming and should hit unstable in some 12 hours.

Please try them on and report your experiences. So far from the problems reported we've really fixed all of the issues directly related to SableVM and a few related to Classpath. You can give us some more.

Happy testing!

A spirit needs body...

On friday we ordered our new servers, with SATA disks, hardware RAID, fully blown CPU and RAM... Software is important but it cannot live w/o hardware!

Next weekend I should be installing Linux on these machines. I only hope that the Linux support for the mainboard features will be good enough (it is, from what I've read on the web, but you never know). I think I'll install Debian Sarge not Woody though this will require me to track security problems by hand. That's the only thing that still makes me undecided.

But in any case - I'll finally be able to install new, fresh, system with all our services on it: subversion repository, mailing lists, mail @sablevm.org aliases system, bug tracking system, web server, irc bot, web archives, wiki pages, daily snapshots... We have most of these already, but not working exactly the way we would like it to be. It'd be perfect, if I could have all the existing services moved in 2 weeks from now.

SableVM 1.1.2 preparations

Etienne tagged sablevm-1.1.2 and sablevm-classpath-1.1.2 so that they could be tested before the release. I've created 1.1.2-pre tarballs and they're at http://gadek.debian.net/1.1.2-pre/. You need both sablevm-1.1.2-pre.tar.gz and sablevm-classpath-1.1.2-pre.tar.gz , then read installation instructions and you're ready to tell us about your experiences! :)

PS: 1.1.2 contains all this cute AWT and Swing stuff you could see on screenshots linked from http://devel.sablevm.org/

Ufff.... what a weekend....

But maybe I should start with the good news first. I've just taken a look at our main/own download statistics of SableVM and added the numbers to the results from SourceForge (where we've also put up our tarballs) and...... apparently SableVM 1.1.1 source has been downloaded over a hundred of times since its official release about week ago!!!

The other news? Well, it was bad weekend. We've tried to put some of our improvements into GNU Classpath CVS, but pretty much any change caused protests. The same for any proposals for various (and quite obvious IMO) improvements. It probably is human's nature to be resistant to changes, but still... Especially the current misery of what GNU CP <-> JVM interface is, is something that I have troubles to agree for.

We didn't give up, though. I think we will get some of these things implemented anyway. Then, when people can see the full picture they will be able to choose more consciously: to use our improvements for common good or to stick to what they're used to. It will take a while.

Stay tuned.

2 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!