Island

The Island target, new in Elements 9.0 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 Linux (64-bit) and Windows (32- and 64-bit).

Island compiles to CPU-native code.

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 (currently x64 or i386).

Libraries

  • Island applications have full access to the platform's native low-level APIs. On Windows, that is the Win32 ore 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.

  • 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 as String, DateTime, core collection classes, Exception handling (and the base Exception class) and more. Island RTL is open source and available on GitHub.

  • 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 referenced by default from Swift/Silver projects.

  • Coming in Elements "Hokule'a Class" and beyond, Sugar and our new DelphiRTL will also be supported from Island; unfortunately this has not made the cut for inclusion in Elements 9.0

SubSupported Target Platforms

As mentioned above, Island is designed to be platform-agnostic and to be extended to support a variety of different platforms and target systems, over time. For the initial release, Island has support for two platforms and architectures:

  • Windows — 64-bit (x64) and 32-bit (i386)
  • Linux — 64-bit

Support for Darwin (low-level macOS) is planned, but currently lower priority (as our Cocoa platform already covers most of this target, and also generates CPU-native executables).

See Also

Version Notes

Island is new in Elements 9.0