Difference between revisions of "AROS ABI"

From Freepascal Amiga wiki
Jump to navigation Jump to search
(→‎alt_ABIv0: add additional content)
m (typo)
 
(12 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
|+ AROS ABI's (in order of appearance)
 
|+ AROS ABI's (in order of appearance)
 
|-
 
|-
! ABI       !! Status                      !! Maintainer            !! Targets !! Header text !! Header text
+
! ABI         !! Status                      !! Maintainer            !! Targets !! Links !! Header text
 
|-
 
|-
| ABIv0     || Obsolete/Abandoned          || AROS Development Team || Example || Example || Example
+
| legacy ABIv0 || Obsolete/Abandoned          || AROS Development Team || native: pc-i386, pc-x86_64 <br> hosted: mingw32-i386, linux-i386, linux-x86_64, linux-armhf, freebsd-i386 || [https://trac.aros.org/trac/browser/AROS/branches/ABI_V0/AROS repository], [http://www.aros.org/nightly.php downloads] || Example
 
|-
 
|-
| ABIv1     || Unstable development branch  || AROS development Team || Example || Example || Example
+
| ABIv1       || Unstable development branch  || AROS Development Team || native: amiga-m68k, pc-i386, pc-x86_64, pc-x86_64-smp, raspi-armhf, sam440-ppc <br> hosted: linux-i386, linux-x86_64, linux-arm, linux-armhf, darwin-i386, darwin-x86_64, darwin-ppc, mingw32-i386, mingw32-x86_64 || [https://github.com/aros-development-team/AROS repository], [http://www.aros.org/nightly1.php downloads] || Example
 
|-
 
|-
| alt_ABIv0 || Stable release branch        || deadwood              || Example || Example || Example
+
| ABIv0        || Stable release branch        || deadwood              || native: pc-i386 <br> hosted: linux-i386, mingw-i386 || [https://github.com/deadw00d/AROS/tree/alt-abiv0 repository], [https://www.axrt.org/index.php?tab=download-aros downloads] || Example
 
|-
 
|-
| ABIv11   || Stable release branch        || deadwood              || Example || Example || Example
+
| ABIv11       || Stable release branch        || deadwood              || hosted: linux-x86_64 || [https://github.com/deadw00d/AROS repository], [https://www.axrt.org/index.php?tab=download-aros downloads] || Example
 
|-
 
|-
| AxRT     || Unstable experimental branch || deadwood              || Example || Example || Example
+
| AxRT         || Stable experimental branch   || deadwood              || hosted: linux-x86_64 || [https://github.com/deadw00d/AROS/tree/alt-runtime repository], [https://www.axrt.org/index.php?tab=download downloads] || Example
 
|}
 
|}
  
  
== ABIv0 ==
+
== ABIv0 (legacy) ==
  
 
Current status: Abandoned<br>
 
Current status: Abandoned<br>
Line 29: Line 29:
 
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.
 
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.
+
Later on ABIv1 introduced more and more additional features that weren't possible to integrate/maintain for legacy ABIv0 therefore in the end this ABI was abandoned by the AROS Development Team.
  
  
Line 45: Line 45:
 
Introduced (amongst many others) TLSF and SMP
 
Introduced (amongst many others) TLSF and SMP
  
== alt_ABIv0 ==
+
 
 +
== ABIv0 ==
  
 
Current status: In development (stable releases)<br>
 
Current status: In development (stable releases)<br>
 
Last release  : 2022 may 30 (version 20180423-1)<br>
 
Last release  : 2022 may 30 (version 20180423-1)<br>
  
Was introduced in order to succeed and be backwards compatible to the original (abandonded) ABIv0 branch while at the same time incorporating (new) features and improvements from the ABIv1 development branch.
+
Was introduced in order to succeed and be backwards compatible to the original (abandoned, legacy) ABIv0 branch while at the same time incorporating (new) features and improvements from the ABIv11 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 existence of this branch is important because all current existing AROS distributions are based on the (abandoned, legacy) 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).
+
The releases are based on ABIv11 development status dates and as such have no resemblance with the original abandoned legacy ABIv0 release dates (yes, that is confusing).
  
Every alt_ABIv0 release has a newer code-base than Abiv0 ever had and will have.
+
Every current ABIv0 release has a newer code-base than legacy ABIv0 ever had and will have.
 +
 
 +
Can be considered as a fork and successor of the original abandoned legacy ABIv0.
  
Can be considered as a fork and successor of the original ABIv0.
 
  
 
== ABIv11 ==
 
== ABIv11 ==
Line 64: Line 66:
 
Current status: In development (stable releases)<br>
 
Current status: In development (stable releases)<br>
 
Last release  : 2022 march 20 (version 20220318-1)<br>
 
Last release  : 2022 march 20 (version 20220318-1)<br>
 +
 +
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 [https://github.com/deadw00d/AROS#backwards-compatibility here] and the ABI specification (which differs from ABiv1) can be read [https://github.com/deadw00d/AROS/blob/master/arch/x86_64-all/ABI_SPECIFICATION here].
 +
 +
Releases are based on imported changes from ABIv1 development branch, deadwood's own work and ApolloOS development. Improvements/fixes flow back and forth between them.
 +
 +
Can be considered as a fork of the current ABIv1 development branch.
  
  
 
== AxRT ==
 
== AxRT ==
  
Current Status: In development (kinda stable releases)<br>
+
Current Status: In development (stable releases)<br>
 
Last Release  : 2022-05-07 (AxRuntime v41.3)<br>
 
Last Release  : 2022-05-07 (AxRuntime v41.3)<br>
 +
 +
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. From a 3th party developer point of view it is assumed to be stable.
 +
 +
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.

Latest revision as of 23:20, 7 June 2022

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

AROS ABI's (in order of appearance)
ABI Status Maintainer Targets Links Header text
legacy ABIv0 Obsolete/Abandoned AROS Development Team native: pc-i386, pc-x86_64
hosted: mingw32-i386, linux-i386, linux-x86_64, linux-armhf, freebsd-i386
repository, downloads Example
ABIv1 Unstable development branch AROS Development Team native: amiga-m68k, pc-i386, pc-x86_64, pc-x86_64-smp, raspi-armhf, sam440-ppc
hosted: linux-i386, linux-x86_64, linux-arm, linux-armhf, darwin-i386, darwin-x86_64, darwin-ppc, mingw32-i386, mingw32-x86_64
repository, downloads Example
ABIv0 Stable release branch deadwood native: pc-i386
hosted: linux-i386, mingw-i386
repository, downloads Example
ABIv11 Stable release branch deadwood hosted: linux-x86_64 repository, downloads Example
AxRT Stable experimental branch deadwood hosted: linux-x86_64 repository, downloads Example


ABIv0 (legacy)

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 legacy 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


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, legacy) ABIv0 branch while at the same time incorporating (new) features and improvements from the ABIv11 branch.

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

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

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

Can be considered as a fork and successor of the original abandoned legacy 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 and the ABI specification (which differs from ABiv1) can be read here.

Releases are based on imported changes from ABIv1 development branch, deadwood's own work and ApolloOS development. Improvements/fixes flow back and forth between them.

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


AxRT

Current Status: In development (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. From a 3th party developer point of view it is assumed to be stable.

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.