OpenMCL documentation links


Table of Contents

General
Obtaining OpenMCL sources
Building OpenMCL for LinuxPPC or for DarwinPPC
Using OpenMCL
Implementation notes
OpenMCL's Foreign Function Interface
Interface database and translation

General

Obtaining OpenMCL sources

Building OpenMCL for LinuxPPC or for DarwinPPC

  • The lisp kernel (called "ppccl" on LinuxPPC, called "dppccl" on DarwinPPC)) is an application which loads heap images and provides runtime support (garbage collection and memory management, exception handling, OS interface, etc.) for lisp applications. If you want or need to re-build the lisp kernel from sources, see kernel build procedure.

  • The initial heap image (called "PPCCL" on LinuxPPC, "dppccl.image" on DarwinPPC) is ... a memory image of the lisp heap containing compiled lisp code and data. The function CCL:SAVE-APPLICATION creates heap images; to learn how to compile lisp sources and build heap images, see lisp build process.

Using OpenMCL

  • notes on invoking OpenMCL.

  • Using ILISP with OpenMCL

  • Using sockets in OpenMCL

  • Running external programs.

  • Using shared libraries

  • Doing multibyte I/O in OpenMCL

  • Using AltiVec from OpenMCL LAP functions

  • Some notes on the example programs distributed with OpenMCL, and some more detailed information on the Cocoa demo IDE (and on using Cocoa from OpenMCL in general.)

  • (Very) general information about how OpenMCL's memory management system interacts with the operating system.

  • Using OpenMCL under Darwin is supposed to be virtually identical to using it under LinuxPPC. Some of the known and/or intentional differenes are described here.

  • As of version 0.11, OpenMCL provides some support for dealing with MacOS line termination conventions.

  • Sometimes, it may be convenient or necessary to setup the OpenMCL environment to make ad-hoc, incremental changes to OpenMCL itself.

  • Using threads in OpenMCL (especially native threads, as introduced in OpenMCL 0.14).

  • Multiple threads need to have some way to manage control of a shared terminal input stream. The way that that's currently handled in OpenMCL is described here.

  • Recent releases of OpenMCL 0.14 support a very large subset of the MetaObject Protocol.

  • Notes on OpenMCL's Cocoa demo programs.

Implementation notes

  • Notes on how the tagging system, GC, and other things are implemented

OpenMCL's Foreign Function Interface

  • Information about calling foreign functions in OpenMCL

  • How foreign types are specified and used in OpenMCL

  • Some issues related to referencing foreign memory addresses - and the contents of those addresses - are described here

Interface database and translation

  • Information on the OpenMCL interface database.

  • Information on using the OpenMCL interface translator.

  • Foreign type and function names are case-sensitive. As of version 0.11, OpenMCL treats them that way; the details of how lisp symbols map to case-sensitive foreign names are described here.