Join GitHub today
Welcome to the Mozart2 VM wiki
This wiki documents the future (2.x) Mozart. It is irrelevant for the current (1.4.x) one.
Depending on what one wants to do, a shallower or deeper understanding of Oz and its VM is needed. The following sections target the needs of every class of person.
You want to use an application that happens to be written in Oz. At the best, you see the Oz VM as the enabler of a fine application. At worst, it's another piece of "stuff" that has to be installed and upgraded and that you don't know the purpose of.
Application developer / Oz user
You know the Oz language but not how it is implemented. For you, the VM is that executable that runs .ozf files.
Oz developer / VM user
You implement the Oz language in Oz. You know about builtins, boot modules, opcodes, etc. You are writing base modules, working in the compiler, etc.
You use the VM library to make it available on a different platform or to integrate it in some application. You are concerned about how the VM interacts with the external world.
You extend the VM with new types, new builtins, new interfaces, etc. in support of Oz developers (for language features) or VM integrators (for connectivity to the application types and primitives) You know the API of the VM, how it's built, etc.
You know the implementation of the VM itself. You add global mechanisms (GC, spaces, serialization, etc.) or change the implementation of the VM API (generator, Storage, Node, etc.) when needed.