diff options
author | 2003-05-19 09:03:39 +0000 | |
---|---|---|
committer | 2003-05-19 09:03:39 +0000 | |
commit | de2dee71b9c2ed3f001ca825766ae600955a31d4 (patch) | |
tree | 0ba3f4a56b1a3a85cf2838e2edcb18949e6d46d4 /library/library.ml | |
parent | a22e22d22583c455e675542bc2b23a70225b6e6b (diff) |
but Require dans une Section
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4028 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/library.ml')
-rw-r--r-- | library/library.ml | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/library/library.ml b/library/library.ml index 701fbcd97..29fcb61c6 100644 --- a/library/library.ml +++ b/library/library.ml @@ -142,29 +142,23 @@ let libraries_loaded_list = ref [] let libraries_imports_list = ref [] let libraries_exports_list = ref [] -(* cache for loaded libraries *) -let compunit_cache = ref CompilingLibraryMap.empty - let freeze () = !libraries_table, !libraries_loaded_list, !libraries_imports_list, - !libraries_exports_list, - !compunit_cache + !libraries_exports_list -let unfreeze (mt,mo,mi,me,cu) = +let unfreeze (mt,mo,mi,me) = libraries_table := mt; libraries_loaded_list := mo; libraries_imports_list := mi; - libraries_exports_list := me; - compunit_cache := cu + libraries_exports_list := me let init () = libraries_table := CompilingLibraryMap.empty; libraries_loaded_list := []; libraries_imports_list := []; - libraries_exports_list := []; - compunit_cache := CompilingLibraryMap.empty + libraries_exports_list := [] let _ = Summary.declare_summary "MODULES" @@ -269,6 +263,17 @@ let vo_magic_number = 0704 (* V7.4 *) let (raw_extern_library, raw_intern_library) = System.raw_extern_intern vo_magic_number ".vo" +(* cache for loaded libraries *) +let compunit_cache = ref CompilingLibraryMap.empty + +let _ = + Summary.declare_summary "MODULES-CACHE" + { Summary.freeze_function = (fun () -> !compunit_cache); + Summary.unfreeze_function = (fun cu -> compunit_cache := cu); + Summary.init_function = + (fun () -> compunit_cache := CompilingLibraryMap.empty); + Summary.survive_section = true } + (*s [load_library s] loads the library [s] from the disk, and [find_library s] returns the library of name [s], loading it if necessary. The boolean [doexp] specifies if we open the libraries which are declared |