The Inaugural #1
Hey there,
Thanks for starting this journey with me!
I want to use this space to share the work I do over on OSS land and distill much of the information I've consumed in the past week. Let's get to it!
OCaml Land
- OCaml 5.0.0-beta2 has been tagged this week!
- I've been particularly excited about the upcoming release of OCaml 5 and the introduction of its effect system:
- Preliminary Effects manual chapter
- Jeremy Yallop keeps an up-to-date effects bibliography for interested readers
- I've been particularly excited about the upcoming release of OCaml 5 and the introduction of its effect system:
- Speaking of OCaml 5,
Eio
(for Effects-based I/O) is a library I've been very interested in:- Eio uses the new OCaml 5 effect system to provide direct-style concurrency (i.e. no I/O monad).
- I've already converted my HTTP client/server library Piaf to Eio, and the example usage looks pretty nice (in my biased opinion)!
- Petter A. Urkedal announced the first version of Confero, an OCaml collation library implementing the Unicode Collation Algorithm.
- I'm excited for more higher level Unicode libraries in OCaml; the basic primitives already exist, both in the compiler and the library ecosystem (e.g. search for the "uu" prefix in the OPAM package registry). Daniel Bünzli has done some really impressive work in this space.
"What did you get done this week?"
- I've been focusing most of my time working on Melange:
- Melange has come a long way since I first announced it last year
- In case you've missed it, I recently announced that the OCaml Software Foundation has committed €10,000 to the development of Melange.
- I made the near-term Melange roadmap public.
- I'm always happy to get feedback about Melange. I'd love for you to try it out.
- Some highlights:
- I tagged the 0.3.2 release.
- I spent some time onboarding new contributors and bashing some bugs. Here's everything we shipped in the Melange repo last week
- We (myself & Javi, under Rudi's invaluable guidance) have been working on integrating new Melange support into Dune.
- I finally found some time to review a pull request fixing an annoying bug in the Reason codebase related to syntax extensions (
let%extension ...
, etc)
Random
- Dave put together a really impressive demo of a fullstack application sharing OCaml / Reason code between the frontend (using Melange!) and the backend
- He also wrote a Twitter thread about it
- If you can't tell, Dave and Javi have effectively reimplemented React server-side rendering in OCaml (native)!
- Reminds me of my Clojure days when I did the same for Om Next
- While implementing some improvements to the Melange rules in Dune, I ran into a limitation related to how Dune loads rules in source directories.
- We didn't find anything that wasn't previously known. In fact, there's a pending design proposal that aims to fix this exact limitation (and even improve it further).
- I recommend reading the RFC, which provides a very good introduction to how Dune loads rules to build your projects.
- Rudi pushed an initial improvement to the build engine that works around the limitation we found. Quite the interesting read.
- We didn't find anything that wasn't previously known. In fact, there's a pending design proposal that aims to fix this exact limitation (and even improve it further).
- Ken Wheeler is still excited about ReasonML
- but let's not [expletive] fight about it :-)
- Last week I set a screen time limit of 1h for Twitter on my phone, and I routed twitter.com to
localhost
on my computer.- I can't overstate how good this has been for my productivity. I mean, I even started a newsletter!
- This week I learned about the gnarly Guinea Worm disease from a blog post by Our World in Data
- Learning about how we're close to erradicating just the 2nd (ever!) disease in the world (the first being Smallpox) increases my everlasting optimism about the planet we all share.
Don't miss what's next. Subscribe to Last Week in anmonteiro's OSS: