[ANN] Oxidizing OCaml — an update

Hi everyone! Last year, we made a series of blogposts describing our plans to introduce Rust-like type system features to OCaml (see here). Now, we are sharing updates on everything we’ve done since last year for ICFP 2024. Please read our blogpost and check out our compiler extensions at our GitHub!

17 Likes

Awesome news all around about the ocaml compiler modifications !

I couldn’t find the ocaml-lsp-server / merlin at the custom ocaml repository ( opam-repository/packages at with-extensions · janestreet/opam-repository · GitHub ) though …

It’s kinda difficult to do programming nowadays without an LSP. Could you add that to the repository ? It would be much more fun to try things out with that working … (I would assume that you need to have a custom merlin / ocaml-lsp-server also for all the new syntax due to ocaml compiler extensions )

Congrats for exploring these topics! However, from a software development (and teaching) point of view, programming with these approaches looks dauntingly complex.
I was wondering whether a whole-program optimization approach couldn’t bring the same (or a large part of) the intended benefits, without the added burden for programmers? Is there a written comparison somewhere?

2 Likes

was wondering whether a whole-program optimization approach couldn’t bring the same (or a large part of) the intended benefits, without the added burden for programmers

Interesting point. What are the typical benefits of whole program optimization in general over large code bases – would LTO in C/C++ be considered “whole program optimization” in the sense you mean it ? If so, what are the benefits we see in C/C++ with LTO ? 5% ? 10% ? more ? That would be a good reference point for those wanting to do whole program optimization in OCaml.

I was thinking of earlier compilation passes, like MLton does (although “oxidized” OCaml is not only about efficiency but also about added safety).