3 ms·
It's great to hear that Opam is making progress! I just wished that it would be more deeply integrated with Dune. A package manager that doesn't build is not ve
by baby 5y ago
It's great to hear that Opam is making progress! I just wished that it would be more deeply integrated with Dune. A package manager that doesn't build is not very useful to be honest. Currently the only way to not have to care about switches and be able to clearly specify dependencies is to use the esy package manager[1] (which had lock files a while ago). With their work on Rust I can only hope they get inspired by Cargo.
It's also interesting to see that they're working a lot with Rust. I've seen a lot of OCaml people switching to Rust or getting more and more into Rust, I'm wondering what this means for OCaml.
[1]: https://github.com/esy/esy/ https://github.com/esy/esy/
- mseri 5y agoThey do, they are developing drom[1], a wrapper over opam and dune to provide a cargo-like experience. [1]: https://ocamlpro.github.io/drom/ https://ocamlpro.github.io/drom/ What’s wrong with opam? Since version 2 it also supports local switches and locking, and the opam repository has become much more stable than in the past. Full disclosure: I am biased here, since I am one of the opam-repository maintainers and I am quite happy with opam itself.
- andreypopp 5y ago> What’s wrong with opam? I'd say the main problem is that local switches and lock files are still not the default mode of operation. Also opam lacks a global cache of built packages which esy provides (esy's cache is modelled after Nix package manager). So every new opam local switch effectively compiles everything from scratch. Though, as I understand this aspect is going to be addressed by dune at some point (though esy caches not just OCaml built artefacts but also C/C++). (Full disclosure: I'm biased as I'm one of the original developers of esy)
- baby 5y agoI’ve tried using drom and it’s not really close to what Cargo provides. Instead it builds a lot of boilerplate config.
- mro_name 5y agobeing able to pipe dune through opam would be cool – write human stuff to stderr and opam input to stdout. And then run e.g. $ dune runtest | opam dune and opam would have to agree on how to talk with each other, however.