The week that was - 2025 w20
This week consisted of a lot of spinning plates, which is unfortunate because it’s not something I’m very good at!
Ryan and I spent some time investigating being able
to get opam packages to emerge via pipx
(and therefore, uvx
). Idea here is
to be able to consume an OCaml application from a Python ecosystem (i.e. the
fact it’s OCaml is probably unimportant to the person invoking it). Requires
quite a few layers on the Python infra side - we’re meeting in the middle using
scikit-build-core on the Python
side to give us the ability to invoke stuff on the OCaml-side. Pulls in some of
our cross-ecosystem encoding work from last year as well. More to go, and also
interested to nudge this from the other direction - opening up the possibility
of consuming OCaml applications this way becomes even more interesting if the
OCaml ecosystem also encourages them to be packaged this way (i.e.
opam-repository is mostly libraries, not applications…).
This all sparked off more discussions with Patrick and Ryan on the formalism in our package management paper, but Ryan wrote that up!
The Relocatable OCaml spinning plate got some updates, too: ocaml/ocaml#13728 got merged, which allowed ocaml/ocaml#14014 to be updated to remove it. That PR had some helpful review feedback and, while poking another of the branches, found a minor bug in it! While trying to put a coherent explanation for the second of the “big” PRs, found a(nother) design flaw. There’s a bigger post to come about the history of this change, but fortunately as with the previous issues, it’s more that the “complicated” approach needed in one place is also needed in another. I’ve found the bugs in this branch have all meant resurrected previous commits which I’d thought were overcomplicating things, rather than actually having to write new stuff. Anyhow, having fixed that, I managed to consolidate an essay at dra27/ocaml#162 and the gory details of what should now be the final approach for this are in the “Technical background” fold on that PR! At some point in the coming weeks I’ll try to add the history behind getting to that here, if only so I don’t forget it!
Incidentally, there’s a plea gone out from my core maintainer colleagues for anyone who’d like to take a go at reviewing these things to have a look (see this Discuss thread.
More whiteboarding with Jon figuring out some build- related ideas behind his JavaScript toplevels (odoc-notebook). The whole thing becomes cross-compilation on speed, but particularly interesting that we might be able to get some OxCaml demos going with it, while temporarily keeping the main parts of the compilation still in OCaml, avoiding problems with patches that aren’t yet available for OxCaml support (means you’d be able to show OxCaml code, with some under-the-hood work in the equivalent OCaml compiler doing the rendering heavy lifting for now).
In the meantime, also putting together some ideas for an EoI for RSMF, which is all a bit new (the process is new; the ideas are fundmentally not, as that’s the point of the call!). Getting that fully tied up will be a chunk of next week, along with getting various other things in line in order to be incognito the week following.