Last Week in anmonteiro's OSS

Subscribe
Archives
April 8, 2023

#5 - Melange + Dune, cross-compilation, streaming AWS Lambda payloads

Hey there,

Welcome to another issue! For the past few months, we've been working on integrating Melange in Dune. We recently reached a pretty significant milestone, which Javi shared on Twitter.

https://twitter.com/javierwchavarri/status/1644095370111098881

There's still lots of work to do: we're currently working towards a v1 release of Melange, which I'll write more about soon. In the meantime, having such a big codebase build with Melange provides much appreciated validation!

Thanks for reading this issue, and happy hacking! :-)

OCaml Land

  • Daniel Bünzli announced cmarkit, a new, 0-dependency library that implements the CommonMark specification
    • At the same time, he shared a proof of concept for writing OCaml documentation in markdown, using cmarkit in odoc
  • I made a diagram illustrating the order of ppxlib preprocessing phases.
  • I've been interested in cross-compiling OCaml code for a little while. In fact, this is what prompted my experimentations with the nix-ocaml overlays.
    • I recently worked on some cross-compilation fixes that I'll highlight here:
      • install cross-compiled packages when -x TOOLCHAIN is present
      • find PPX dependencies in the host context
        • PPX executables need to run in the host architecture when cross-compiling. Now dune finds their dependencies in the correct context.
      • resolve ppx_runtime_libraries in the target context
        • conversely, ppx_runtime_libraries need to be resolved in the target architecture
      • respect $PKG_CONFIG
        • if set, Dune now respects $PKG_CONFIG rather than trying to find a pkg-config binary in $PATH. In cross-compilation scenarios, this binary will be called e.g. aarch64-unknown-linux-gnu-pkg-config.
      • take host findlib.conf into account
        • Dune now respects the host findlib.conf configuration when resolving libraries and finding binaries. Previously it would only look at the toolchain's [tolchain].conf file.

Random

  • AWS Lambda has announced support for response payload streaming, something which has been at the top of feature requests.
    • I haven't tested yet, but it looks like it won't be too hard to support it in aws-lambda-ocaml-runtime
  • Meta released Buck2, the successor to their Buck build system
    • One of Buck2's main authors is a co-author on Build systems a la carte
      • It sounds like Andrey Mokhov went on to design Dune, while Neil Mitchell worked on Buck2
Don't miss what's next. Subscribe to Last Week in anmonteiro's OSS:
GitHub X LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.