Adapting the OCaml Ecosystem for Multicore OCaml
watch.ocaml.org
watch.ocaml.org
Edit: the benchmark fails to build
Next two lines are httpaf_effects and httpaf_lwt.
Bottom two lines are nethttp_go and cohttp_lwt_unix.
All in order from top to bottom.
If there are suggestions to make the Go and Rust versions, please feel free to tell us how in the issue tracker.
In short there should be very little performance difference against stock.
As KC has linked in a sibling comment there's a project going to explore using effects to write high performance IO libraries and that has some early benchmarks.
That's the thing that is missing in discussions around many languages. You can't just add multicore or actors to a language post-factum. Because by the time you get around to doing it everything in your language, from standard lib to third-party packages, has already been written with no concept of multi-anything.
And still, time and again, languages are being designed with these concerns as an afterthought.
Is that still happening? My impression is that any languages designed since multicore became common have thought very hard about their approach. The problem we have is that a lot of our languages have been around a while. Even Python is 30 years old at this point!
Erlang here is the miracle to me. Its programming model was designed for concurrency on a single core, but when SMP processers appeared all it needed was a VM change that was completely transparent to the programs above it and suddenly all Erlang programs were extremely parallel!