summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorAlain Frisch <alain@frisch.fr>2018-11-15 09:51:35 +0100
committerGitHub <noreply@github.com>2018-11-15 09:51:35 +0100
commit2e5b9d1ef1710c2b7addc39a0905b095f12f070a (patch)
treeac6fe5fc8b4b856dbd8d2a165aaa4078d9faf23b /driver
parent63add5711f9d8d382b2e40c0b71afa994ba3dabe (diff)
downloadocaml-2e5b9d1ef1710c2b7addc39a0905b095f12f070a.tar.gz
"Alerts" as a generalization of "deprecated" (#1804)
Diffstat (limited to 'driver')
-rw-r--r--driver/compenv.ml2
-rw-r--r--driver/compile_common.ml4
-rw-r--r--driver/main.ml1
-rw-r--r--driver/main_args.ml17
-rw-r--r--driver/main_args.mli1
-rw-r--r--driver/optmain.ml1
6 files changed, 24 insertions, 2 deletions
diff --git a/driver/compenv.ml b/driver/compenv.ml
index 7c8110ee98..b6f6606c29 100644
--- a/driver/compenv.ml
+++ b/driver/compenv.ml
@@ -253,6 +253,8 @@ let read_one_param ppf position name v =
| "w" -> Warnings.parse_options false v
(* warn-errors *)
| "wwe" -> Warnings.parse_options false v
+ (* alerts *)
+ | "alert" -> Warnings.parse_alert_option v
(* inlining *)
| "inline" ->
diff --git a/driver/compile_common.ml b/driver/compile_common.ml
index 3d74d217dc..29aeeab56e 100644
--- a/driver/compile_common.ml
+++ b/driver/compile_common.ml
@@ -66,8 +66,8 @@ let typecheck_intf info ast =
let emit_signature info ast tsg =
let sg =
- let deprecated = Builtin_attributes.deprecated_of_sig ast in
- Env.save_signature ~deprecated tsg.Typedtree.sig_type
+ let alerts = Builtin_attributes.alerts_of_sig ast in
+ Env.save_signature ~alerts tsg.Typedtree.sig_type
info.modulename (info.outputprefix ^ ".cmi")
in
Typemod.save_signature info.modulename tsg
diff --git a/driver/main.ml b/driver/main.ml
index f974bec0a3..a3adc7317e 100644
--- a/driver/main.ml
+++ b/driver/main.ml
@@ -26,6 +26,7 @@ module Options = Main_args.Make_bytecomp_options (struct
let unset r () = r := false
let _a = set make_archive
let _absname = set Clflags.absname
+ let _alert = Warnings.parse_alert_option
let _annot = set annotations
let _binannot = set binary_annotations
let _c = set compile_only
diff --git a/driver/main_args.ml b/driver/main_args.ml
index 616ed43e37..456850eb63 100644
--- a/driver/main_args.ml
+++ b/driver/main_args.ml
@@ -17,6 +17,17 @@ let mk_a f =
"-a", Arg.Unit f, " Build a library"
;;
+let mk_alert f =
+ "-alert", Arg.String f,
+ Printf.sprintf
+ "<list> Enable or disable alerts according to <list>:\n\
+ \ +<alertname> enable alert <alertname>\n\
+ \ -<alertname> disable alert <alertname>\n\
+ \ ++<alertname> treat <alertname> as fatal error\n\
+ \ --<alertname> treat <alertname> as non-fatal\n\
+ \ @<alertname> enable <alertname> and treat it as fatal error\n\
+ \ <alertname> can be 'all' to refer to all alert names";;
+
let mk_absname f =
"-absname", Arg.Unit f, " Show absolute filenames in error messages"
;;
@@ -832,6 +843,7 @@ let mk__ f =
module type Common_options = sig
val _absname : unit -> unit
+ val _alert : string -> unit
val _I : string -> unit
val _labels : unit -> unit
val _alias_deps : unit -> unit
@@ -1066,6 +1078,7 @@ module Make_bytecomp_options (F : Bytecomp_options) =
struct
let list = [
mk_a F._a;
+ mk_alert F._alert;
mk_absname F._absname;
mk_annot F._annot;
mk_binannot F._binannot;
@@ -1173,6 +1186,7 @@ module Make_bytetop_options (F : Bytetop_options) =
struct
let list = [
mk_absname F._absname;
+ mk_alert F._alert;
mk_I F._I;
mk_init F._init;
mk_labels F._labels;
@@ -1233,6 +1247,7 @@ module Make_optcomp_options (F : Optcomp_options) =
struct
let list = [
mk_a F._a;
+ mk_alert F._alert;
mk_absname F._absname;
mk_afl_instrument F._afl_instrument;
mk_afl_inst_ratio F._afl_inst_ratio;
@@ -1381,6 +1396,7 @@ end;;
module Make_opttop_options (F : Opttop_options) = struct
let list = [
mk_absname F._absname;
+ mk_alert F._alert;
mk_compact F._compact;
mk_I F._I;
mk_init F._init;
@@ -1478,6 +1494,7 @@ module Make_ocamldoc_options (F : Ocamldoc_options) =
struct
let list = [
mk_absname F._absname;
+ mk_alert F._alert;
mk_I F._I;
mk_impl F._impl;
mk_intf F._intf;
diff --git a/driver/main_args.mli b/driver/main_args.mli
index f3b6cd59fb..1dff86e795 100644
--- a/driver/main_args.mli
+++ b/driver/main_args.mli
@@ -18,6 +18,7 @@
module type Common_options = sig
val _absname : unit -> unit
+ val _alert : string -> unit
val _I : string -> unit
val _labels : unit -> unit
val _alias_deps : unit -> unit
diff --git a/driver/optmain.ml b/driver/optmain.ml
index f49796566d..a7efaad559 100644
--- a/driver/optmain.ml
+++ b/driver/optmain.ml
@@ -44,6 +44,7 @@ module Options = Main_args.Make_optcomp_options (struct
let _absname = set Clflags.absname
let _afl_instrument = set afl_instrument
let _afl_inst_ratio n = afl_inst_ratio := n
+ let _alert = Warnings.parse_alert_option
let _annot = set annotations
let _binannot = set binary_annotations
let _c = set compile_only