diff options
author | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2013-04-22 14:39:07 +0000 |
---|---|---|
committer | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2013-04-22 14:39:07 +0000 |
commit | c9917c210da30521673e843b626359f4a1051e74 (patch) | |
tree | f45a15f42956159752d6192ec7980081383330f9 /library/library.ml | |
parent | 14fdc212d664df129e2f718ea8b8eb87927a8ee8 (diff) |
code simplifications concerning Summary
- Most of the time, the table registered via Summary.declare_summary
is just a single reference. A new function Summary.ref now allows
to both declare this ref and register it to summary in one shot.
- Clarifications concerning the role of [init_function].
For statically registered tables that don't need a special initializer,
just do nothing there (see the new Summary.nop function).
Beware: now that Summary exports a function named "ref", any code that
do an "open Summary" will probably fail to compile.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16441 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/library.ml')
-rw-r--r-- | library/library.ml | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/library/library.ml b/library/library.ml index 7c34a62d0..e1ef4515d 100644 --- a/library/library.ml +++ b/library/library.ml @@ -45,40 +45,16 @@ module LibraryMap = Map.Make(LibraryOrdered) module LibraryFilenameMap = Map.Make(LibraryOrdered) (* This is a map from names to loaded libraries *) -let libraries_table = ref LibraryMap.empty +let libraries_table = Summary.ref LibraryMap.empty ~name:"LIBRARY" (* This is the map of loaded libraries filename *) (* (not synchronized so as not to be caught in the states on disk) *) let libraries_filename_table = ref LibraryFilenameMap.empty (* These are the _ordered_ sets of loaded, imported and exported libraries *) -let libraries_loaded_list = ref [] -let libraries_imports_list = ref [] -let libraries_exports_list = ref [] - -let freeze () = - !libraries_table, - !libraries_loaded_list, - !libraries_imports_list, - !libraries_exports_list - -let unfreeze (mt,mo,mi,me) = - libraries_table := mt; - libraries_loaded_list := mo; - libraries_imports_list := mi; - libraries_exports_list := me - -let init () = - libraries_table := LibraryMap.empty; - libraries_loaded_list := []; - libraries_imports_list := []; - libraries_exports_list := [] - -let _ = - Summary.declare_summary "MODULES" - { Summary.freeze_function = freeze; - Summary.unfreeze_function = unfreeze; - Summary.init_function = init } +let libraries_loaded_list = Summary.ref [] ~name:"LIBRARY-LOAD" +let libraries_imports_list = Summary.ref [] ~name:"LIBRARY-IMPORT" +let libraries_exports_list = Summary.ref [] ~name:"LIBRARY-EXPORT" (* various requests to the tables *) |