diff options
Diffstat (limited to 'library/states.ml')
-rw-r--r-- | library/states.ml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/library/states.ml b/library/states.ml new file mode 100644 index 000000000..2e198e36f --- /dev/null +++ b/library/states.ml @@ -0,0 +1,22 @@ + +(* $Id$ *) + +open System +open Lib +open Summary + +type state = Lib.frozen * Summary.frozen + +let get_state () = + (Lib.freeze(), freeze_summaries()) + +let set_state (fl,fs) = + Lib.unfreeze fl; + unfreeze_summaries fs + +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 s)) |