diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2006-08-31 18:04:26 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2006-08-31 18:04:26 +0000 |
commit | 5ea203149ab11b4e837b5a6c95510f67a9e1d784 (patch) | |
tree | d47c32334227b86c1267fd4984628aac3c1f0158 /library/states.ml | |
parent | bb7d9d0faa9232e6e7fd77680d96f925296e3921 (diff) |
Un peu de delta-réduction...
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9100 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/states.ml')
-rw-r--r-- | library/states.ml | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/library/states.ml b/library/states.ml index 2a34c8753..dcb4111ed 100644 --- a/library/states.ml +++ b/library/states.ml @@ -12,10 +12,10 @@ open System type state = Lib.frozen * Summary.frozen -let get_state () = +let freeze () = (Lib.freeze(), Summary.freeze_summaries()) -let set_state (fl,fs) = +let unfreeze (fl,fs) = Lib.unfreeze fl; Summary.unfreeze_summaries fs @@ -23,17 +23,14 @@ let state_magic_number = 19764 let (extern_state,intern_state) = let (raw_extern, raw_intern) = extern_intern state_magic_number ".coq" in - (fun s -> raw_extern s (get_state())), - (fun s -> set_state (raw_intern (Library.get_load_paths ()) s)) + (fun s -> raw_extern s (freeze())), + (fun s -> unfreeze (raw_intern (Library.get_load_paths ()) s)) (* Rollback. *) -let freeze = get_state -let unfreeze = set_state - let with_heavy_rollback f x = - let st = get_state () in + let st = freeze () in try f x with reraise -> - (set_state st; raise reraise) + (unfreeze st; raise reraise) |