js' blog

MorphOS 3.20 has been released
Created: 31.05.2026 11:19 UTC

Yesterday, MorphOS 3.20 was released. But why is this noteworty here?

MorphOS has been shipping with the ObjFW runtime (ObjFWRT) for a few years at this point, using it for its own Objective-C framework. Unfortunately, this was an extremely old version of ObjFWRT - pre 1.0, so neither API nor ABI were stable. Obviously, the API and ABI still did change several times before 1.0 was released. And to make matters worse, it used the Amiga .library support - something I moved to a branch before 1.0 because it wasn't ready. And obviously changed in incompatible ways within that branch.

This meant that MorphOS was stuck on a very old ObjFWRT snapshot. Not ideal, so I set out to change that. So I looked at the old snapshot used by MorphOS and made ObjFWRT ABI compatible with that old snapshot again. Since the Amiga .library support didn't make it into any release, I changed things around quite a bit. For Amiga .library, the order of functions matters a lot. Restoring that order was the easy part, though, since some functions had been entirely removed before 1.0 and replaced by others. Luckily, it turned out those were few and could either be implemented using their replacements just for backwards compatibily, or could be restored and marked deprecated. This was then released as part of ObjFW 1.4, which introduced Amiga .library support as stable.

Fast forward to today, MorphOS 3.20 now ships with ObjFW 1.5.4. And now it is not only shipping with the runtime anymore, but also ObjFW's tools are shipping as part of the base system! If you install MorphOS 3.20, out of the box you will have ofarc, ofhash, ohttp and ofdns. And if you install the SDK, you will out of the box get a full ObjFW setup, ready to use and write portable code on MorphOS for MorphOS.