Last weekend I tried to bring the AROS 64 interface of Free Pascal up to the current level. Some might remember, I created a special automatic checker which you can use to check the records in the pascal units against the structs in the official C includes. An it ensures that all the records and field there is have the same name across all Amiga-like platforms. I already used it for AROS ABIv0 and MorphOS and a bit on Amiga 68k (there are some problems with structs inside structs).
With this tool on hand it was rather easy to check where my AROS units must be changed to be 64-bit and ABIv11 compliant, I tested it and it worked well.
As next step I thought about to update my distribution (0.3.1?) I checked out the latest AROS version and tried to compile for myself. Good thing it works much better than before, bad thing it tries to download a bunch of stuff from the internet (like binutils, gcc and so on) but the server referenced there seems to be offline (sure why one should use the official GNU source, better use some weird 3rd party server which does not work), so I had to get them from the official GNU webpage by hand, annoying!
I tried to compile the native boot-able variant, it compiles, but it does not work, directly after grub when you try to start the kernel it crashes (tried in qemu/vmware, no difference) so still nothing new here. Fall back like last time to Linux hosted. BUT whats that some of my programs crash at very unusual places, on running Threads, hard to debug actually. It seems like a structure has changed.. So I got out my automatic checker again and, yes it found that there is a change in the structure, old T100pUAD 0.3 programs cannot work anymore (or only by random).
The reason I decided to publish „The 100% useless AROS distribution Version 0.3“ was that the ABI, so the binary interface is promised to be fixed now.
|Application Binary Interface (ABI)||YES|
|OS 3.1 API (examples: exec.library, input.device)||YES|
|3rd party public libraries API (example: muimaster.library)||YES|
|Classes, gadgets, datatypes API (examples: png.dataype)||YES|
|AROS driver system (HIDD, oop.library)||NO|
|AROS kernel components (example: kernel.resource)||NO|
This was in January, now not even three(!) month later that promise is already broken, void, not existing anymore. What a big disappointment. Of course no developer, let alone User will use such a system.
This is especially annoying when you notice, that the structure change is 100% unnecessary and useless (and 100% incompatible with original 68k code).