3 ms·
Something I rarely see addressed: why was multicore ocaml blocked on having full-fledged effects? Couldn't multicore have landed years ago, and then gradually i
by nextaccountic 5y ago
Something I rarely see addressed: why was multicore ocaml blocked on having full-fledged effects? Couldn't multicore have landed years ago, and then gradually insert effects in the language?
- sadiq 5y agoMulticore upstreaming wasn't blocked on having fully-fledged effects. If you look at the diff between multicore 5.00 and trunk OCaml, the changes required for fibers is pretty small relative to the multicore GC and making the rest of the runtime thread-safe. The original plan was to upstream only the multicore GC. This was sped up on the suggestion of the core developers and now 5.0 will bring parallelism and effect handlers (though without syntactic support for the latter). https://discuss.ocaml.org/t/multicore-ocaml-september-2021-effect-handlers-will-be-in-ocaml-5-0/8554 https://discuss.ocaml.org/t/multicore-ocaml-september-2021-e... has a good explanation of effect handlers, syntax and what will be available in 5.0.
- solmag 5y agoSeems to me this multicore journey was quite a barn burner; might as well have gone all the way to linear types as your GC.
- pjmlp 5y agoI guess to avoid nuking the ecosystem Python 3 style.
- LeonidasXIV 5y agoWhich also didn't add multicore support, it still has a GIL. But it has been an extremely valuable lesson for other systems, so there's tha.