Question about Compatibility of Jane Street Libraries (v0.17) with OCaml 4.14

Hello everyone,

I have a couple of questions regarding Jane Street’s Core, Async, and related libraries, specifically version 0.17. I noticed that these libraries are constrained to work with OCaml version 5.1.0 and above.

  1. Are these libraries unsafe or unstable to use with OCaml 4.14, or are there specific features and improvements in OCaml 5.1.0 that these libraries rely on?
  2. Has Jane Street internally moved completely to OCaml 5? If so, how has the transition been, and what benefits have been observed?

Any insights from the Jane Street developers or others with experience in this area would be greatly appreciated.

Thank you!

1 Like

Hi! The restriction to OCaml 5.1+ on the v0.17 release mostly reflects our internal testing being limited to OCaml 5.1. I believe our libraries should be usable on OCaml 4.14 after some code tweaks due to standard library changes.

We are in the process of moving to OCaml 5 internally, and are migrating our systems to use the OCaml 5 runtime. However, we have not started using domains or effect handlers yet. We are currently working on extensions to the OCaml language to provide guarantees like data race freedom for multithreaded programs: see our blog post. We are also working on designs for a safe concurrency and parallelism library using those extensions, and we’ll open-source it once implemented :slightly_smiling_face:

8 Likes

Thanks for this response. We have identified some concerning regressions when moving to OCaml 5 that, as of now, prevent us from using it.

Due to the prevalence and usefulness of those libraries it would be great if they could stay backward compatible for as long as needed…

Thanks for the hard work!

1 Like