From 80aba8d52c650ef8e4ada694c20bf12c15849694 Mon Sep 17 00:00:00 2001 From: gareuselesinge Date: Thu, 8 Aug 2013 18:52:47 +0000 Subject: enhance marshallable option for freeze (minor TODO in safe_typing) It can be: `Yes Full data, in a state that can be marshalled `No Full data, good for Undo only `Shallow Partial data, marshallable, good for slave processes git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16682 85f007b7-540e-0410-9357-904b9bb8a0f7 --- library/global.ml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'library/global.ml') diff --git a/library/global.ml b/library/global.ml index a0528a624..22b69e4f2 100644 --- a/library/global.ml +++ b/library/global.ml @@ -27,10 +27,15 @@ let global_env = ref empty_environment let join_safe_environment () = global_env := Safe_typing.join_safe_environment !global_env +let prune_safe_environment env = Safe_typing.prune_safe_environment env +(* XXX TODO pass args so that these functions can stop at the current + * file boundaries *) let () = Summary.declare_summary "Global environment" - { Summary.freeze_function = (fun b -> - if b then join_safe_environment (); !global_env); + { Summary.freeze_function = (function + | `Yes -> join_safe_environment (); !global_env + | `No -> !global_env + | `Shallow -> prune_safe_environment !global_env); unfreeze_function = (fun fr -> global_env := fr); init_function = (fun () -> global_env := empty_environment) } -- cgit v1.2.3