Weeknotes 2026-w38 [weekly-2026-w38]
- September 18, 2026
- Patrick Ferris
Msh log 2026-38 [msh-log-2026-w38]
- September 18, 2026
- Patrick Ferris
After running some Dockerfile analysis last week, I have focused on formalising some operational semantics for the core POSIX-shell inspired language for a "mergeable shell".
This work borrows from Smoosh, but extends the semantics to include reasoning about namespaces, filesystems and effects.
For instance, here are two inference rules for field splitting and parameter substitution. Here, \sigma tracks the shell state, \phi is the filesystem and \tau tracks the side effects.
There are lots of interesting examples of this, like assignment during parameter substitution (e.g. ${FOO:=BAR}) or the side effects that take place during program name resolution.
OCaml Maintenance [ocaml-maintenance-2026-w38]
- September 18, 2026
- Patrick Ferris
A mixture of work in ppxlib and geocaml.
Ppxlib migration woes
- September 18, 2026
- Patrick Ferris
Ppxlib continues to prove itself as a tricky library to maintain. This week, a report came in from David about package_type attributes being dropped. These are new attributes that are attached to package expressions which simply did not have them before.
The solution here was to store these attributes on parent nodes (e.g. the core_type a Ptyp_pack might be a part of) when migrating from 5.4 to 5.3 alongside a ppxlib.migration attribute to distinguish them from the core_type's attributes. When migrating back up we then re-split the attributes.
David also landed a new syntax feature arriving in OCaml 5.6 that adds upstream support for expression "holes", something Merlin supports. It is now possible to replace any OCaml expression with _, for example, let x = 1 + _.
This needed explicit ppxlib support which, thankfully, was relatively straightforward as hole expressions do not have a lot of associated metadata or arguments.
Our benchmarking infrastructure is also back on its feet.
Thanks to Nathan for all the reviewing.
rtree.0.3.0 release [rtree-0-3-0]
- September 18, 2026
- Patrick Ferris
I cut a release of ocaml-rtree that removes the repr dependency. See the relevant discuss post.
This was a feature that Michael had asked for when building laserver. I took the time to open a PR to laserver to use rtree.0.3.0 which does simplify the code.
I wanted to ensure the library was still working, so I grabbed some of the LAS data for Lough Neagh, provided by OpenDataNI for 2017. After converting it to cloud-optimised point cloud (COPC) data via pdal (yes, two different "cloud" meanings) I managed to view the south-east portion of Lough Neagh.
This is overlooking the Lough Neagh Discovery Centre and Croaghan Island.
Outreachy
- September 18, 2026
- Patrick Ferris
After securing funding for this Outreachy round, I submitted an ocaml-tiff project. A year ago, we had an intern successfully add write support to the library.
This time, I hope to continue building out the library with an intern who is interested in learning OCaml, functional programming and geospatial data formats! One subgoal of the internship will be to create a tiffinfo-like command line tool that is distributed as part of the library. I also hope to add more compression algorithm support and iron out some API kinks.