aboutsummaryrefslogtreecommitdiffhomepage
path: root/library/states.ml
diff options
context:
space:
mode:
Diffstat (limited to 'library/states.ml')
-rw-r--r--library/states.ml22
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))