aboutsummaryrefslogtreecommitdiffhomepage
path: root/library
diff options
context:
space:
mode:
Diffstat (limited to 'library')
-rw-r--r--library/library.ml8
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