aboutsummaryrefslogtreecommitdiffhomepage
path: root/library
diff options
context:
space:
mode:
authorGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2014-01-04 10:32:22 +0100
committerGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2014-01-05 17:13:58 +0100
commit24ca86389b32e42199db8faadd41918e162b8d46 (patch)
tree099e8eae42dfc98eb8ac480f385b2ffec120471b /library
parentf8970ec2140662274bb10f0eb8d3ca72924835c7 (diff)
STM: modules do not prevent proofs from being ASync
Diffstat (limited to 'library')
-rw-r--r--library/lib.ml15
-rw-r--r--library/summary.mli1
2 files changed, 13 insertions, 3 deletions
diff --git a/library/lib.ml b/library/lib.ml
index 6bbf8ef47..eef8171cc 100644
--- a/library/lib.ml
+++ b/library/lib.ml
@@ -516,10 +516,19 @@ let freeze ~marshallable =
match marshallable with
| `Shallow ->
(* TASSI: we should do something more sensible here *)
- let _, initial_prefix =
- CList.split_when (function _, CompilingLibrary _ -> true | _ -> false)
+ let lib_stk =
+ CList.map_filter (function
+ | _, Leaf _ -> None
+ | n, (CompilingLibrary _ as x) -> Some (n,x)
+ | n, OpenedModule (it,e,op,_) ->
+ Some(n,OpenedModule(it,e,op,Summary.empty_frozen))
+ | n, ClosedModule _ -> Some (n,ClosedModule [])
+ | n, OpenedSection (op, _) ->
+ Some(n,OpenedSection(op,Summary.empty_frozen))
+ | n, ClosedSection _ -> Some (n,ClosedSection [])
+ | _, FrozenState _ -> None)
!lib_stk in
- !comp_name, initial_prefix
+ !comp_name, lib_stk
| _ ->
!comp_name, !lib_stk
diff --git a/library/summary.mli b/library/summary.mli
index f6a9c6951..1ce09e12c 100644
--- a/library/summary.mli
+++ b/library/summary.mli
@@ -57,6 +57,7 @@ val nop : unit -> unit
type frozen
+val empty_frozen : frozen
val freeze_summaries : marshallable:marshallable -> frozen
val unfreeze_summaries : frozen -> unit
val init_summaries : unit -> unit