Open RyanGlScott opened 4 months ago
Looking at https://github.com/GaloisInc/crucible/commit/c1f38003465fd263fe2bb229adf123ee05197e80 I see that in the second replacement, the original return was (poppedCollector frm, ...)
and the updated version returns (collectPoppedGoals frm, ...)
. I have not looked at the difference between poppedCollector
and collectPoppedGoals
, but that may be one avenue to pursue in resolving this.
Ah, I had completely overlooked that. Indeed, that feels like a far more plausible explanation than what I came up with.
While working on https://github.com/GaloisInc/saw-script/pull/2037, I discovered that the changes in commit c1f38003465fd263fe2bb229adf123ee05197e80 (part of https://github.com/GaloisInc/crucible/pull/1169) caused a regression in the
llvm_verify_fixpoint_x86
proof forsha512_data_block_order
, which is part of the AWS-LC proofs that are run in SAW's CI. Here is the specific error:This is pretty surprising, given that the changes in c1f38003465fd263fe2bb229adf123ee05197e80 are almost all pure refactoring-related changes. I don't fully understand what caused the proof to change, but my current guess is that
popFrameUnchecked
now always completes anatomicModifyIORef'
transaction rather than panicking halfway through the transaction, which may wreak havoc with exception-handling code somewhere.For now, I am going to revert #1169. That being said, we should strive to better understand what is going on here.