Skip to content
Multicore OCaml
OCaml C Makefile Emacs Lisp Assembly Standard ML Other
Branch: parallel_minor…
Clone or download

Latest commit

Latest commit 5f81de2 Mar 26, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
asmcomp Move safepoint insertion to just after liveness computation Feb 29, 2020
asmrun Optimised asm caml_modify, for the minor heap fast-path. Feb 28, 2020
boot Added Domain.Sync.poll to poll for interrupts Feb 23, 2020
bytecomp Added Domain.Sync.poll to poll for interrupts Feb 23, 2020
byterun add comment about why this is where it is Mar 25, 2020
compilerlibs
config Remove a lot of redundant .gitignore files. Apr 18, 2018
debugger Remove a lot of redundant .gitignore files. Apr 18, 2018
driver Remove profile slop space. Aug 5, 2018
emacs Remove a lot of redundant .gitignore files. Apr 18, 2018
experimental Remove a lot of redundant .gitignore files. Apr 18, 2018
flexdll @ 3453457 Promote to 4.04.2 => bootstrap succeeded Mar 9, 2018
lex Remove a lot of redundant .gitignore files. Apr 18, 2018
man toplevel: remove plugin option in toplevel Sep 29, 2017
manual Add CODE_CUSTOM_FIXED for fixed-size custom serializers. Oct 4, 2018
middle_end Bootstrap for 4.06.0 updates Mar 28, 2018
ocamldoc Remove a lot of redundant .gitignore files. Apr 18, 2018
ocamltest make alldepend Nov 19, 2018
otherlibs
parsing Remove a lot of redundant .gitignore files. Apr 18, 2018
stdlib Added Domain.Sync.poll to poll for interrupts Feb 23, 2020
testsuite Added Domain.Sync.poll to poll for interrupts Feb 23, 2020
tools Prototype of capi revert Jan 20, 2020
toplevel Add an optional digest parameter to Meta.reify_bytecode. Aug 13, 2018
typing Resolves #204 by making the continuation variable inaccessible in a w… Jul 27, 2018
utils Lazy implementtion uses forcing tag Feb 8, 2020
yacc Remove a lot of redundant .gitignore files. Apr 18, 2018
.depend Polling pass Feb 13, 2020
.gitattributes Tell GitHub not to show diffs for autogenerated files Oct 5, 2018
.gitignore ignore vscode Jan 10, 2020
.gitmodules Promote to 4.04.2 => bootstrap succeeded Mar 9, 2018
.mailmap Revert "Merge pull request #1377 from Octachron/ocamldep_nested_inclu… Oct 19, 2017
.merlin ocamltest: the test driver for the OCaml compiler Sep 18, 2017
.ocp-indent Adding an ocp-indent customization file for the project. Sep 11, 2013
.travis.yml Run entire Travis script in one command to detect errors. Nov 16, 2018
CONTRIBUTING.md Various changes for tools/check-typo (#1287) Oct 25, 2017
Changes last commit before tagging 4.06.1 Feb 16, 2018
HACKING.adoc Various changes for tools/check-typo (#1287) Oct 25, 2017
INSTALL.adoc Move configuration header files from the config to the byterun/caml d… Apr 26, 2017
LICENSE Promote to 4.04.2 => bootstrap succeeded Mar 9, 2018
Makefile Polling pass Feb 13, 2020
Makefile.nt Move the content of Makefile.shared to Makefile Feb 15, 2017
Makefile.tools Promote to 4.04.2 => bootstrap succeeded Mar 9, 2018
README.md Update README.md Mar 26, 2020
README.stock.adoc New README file with multicore specific information. Mar 26, 2020
README.win32.adoc Update FlexDLL to 0.37 Oct 26, 2017
VERSION Merge 4.06.1 Apr 6, 2018
appveyor.yml Merge pull request #1449 from dra27/appveyor-torture Oct 27, 2017
appveyor_build.cmd Merge pull request #1449 from dra27/appveyor-torture Oct 27, 2017
appveyor_build.sh Merge pull request #1449 from dra27/appveyor-torture Oct 27, 2017
configure Stub implementation of C11 atomics for GCC 4.8 support. Oct 5, 2018
opam Edit opam build instructions Jan 25, 2019

README.md

Multicore OCaml

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.

Variants

  • Parallel Minor GC (default) -- A variant that performs stop-the-world parallel minor collection. The branch is parallel_minor_gc.
  • Concurrent Minor GC -- A variant that garbage collects each domain's minor heap concurrently. The branch is master.
  • 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.

Notes

The original README.adoc file has been moved to README.stock.adoc.

You can’t perform that action at this time.