I’m just starting out (no serious projects yet), so my current refresh procedure is opam update
followed by opam upgrade -y --update--invariant $(opam list -s --roots)
. Said roots are currently core
, merlin
, utop
, ocamlformat
, ocaml
– I removed ocaml-base-compiler
from the default because it conflicted with ocaml
every time (it gets pulled in anyway, I figured). Anyways, today I encountered a problem I did not encounter yesterday:
[ERROR] Package conflict!
* No agreement on the version of ocaml:
- ocaml >= 5.3.0
- merlin >= 4.14-502~preview → ocaml < 5.3
* Missing dependency:
- merlin >= 4.14-502~preview → ocaml < 5.3 → ocaml-base-compiler < 3.07+1 |
ocaml-system < 3.07+1 | ocaml-variants < 3.8~
unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch
!= "ppc64"'
unmet availability conditions: 'sys-ocaml-version = "3.07"'
no matching version
* Missing dependency:
- merlin >= 4.14-502~preview → ocaml < 5.3 → ocaml-base-compiler = 3.07+1 |
ocaml-system = 3.07+1 | ocaml-variants < 3.8~
unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch
!= "ppc64"'
unmet availability conditions: 'sys-ocaml-version = "3.07+1"'
no matching version
And it continues for multiple screens.
Near as I can figure, the issue is that opam
wants to install a preview version of Merlin for some reason, which looking into it expects ocaml
version exactly 5.2, whereas ocaml
wants to upgrade to 5.3 (which I wasn’t aware was even out). Then it exhaustively tries every compiler version compatible with 5.3, none of which compile for my system (why is that even shown?).
So, my questions: why is there so much output? How do I stop opam
installing previews? Is there really a 5.3 out already or is that another preview? Why is this happening now when I heard there was a PR two years ago that should have fixed it?
I’m on an M3 MacBook Air running macOS Sonoma. My OPAM is from Brew.