let author = “Rudi Grinberg”

Most recent posts:

  • 05 August - Extension Points - Ppxlib & Dune Update

    In a previous post, I’ve described what are the latest technologies used to construct and package ppx rewriters. In just eight months a couple important changes have occurred that require ppx authors to react. In this post, I’d like to describe these changes and demonstrate how to update your ppx rewriters to keep up with them.

  • 02 August - What’s coming in Dune 1.1.0?

    Now that 1.0.0 has been released, the team took a break from dune affairs. However, now we’re back to work, and although we’re working at a more relaxed pace, we still have some interesting features in store. Most of these were already planned for quite a while, but simply had to be delayed to get 1.0.0 out of the door. Hopefully this post convinces the reader that it was worth the wait.

  • 12 June - Configurator Reborn

    With dune 1.0 around the corner, there’s a pressing need to create some hype raise awareness of the upcoming features. In this post, I’d like to talk about one such transition: the move to dune’s own configuration kit called configurator. Since the library itself is still fairly new, I’ll first introduce configurator itself and show what problems it attempts to solve.

  • 23 January - jbuilder (dune) Beta 17

    The 17th beta of jbuilder represents a few months of development. While that’s a bit longer than our usual release cycle for these betas, we do have a larger release than usual. So I’ve decided to write up a little post in addition to just posting the usual change log. I’ll talk about some important new features, and some less important ones as well. A couple of things that I’ll omit are bug fixes and experimental features as this blog post is already long.

  • 04 December - Extension Points - 3 Years Later

    UPDATE: 2017-12-05 smondet pointed out that the extension doesn’t work quite as the original. ppx_getenv should fetch the environment variable at compile time rather than at runtime. The extension and the snippets in this post have been updated to reflect this.

  • 03 November - Creating Static Linux Binaries in OCaml

    Creating truly static binaries for Linux like golang is a capability that is occasionally useful. I’ve seen questions about it on IRC a few times, and I’ve personally found this approach is particularly useful when deploying to environments where installing libraries isn’t easy, such as AWS Lambda. Unfortunately for me, the approach that I will explain in this article wasn’t as approachable. So I’ve prepared a quick tutorial on how to easily create a static binary in OCaml and test it.

  • 25 July - Monadic Generators in OCaml

    Generators are one of those features that have been heavily popularized by today’s fashionable languages such as Python and ES6. So it’s not the first time I’ve encountered programmers who are curious about OCaml bring up with questions along the lines of:

  • 14 May - Cohttp Packaging Breakage Ahead

    As a follow up to my previous post regarding optional dependencies, I’d like to expand on how my advice will be followed in practice in the context of the cohttp library.

  • 22 April - Optional Dependencies Considered Harmful

    This will be a short PSA to opam package maintainers to avoid spurious optional dependencies. At this point, I think this is all relatively common knowledge. But open source maintainers are as a rule busy people, and without much encouragement, they end up dragging their feet. Therefore I hope this post can be a useful reminder of the negative effects of optional dependencies and what can be done to avoid them.

  • 06 February - Searching the load-path

    Here’s another tip for taming your Emacs config. In particular, how to search the huge body of elisp that is present with most Emacs installs - the load-path. While the load-path is a very important collection of directories, searching it isn’t as easy and accessible as it should be. As usual, Emacs compensates with plugins: