Open MartyO256 opened 1 year ago
During the latest attempt at publishing Beluga on the opam
repository, some Linux distributions also failed this test case with OCaml 4.14.
What I think is happening here is that different environments and later versions of OCaml yield more memory-optimized compiled code. This means that a stack overflow exception is not being raised soon enough during the proof search, so the test case times out.
Stepping through the evaluation of the test case reveals that we run into a near infinite loop that repeatedly calls the following function.
The
t/harpoon/nats_and_bools_tps_auto_invert.input
test case using theauto-invert-solve
tactic takes ~80 seconds to succeed when Harpoon is compiled using OCaml 5.0.0. That test case is reported to fail with the upgraded OCaml compiler because theTEST.sh
script has a 10 seconds time limit for each test case.With OCaml 4.14.1, that same test case succeeds in ~0.07 seconds. This seems to suggest that some optimizations done during the compilation of the
Logic
module with OCaml 4.14.1 are not performed in OCaml 5.0.0.Load the signature
t/harpoon/nats_and_bools_tps_auto_invert.input
in Harpoon and input the commands int/harpoon/nats_and_bools_tps_auto_invert.input
. The degraded performance happens specifically when inputtingauto-invert-solve
in the following Harpoon states: