aboutsummaryrefslogtreecommitdiffhomepage
path: root/library/states.ml
diff options
context:
space:
mode:
authorGravatar filliatr <filliatr@85f007b7-540e-0410-9357-904b9bb8a0f7>1999-09-10 14:00:56 +0000
committerGravatar filliatr <filliatr@85f007b7-540e-0410-9357-904b9bb8a0f7>1999-09-10 14:00:56 +0000
commit2c6002d1fbf08ee68914227e3a4267cb38ff8b81 (patch)
tree83caeab0f53e7b4fc72ffb1637a0696f0231a2ed /library/states.ml
parent540bd2b46fd848fbf6d1f8c2804580d3afed98a6 (diff)
modules System, Lib et States
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@71 85f007b7-540e-0410-9357-904b9bb8a0f7
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))