AROS ABI

From Freepascal Amiga wiki
Revision as of 17:16, 7 June 2022 by Migario (talk | contribs) (→‎AxRT: additional content)
Jump to navigation Jump to search

Topic: Current state of available AROS ABI's
Date: 2022-june-06

AROS ABI's (in order of appearance)
ABI Status Maintainer Targets Header text Header text
ABIv0 Obsolete/Abandoned AROS Development Team Example Example Example
ABIv1 Unstable development branch AROS development Team Example Example Example
alt_ABIv0 Stable release branch deadwood Example Example Example
ABIv11 Stable release branch deadwood Example Example Example
AxRT Unstable experimental branch deadwood Example Example Example


ABIv0

Current status: Abandoned
Last release : 2019-05-20 (very much out of sync with ABIv1)

Was the original development branch, later accompanied/followed by ABIv1.

Both ABI's existed next to each other and where maintained for a longer period and while binary incompatible kept in (relative) sync for a while.

Later on ABIv1 introduced more and more additional features that weren't possible to integrate/maintain for ABIv0 therefore in the end this ABI was abandoned by the AROS Development Team.


ABIv1

Current status: In development (unstable releases)
Last release : present day

Was introduced to be(come) binary compatible with original m68k amiga system.

Introduced more and modern features, became binary compatible with original m68k Amiga OS and as such became the new standard development branch.

This branch is still actively developed till this day by the AROS Development Team.

Introduced (amongst many others) TLSF and SMP

alt_ABIv0

Current status: In development (stable releases)
Last release : 2022 may 30 (version 20180423-1)

Was introduced in order to succeed and be backwards compatible to the original (abandoned) ABIv0 branch while at the same time incorporating (new) features and improvements from the ABIv1 development branch.

The existence of this branch is important because all current existing AROS distributions are based on the (abandoned) ABIv0 due to the existing software base for this ABI.

The releases are based on ABIv1 development status dates and as such have no resemblance with the original ABIv0 release dates (yes, that is confusing).

Every alt_ABIv0 release has a newer code-base than ABIv0 ever had and will have.

Can be considered as a fork and successor of the original ABIv0.

ABIv11

Current status: In development (stable releases)
Last release : 2022 march 20 (version 20220318-1)

Was introduced as a stable alternative for the ABIv1 development branch and as such is (to a certain extend) compatible with the ABIv1 development branch.

Details about which parts are and aren't stable/compatible can be found here.

Releases are based on ABIv1 development branch (dates).

Can be considered as a fork of the current ABIv1 development branch.

AxRT

Current Status: In development (kinda stable releases)
Last Release : 2022-05-07 (AxRuntime v41.3)

Is an experimental RunTime branch that allows one to develop programs that make use of the Amiga API but runs native on a Linux host OS.

It is experimental in the sense that host implementation is still being developed, additional features/implementations are added, and things might change and as such can not be considered 100% stable on those parts.

As AROS executable's runs native on the host it allows for easy development on the host OS and be able to (cross)compile for a native AROS target (for example when hosted development was finished).

AxRT also makes it possible to run AROS programs (including complete workbench/browser/Amiga shell) on the Linux host.

Has the advantage to develop software that makes use of features not yet available for AROS by using the host OS API for those missing AROS features but also allows for those missing features to be implemented/experimented with on the host so that it can be (back)ported (more easily) to native AROS.

AxRT is ABI/API compatible with ABIv11 and is the only ABIv11 branch to (actively) support SMP.