I have some nightly CI builds that suddenly started failing (with no code changes!) and the only difference is seq 0.3 being installed instead of 0.2.2, so this seems to be the culprit. The regression is a runtime crash:
Fatal error: exception File "src/select_version.ml", line 11, characters 11-17: Assertion failed
which looks like the case here:
I'm confused by what Select_version is still for, it doesn't seem to be used for any build time version selection anymore, but it's still there, so I guess it gets implicitly linked into the library and unintentionally runs some code every time?
The regression didn't show in opam-repository CI because the latest released version of my package (goblint-cil) doesn't yet have a transitive dependency on seq, but the development version does (via yojson 2.0.0).
Also, I guess my use of -linkall is what reveals the issue (by running Select_version). Default linking would exclude the unused module.
I have some nightly CI builds that suddenly started failing (with no code changes!) and the only difference is seq 0.3 being installed instead of 0.2.2, so this seems to be the culprit. The regression is a runtime crash:
which looks like the case here:
seq/src/select_version.ml
Line 11 in 7b95791
I'm confused by what
Select_versionis still for, it doesn't seem to be used for any build time version selection anymore, but it's still there, so I guess it gets implicitly linked into the library and unintentionally runs some code every time?The regression didn't show in opam-repository CI because the latest released version of my package (goblint-cil) doesn't yet have a transitive dependency on seq, but the development version does (via yojson 2.0.0).
Also, I guess my use of
-linkallis what reveals the issue (by runningSelect_version). Default linking would exclude the unused module.