François Fonteyn edited this page May 14, 2014 · 16 revisions

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.

Application user

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.

VM integrator

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.

VM developer

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.

VM guru

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.