aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cWarnings.ml21
-rw-r--r--lib/dune2
-rw-r--r--lib/loc.ml2
-rw-r--r--lib/loc.mli3
-rw-r--r--lib/system.ml2
5 files changed, 16 insertions, 14 deletions
diff --git a/lib/cWarnings.ml b/lib/cWarnings.ml
index 0cf989e494..f199e2e608 100644
--- a/lib/cWarnings.ml
+++ b/lib/cWarnings.ml
@@ -8,8 +8,6 @@
(* * (see LICENSE file for the text of the license) *)
(************************************************************************)
-open Pp
-
type status =
Disabled | Enabled | AsError
@@ -158,6 +156,10 @@ let set_flags s =
warning flags string, because the warning being created might have been set
already. *)
let create ~name ~category ?(default=Enabled) pp =
+ let pp x = let open Pp in
+ pp x ++ spc () ++ str "[" ++ str name ++ str "," ++
+ str category ++ str "]"
+ in
Hashtbl.replace warnings name { default; category; status = default };
add_warning_in_category ~name ~category;
if default <> Disabled then
@@ -166,13 +168,8 @@ let create ~name ~category ?(default=Enabled) pp =
new warning is now known. *)
set_flags !flags;
fun ?loc x ->
- let w = Hashtbl.find warnings name in
- match w.status with
- | Disabled -> ()
- | AsError -> CErrors.user_err ?loc (pp x)
- | Enabled ->
- let msg =
- pp x ++ spc () ++ str "[" ++ str name ++ str "," ++
- str category ++ str "]"
- in
- Feedback.msg_warning ?loc msg
+ let w = Hashtbl.find warnings name in
+ match w.status with
+ | Disabled -> ()
+ | AsError -> CErrors.user_err ?loc (pp x)
+ | Enabled -> Feedback.msg_warning ?loc (pp x)
diff --git a/lib/dune b/lib/dune
index 8c6ef06e99..83783f9b5c 100644
--- a/lib/dune
+++ b/lib/dune
@@ -4,4 +4,4 @@
(public_name coq.lib)
(wrapped false)
(modules_without_implementation xml_datatype)
- (libraries dynlink coq.clib coq.config))
+ (libraries coq.clib coq.config))
diff --git a/lib/loc.ml b/lib/loc.ml
index 66b7a7da70..6bcdcc0341 100644
--- a/lib/loc.ml
+++ b/lib/loc.ml
@@ -29,6 +29,8 @@ let create fname line_nb bol_pos bp ep = {
line_nb_last = line_nb; bol_pos_last = bol_pos; bp = bp; ep = ep;
}
+let initial source = create source 1 0 0 0
+
let make_loc (bp, ep) = {
fname = ToplevelInput; line_nb = -1; bol_pos = 0; line_nb_last = -1; bol_pos_last = 0;
bp = bp; ep = ep;
diff --git a/lib/loc.mli b/lib/loc.mli
index 23df1ebd9a..1eb3cc49e8 100644
--- a/lib/loc.mli
+++ b/lib/loc.mli
@@ -32,6 +32,9 @@ val create : source -> int -> int -> int -> int -> t
(** Create a location from a filename, a line number, a position of the
beginning of the line, a start and end position *)
+val initial : source -> t
+(** Create a location corresponding to the beginning of the given source *)
+
val unloc : t -> int * int
(** Return the start and end position of a location *)
diff --git a/lib/system.ml b/lib/system.ml
index fd6579dd69..c408061852 100644
--- a/lib/system.ml
+++ b/lib/system.ml
@@ -304,7 +304,7 @@ let with_time ~batch ~header f x =
raise e
(* We use argv.[0] as we don't want to resolve symlinks *)
-let get_toplevel_path ?(byte=not Dynlink.is_native) top =
+let get_toplevel_path ?(byte=Sys.(backend_type = Bytecode)) top =
let open Filename in
let dir = if String.equal (basename Sys.argv.(0)) Sys.argv.(0)
then "" else dirname Sys.argv.(0) ^ dir_sep in