aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-02-05 17:46:07 +0100
committerEmilio Jesus Gallego Arias2020-02-13 21:12:03 +0100
commit9193769161e1f06b371eed99dfe9e90fec9a14a6 (patch)
treee16e5f60ce6a88656ccd802d232cde6171be927d /tools
parenteb83c142eb33de18e3bfdd7c32ecfb797a640c38 (diff)
[build] Consolidate stdlib's .v files under a single directory.
Currently, `.v` under the `Coq.` prefix are found in both `theories` and `plugins`. Usually these two directories are merged by special loadpath code that allows double-binding of the prefix. This adds some complexity to the build and loadpath system; and in particular, it prevents from handling the `Coq.*` prefix in the simple, `-R theories Coq` standard way. We thus move all `.v` files to theories, leaving `plugins` as an OCaml-only directory, and modify accordingly the loadpath / build infrastructure. Note that in general `plugins/foo/Foo.v` was not self-contained, in the sense that it depended on files in `theories` and files in `theories` depended on it; moreover, Coq saw all these files as belonging to the same namespace so it didn't really care where they lived. This could also imply a performance gain as we now effectively traverse less directories when locating a library. See also discussion in #10003
Diffstat (limited to 'tools')
-rw-r--r--tools/coq_dune.ml9
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/coq_dune.ml b/tools/coq_dune.ml
index f62947ec67..96fb9710c7 100644
--- a/tools/coq_dune.ml
+++ b/tools/coq_dune.ml
@@ -213,7 +213,7 @@ let record_dune d ff =
if Sys.file_exists sd && Sys.is_directory sd then
let out = open_out (bpath [sd;"dune"]) in
let fmt = formatter_of_out_channel out in
- if List.nth d 0 = "plugins" || List.nth d 0 = "user-contrib" then
+ if Sys.file_exists (bpath [sd; "plugin_base.dune"]) then
fprintf fmt "(include plugin_base.dune)@\n";
out_install fmt d ff;
List.iter (pp_dep d fmt) ff;
@@ -285,8 +285,11 @@ let exec_ifile f =
begin try
let ic = open_in in_file in
(try f ic
- with _ -> eprintf "Error: exec_ifile@\n%!"; close_in ic)
- with _ -> eprintf "Error: cannot open input file %s@\n%!" in_file
+ with exn ->
+ eprintf "Error: exec_ifile @[%s@]@\n%!" (Printexc.to_string exn);
+ close_in ic)
+ with _ ->
+ eprintf "Error: cannot open input file %s@\n%!" in_file
end
| _ -> eprintf "Error: wrong number of arguments@\n%!"; exit 1