aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-02-09 23:33:48 +0100
committerGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-02-09 23:52:19 +0100
commit250dc1f50e17240df158978159f408fe9231f410 (patch)
treee0a1d97659cfd6a66ef9507d5a5b56895f5c300b
parent47e43e229ab02a4dedc2405fed3960a4bf476b58 (diff)
[nativecomp] Remove ad-hoc handling of Dynlink exception.
Instead, we properly register a printer for such exception and update the code.
-rw-r--r--kernel/nativelib.ml5
-rw-r--r--vernac/explainErr.ml1
2 files changed, 3 insertions, 3 deletions
diff --git a/kernel/nativelib.ml b/kernel/nativelib.ml
index 4e7d6b218..1e35f6c03 100644
--- a/kernel/nativelib.ml
+++ b/kernel/nativelib.ml
@@ -157,9 +157,8 @@ let call_linker ?(fatal=true) prefix f upds =
register_native_file prefix
with Dynlink.Error e as exn ->
let exn = CErrors.push exn in
- let msg = "Dynlink error, " ^ Dynlink.error_message e in
- if fatal then (Feedback.msg_error (Pp.str msg); iraise exn)
- else if !Flags.debug then Feedback.msg_debug (Pp.str msg));
+ if fatal then iraise exn
+ else if !Flags.debug then Feedback.msg_debug CErrors.(iprint exn));
match upds with Some upds -> update_locations upds | _ -> ()
let link_library ~prefix ~dirname ~basename =
diff --git a/vernac/explainErr.ml b/vernac/explainErr.ml
index d328ad0cf..fc3495796 100644
--- a/vernac/explainErr.ml
+++ b/vernac/explainErr.ml
@@ -32,6 +32,7 @@ let explain_exn_default = function
| Sys_error msg -> hov 0 (str "System error: " ++ guill msg)
| Out_of_memory -> hov 0 (str "Out of memory.")
| Stack_overflow -> hov 0 (str "Stack overflow.")
+ | Dynlink.Error e -> hov 0 (str "Dynlink error: " ++ str Dynlink.(error_message e))
| Timeout -> hov 0 (str "Timeout!")
| Sys.Break -> hov 0 (fnl () ++ str "User interrupt.")
(* Exceptions with pre-evaluated error messages *)