A concurrent and shared-memory parallel extension of the OCaml compiler.
Multicore OCaml cleanly separates abstractions for concurrency (overlapped execution) from parallelism (simultaneous execution). Concurrency is expressed through effect handlers and parallelism through domains. Much of the work in supporting shared memory parallelism is the development of a mostly-concurrent, generational, mark-and-sweep collector that strikes a balance between single-threaded performance and feature backwards compatibility, and multicore scalability.
See the wiki for more resources.
- Parallel Minor GC (default) -- A variant that performs stop-the-world parallel
minor collection. The branch is
- Concurrent Minor GC -- A variant that garbage collects each domain's minor
heap concurrently. The branch is
- Parallel Minor GC + No effect syntax -- This branch does not have syntax
extension for effects (but includes the compiler and runtime system changes).
The branch is
no-effect-syntax. This branch is useful to install ppx libraries.
The above variants are kept in sync.
The original README.adoc file has been moved to README.stock.adoc.