diff options
author | 2002-10-29 08:05:04 +0000 | |
---|---|---|
committer | 2002-10-29 08:05:04 +0000 | |
commit | 8031045106d0205136ac1080f0c019961ea4605d (patch) | |
tree | 4dffc378e7551c54260012019a08d411eac53fb0 /library | |
parent | 9a3babd8029b04d2888ee0983fa07aedbad770b7 (diff) |
Préservation de la cohérence du cache en cas d'erreur au chargement
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3189 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library')
-rw-r--r-- | library/library.ml | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/library/library.ml b/library/library.ml index c7f3ba433..a653ccc74 100644 --- a/library/library.ml +++ b/library/library.ml @@ -362,8 +362,12 @@ let rec intern_library (dir, f) = pr_dirpath m.library_name ++ spc () ++ str "and not library" ++ spc() ++ pr_dirpath dir); compunit_cache := CompilingModulemap.add dir m !compunit_cache; - List.iter (intern_mandatory_library dir) m.library_deps; - m + try + List.iter (intern_mandatory_library dir) m.library_deps; + m + with e -> + compunit_cache := CompilingModulemap.remove dir !compunit_cache; + raise e and intern_mandatory_library caller (dir,d) = let m = intern_absolute_library_from dir in |