8000 ocaml: boot from ocaml-5.5.2 as published in bootstrap gen-9 (camlboot ladder), not the tarball's boot/ocamlc by bryan-minimal · Pull Request #1212 · gominimal/pkgs · GitHub
[go: up one dir, main page]

Skip to content

ocaml: boot from ocaml-5.5.2 as published in bootstrap gen-9 (camlboot ladder), not the tarball's boot/ocamlc - #1212

Closed
bryan-minimal wants to merge 2 commits into
mainfrom
bryan/ocaml-gen9
Closed

bryan-minimal wants to merge 2 commits into
mainfrom
bryan/ocaml-gen9

Conversation

@bryan-minimal
Copy link
Copy Markdown
Member

ocaml (5.5.2) no longer boots from the tarball's shipped boot/ocamlc bytecode. It boots from ocaml-5.5.2 as published in gen-9 of gominimal/bootstrap, the top of a source-only ladder with no OCaml binary as input.

What gen-9's OCaml is

camlboot (OCaml 4.07's compiler, interpreted under a Guile built from C) → ocaml-4.07.1 → 4.08.1 → 4.09.0 → 4.10.2 → 4.11.2 → 4.12.1 → 4.13.1 → 4.14.3 → 5.0.0 → 5.1.1 → 5.2.1 → 5.3.0 → 5.4.0 → 5.5.2. Every tarball's shipped boot compiler is deleted; each rung is built by the previous one, with the new runtime accepting the old exec magic for the boot round, removed primitives shimmed, and a boot-compat overlay for syntax the older compiler lacks, all undone before a pristine world.opt (gominimal/bootstrap tools/gen-ocaml-ladder.py). Built on two machines per arch (amd64: an AMD c4d and an Intel c3; arm64: two Axions): camlboot, 4.07.1 and 4.11.2 upward identical on both; 4.08.1–4.10.2 differ in their bytecode tools and .cmti files and are recorded as unreproduced, not published. Objects live in gs://minimal-bootstrap/gen-9/sha256/<sha>/… (public read, create-only), listed in generations/gen-9/manifest.json.

Changed here

  • ocaml-5.5.2: new prebuilt spec on both arches (layout usr/lib/ocaml-5.5.2), runtime deps glibc and toolchain like ocaml itself.
  • ocaml: takes ocaml-5.5.2 as a build dep; build.sh deletes boot/ocamlc and boot/ocamllex, copies the gen-9 compiler's ocamlc.byte and ocamllex.byte there, asserts bytecode, then runs the stock world.opt. Same release, so nothing else changes.

Cost

ocaml's spec hash moves on both arches, so the OCaml stack (dune, ocamlfind, …) rebuilds once. CI is red until gen-9 is published.

🤖 Generated with Claude Code

…t ladder), not the tarball's boot/ocamlc

A new prebuilt package ocaml-5.5.2 on both arches; ocaml/build.sh deletes the
shipped bytecode and copies the gen-9 compiler's ocamlc.byte and ocamllex.byte
into boot/ before the stock world.opt.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai
coderabbitai Bot commented Oct 31, 2026
Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@bryan-minimal
Copy link
Copy Markdown
Member Author

Superseded by #1242, which merges this branch and repoints every bootstrap pin at gen-11 of gominimal/bootstrap. Closing to stop the duplicate world rebuilds; the branch stays.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0