Homogeneous builds with OBuilder and OCaml
summary
OBuilder provides sandboxed, cross-platform OCaml builds used in production by checks.ocaml.io, OCaml-CI and opam-repo-ci, supporting Linux, macOS, Windows and BSDs and multiple architectures (x86_64, ppc, s390, RISC‑V). Linux uses runC plus Btrfs subvolumes or ZFS snapshots; macOS uses per-build user accounts with a fuse shim for Homebrew and an rsync-based store fallback when ZFS was unstable; Windows runs prebuilt Windows container images. Implementation uncovers real bugs (Lwt, Stdlib, GNU tar) and serves about eight client integrations.
AI-written summary · about
chapters (10)
- 0:00OBuilder and OCaml builds
- 1:06Homogeneous build requirements
- 2:55OBuilder caching
- 4:19OCluster overview
- 7:28Linux with runC and btrfs
- 9:56MacOS sandboxing
- 13:50Windows with Docker
- 16:37Windows bugs
- 17:18Future work
- 19:06Conclusion
related talks
26mBuck2 for OCaml Users & Developers
43mOCaml at LexiFi
23mPolyglot Builds with Bazel
22mState of the OCaml Platform 2023
11mPerformant Bazel Builds for Web Monorepos at Scale
25mContainer Development Client for Reproducible Artifacts
31mBazel: Do We Really Need Another Build Tool?
16mHermetic builds with Bazel
