Florian's OCaml compiler weekly, 20 June 2023
- June 20, 2023
This series of blog posts aims to give a short weekly glimpse into my (Florian Angeletti) daily work on the OCaml compiler. This quiet week was focused on finishing ongoing tasks and discussing future collaborations.
A few finished tasks
Last week was a quiet week, in term of new activities. However, I was able to push few of my ongoing tasks over the finish line:
Semantic tag for inline code in the compiler
I have at last finalized this pull request that introduces an uniform quoting style for inline code inside all the messages across the compilers. With more than 300 hundred source files (fortunately mostly tests) changed, this is the kind of Pull Request that one is glad to see merged. At the very least, because this means no more lengthy rebasing.
A type for symbol identifiers in the bytecode
Working with Sébastien Hinderer, I have completed a final review on his work on switching to a narrower type for global symbols in the bytecode backend. His PR has been merged on last Friday. Hopefully, it shall make further work in this area of the compiler simpler by making it clearer when global symbols are compilation unit names, or when they might be predefined exceptions.
ppxlib 0.30 ready to be
In the beginning of the week, I have spent some time with the ppxlib team to check that the new version of ppxlib (with the compatibility fix for the second alpha release of OCaml 5.1.0) is ready.
Once this new version of ppxlib is out-of-the-door, I will restart my survey of the state of the opam ecosystem before the release of the first beta for OCaml 5.1.0
Discussing future collaborations with Tarides
In parallel, I have been discussing with the benchmarking team and odoc team at Tarides on collaborating on two subjects in the medium term future:
Continuous benchmarks for the compiler
A common subject of interest with Tarides benchmarking team is to try to set us a pipeline for continuously monitoring the performance of the OCaml compiler.
Having such continuous monitoring would bring two major advantages from my perspective:
monitoring long term trends: a 0.1% weekly slowdown of the compiler speed might not be worth worrying. One year of accumulated 0.1% weekly slowdowns is worrying.
catching performance accident early: conversely, a significant unexpected drop or increase in a Pull Request is a worrying concern that we want to detect as early to possible to investigate (and possibly) the cause of this change
Better integration of the OCaml manual with ocaml.org
Currently, the integration of the OCaml manual and API documentation
within the ocaml.org is very barebone:
The main ocaml.org
site links towards the old
v2.ocaml.org
website where the manual is still hosted
through redirection.
This setup was supposed to be temporary, but I have not yet found the
time to improve this integration. I hope to fix this in time for the
release of OCaml 5.1.0 in July. In particular, this would be a good time
for transitioning the ocaml.org
hosted API reference to the
odoc version which has been dormant hidden with the compiler repository
for few years now.