2018-10-10 08:16:00 -07:00
|
|
|
;**************************************************************************
|
|
|
|
;* *
|
|
|
|
;* OCaml *
|
|
|
|
;* *
|
|
|
|
;* Thomas Refis, Jane Street Europe *
|
|
|
|
;* *
|
|
|
|
;* Copyright 2018 Jane Street Group LLC *
|
|
|
|
;* *
|
|
|
|
;* All rights reserved. This file is distributed under the terms of *
|
|
|
|
;* the GNU Lesser General Public License version 2.1, with the *
|
|
|
|
;* special exception on linking described in the file LICENSE. *
|
|
|
|
;* *
|
|
|
|
;**************************************************************************
|
|
|
|
|
|
|
|
(env
|
2019-05-06 06:01:00 -07:00
|
|
|
(dev (flags (:standard -w +a-4-9-40-41-42-44-45-48)))
|
|
|
|
(release (flags (:standard -w +a-4-9-40-41-42-44-45-48))))
|
2018-10-10 08:16:00 -07:00
|
|
|
|
|
|
|
;; Too annoying to get to work. Use (copy_files# ...) instead
|
|
|
|
; (include_subdirs unqualified)
|
|
|
|
; (ignored_subdirs (lex yacc testsuite ocamldoc ocamltest toplevel otherlibs))
|
|
|
|
|
|
|
|
(copy_files# utils/*.ml{,i})
|
|
|
|
(copy_files# parsing/*.ml{,i})
|
|
|
|
(copy_files# typing/*.ml{,i})
|
|
|
|
(copy_files# bytecomp/*.ml{,i})
|
|
|
|
(copy_files# driver/*.ml{,i})
|
|
|
|
(copy_files# asmcomp/*.ml{,i})
|
|
|
|
(copy_files# asmcomp/debug/*.ml{,i})
|
2019-04-01 09:18:47 -07:00
|
|
|
(copy_files# file_formats/*.ml{,i})
|
|
|
|
(copy_files# lambda/*.ml{,i})
|
2018-10-10 08:16:00 -07:00
|
|
|
(copy_files# middle_end/*.ml{,i})
|
2019-04-01 09:18:47 -07:00
|
|
|
(copy_files# middle_end/closure/*.ml{,i})
|
|
|
|
(copy_files# middle_end/flambda/*.ml{,i})
|
|
|
|
(copy_files# middle_end/flambda/base_types/*.ml{,i})
|
2018-10-10 08:16:00 -07:00
|
|
|
|
|
|
|
(library
|
|
|
|
(name ocamlcommon)
|
|
|
|
(wrapped false)
|
|
|
|
(flags (:standard -principal -nostdlib))
|
|
|
|
(libraries stdlib)
|
|
|
|
(modules_without_implementation
|
|
|
|
annot asttypes cmo_format outcometree parsetree)
|
|
|
|
(modules
|
|
|
|
;; UTILS
|
|
|
|
config build_path_prefix_map misc identifiable numbers arg_helper clflags
|
|
|
|
profile terminfo ccomp warnings consistbl strongly_connected_components
|
2020-10-15 05:47:19 -07:00
|
|
|
targetint load_path int_replace_polymorphic_compare binutils local_store
|
2018-10-10 08:16:00 -07:00
|
|
|
|
|
|
|
;; PARSING
|
|
|
|
location longident docstrings syntaxerr ast_helper camlinternalMenhirLib
|
|
|
|
parser lexer parse printast pprintast ast_mapper ast_iterator attr_helper
|
|
|
|
builtin_attributes ast_invariants depend
|
|
|
|
; manual update: mli only files
|
|
|
|
asttypes parsetree
|
|
|
|
|
|
|
|
;; TYPING
|
2019-02-20 13:40:54 -08:00
|
|
|
ident path primitive types btype oprint subst predef datarepr
|
2019-10-02 04:53:31 -07:00
|
|
|
cmi_format persistent_env env type_immediacy
|
2018-10-10 08:16:00 -07:00
|
|
|
typedtree printtyped ctype printtyp includeclass mtype envaux includecore
|
2019-03-31 00:51:46 -07:00
|
|
|
tast_iterator tast_mapper cmt_format untypeast includemod
|
2019-08-19 00:48:59 -07:00
|
|
|
typetexp patterns printpat parmatch stypes typedecl typeopt rec_check
|
|
|
|
typecore
|
2018-11-26 08:42:19 -08:00
|
|
|
typeclass typemod typedecl_variance typedecl_properties typedecl_immediacy
|
2020-03-30 07:00:36 -07:00
|
|
|
typedecl_unboxed typedecl_separability cmt2annot
|
2018-10-10 08:16:00 -07:00
|
|
|
; manual update: mli only files
|
|
|
|
annot outcometree
|
|
|
|
|
2019-04-01 09:18:47 -07:00
|
|
|
;; lambda/
|
|
|
|
debuginfo lambda matching printlambda runtimedef simplif switch
|
|
|
|
translattribute translclass translcore translmod translobj translprim
|
|
|
|
|
|
|
|
;; bytecomp/
|
|
|
|
meta opcodes bytesections dll symtable
|
|
|
|
|
|
|
|
;; some of COMP
|
|
|
|
pparse main_args compenv compmisc makedepend compile_common
|
2018-10-10 08:16:00 -07:00
|
|
|
; manual update: mli only files
|
|
|
|
cmo_format
|
|
|
|
; manual update: this is required.
|
|
|
|
instruct
|
2019-04-01 09:18:47 -07:00
|
|
|
))
|
2018-10-10 08:16:00 -07:00
|
|
|
|
|
|
|
(library
|
|
|
|
(name ocamlbytecomp)
|
|
|
|
(wrapped false)
|
|
|
|
(flags (:standard -principal -nostdlib))
|
|
|
|
(libraries stdlib ocamlcommon)
|
|
|
|
(modules
|
2019-04-01 09:18:47 -07:00
|
|
|
;; bytecomp/
|
|
|
|
bytegen bytelibrarian bytelink bytepackager emitcode printinstr
|
|
|
|
|
|
|
|
;; driver/
|
|
|
|
errors compile
|
|
|
|
))
|
2018-10-10 08:16:00 -07:00
|
|
|
|
|
|
|
(library
|
2019-04-01 09:18:47 -07:00
|
|
|
(name ocamlmiddleend)
|
2018-10-10 08:16:00 -07:00
|
|
|
(wrapped false)
|
|
|
|
(flags (:standard -principal -nostdlib))
|
|
|
|
(libraries stdlib ocamlcommon)
|
|
|
|
(modules_without_implementation
|
2019-04-01 09:18:47 -07:00
|
|
|
cmx_format cmxs_format backend_intf inlining_decision_intf
|
2018-10-10 08:16:00 -07:00
|
|
|
simplify_boxed_integer_ops_intf)
|
|
|
|
(modules
|
2019-04-01 09:18:47 -07:00
|
|
|
;; file_formats/
|
|
|
|
cmx_format cmxs_format
|
|
|
|
|
|
|
|
;; middle_end/
|
|
|
|
backend_intf backend_var backend_var clambda clambda_primitives
|
|
|
|
compilation_unit compilenv convert_primitives internal_variable_names
|
|
|
|
linkage_name printclambda printclambda_primitives semantics_of_primitives
|
|
|
|
symbol variable
|
|
|
|
|
|
|
|
;; middle_end/closure/
|
2019-08-28 06:36:07 -07:00
|
|
|
closure closure_middle_end
|
2019-04-01 09:18:47 -07:00
|
|
|
|
|
|
|
;; middle_end/flambda/base_types/
|
|
|
|
closure_element closure_id closure_origin export_id id_types mutable_variable
|
|
|
|
set_of_closures_id set_of_closures_origin static_exception tag
|
|
|
|
var_within_closure
|
|
|
|
|
|
|
|
;; middle_end/flambda/
|
|
|
|
alias_analysis allocated_const augment_specialised_args build_export_info
|
|
|
|
closure_conversion closure_conversion_aux closure_offsets effect_analysis
|
|
|
|
export_info export_info_for_pack extract_projections find_recursive_functions
|
|
|
|
flambda flambda_invariants flambda_iterators flambda_middle_end
|
|
|
|
flambda_to_clambda flambda_utils freshening import_approx inconstant_idents
|
|
|
|
initialize_symbol_to_let_symbol inline_and_simplify inline_and_simplify_aux
|
|
|
|
inlining_cost inlining_decision inlining_decision_intf inlining_stats
|
|
|
|
inlining_stats_types inlining_transforms invariant_params lift_code
|
|
|
|
lift_constants lift_let_to_initialize_symbol parameter pass_wrapper
|
|
|
|
projection ref_to_variables remove_free_vars_equal_to_args
|
|
|
|
remove_unused_arguments remove_unused_closure_vars
|
|
|
|
remove_unused_program_constructs share_constants simple_value_approx
|
|
|
|
simplify_boxed_integer_ops simplify_boxed_integer_ops_intf simplify_common
|
|
|
|
simplify_primitives traverse_for_exported_symbols un_anf unbox_closures
|
|
|
|
unbox_free_vars_of_closures unbox_specialised_args
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(library
|
|
|
|
(name ocamloptcomp)
|
|
|
|
(wrapped false)
|
|
|
|
(flags (:standard -principal -nostdlib))
|
|
|
|
(libraries stdlib ocamlcommon ocamlmiddleend)
|
|
|
|
(modules_without_implementation x86_ast)
|
|
|
|
(modules
|
|
|
|
;; asmcomp/
|
|
|
|
afl_instrument arch asmgen asmlibrarian asmlink asmpackager branch_relaxation
|
2019-10-18 08:34:40 -07:00
|
|
|
branch_relaxation_intf cmm_helpers cmm cmmgen cmmgen_state coloring comballoc
|
|
|
|
CSE CSEgen
|
2019-09-09 09:50:49 -07:00
|
|
|
deadcode domainstate emit emitaux interf interval linear linearize linscan
|
|
|
|
liveness mach printcmm printlinear printmach proc reg reload reloadgen
|
2020-10-08 06:19:31 -07:00
|
|
|
schedgen scheduling selectgen selection spill split
|
2019-09-09 09:50:49 -07:00
|
|
|
strmatch x86_ast x86_dsl x86_gas x86_masm x86_proc
|
2019-04-01 09:18:47 -07:00
|
|
|
|
2020-10-20 02:20:40 -07:00
|
|
|
;; file_formats/
|
|
|
|
linear_format
|
|
|
|
|
2019-04-01 09:18:47 -07:00
|
|
|
;; asmcomp/debug/
|
|
|
|
reg_availability_set compute_ranges_intf available_regs reg_with_debug_info
|
|
|
|
compute_ranges
|
|
|
|
|
|
|
|
;; driver/
|
|
|
|
optcompile opterrors
|
2018-10-10 08:16:00 -07:00
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;
|
|
|
|
;;; ocamlc ;;;
|
|
|
|
;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(executable
|
|
|
|
(name main)
|
|
|
|
(modes byte)
|
|
|
|
(flags (:standard -principal -nostdlib))
|
|
|
|
(libraries ocamlbytecomp ocamlcommon runtime stdlib)
|
|
|
|
(modules main))
|
|
|
|
|
|
|
|
(rule
|
|
|
|
(copy main.exe ocamlc.byte))
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;
|
|
|
|
;;; ocamlopt ;;;
|
|
|
|
;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(executable
|
|
|
|
(name optmain)
|
|
|
|
(modes byte)
|
|
|
|
(flags (:standard -principal -nostdlib))
|
2019-04-01 09:18:47 -07:00
|
|
|
(libraries ocamloptcomp ocamlmiddleend ocamlcommon runtime stdlib)
|
2018-10-10 08:16:00 -07:00
|
|
|
(modules optmain))
|
|
|
|
|
|
|
|
(rule
|
|
|
|
(copy optmain.exe ocamlopt.byte))
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;
|
|
|
|
;;; aliases ;;;
|
|
|
|
;;;;;;;;;;;;;;;
|
|
|
|
|
2019-04-01 09:18:47 -07:00
|
|
|
; mshinwell: The debugger and ocamldoc are currently disabled as Dynlink is
|
|
|
|
; not built correctly.
|
2018-10-10 08:16:00 -07:00
|
|
|
(alias
|
|
|
|
(name world)
|
|
|
|
(deps ocamlc.byte
|
|
|
|
ocamlopt.byte
|
2019-04-01 09:18:47 -07:00
|
|
|
; debugger/ocamldebug.byte
|
|
|
|
; ocamldoc/ocamldoc.byte
|
2018-10-10 08:16:00 -07:00
|
|
|
ocamltest/ocamltest.byte
|
|
|
|
toplevel/ocaml.byte
|
|
|
|
toplevel/expunge.exe
|
|
|
|
))
|
2019-08-28 06:36:07 -07:00
|
|
|
|
|
|
|
(alias
|
|
|
|
(name libs)
|
|
|
|
(deps
|
|
|
|
ocamloptcomp.cma
|
|
|
|
ocamlmiddleend.cma
|
|
|
|
ocamlcommon.cma
|
|
|
|
runtime/runtime.cma
|
|
|
|
stdlib/stdlib.cma
|
|
|
|
ocamlbytecomp.cma
|
|
|
|
ocamltest/ocamltest_core_and_plugin.cma
|
|
|
|
toplevel/ocamltoplevel.cma
|
|
|
|
))
|