4 ms·
It involved a fair amount of research and there were many technical challenges. Maintaining backwards compatibility in terms of language features and single-thr
by sadiq 5y ago
It involved a fair amount of research and there were many technical challenges. Maintaining backwards compatibility in terms of language features and single-threaded performance puts constraints around what you can implement. Also from my personal experience, debugging segfaults in parallel programs that could be caused by GC bugs is a painstaking process.
We've written a couple of papers detailing the internals and the trade-offs involved: https://arxiv.org/abs/2004.11663 https://arxiv.org/abs/2004.11663 (for parallelism) and https://arxiv.org/abs/2104.00250 https://arxiv.org/abs/2104.00250 (for effects)
Added to that is the complexity of tracking a moving target. Multicore had to be rebased through 12 releases of OCaml, which in itself was a non-trivial amount of work.