aboutsummaryrefslogtreecommitdiffhomepage
path: root/toplevel
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2017-05-09 09:06:37 +0200
committerGravatar Maxime Dénès <mail@maximedenes.fr>2017-05-09 09:06:37 +0200
commit98b6ccc4ffa2378e333961f9a59eb7ab0d174ee5 (patch)
treee076a7888249368f09a8e7ee77d644c3cf745f4b /toplevel
parentdc1bae5ff63ca71e80bf0ee19a643b5cb5b284b9 (diff)
parentcf0e030f3aebecb316852fc4a152fb212f9e7ef5 (diff)
Merge PR#615: coqtop -help: don't die if coqlib can't be found
Diffstat (limited to 'toplevel')
-rw-r--r--toplevel/coqtop.ml10
-rw-r--r--toplevel/usage.ml1
2 files changed, 10 insertions, 1 deletions
diff --git a/toplevel/coqtop.ml b/toplevel/coqtop.ml
index 5687418f2..8f50bfb3d 100644
--- a/toplevel/coqtop.ml
+++ b/toplevel/coqtop.ml
@@ -292,9 +292,17 @@ let init_gc () =
We no longer use [Arg.parse], in order to use share [Usage.print_usage]
between coqtop and coqc. *)
+let usage_no_coqlib = CWarnings.create ~name:"usage-no-coqlib" ~category:"filesystem"
+ (fun () -> Pp.str "cannot guess a path for Coq libraries; dynaminally loaded flags will not be mentioned")
+
+exception NoCoqLib
let usage () =
- Envars.set_coqlib ~fail:CErrors.error;
+ begin
+ try
+ Envars.set_coqlib ~fail:(fun x -> raise NoCoqLib);
init_load_path ();
+ with NoCoqLib -> usage_no_coqlib ()
+ end;
if !batch_mode then Usage.print_usage_coqc ()
else begin
Mltop.load_ml_objects_raw_rex
diff --git a/toplevel/usage.ml b/toplevel/usage.ml
index e457ca61d..e29048035 100644
--- a/toplevel/usage.ml
+++ b/toplevel/usage.ml
@@ -30,6 +30,7 @@ let print_usage_channel co command =
\n -R dir coqdir recursively map physical dir to logical coqdir\
\n -Q dir coqdir map physical dir to logical coqdir\
\n -top coqdir set the toplevel name to be coqdir instead of Top\
+\n -coqlib dir set the coq standard library directory\
\n -exclude-dir f exclude subdirectories named f for option -R\
\n\
\n -noinit start without loading the Init library\