(for maybe the second to last time)
(for maybe the second to last time)
Congratulations on the merge, and thank you for all the work that went into it!
It is hard or even counter-productive to try to fit them on a roadmap.
The multicore project is(was?) a bit unusual from the point of view of OCaml development since it is a massive engineering effort with a focused team.
Nevertheless, I hope that we continue and extend the "OCaml compiler bimonthly" news to give more information about the ongoing work on the compiler.
Maybe a before and after, but one that focus on expressiveness, what you were not able to say/express in OCaml before, that is now* possible
not just speed or performance
*s/not/now
https://github.com/ocaml-multicore/effects-examples has links to tutorials and examples for how effects can be used.
There's also some slides from KC's talk on effect handlers https://kcsrk.info/slides/handlers_edinburgh.pdf and materials from the CUFP 17 tutorial: https://github.com/ocamllabs/ocaml-effects-tutorial
https://gopiandcode.uk/logs/log-bye-bye-monads-algebraic-eff... this is also a great introduction
We've written a couple of papers detailing the internals and the trade-offs involved: https://arxiv.org/abs/2004.11663 (for parallelism) and 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.
> (for maybe the second to last time)
How come?
There's still a lot of work to be done before 5.0 is released, it's just it'll happen through the usual PR and review process rather than a separate one.
Whether it's beneficial or not is unclear though.
This course text is also great, I don't know if it's listed at ocaml.org/learn or not: