diff options
Diffstat (limited to 'driver')
-rw-r--r-- | driver/compile.ml | 4 | ||||
-rw-r--r-- | driver/main.ml | 1 | ||||
-rw-r--r-- | driver/main_args.ml | 6 | ||||
-rw-r--r-- | driver/main_args.mli | 1 | ||||
-rw-r--r-- | driver/optcompile.ml | 1 | ||||
-rw-r--r-- | driver/optmain.ml | 6 |
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\ |