Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sexp
- My Thoughts on OCaml
- The YAML Document from Hell
-
Better logging for OCaml + Async
There's a tool sexp that Jane Street uses internally to slice and dice sexp logs, but, yes, I get that there aren't logging services out there that support sexps. They should, though, as sexps have unique advantages over JSON. They tend to be more human-readable too. Great blog post overall!
base
-
My Thoughts on OCaml
I don’t know OCaml, or really any language that would help me fully understand the code, but my exposure to OCaml is this stuff, and it looks pretty clean to me. https://github.com/janestreet/base
Of course, I haven’t read every file, so maybe I got lucky with my random sampling.
- Delimiter-First Code
-
My adventures in ML Land
Real World OCaml uses Base to replace OCaml's stdlib. I am not very fond of Base since it deviates from the standard convention of passing functions before values in HOC. To fix the ordering, one has to use labels:
-
I'm typecasting a lot, help
As far as standard library usage goes, I highly recommend using Base. Instead of implementing list_of_string, you could use Base.String.to_list. Even if you don't end up using Base, you can get the same thing from the built in standard library by doing String.to_seq then List.of_seq.
What are some alternatives?
nestedtextto - CLI to convert between NestedText and JSON, YAML, or TOML, with explicit type casting
ocaml-containers - A lightweight, modular standard library extension, string library, and interfaces to various libraries (unix, threads, etc.) BSD license.
sexplib - Automated S-expression conversion
utop - Universal toplevel for OCaml
json5 - JSON5 — JSON for Humans
opam-tools - opam plugin to initialise a local development environment for an OCaml project
hobbes - A language and an embedded JIT compiler
einops - Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and others)
sxpyr - Parse s-expressions, edn, and a variety of lisp dialects.
ppx_deriving - Type-driven code generation for OCaml
clj-kondo - Static analyzer and linter for Clojure code that sparks joy
hjson - Hjson, a user interface for JSON