summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
Diffstat (limited to 'driver')
-rw-r--r--driver/compile.ml4
-rw-r--r--driver/main.ml1
-rw-r--r--driver/main_args.ml6
-rw-r--r--driver/main_args.mli1
-rw-r--r--driver/optcompile.ml1
-rw-r--r--driver/optmain.ml6
6 files changed, 15 insertions, 4 deletions
diff --git a/driver/compile.ml b/driver/compile.ml
index 6be13ba40b..99bc318756 100644
--- a/driver/compile.ml
+++ b/driver/compile.ml
@@ -38,6 +38,8 @@ let init_path () =
(* Return the initial environment in which compilation proceeds. *)
let initial_env () =
+ init_path();
+ Ident.reinit();
try
if !Clflags.nopervasives
then Env.initial
@@ -48,7 +50,6 @@ let initial_env () =
(* Compile a .mli file *)
let interface ppf sourcefile =
- init_path();
let prefixname = chop_extension_if_any sourcefile in
let modulename = String.capitalize(Filename.basename prefixname) in
let inputfile = Pparse.preprocess sourcefile in
@@ -76,7 +77,6 @@ let print_if ppf flag printer arg =
let (++) x f = f x
let implementation ppf sourcefile =
- init_path();
let prefixname = chop_extension_if_any sourcefile in
let modulename = String.capitalize(Filename.basename prefixname) in
let inputfile = Pparse.preprocess sourcefile in
diff --git a/driver/main.ml b/driver/main.ml
index 8e1f58fbe7..b1ac5b0390 100644
--- a/driver/main.ml
+++ b/driver/main.ml
@@ -80,6 +80,7 @@ module Options = Main_args.Make_options (struct
let _custom = set custom_runtime
let _dllib s = dllibs := Misc.rev_split_words s @ !dllibs
let _dllpath s = dllpaths := !dllpaths @ [s]
+ let _dtypes = set save_types
let _g = set debug
let _i = set print_types
let _I s = include_dirs := s :: !include_dirs
diff --git a/driver/main_args.ml b/driver/main_args.ml
index 617c73caeb..b112c60e1a 100644
--- a/driver/main_args.ml
+++ b/driver/main_args.ml
@@ -22,6 +22,7 @@ module Make_options (F :
val _custom : unit -> unit
val _dllib : string -> unit
val _dllpath : string -> unit
+ val _dtypes : unit -> unit
val _g : unit -> unit
val _i : unit -> unit
val _I : string -> unit
@@ -73,6 +74,7 @@ struct
"<lib> Use the dynamically-loaded library <lib>";
"-dllpath", Arg.String F._dllpath,
"<dir> Add <dir> to the run-time search path for shared libraries";
+ "-dtypes", Arg.Unit F._dtypes, " Save type information in <filename>.types";
"-g", Arg.Unit F._g, " Save debugging information";
"-i", Arg.Unit F._i, " Print the types";
"-I", Arg.String F._I,
@@ -122,6 +124,7 @@ struct
\032 A/a enable/disable all warnings\n\
\032 C/c enable/disable suspicious comment\n\
\032 D/d enable/disable deprecated features\n\
+ \032 E/e enable/disable fragile match\n\
\032 F/f enable/disable partially applied function\n\
\032 L/l enable/disable labels omitted in application\n\
\032 M/m enable/disable overriden method\n\
@@ -130,7 +133,8 @@ struct
\032 U/u enable/disable unused match case\n\
\032 V/v enable/disable hidden instance variable\n\
\032 X/x enable/disable all other warnings\n\
- \032 default setting is \"Al\" (all warnings but labels enabled)";
+ \032 default setting is \"Ale\"\n\
+ \032 (all warnings but labels and fragile match enabled)";
"-warn-error" , Arg.String F._warn_error,
"<flags> Treat the warnings enabled by <flags> as errors.\n\
\032 See option -w for the list of flags.\n\
diff --git a/driver/main_args.mli b/driver/main_args.mli
index aebe7e76b6..648daa15dc 100644
--- a/driver/main_args.mli
+++ b/driver/main_args.mli
@@ -22,6 +22,7 @@ module Make_options (F :
val _custom : unit -> unit
val _dllib : string -> unit
val _dllpath : string -> unit
+ val _dtypes : unit -> unit
val _g : unit -> unit
val _i : unit -> unit
val _I : string -> unit
diff --git a/driver/optcompile.ml b/driver/optcompile.ml
index ff30fc8be2..1d912ef293 100644
--- a/driver/optcompile.ml
+++ b/driver/optcompile.ml
@@ -38,6 +38,7 @@ let init_path () =
let initial_env () =
init_path();
+ Ident.reinit();
try
if !Clflags.nopervasives
then Env.initial
diff --git a/driver/optmain.ml b/driver/optmain.ml
index 7fa0b73493..a321fa2b7e 100644
--- a/driver/optmain.ml
+++ b/driver/optmain.ml
@@ -88,6 +88,8 @@ let main () =
"<opt> Pass option <opt> to the C compiler and linker";
"-compact", Arg.Clear optimize_for_speed,
" Optimize code size rather than speed";
+ "-dtypes", Arg.Set save_types,
+ " Save type information in <filename>.types";
"-i", Arg.Set print_types, " Print the types";
"-I", Arg.String(fun dir -> include_dirs := dir :: !include_dirs),
"<dir> Add <dir> to the list of include directories";
@@ -139,6 +141,7 @@ let main () =
\032 A/a enable/disable all warnings\n\
\032 C/c enable/disable suspicious comment\n\
\032 D/d enable/disable deprecated features\n\
+ \032 E/e enable/disable fragile match\n\
\032 F/f enable/disable partially applied function\n\
\032 L/l enable/disable labels omitted in application\n\
\032 M/m enable/disable overriden methods\n\
@@ -147,7 +150,8 @@ let main () =
\032 U/u enable/disable unused match case\n\
\032 V/v enable/disable hidden instance variables\n\
\032 X/x enable/disable all other warnings\n\
- \032 default setting is \"Al\" (all warnings but labels enabled)";
+ \032 default setting is \"Ale\"\n\
+ \032 (all warnings but labels and fragile match enabled)";
"-warn-error" , Arg.String (Warnings.parse_options true),
"<flags> Treat the warnings enabled by <flags> as errors.\n\
\032 See option -w for the list of flags.\n\