Dear all,
Here is a preliminary specification for the VM module, which controls
the multicore execution in the new multicore version of Mozart 2 that
Benoit Daloze is implementing.
Please post comments on this. One property we expect from VM is that
it should be possible to implement Erlang-style failure handling, in
which each virtual machine behaves like a kind of gigantic Erlang process.
We think that VM identifiers should be integers, and not names. This
will simplify the practical management of virtual machines (creation,
termination). Since all virtual machines are in the same OS process,
they will anyway be collaborative and not competitive, so the secrecy
provided by names is not necessary.
Memory management will be done independently for each virtual machine
and will be similar to the original memory management of Mozart 1, where
the space can expand and contract according to the size of the active
memory after each GC. Garbage collection parameters are explained here:
http://mozart.github.io/mozart-v1/doc-1.4.0/system/node65.html#section.property.gc
Peter