"Island" Compiler Back-end
The Island compiler back-end allows you to build low-level libraries and executables against the platform's native "C level" APIs. Island is an open platform that can and will be extended to many physical targets; currently it supports:
- "
Darwin
" (Cocoa: macOS, iOS, iPadOS, tvOS and watchOS) - "
Android
" – (Android NDK) - "
Windows
" – (Windows) - "
Linux
" – (Linux) - "
WebAssembly
" – (WebAssembly: Browser, Node.JS, etc.)
Island compiles to CPU-native code.
On most platforms, choosing Island as a target trades the rich frameworks provided by a more high-level runtime such as .NET or Java for the benefit of writing code that gets compiled directly against the native CPU (e.g. x64 or i386) and can directly access the lowest level of operating system or hardware APIs. On Darwin, inter-operability with Cocoa classes is provided.
Libraries
-
Island applications have full access to the platform's native low-level APIs. On Windows, that is the Win32 or Win64 C-style API, on Linux it is the standard UNIX/Posix C API. These APIs are provided in the
rtl.fx
reference and namespace, included by default, where applicable. -
On Darwin, all Cocoa APIs and classes from the Apple's SDKs can be accessed as well.
-
In addition, Island comes with a very minimal core runtime, "Island RTL", that provides a basic class and type system. This includes the
Object
type, which is the ancestor of any classes you define yourself, as well as simple types such asString
,DateTime
, core collection classes, Exception handling (and the baseException
class) and more. Island RTL is open source and available on GitHub. -
On WebAssembly, Island RTL includes strongly-typed access to the Browser and DOM JavaScript objects.
-
A version of the Swift Base Library is also provided, for supporting higher-level Swift functionality and types; as on the other platforms, SBL can be used from all languages, and is optional-but-referenced-by-default from Swift/Silver projects.
-
A version of the Mercury Base Library is also provided, for supporting higher-level Mercury functionality and standard-APIs; as on the other platforms, MBL can be used from all languages, and is optional-but-referenced-by-default from Mercury projects.
-
On Window,s Linux and Darwin, the full Go Base Library is also provided, from Go but also all other languages. GBL provides a rich set of useful APIs.
-
Also available is of course our cross-platform Elements RTL library, as well as the Delphi RTL compatibility library.
Platforms
- Cocoa — macOS, iOS, iPadOS, tvOS, watchOS
- Android NDK
- Windows (Native)
- Linux (Native)
- WebAssembly