tisdag 9 maj 2017

Signs of life, or something

Sounds like silence

The silence on the blog should not be taken as sign of abandonment. Work has been simmering slowly the last few months, however my actual paid work, and other stuff have taken most of my time.
The activity on the blog should not be taken as a sign of great achievements, however. I've been working on OpenJDK 8 lately, and before getting to a point of actually having something to run and test, there's quite a few things that need to be in place. I'm using IcedTea 8, an official OpenJDK project which, and I quote, "aims to make it easier for users to build and deploy OpenJDK". It's basically a set of files which uses the official OpenJDK code base, but sligthly alters it, and adjusts the build process, so it's possible to, for instance, use JamVM instead of HotSpot, do cross compiles, and tweak the JDK in other ways.

Now I've gotten to the point where all autoconf, makefiles, et.c., can generate a cross compiling environment for PPC 32 bit AmigaOS, and I can just do make, and find what's missing as I go along. The stuff missing is Amiga-specific Java classes for AmigaOS stuff, for instance the Java class java/io/AmigaFileSystem.java, which then also needs some native stuff in java/io/AmigaFileSystem_md.c that connects down to real AmigaOS code. When finding something missing, I usually glance at the Windows or Solaris OpenJDK code, try to understand what it does, copy either implementation, and alter it to fit AmigaOS. Sometimes I can also re-use old GNU Classpath code and tweak it to fit the OpenJDK world. All in all, I'm kind of the Amiga-Java Dr. Frankenstein, trying to bring what pieces I have together. Now, I should also say that its not all copy-and-paste, I do actually write some of my own code. You can't find this on stackoverflow, ya know!

It compiles!

I mentioned cross-compile above, meaning that I'm on my Linux machine doing most of my work. Which is kind of boring, because I really miss AmigaOS, and Cubic IDE. At times I've been working in AmigaOS, and constantly checking in the code to Subversion, and checking it out in Linux and building it there. Somewhat cumbersome, but it sort of works. I've tried various FTP syncing solutions, but the SVN solution has the advantage that I regularly check in the code!