summaryrefslogtreecommitdiff
path: root/driver/compile.ml
diff options
context:
space:
mode:
Diffstat (limited to 'driver/compile.ml')
-rw-r--r--driver/compile.ml121
1 files changed, 0 insertions, 121 deletions
diff --git a/driver/compile.ml b/driver/compile.ml
deleted file mode 100644
index 52cf87d4a4..0000000000
--- a/driver/compile.ml
+++ /dev/null
@@ -1,121 +0,0 @@
-(***********************************************************************)
-(* *)
-(* Objective Caml *)
-(* *)
-(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 2002 Institut National de Recherche en Informatique et *)
-(* en Automatique. All rights reserved. This file is distributed *)
-(* under the terms of the Q Public License version 1.0. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(* The batch compiler *)
-
-open Misc
-open Config
-open Format
-open Typedtree
-
-(* Initialize the search path.
- The current directory is always searched first,
- then the directories specified with the -I option (in command-line order),
- then the standard library directory (unless the -nostdlib option is given).
- *)
-
-let init_path () =
- let dirs =
- if !Clflags.use_threads then "+threads" :: !Clflags.include_dirs
- else if !Clflags.use_vmthreads then "+vmthreads" :: !Clflags.include_dirs
- else !Clflags.include_dirs in
- let exp_dirs =
- List.map (expand_directory Config.standard_library) dirs in
- load_path := "" :: List.rev_append exp_dirs (Clflags.std_include_dir ());
- Env.reset_cache()
-
-(* Return the initial environment in which compilation proceeds. *)
-
-(* Note: do not do init_path() in initial_env, this breaks
- toplevel initialization (PR#1775) *)
-let initial_env () =
- Ident.reinit();
- try
- if !Clflags.nopervasives
- then Env.initial
- else Env.open_pers_signature "Pervasives" Env.initial
- with Not_found ->
- fatal_error "cannot open pervasives.cmi"
-
-(* 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
- try
- let ast =
- Pparse.file ppf inputfile Parse.interface ast_intf_magic_number in
- if !Clflags.dump_parsetree then fprintf ppf "%a@." Printast.interface ast;
- let sg = Typemod.transl_signature (initial_env()) ast in
- if !Clflags.print_types then
- fprintf std_formatter "%a@." Printtyp.signature
- (Typemod.simplify_signature sg);
- Warnings.check_fatal ();
- if not !Clflags.print_types then
- Env.save_signature sg modulename (prefixname ^ ".cmi");
- Pparse.remove_preprocessed inputfile
- with e ->
- Pparse.remove_preprocessed_if_ast inputfile;
- raise e
-
-(* Compile a .ml file *)
-
-let print_if ppf flag printer arg =
- if !flag then fprintf ppf "%a@." printer arg;
- 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
- let env = initial_env() in
- if !Clflags.print_types then begin
- try ignore(
- Pparse.file ppf inputfile Parse.implementation ast_impl_magic_number
- ++ print_if ppf Clflags.dump_parsetree Printast.implementation
- ++ Typemod.type_implementation sourcefile prefixname modulename env)
- with x ->
- Pparse.remove_preprocessed_if_ast inputfile;
- raise x
- end else begin
- let objfile = prefixname ^ ".cmo" in
- let oc = open_out_bin objfile in
- try
- Pparse.file ppf inputfile Parse.implementation ast_impl_magic_number
- ++ print_if ppf Clflags.dump_parsetree Printast.implementation
- ++ Typemod.type_implementation sourcefile prefixname modulename env
- ++ Translmod.transl_implementation modulename
- ++ print_if ppf Clflags.dump_rawlambda Printlambda.lambda
- ++ Simplif.simplify_lambda
- ++ print_if ppf Clflags.dump_lambda Printlambda.lambda
- ++ Bytegen.compile_implementation modulename
- ++ print_if ppf Clflags.dump_instr Printinstr.instrlist
- ++ Emitcode.to_file oc modulename;
- Warnings.check_fatal ();
- Pparse.remove_preprocessed inputfile;
- close_out oc;
- with x ->
- close_out oc;
- remove_file objfile;
- Pparse.remove_preprocessed_if_ast inputfile;
- raise x
- end
-
-let c_file name =
- if Ccomp.compile_file name <> 0 then exit 2