Copyright 2008 Cadence Design Systems, Inc. Licensed under the Apache License, Version 2.0 (the ''License''); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Also known as the Newspeak Foreign Function Interface.
A foreign function interface is a system for interfacing to the external platform’s OS and libraries which on relevant systems are defined according to a C language semantics specified by a platform’s Application Binary Interface (ABI). An FFI can be used to invoke external functionality in libraries and in the operating system such as GUIs, file-system and network interfaces and so on. It must support representation of C data, making call-outs to external functions and allowing call-backs from external code into Smalltalk. The FFI is needed because the Squeak VM’S existing FFI has been found to be buggy bloated and slow.
The Newspeak FFI is a minimal foreign function interface for IA32 (Intel x86) platforms. The FFI is “lean and mean”, providing no support beyond IA32 or 32-bits, and providing limited safety and abstraction. But the current Squeak FFI).
Current there is NOiPhone(ARM) port.
Platforms:
Macintosh - requires a new VM and plugin, fullly supported on MacIntel, partial support on PowerPC (no floating point, no callbacks yet).
Unix - need someone to integrate and build plugin
WIndows - need someone to integrate and build plugin
iPhone - spring 2009 (depends on funding)
Documentation:
For VMMaker folks
Alien-VMMaker-Support which provides the changes to the latest VMMaker from squeaksource to build a Alien aware VM.
Alien-VMMaker-Plugins which is the plugin logic
For users of Alien
Alien-Core-First - Load this first otherwise you'll get a parsing error later
Alien-Core - Load this next, Compiler changes etc..
Alien-LibC - LibC support for os-x/unix/windows
Alien-CoreTest - SUnits
Optional stuff then is
Alien-MacOSX-Core - Objective-C interface
Alien-MacOSX-AppKit- Objective-C application api
Alien-MacOSX-Examples- Objective-C examples
Alien-Win32 - Windows examples.
Lastly load
Alien-Last-Class-Initialize - To ensure all the initializers were run, just in case MC loses it's mind...