(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* raw_extern s (freeze ~marshallable:`Yes)), (fun s -> unfreeze (with_magic_number_check raw_intern s); Library.overwrite_library_filenames s) (* Rollback. *) let with_state_protection f x = let st = freeze ~marshallable:`No in try let a = f x in unfreeze st; a with reraise -> let reraise = Errors.push reraise in (unfreeze st; iraise reraise) let with_state_protection_on_exception = Future.transactify