Skip to content

Instructions for rebasing to remove the effects syntax

Tom Kelly edited this page Jun 25, 2021 · 3 revisions

We currently develop on a 4.xx+domains+effects branch that includes the effects syntax. This has the benefit that we get testsuite and CI coverage for the effect syntax features.

To release the 4.xx+domains variant, we need to rebase the effects syntax removal patch and re-bootstrap the compiler. One way to do this is:

  • checkout the latest 4.xx+domains+effects that you plan to base your 4.xx+domains branch on
  • build this compiler fresh: make distclean && configure && make
  • now checkout the 4.xx+domains branch: git checkout 4.xx+domains
  • now rebase the 4.xx+domains branch onto 4.xx+domains+effects: git rebase 4.xx+domains+effects
  • this rebase can & is likely to conflict on the bootstrap files (boot/ocamlc, etc). You should take the 4.xx+domains+effects versions of these files (git checkout 4.xx+domains+effects -- boot/ocaml{c,lex})
  • resolve any other remaining conflicts in the code with the removal of effects that might have occurred
  • now follow the standard bootstrapping procedure: make coreall && make bootstrap
  • add the bootstrap files and complete the git rebase conflict resolution
  • you now have an up-to-date 4.xx+domains branch

Hopefully one day there will be an automated process which can help keep this branch up to date with 4.xx+domains+effects