5 ms·
Base[1] is a good candidate for an OCaml standard library. It's got tons of functionality, results in binaries with small footprints, is cross-platform, and has
by seliopou 9y ago
Base[1] is a good candidate for an OCaml standard library. It's got tons of functionality, results in binaries with small footprints, is cross-platform, and has a fairly stable API. It's also code that has been and continues to be battle tested every day in production systems at Jane Street. I'm biased, as I'm one of the maintainers, but trust me it's good, it's good.
[1]: https://github.com/janestreet/base https://github.com/janestreet/base
- AceJohnny2 9y agoHow does Base compare to Core? https://github.com/janestreet/core https://github.com/janestreet/core
- 0xCMP 9y agoSeems like Core depends on Base (https://github.com/janestreet/core/blob/master/core.opam https://github.com/janestreet/core/blob/master/core.opam)
- seliopou 9y agoCore depends on Base. The parts where they differ include: more data structure, and bindings for system calls and other functionality available from libc. There's also core_kernel, which is core but without the libc support.
- yminsky 9y agoWe also just released improved docs for Base. Still more to do, but much better than before: https://ocaml.janestreet.com/ocaml-core/latest/doc/base/ https://ocaml.janestreet.com/ocaml-core/latest/doc/base/
- c-cube 9y agoI'm not convinced that Base will solve our problems. It's not, afaik, more portable, more lightweight, more performant, or more feature-full than [containers](https://github.com/c-cube/ocaml-containers https://github.com/c-cube/ocaml-containers) (which has reached 1.0 and also does a bit of IO and Unix, as a stdlib extension). In addition to that it's not compatible with programs that use the stdlib right now, so the fragmentation will stay for a long time (unlike for build systems where you "only" have to change the build scripts, not the code itself). (Of course I'm biased too, I wrote containers ^^)