Creating OCaml Platform

Everyone knows there is a Haskell Platform and Stack. And Rust is working with a similar concepts for a few years already. Maybe it makes sense to start working towards this goal in OCamlverse as well? The relevant thing is Duniverse by @avsm, but the platform concept should go further, helping to download the bundle at once, instead of installing hundreds of packages manually. I see there is actually a site page for the OCaml Platform, but it is basically empty.

It even makes sense to include Visual Studio Code with OCaml plugins installed.

2 Likes

As I understand it, is not there yet. See this talk by Anil Madhavapeddy (@avsm)

1 Like

Stack was actually created because some people didn’t like the rigidity of Haskell Platform–a slow-moving set of packages that might conflict with versions required by your projects. I like the idea in the Rust post, using metapackages to get the best of both worlds. That should be doable with opam packages and local switches etc.

1 Like

This sentence manages to contradict itself from the start to the end, since the Duniverse exists to download a bundle at once instead of installing hundreds of packages manually :slight_smile:

There have been many developers working hard on the OCaml Platform for some years. A prerequisite to any sensible binary release is of course having the right tools to actually distribute: this is what has lead to the past few years of focussed resurgence of various build (Dune), packaging (opam), documentation (odoc), editing (merlin, ocamlformat, ocp-indent), testing (alcotest, afl/bun) and publishing (dune-release, opam-publish) tools. Those are all rapidly maturing and being adopted widely among our community, and so the Platform release will be straightforward given all the developments we’ve been incrementally releasing.

An update from 2018 describing the status is at https://speakerdeck.com/avsm/the-ocaml-platform-1-dot-0-2018, and I’ll be assembling another update in time for the OCaml Workshop this August in Berlin. Contributions welcome from anyone who wants to help summarise this into the OCaml.org page.

My understanding is that everyone knows that Haskell Platform is dead and is widely considered a failure. I think we can learn from that and don’t try to repeat its mistakes.

Also, I don’t see the point of what you want to accomplish here? Why would I want to, instead of installing the relevant dependencies, install the whole OCamlverse instead? That seems to me a recipe for disaster since I might want a never version of packages or an older version and then the use of such a fixed set of packages is rather low.

I already have a kind of “install the world” thing on my machines, it is called TeXLive, released about once a year and takes up multiple gigabytes of space just so I can compile a tiny .tex file into a .pdf file. Though LaTeX has the advantage that there is less compatibility issues with packages so usually “just use the newest release” works pretty well. Whereas e.g. the whole PPX ecosystem in OCaml is changing a lot every year.

1 Like

It lowers the entry barrier for the newbies. Not the current users.

By giving them an unusual environment that none of the existing users use. Any error with this and the only other users of this are other newcomers who presumably can’t help very much.

I think the OCaml world is split enough between opam and esy, there is no need to split it even further.

1 Like