diff --git a/.depend b/.depend index d7eed05a4dbe..b0152a3d2ac7 100644 --- a/.depend +++ b/.depend @@ -1,1094 +1,10690 @@ +utils/arg_helper.cmo : \ + utils/arg_helper.cmi +utils/arg_helper.cmx : \ + utils/arg_helper.cmi +utils/arg_helper.cmi : +utils/binutils.cmo : \ + utils/binutils.cmi +utils/binutils.cmx : \ + utils/binutils.cmi +utils/binutils.cmi : +utils/build_path_prefix_map.cmo : \ + utils/build_path_prefix_map.cmi +utils/build_path_prefix_map.cmx : \ + utils/build_path_prefix_map.cmi +utils/build_path_prefix_map.cmi : +utils/ccomp.cmo : \ + utils/profile.cmi \ + utils/misc.cmi \ + utils/load_path.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi +utils/ccomp.cmx : \ + utils/profile.cmx \ + utils/misc.cmx \ + utils/load_path.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmi utils/ccomp.cmi : -utils/clflags.cmi : +utils/clflags.cmo : \ + utils/profile.cmi \ + utils/numbers.cmi \ + utils/misc.cmi \ + utils/config.cmi \ + utils/arg_helper.cmi \ + utils/clflags.cmi +utils/clflags.cmx : \ + utils/profile.cmx \ + utils/numbers.cmx \ + utils/misc.cmx \ + utils/config.cmx \ + utils/arg_helper.cmx \ + utils/clflags.cmi +utils/clflags.cmi : \ + utils/profile.cmi \ + utils/misc.cmi +utils/compression.cmo : \ + utils/compression.cmi +utils/compression.cmx : \ + utils/compression.cmi +utils/compression.cmi : +utils/config.common.cmo : +utils/config.common.cmx : +utils/config.fixed.cmo : +utils/config.fixed.cmx : +utils/config.generated.cmo : +utils/config.generated.cmx : +utils/config.cmo : \ + utils/config.cmi +utils/config.cmx : \ + utils/config.cmi utils/config.cmi : -utils/consistbl.cmi : -utils/misc.cmi : -utils/tbl.cmi : +utils/config_boot.cmo : \ + utils/config_boot.cmi +utils/config_boot.cmx : \ + utils/config_boot.cmi +utils/config_boot.cmi : +utils/config_main.cmo : \ + utils/config_main.cmi +utils/config_main.cmx : \ + utils/config_main.cmi +utils/config_main.cmi : +utils/consistbl.cmo : \ + utils/misc.cmi \ + utils/consistbl.cmi +utils/consistbl.cmx : \ + utils/misc.cmx \ + utils/consistbl.cmi +utils/consistbl.cmi : \ + utils/misc.cmi +utils/diffing.cmo : \ + utils/misc.cmi \ + utils/format_doc.cmi \ + utils/diffing.cmi +utils/diffing.cmx : \ + utils/misc.cmx \ + utils/format_doc.cmx \ + utils/diffing.cmi +utils/diffing.cmi : \ + utils/misc.cmi \ + utils/format_doc.cmi +utils/diffing_with_keys.cmo : \ + utils/misc.cmi \ + utils/format_doc.cmi \ + utils/diffing.cmi \ + utils/diffing_with_keys.cmi +utils/diffing_with_keys.cmx : \ + utils/misc.cmx \ + utils/format_doc.cmx \ + utils/diffing.cmx \ + utils/diffing_with_keys.cmi +utils/diffing_with_keys.cmi : \ + utils/format_doc.cmi \ + utils/diffing.cmi +utils/domainstate.cmo : \ + utils/domainstate.cmi +utils/domainstate.cmx : \ + utils/domainstate.cmi +utils/domainstate.cmi : +utils/format_doc.cmo : \ + utils/format_doc.cmi +utils/format_doc.cmx : \ + utils/format_doc.cmi +utils/format_doc.cmi : +utils/identifiable.cmo : \ + utils/misc.cmi \ + utils/identifiable.cmi +utils/identifiable.cmx : \ + utils/misc.cmx \ + utils/identifiable.cmi +utils/identifiable.cmi : +utils/int_replace_polymorphic_compare.cmo : \ + utils/int_replace_polymorphic_compare.cmi +utils/int_replace_polymorphic_compare.cmx : \ + utils/int_replace_polymorphic_compare.cmi +utils/int_replace_polymorphic_compare.cmi : +utils/lazy_backtrack.cmo : \ + utils/lazy_backtrack.cmi +utils/lazy_backtrack.cmx : \ + utils/lazy_backtrack.cmi +utils/lazy_backtrack.cmi : +utils/linkdeps.cmo : \ + utils/misc.cmi \ + utils/format_doc.cmi \ + utils/linkdeps.cmi +utils/linkdeps.cmx : \ + utils/misc.cmx \ + utils/format_doc.cmx \ + utils/linkdeps.cmi +utils/linkdeps.cmi : \ + utils/format_doc.cmi +utils/load_path.cmo : \ + utils/misc.cmi \ + utils/local_store.cmi \ + utils/config.cmi \ + utils/load_path.cmi +utils/load_path.cmx : \ + utils/misc.cmx \ + utils/local_store.cmx \ + utils/config.cmx \ + utils/load_path.cmi +utils/load_path.cmi : +utils/local_store.cmo : \ + utils/local_store.cmi +utils/local_store.cmx : \ + utils/local_store.cmi +utils/local_store.cmi : +utils/misc.cmo : \ + utils/format_doc.cmi \ + utils/config.cmi \ + utils/build_path_prefix_map.cmi \ + utils/misc.cmi +utils/misc.cmx : \ + utils/format_doc.cmx \ + utils/config.cmx \ + utils/build_path_prefix_map.cmx \ + utils/misc.cmi +utils/misc.cmi : \ + utils/format_doc.cmi \ + utils/build_path_prefix_map.cmi +utils/numbers.cmo : \ + utils/misc.cmi \ + utils/identifiable.cmi \ + utils/numbers.cmi +utils/numbers.cmx : \ + utils/misc.cmx \ + utils/identifiable.cmx \ + utils/numbers.cmi +utils/numbers.cmi : \ + utils/identifiable.cmi +utils/profile.cmo : \ + utils/misc.cmi \ + utils/profile.cmi +utils/profile.cmx : \ + utils/misc.cmx \ + utils/profile.cmi +utils/profile.cmi : +utils/strongly_connected_components.cmo : \ + utils/numbers.cmi \ + utils/misc.cmi \ + utils/identifiable.cmi \ + utils/strongly_connected_components.cmi +utils/strongly_connected_components.cmx : \ + utils/numbers.cmx \ + utils/misc.cmx \ + utils/identifiable.cmx \ + utils/strongly_connected_components.cmi +utils/strongly_connected_components.cmi : \ + utils/identifiable.cmi +utils/targetint.cmo : \ + utils/misc.cmi \ + utils/targetint.cmi +utils/targetint.cmx : \ + utils/misc.cmx \ + utils/targetint.cmi +utils/targetint.cmi : +utils/terminfo.cmo : \ + utils/terminfo.cmi +utils/terminfo.cmx : \ + utils/terminfo.cmi utils/terminfo.cmi : -utils/warnings.cmi : -utils/ccomp.cmo : utils/misc.cmi utils/config.cmi utils/clflags.cmi \ - utils/ccomp.cmi -utils/ccomp.cmx : utils/misc.cmx utils/config.cmx utils/clflags.cmx \ - utils/ccomp.cmi -utils/clflags.cmo : utils/config.cmi utils/clflags.cmi -utils/clflags.cmx : utils/config.cmx utils/clflags.cmi -utils/config.cmo : utils/config.cmi -utils/config.cmx : utils/config.cmi -utils/consistbl.cmo : utils/consistbl.cmi -utils/consistbl.cmx : utils/consistbl.cmi -utils/misc.cmo : utils/misc.cmi -utils/misc.cmx : utils/misc.cmi -utils/tbl.cmo : utils/tbl.cmi -utils/tbl.cmx : utils/tbl.cmi -utils/terminfo.cmo : utils/terminfo.cmi -utils/terminfo.cmx : utils/terminfo.cmi -utils/warnings.cmo : utils/warnings.cmi -utils/warnings.cmx : utils/warnings.cmi -parsing/ast_helper.cmi : parsing/parsetree.cmi parsing/longident.cmi \ - parsing/location.cmi parsing/docstrings.cmi parsing/asttypes.cmi -parsing/ast_mapper.cmi : parsing/parsetree.cmi parsing/location.cmi -parsing/asttypes.cmi : parsing/location.cmi -parsing/docstrings.cmi : parsing/parsetree.cmi parsing/location.cmi -parsing/lexer.cmi : parsing/parser.cmi parsing/location.cmi -parsing/location.cmi : utils/warnings.cmi -parsing/longident.cmi : -parsing/parse.cmi : parsing/parsetree.cmi -parsing/parser.cmi : parsing/parsetree.cmi parsing/location.cmi \ - parsing/docstrings.cmi -parsing/parsetree.cmi : parsing/longident.cmi parsing/location.cmi \ - parsing/asttypes.cmi -parsing/pprintast.cmi : parsing/parsetree.cmi parsing/longident.cmi \ - parsing/asttypes.cmi -parsing/printast.cmi : parsing/parsetree.cmi -parsing/syntaxerr.cmi : parsing/location.cmi -parsing/ast_helper.cmo : parsing/parsetree.cmi parsing/longident.cmi \ - parsing/location.cmi parsing/docstrings.cmi parsing/asttypes.cmi \ +utils/warnings.cmo : \ + utils/misc.cmi \ + utils/format_doc.cmi \ + utils/warnings.cmi +utils/warnings.cmx : \ + utils/misc.cmx \ + utils/format_doc.cmx \ + utils/warnings.cmi +utils/warnings.cmi : \ + utils/format_doc.cmi +parsing/ast_helper.cmo : \ + parsing/syntaxerr.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi \ + parsing/asttypes.cmi \ parsing/ast_helper.cmi -parsing/ast_helper.cmx : parsing/parsetree.cmi parsing/longident.cmx \ - parsing/location.cmx parsing/docstrings.cmx parsing/asttypes.cmi \ +parsing/ast_helper.cmx : \ + parsing/syntaxerr.cmx \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/docstrings.cmx \ + parsing/asttypes.cmx \ parsing/ast_helper.cmi -parsing/ast_mapper.cmo : parsing/parsetree.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi utils/config.cmi \ - utils/clflags.cmi parsing/asttypes.cmi parsing/ast_helper.cmi \ +parsing/ast_helper.cmi : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi \ + parsing/asttypes.cmi +parsing/ast_invariants.cmo : \ + parsing/syntaxerr.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/builtin_attributes.cmi \ + parsing/asttypes.cmi \ + parsing/ast_mapper.cmi \ + parsing/ast_iterator.cmi \ + parsing/ast_invariants.cmi +parsing/ast_invariants.cmx : \ + parsing/syntaxerr.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/builtin_attributes.cmx \ + parsing/asttypes.cmx \ + parsing/ast_mapper.cmx \ + parsing/ast_iterator.cmx \ + parsing/ast_invariants.cmi +parsing/ast_invariants.cmi : \ + parsing/parsetree.cmi \ + parsing/ast_iterator.cmi +parsing/ast_iterator.cmo : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/ast_iterator.cmi +parsing/ast_iterator.cmx : \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/ast_iterator.cmi +parsing/ast_iterator.cmi : \ + parsing/parsetree.cmi \ + parsing/location.cmi +parsing/ast_mapper.cmo : \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/format_doc.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ parsing/ast_mapper.cmi -parsing/ast_mapper.cmx : parsing/parsetree.cmi utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx utils/config.cmx \ - utils/clflags.cmx parsing/asttypes.cmi parsing/ast_helper.cmx \ +parsing/ast_mapper.cmx : \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/format_doc.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ parsing/ast_mapper.cmi -parsing/docstrings.cmo : utils/warnings.cmi parsing/parsetree.cmi \ - parsing/location.cmi parsing/asttypes.cmi parsing/docstrings.cmi -parsing/docstrings.cmx : utils/warnings.cmx parsing/parsetree.cmi \ - parsing/location.cmx parsing/asttypes.cmi parsing/docstrings.cmi -parsing/lexer.cmo : utils/warnings.cmi parsing/parser.cmi utils/misc.cmi \ - parsing/location.cmi parsing/docstrings.cmi parsing/lexer.cmi -parsing/lexer.cmx : utils/warnings.cmx parsing/parser.cmx utils/misc.cmx \ - parsing/location.cmx parsing/docstrings.cmx parsing/lexer.cmi -parsing/location.cmo : utils/warnings.cmi utils/terminfo.cmi \ +parsing/ast_mapper.cmi : \ + parsing/parsetree.cmi \ + parsing/location.cmi +parsing/asttypes.cmo : \ + parsing/location.cmi \ + parsing/asttypes.cmi +parsing/asttypes.cmx : \ + parsing/location.cmx \ + parsing/asttypes.cmi +parsing/asttypes.cmi : \ parsing/location.cmi -parsing/location.cmx : utils/warnings.cmx utils/terminfo.cmx \ +parsing/attr_helper.cmo : \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + parsing/builtin_attributes.cmi \ + parsing/asttypes.cmi \ + parsing/attr_helper.cmi +parsing/attr_helper.cmx : \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + parsing/builtin_attributes.cmx \ + parsing/asttypes.cmx \ + parsing/attr_helper.cmi +parsing/attr_helper.cmi : \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi +parsing/builtin_attributes.cmo : \ + utils/warnings.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + parsing/ast_iterator.cmi \ + parsing/ast_helper.cmi \ + parsing/builtin_attributes.cmi +parsing/builtin_attributes.cmx : \ + utils/warnings.cmx \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + parsing/ast_iterator.cmx \ + parsing/ast_helper.cmx \ + parsing/builtin_attributes.cmi +parsing/builtin_attributes.cmi : \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/location.cmi +parsing/camlinternalMenhirLib.cmo : \ + parsing/camlinternalMenhirLib.cmi +parsing/camlinternalMenhirLib.cmx : \ + parsing/camlinternalMenhirLib.cmi +parsing/camlinternalMenhirLib.cmi : +parsing/depend.cmo : \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + parsing/asttypes.cmi \ + parsing/depend.cmi +parsing/depend.cmx : \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + parsing/asttypes.cmx \ + parsing/depend.cmi +parsing/depend.cmi : \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi +parsing/docstrings.cmo : \ + utils/warnings.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi +parsing/docstrings.cmx : \ + utils/warnings.cmx \ + parsing/parsetree.cmi \ + parsing/location.cmx \ + parsing/docstrings.cmi +parsing/docstrings.cmi : \ + parsing/parsetree.cmi \ parsing/location.cmi -parsing/longident.cmo : utils/misc.cmi parsing/longident.cmi -parsing/longident.cmx : utils/misc.cmx parsing/longident.cmi -parsing/parse.cmo : parsing/syntaxerr.cmi parsing/parser.cmi \ - parsing/location.cmi parsing/lexer.cmi parsing/docstrings.cmi \ +parsing/lexer.cmo : \ + utils/warnings.cmi \ + parsing/parser.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + parsing/docstrings.cmi \ + parsing/lexer.cmi +parsing/lexer.cmx : \ + utils/warnings.cmx \ + parsing/parser.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + parsing/docstrings.cmx \ + parsing/lexer.cmi +parsing/lexer.cmi : \ + parsing/parser.cmi \ + parsing/location.cmi +parsing/location.cmo : \ + utils/warnings.cmi \ + utils/terminfo.cmi \ + utils/misc.cmi \ + utils/format_doc.cmi \ + utils/clflags.cmi \ + utils/build_path_prefix_map.cmi \ + parsing/location.cmi +parsing/location.cmx : \ + utils/warnings.cmx \ + utils/terminfo.cmx \ + utils/misc.cmx \ + utils/format_doc.cmx \ + utils/clflags.cmx \ + utils/build_path_prefix_map.cmx \ + parsing/location.cmi +parsing/location.cmi : \ + utils/warnings.cmi \ + utils/format_doc.cmi +parsing/longident.cmo : \ + utils/misc.cmi \ + parsing/location.cmi \ + parsing/longident.cmi +parsing/longident.cmx : \ + utils/misc.cmx \ + parsing/location.cmx \ + parsing/longident.cmi +parsing/longident.cmi : \ + parsing/location.cmi +parsing/parse.cmo : \ + parsing/syntaxerr.cmi \ + parsing/pprintast.cmi \ + parsing/parser.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + parsing/lexer.cmi \ + utils/format_doc.cmi \ + parsing/docstrings.cmi \ + utils/clflags.cmi \ parsing/parse.cmi -parsing/parse.cmx : parsing/syntaxerr.cmx parsing/parser.cmx \ - parsing/location.cmx parsing/lexer.cmx parsing/docstrings.cmx \ +parsing/parse.cmx : \ + parsing/syntaxerr.cmx \ + parsing/pprintast.cmx \ + parsing/parser.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + parsing/lexer.cmx \ + utils/format_doc.cmx \ + parsing/docstrings.cmx \ + utils/clflags.cmx \ parsing/parse.cmi -parsing/parser.cmo : parsing/syntaxerr.cmi parsing/parsetree.cmi \ - parsing/longident.cmi parsing/location.cmi parsing/docstrings.cmi \ - utils/clflags.cmi parsing/asttypes.cmi parsing/ast_helper.cmi \ +parsing/parse.cmi : \ + parsing/parsetree.cmi \ + parsing/longident.cmi +parsing/parser.cmo : \ + parsing/syntaxerr.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi \ + utils/clflags.cmi \ + parsing/camlinternalMenhirLib.cmi \ + parsing/builtin_attributes.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ parsing/parser.cmi -parsing/parser.cmx : parsing/syntaxerr.cmx parsing/parsetree.cmi \ - parsing/longident.cmx parsing/location.cmx parsing/docstrings.cmx \ - utils/clflags.cmx parsing/asttypes.cmi parsing/ast_helper.cmx \ +parsing/parser.cmx : \ + parsing/syntaxerr.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/docstrings.cmx \ + utils/clflags.cmx \ + parsing/camlinternalMenhirLib.cmx \ + parsing/builtin_attributes.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ parsing/parser.cmi -parsing/pprintast.cmo : parsing/parsetree.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi parsing/asttypes.cmi \ +parsing/parser.cmi : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi \ + parsing/camlinternalMenhirLib.cmi +parsing/parsetree.cmi : \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/asttypes.cmi +parsing/pprintast.cmo : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/lexer.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi \ parsing/pprintast.cmi -parsing/pprintast.cmx : parsing/parsetree.cmi utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx parsing/asttypes.cmi \ +parsing/pprintast.cmx : \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/lexer.cmx \ + utils/format_doc.cmx \ + parsing/asttypes.cmx \ parsing/pprintast.cmi -parsing/printast.cmo : parsing/parsetree.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi parsing/asttypes.cmi \ +parsing/pprintast.cmi : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + utils/format_doc.cmi +parsing/printast.cmo : \ + parsing/pprintast.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ parsing/printast.cmi -parsing/printast.cmx : parsing/parsetree.cmi utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx parsing/asttypes.cmi \ +parsing/printast.cmx : \ + parsing/pprintast.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ parsing/printast.cmi -parsing/syntaxerr.cmo : parsing/location.cmi parsing/syntaxerr.cmi -parsing/syntaxerr.cmx : parsing/location.cmx parsing/syntaxerr.cmi -typing/annot.cmi : parsing/location.cmi -typing/btype.cmi : typing/types.cmi typing/path.cmi parsing/asttypes.cmi -typing/cmi_format.cmi : typing/types.cmi -typing/cmt_format.cmi : typing/types.cmi typing/typedtree.cmi \ - parsing/location.cmi typing/env.cmi typing/cmi_format.cmi -typing/ctype.cmi : typing/types.cmi typing/path.cmi parsing/longident.cmi \ - typing/ident.cmi typing/env.cmi parsing/asttypes.cmi -typing/datarepr.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi \ +parsing/printast.cmi : \ + parsing/parsetree.cmi +parsing/syntaxerr.cmo : \ + parsing/location.cmi \ + parsing/syntaxerr.cmi +parsing/syntaxerr.cmx : \ + parsing/location.cmx \ + parsing/syntaxerr.cmi +parsing/syntaxerr.cmi : \ + parsing/location.cmi +parsing/unit_info.cmo : \ + utils/warnings.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/config.cmi \ + parsing/unit_info.cmi +parsing/unit_info.cmx : \ + utils/warnings.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/config.cmx \ + parsing/unit_info.cmi +parsing/unit_info.cmi : +typing/annot.cmi : \ + parsing/location.cmi +typing/btype.cmo : \ + typing/types.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + utils/local_store.cmi \ + typing/ident.cmi \ + parsing/asttypes.cmi \ + typing/btype.cmi +typing/btype.cmx : \ + typing/types.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + utils/local_store.cmx \ + typing/ident.cmx \ + parsing/asttypes.cmx \ + typing/btype.cmi +typing/btype.cmi : \ + typing/types.cmi \ + typing/path.cmi \ parsing/asttypes.cmi -typing/envaux.cmi : typing/subst.cmi typing/path.cmi typing/env.cmi -typing/env.cmi : utils/warnings.cmi typing/types.cmi typing/subst.cmi \ - typing/path.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi utils/consistbl.cmi parsing/asttypes.cmi -typing/ident.cmi : -typing/includeclass.cmi : typing/types.cmi typing/env.cmi typing/ctype.cmi -typing/includecore.cmi : typing/types.cmi typing/typedtree.cmi \ - typing/ident.cmi typing/env.cmi -typing/includemod.cmi : typing/types.cmi typing/typedtree.cmi \ - typing/path.cmi parsing/location.cmi typing/includecore.cmi \ - typing/ident.cmi typing/env.cmi typing/ctype.cmi -typing/mtype.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi \ - typing/env.cmi -typing/oprint.cmi : typing/outcometree.cmi -typing/outcometree.cmi : parsing/asttypes.cmi -typing/parmatch.cmi : typing/types.cmi typing/typedtree.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/env.cmi parsing/asttypes.cmi -typing/path.cmi : typing/ident.cmi -typing/predef.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi -typing/primitive.cmi : -typing/printtyped.cmi : typing/typedtree.cmi -typing/printtyp.cmi : typing/types.cmi typing/path.cmi \ - typing/outcometree.cmi parsing/longident.cmi typing/ident.cmi \ - typing/env.cmi -typing/stypes.cmi : typing/typedtree.cmi parsing/location.cmi \ - typing/annot.cmi -typing/subst.cmi : typing/types.cmi typing/path.cmi typing/ident.cmi -typing/typeclass.cmi : typing/types.cmi typing/typedtree.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi typing/env.cmi typing/ctype.cmi parsing/asttypes.cmi -typing/typecore.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi typing/env.cmi parsing/asttypes.cmi typing/annot.cmi -typing/typedecl.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/includecore.cmi typing/ident.cmi typing/env.cmi \ +typing/cmt2annot.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/tast_iterator.cmi \ + typing/stypes.cmi \ + typing/path.cmi \ + typing/oprint.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/envaux.cmi \ + typing/env.cmi \ + file_formats/cmt_format.cmi \ + parsing/asttypes.cmi \ + typing/annot.cmi \ + typing/cmt2annot.cmi +typing/cmt2annot.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/tast_iterator.cmx \ + typing/stypes.cmx \ + typing/path.cmx \ + typing/oprint.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/envaux.cmx \ + typing/env.cmx \ + file_formats/cmt_format.cmx \ + parsing/asttypes.cmx \ + typing/annot.cmi \ + typing/cmt2annot.cmi +typing/cmt2annot.cmi : \ + typing/tast_iterator.cmi \ + parsing/location.cmi \ + file_formats/cmt_format.cmi +typing/ctype.cmo : \ + typing/types.cmi \ + typing/type_immediacy.cmi \ + typing/subst.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/local_store.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + typing/ctype.cmi +typing/ctype.cmx : \ + typing/types.cmx \ + typing/type_immediacy.cmx \ + typing/subst.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/local_store.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + typing/ctype.cmi +typing/ctype.cmi : \ + typing/types.cmi \ + typing/type_immediacy.cmi \ + typing/path.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + typing/btype.cmi \ parsing/asttypes.cmi -typing/typedtreeIter.cmi : typing/typedtree.cmi parsing/asttypes.cmi -typing/typedtreeMap.cmi : typing/typedtree.cmi -typing/typedtree.cmi : typing/types.cmi typing/primitive.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi typing/env.cmi parsing/asttypes.cmi -typing/typemod.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/includemod.cmi typing/ident.cmi typing/env.cmi \ +typing/data_types.cmo : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + parsing/asttypes.cmi \ + typing/data_types.cmi +typing/data_types.cmx : \ + typing/types.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/location.cmx \ + parsing/asttypes.cmx \ + typing/data_types.cmi +typing/data_types.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ parsing/asttypes.cmi -typing/types.cmi : typing/primitive.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi parsing/asttypes.cmi -typing/typetexp.cmi : typing/types.cmi typing/typedtree.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/env.cmi parsing/asttypes.cmi parsing/ast_mapper.cmi -typing/btype.cmo : typing/types.cmi typing/path.cmi utils/misc.cmi \ - typing/ident.cmi typing/btype.cmi -typing/btype.cmx : typing/types.cmx typing/path.cmx utils/misc.cmx \ - typing/ident.cmx typing/btype.cmi -typing/cmi_format.cmo : typing/types.cmi parsing/location.cmi \ - utils/config.cmi typing/cmi_format.cmi -typing/cmi_format.cmx : typing/types.cmx parsing/location.cmx \ - utils/config.cmx typing/cmi_format.cmi -typing/cmt_format.cmo : typing/types.cmi typing/typedtreeMap.cmi \ - typing/typedtree.cmi utils/misc.cmi parsing/location.cmi \ - parsing/lexer.cmi typing/env.cmi utils/config.cmi typing/cmi_format.cmi \ - utils/clflags.cmi typing/cmt_format.cmi -typing/cmt_format.cmx : typing/types.cmx typing/typedtreeMap.cmx \ - typing/typedtree.cmx utils/misc.cmx parsing/location.cmx \ - parsing/lexer.cmx typing/env.cmx utils/config.cmx typing/cmi_format.cmx \ - utils/clflags.cmx typing/cmt_format.cmi -typing/ctype.cmo : typing/types.cmi typing/subst.cmi typing/path.cmi \ - utils/misc.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi typing/env.cmi utils/clflags.cmi typing/btype.cmi \ - parsing/asttypes.cmi typing/ctype.cmi -typing/ctype.cmx : typing/types.cmx typing/subst.cmx typing/path.cmx \ - utils/misc.cmx parsing/longident.cmx parsing/location.cmx \ - typing/ident.cmx typing/env.cmx utils/clflags.cmx typing/btype.cmx \ - parsing/asttypes.cmi typing/ctype.cmi -typing/datarepr.cmo : typing/types.cmi typing/path.cmi parsing/location.cmi \ - typing/ident.cmi typing/btype.cmi parsing/asttypes.cmi \ +typing/datarepr.cmo : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/data_types.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ typing/datarepr.cmi -typing/datarepr.cmx : typing/types.cmx typing/path.cmx parsing/location.cmx \ - typing/ident.cmx typing/btype.cmx parsing/asttypes.cmi \ +typing/datarepr.cmx : \ + typing/types.cmx \ + typing/path.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/data_types.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ typing/datarepr.cmi -typing/envaux.cmo : typing/types.cmi typing/subst.cmi typing/printtyp.cmi \ - typing/path.cmi utils/misc.cmi typing/ident.cmi typing/env.cmi \ - parsing/asttypes.cmi typing/envaux.cmi -typing/envaux.cmx : typing/types.cmx typing/subst.cmx typing/printtyp.cmx \ - typing/path.cmx utils/misc.cmx typing/ident.cmx typing/env.cmx \ - parsing/asttypes.cmi typing/envaux.cmi -typing/env.cmo : utils/warnings.cmi typing/types.cmi utils/tbl.cmi \ - typing/subst.cmi typing/predef.cmi typing/path.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi typing/ident.cmi \ - typing/datarepr.cmi utils/consistbl.cmi utils/config.cmi \ - typing/cmi_format.cmi utils/clflags.cmi typing/btype.cmi \ - parsing/asttypes.cmi typing/env.cmi -typing/env.cmx : utils/warnings.cmx typing/types.cmx utils/tbl.cmx \ - typing/subst.cmx typing/predef.cmx typing/path.cmx utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx typing/ident.cmx \ - typing/datarepr.cmx utils/consistbl.cmx utils/config.cmx \ - typing/cmi_format.cmx utils/clflags.cmx typing/btype.cmx \ - parsing/asttypes.cmi typing/env.cmi -typing/ident.cmo : typing/ident.cmi -typing/ident.cmx : typing/ident.cmi -typing/includeclass.cmo : typing/types.cmi typing/printtyp.cmi \ - typing/ctype.cmi typing/includeclass.cmi -typing/includeclass.cmx : typing/types.cmx typing/printtyp.cmx \ - typing/ctype.cmx typing/includeclass.cmi -typing/includecore.cmo : typing/types.cmi typing/typedtree.cmi \ - typing/predef.cmi typing/path.cmi utils/misc.cmi typing/ident.cmi \ - typing/env.cmi typing/ctype.cmi typing/btype.cmi parsing/asttypes.cmi \ +typing/datarepr.cmi : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/path.cmi \ + typing/ident.cmi \ + typing/data_types.cmi +typing/env.cmo : \ + utils/warnings.cmi \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/subst.cmi \ + typing/shape.cmi \ + typing/predef.cmi \ + parsing/pprintast.cmi \ + typing/persistent_env.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/local_store.cmi \ + utils/load_path.cmi \ + utils/lazy_backtrack.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/datarepr.cmi \ + typing/data_types.cmi \ + file_formats/cmi_format.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + typing/env.cmi +typing/env.cmx : \ + utils/warnings.cmx \ + parsing/unit_info.cmx \ + typing/types.cmx \ + typing/subst.cmx \ + typing/shape.cmx \ + typing/predef.cmx \ + parsing/pprintast.cmx \ + typing/persistent_env.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/local_store.cmx \ + utils/load_path.cmx \ + utils/lazy_backtrack.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/datarepr.cmx \ + typing/data_types.cmx \ + file_formats/cmi_format.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + typing/env.cmi +typing/env.cmi : \ + utils/warnings.cmi \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/subst.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/data_types.cmi \ + file_formats/cmi_format.cmi \ + parsing/asttypes.cmi +typing/envaux.cmo : \ + typing/subst.cmi \ + typing/printtyp.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi \ + typing/envaux.cmi +typing/envaux.cmx : \ + typing/subst.cmx \ + typing/printtyp.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + parsing/asttypes.cmx \ + typing/envaux.cmi +typing/envaux.cmi : \ + typing/subst.cmi \ + typing/path.cmi \ + utils/format_doc.cmi \ + typing/env.cmi +typing/errortrace.cmo : \ + typing/types.cmi \ + typing/path.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi \ + typing/errortrace.cmi +typing/errortrace.cmx : \ + typing/types.cmx \ + typing/path.cmx \ + utils/format_doc.cmx \ + parsing/asttypes.cmx \ + typing/errortrace.cmi +typing/errortrace.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi +typing/errortrace_report.cmo : \ + typing/types.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + typing/errortrace_report.cmi +typing/errortrace_report.cmx : \ + typing/types.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + typing/out_type.cmx \ + typing/oprint.cmx \ + utils/misc.cmx \ + utils/format_doc.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + typing/errortrace_report.cmi +typing/errortrace_report.cmi : \ + typing/path.cmi \ + typing/out_type.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi +typing/gprinttyp.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + typing/gprinttyp.cmi +typing/gprinttyp.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/path.cmx \ + parsing/longident.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + typing/gprinttyp.cmi +typing/gprinttyp.cmi : \ + utils/warnings.cmi \ + typing/types.cmi +typing/ident.cmo : \ + utils/misc.cmi \ + utils/local_store.cmi \ + utils/identifiable.cmi \ + utils/format_doc.cmi \ + utils/clflags.cmi \ + typing/ident.cmi +typing/ident.cmx : \ + utils/misc.cmx \ + utils/local_store.cmx \ + utils/identifiable.cmx \ + utils/format_doc.cmx \ + utils/clflags.cmx \ + typing/ident.cmi +typing/ident.cmi : \ + utils/identifiable.cmi \ + utils/format_doc.cmi +typing/includeclass.cmo : \ + typing/types.cmi \ + typing/printtyp.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + utils/format_doc.cmi \ + typing/errortrace_report.cmi \ + typing/ctype.cmi \ + parsing/builtin_attributes.cmi \ + typing/includeclass.cmi +typing/includeclass.cmx : \ + typing/types.cmx \ + typing/printtyp.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + utils/format_doc.cmx \ + typing/errortrace_report.cmx \ + typing/ctype.cmx \ + parsing/builtin_attributes.cmx \ + typing/includeclass.cmi +typing/includeclass.cmi : \ + typing/types.cmi \ + typing/out_type.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + typing/ctype.cmi +typing/includecore.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/type_immediacy.cmi \ + typing/printtyp.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace_report.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + utils/diffing_with_keys.cmi \ + typing/ctype.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ typing/includecore.cmi -typing/includecore.cmx : typing/types.cmx typing/typedtree.cmx \ - typing/predef.cmx typing/path.cmx utils/misc.cmx typing/ident.cmx \ - typing/env.cmx typing/ctype.cmx typing/btype.cmx parsing/asttypes.cmi \ +typing/includecore.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/type_immediacy.cmx \ + typing/printtyp.cmx \ + typing/primitive.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace_report.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + utils/diffing_with_keys.cmx \ + typing/ctype.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ typing/includecore.cmi -typing/includemod.cmo : typing/types.cmi typing/typedtree.cmi utils/tbl.cmi \ - typing/subst.cmi typing/printtyp.cmi typing/primitive.cmi typing/path.cmi \ - typing/mtype.cmi utils/misc.cmi parsing/location.cmi \ - typing/includecore.cmi typing/includeclass.cmi typing/ident.cmi \ - typing/env.cmi typing/ctype.cmi typing/cmt_format.cmi utils/clflags.cmi \ +typing/includecore.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/type_immediacy.cmi \ + typing/path.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + utils/diffing_with_keys.cmi +typing/includemod.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/subst.cmi \ + typing/shape.cmi \ + typing/rawprinttyp.cmi \ + typing/printtyp.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + typing/mtype.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/includecore.cmi \ + typing/includeclass.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + utils/diffing.cmi \ + typing/ctype.cmi \ + file_formats/cmt_format.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ typing/includemod.cmi -typing/includemod.cmx : typing/types.cmx typing/typedtree.cmx utils/tbl.cmx \ - typing/subst.cmx typing/printtyp.cmx typing/primitive.cmx typing/path.cmx \ - typing/mtype.cmx utils/misc.cmx parsing/location.cmx \ - typing/includecore.cmx typing/includeclass.cmx typing/ident.cmx \ - typing/env.cmx typing/ctype.cmx typing/cmt_format.cmx utils/clflags.cmx \ +typing/includemod.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/subst.cmx \ + typing/shape.cmx \ + typing/rawprinttyp.cmx \ + typing/printtyp.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + typing/mtype.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/includecore.cmx \ + typing/includeclass.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + utils/diffing.cmx \ + typing/ctype.cmx \ + file_formats/cmt_format.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ typing/includemod.cmi -typing/mtype.cmo : typing/types.cmi typing/subst.cmi typing/path.cmi \ - utils/misc.cmi parsing/location.cmi typing/ident.cmi typing/env.cmi \ - typing/ctype.cmi utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ +typing/includemod.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/includecore.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + utils/diffing.cmi \ + typing/ctype.cmi +typing/includemod_errorprinter.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/printtyp.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + typing/includemod.cmi \ + typing/includecore.cmi \ + typing/includeclass.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + utils/diffing.cmi \ + utils/clflags.cmi \ + typing/includemod_errorprinter.cmi +typing/includemod_errorprinter.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/printtyp.cmx \ + typing/primitive.cmx \ + typing/path.cmx \ + typing/out_type.cmx \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + typing/includemod.cmx \ + typing/includecore.cmx \ + typing/includeclass.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + utils/diffing.cmx \ + utils/clflags.cmx \ + typing/includemod_errorprinter.cmi +typing/includemod_errorprinter.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/includemod.cmi \ + utils/format_doc.cmi \ + typing/env.cmi +typing/mtype.cmo : \ + typing/types.cmi \ + typing/subst.cmi \ + typing/path.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ typing/mtype.cmi -typing/mtype.cmx : typing/types.cmx typing/subst.cmx typing/path.cmx \ - utils/misc.cmx parsing/location.cmx typing/ident.cmx typing/env.cmx \ - typing/ctype.cmx utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ +typing/mtype.cmx : \ + typing/types.cmx \ + typing/subst.cmx \ + typing/path.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ typing/mtype.cmi -typing/oprint.cmo : typing/outcometree.cmi parsing/asttypes.cmi \ +typing/mtype.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + typing/ident.cmi \ + typing/env.cmi +typing/oprint.cmo : \ + parsing/pprintast.cmi \ + typing/outcometree.cmi \ + utils/misc.cmi \ + parsing/lexer.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi \ typing/oprint.cmi -typing/oprint.cmx : typing/outcometree.cmi parsing/asttypes.cmi \ +typing/oprint.cmx : \ + parsing/pprintast.cmx \ + typing/outcometree.cmi \ + utils/misc.cmx \ + parsing/lexer.cmx \ + utils/format_doc.cmx \ + parsing/asttypes.cmx \ typing/oprint.cmi -typing/parmatch.cmo : utils/warnings.cmi typing/types.cmi \ - typing/typedtree.cmi typing/subst.cmi typing/predef.cmi typing/path.cmi \ - parsing/parsetree.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi \ - typing/btype.cmi parsing/asttypes.cmi parsing/ast_helper.cmi \ +typing/oprint.cmi : \ + typing/outcometree.cmi \ + utils/format_doc.cmi +typing/out_type.cmo : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/type_immediacy.cmi \ + typing/signature_group.cmi \ + typing/shape.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + typing/out_type.cmi +typing/out_type.cmx : \ + parsing/unit_info.cmx \ + typing/types.cmx \ + typing/type_immediacy.cmx \ + typing/signature_group.cmx \ + typing/shape.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + typing/out_type.cmi +typing/out_type.cmi : \ + typing/types.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + typing/outcometree.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi +typing/outcometree.cmi : \ + typing/type_immediacy.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi +typing/parmatch.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/tast_iterator.cmi \ + typing/subst.cmi \ + typing/printpat.cmi \ + typing/predef.cmi \ + typing/patterns.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + typing/ctype.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ typing/parmatch.cmi -typing/parmatch.cmx : utils/warnings.cmx typing/types.cmx \ - typing/typedtree.cmx typing/subst.cmx typing/predef.cmx typing/path.cmx \ - parsing/parsetree.cmi utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx typing/ident.cmx typing/env.cmx typing/ctype.cmx \ - typing/btype.cmx parsing/asttypes.cmi parsing/ast_helper.cmx \ +typing/parmatch.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/tast_iterator.cmx \ + typing/subst.cmx \ + typing/printpat.cmx \ + typing/predef.cmx \ + typing/patterns.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + typing/ctype.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ typing/parmatch.cmi -typing/path.cmo : typing/ident.cmi typing/path.cmi -typing/path.cmx : typing/ident.cmx typing/path.cmi -typing/predef.cmo : typing/types.cmi typing/path.cmi parsing/location.cmi \ - typing/ident.cmi typing/btype.cmi parsing/asttypes.cmi typing/predef.cmi -typing/predef.cmx : typing/types.cmx typing/path.cmx parsing/location.cmx \ - typing/ident.cmx typing/btype.cmx parsing/asttypes.cmi typing/predef.cmi -typing/primitive.cmo : utils/misc.cmi typing/primitive.cmi -typing/primitive.cmx : utils/misc.cmx typing/primitive.cmi -typing/printtyped.cmo : typing/typedtree.cmi parsing/printast.cmi \ - typing/path.cmi utils/misc.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi parsing/asttypes.cmi typing/printtyped.cmi -typing/printtyped.cmx : typing/typedtree.cmx parsing/printast.cmx \ - typing/path.cmx utils/misc.cmx parsing/longident.cmx parsing/location.cmx \ - typing/ident.cmx parsing/asttypes.cmi typing/printtyped.cmi -typing/printtyp.cmo : typing/types.cmi typing/primitive.cmi \ - typing/predef.cmi typing/path.cmi typing/outcometree.cmi \ - typing/oprint.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ +typing/parmatch.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi +typing/path.cmo : \ + parsing/lexer.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/path.cmi +typing/path.cmx : \ + parsing/lexer.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/path.cmi +typing/path.cmi : \ + typing/ident.cmi \ + utils/format_doc.cmi +typing/patterns.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + typing/ctype.cmi \ + parsing/asttypes.cmi \ + typing/patterns.cmi +typing/patterns.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + typing/ctype.cmx \ + parsing/asttypes.cmx \ + typing/patterns.cmi +typing/patterns.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/longident.cmi \ + typing/ident.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi +typing/persistent_env.cmo : \ + utils/warnings.cmi \ + parsing/unit_info.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/lazy_backtrack.cmi \ + utils/format_doc.cmi \ + utils/consistbl.cmi \ + file_formats/cmi_format.cmi \ + utils/clflags.cmi \ + typing/persistent_env.cmi +typing/persistent_env.cmx : \ + utils/warnings.cmx \ + parsing/unit_info.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/lazy_backtrack.cmx \ + utils/format_doc.cmx \ + utils/consistbl.cmx \ + file_formats/cmi_format.cmx \ + utils/clflags.cmx \ + typing/persistent_env.cmi +typing/persistent_env.cmi : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/lazy_backtrack.cmi \ + utils/format_doc.cmi \ + utils/consistbl.cmi \ + file_formats/cmi_format.cmi +typing/predef.cmo : \ + typing/types.cmi \ + typing/type_immediacy.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + typing/predef.cmi +typing/predef.cmx : \ + typing/types.cmx \ + typing/type_immediacy.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ + typing/predef.cmi +typing/predef.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + typing/ident.cmi +typing/primitive.cmo : \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + parsing/attr_helper.cmi \ + typing/primitive.cmi +typing/primitive.cmx : \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + parsing/attr_helper.cmx \ + typing/primitive.cmi +typing/primitive.cmi : \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + parsing/location.cmi +typing/printpat.cmo : \ + typing/typedtree.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi \ + typing/printpat.cmi +typing/printpat.cmx : \ + typing/typedtree.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/data_types.cmx \ + parsing/asttypes.cmx \ + typing/printpat.cmi +typing/printpat.cmi : \ + typing/typedtree.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi +typing/printtyp.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + parsing/pprintast.cmi \ + typing/outcometree.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ typing/printtyp.cmi -typing/printtyp.cmx : typing/types.cmx typing/primitive.cmx \ - typing/predef.cmx typing/path.cmx typing/outcometree.cmi \ - typing/oprint.cmx utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx typing/ident.cmx typing/env.cmx typing/ctype.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ +typing/printtyp.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + parsing/pprintast.cmx \ + typing/outcometree.cmi \ + typing/out_type.cmx \ + typing/oprint.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ typing/printtyp.cmi -typing/stypes.cmo : typing/typedtree.cmi typing/printtyp.cmi \ - parsing/location.cmi utils/clflags.cmi typing/annot.cmi typing/stypes.cmi -typing/stypes.cmx : typing/typedtree.cmx typing/printtyp.cmx \ - parsing/location.cmx utils/clflags.cmx typing/annot.cmi typing/stypes.cmi -typing/subst.cmo : typing/types.cmi utils/tbl.cmi typing/path.cmi \ - utils/misc.cmi parsing/location.cmi typing/ident.cmi utils/clflags.cmi \ - typing/btype.cmi parsing/ast_mapper.cmi typing/subst.cmi -typing/subst.cmx : typing/types.cmx utils/tbl.cmx typing/path.cmx \ - utils/misc.cmx parsing/location.cmx typing/ident.cmx utils/clflags.cmx \ - typing/btype.cmx parsing/ast_mapper.cmx typing/subst.cmi -typing/typeclass.cmo : utils/warnings.cmi typing/typetexp.cmi \ - typing/types.cmi typing/typedtree.cmi typing/typedecl.cmi \ - typing/typecore.cmi parsing/syntaxerr.cmi typing/subst.cmi \ - typing/stypes.cmi typing/printtyp.cmi typing/predef.cmi typing/path.cmi \ - parsing/parsetree.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi typing/includeclass.cmi typing/ident.cmi \ - typing/env.cmi typing/ctype.cmi typing/cmt_format.cmi utils/clflags.cmi \ - typing/btype.cmi parsing/asttypes.cmi parsing/ast_helper.cmi \ +typing/printtyp.cmi : \ + typing/types.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + typing/out_type.cmi \ + parsing/longident.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi +typing/printtyped.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/printast.cmi \ + parsing/pprintast.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + typing/printtyped.cmi +typing/printtyped.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + parsing/printast.cmx \ + parsing/pprintast.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + typing/printtyped.cmi +typing/printtyped.cmi : \ + typing/typedtree.cmi +typing/rawprinttyp.cmo : \ + typing/types.cmi \ + parsing/pprintast.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + utils/format_doc.cmi \ + parsing/asttypes.cmi \ + typing/rawprinttyp.cmi +typing/rawprinttyp.cmx : \ + typing/types.cmx \ + parsing/pprintast.cmx \ + typing/path.cmx \ + parsing/longident.cmx \ + utils/format_doc.cmx \ + parsing/asttypes.cmx \ + typing/rawprinttyp.cmi +typing/rawprinttyp.cmi : \ + typing/types.cmi +typing/shape.cmo : \ + parsing/unit_info.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi \ + typing/shape.cmi +typing/shape.cmx : \ + parsing/unit_info.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + utils/identifiable.cmx \ + typing/ident.cmx \ + typing/shape.cmi +typing/shape.cmi : \ + parsing/unit_info.cmi \ + typing/path.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi +typing/shape_reduce.cmo : \ + typing/shape.cmi \ + utils/local_store.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/shape_reduce.cmi +typing/shape_reduce.cmx : \ + typing/shape.cmx \ + utils/local_store.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/shape_reduce.cmi +typing/shape_reduce.cmi : \ + typing/shape.cmi \ + typing/env.cmi +typing/signature_group.cmo : \ + typing/types.cmi \ + typing/ident.cmi \ + typing/btype.cmi \ + typing/signature_group.cmi +typing/signature_group.cmx : \ + typing/types.cmx \ + typing/ident.cmx \ + typing/btype.cmx \ + typing/signature_group.cmi +typing/signature_group.cmi : \ + typing/types.cmi +typing/stypes.cmo : \ + typing/typedtree.cmi \ + typing/printtyp.cmi \ + typing/out_type.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/clflags.cmi \ + typing/annot.cmi \ + typing/stypes.cmi +typing/stypes.cmx : \ + typing/typedtree.cmx \ + typing/printtyp.cmx \ + typing/out_type.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/clflags.cmx \ + typing/annot.cmi \ + typing/stypes.cmi +typing/stypes.cmi : \ + typing/typedtree.cmi \ + parsing/location.cmi \ + typing/annot.cmi +typing/subst.cmo : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/local_store.cmi \ + utils/lazy_backtrack.cmi \ + typing/ident.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/ast_mapper.cmi \ + typing/subst.cmi +typing/subst.cmx : \ + typing/types.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/local_store.cmx \ + utils/lazy_backtrack.cmx \ + typing/ident.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/ast_mapper.cmx \ + typing/subst.cmi +typing/subst.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + typing/ident.cmi +typing/tast_iterator.cmo : \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi \ + parsing/ast_iterator.cmi \ + typing/tast_iterator.cmi +typing/tast_iterator.cmx : \ + typing/typedtree.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/env.cmx \ + parsing/asttypes.cmx \ + parsing/ast_iterator.cmx \ + typing/tast_iterator.cmi +typing/tast_iterator.cmi : \ + typing/typedtree.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi +typing/tast_mapper.cmo : \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi \ + parsing/ast_mapper.cmi \ + typing/tast_mapper.cmi +typing/tast_mapper.cmx : \ + typing/typedtree.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/env.cmx \ + parsing/asttypes.cmx \ + parsing/ast_mapper.cmx \ + typing/tast_mapper.cmi +typing/tast_mapper.cmi : \ + typing/typedtree.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi +typing/type_immediacy.cmo : \ + parsing/builtin_attributes.cmi \ + typing/type_immediacy.cmi +typing/type_immediacy.cmx : \ + parsing/builtin_attributes.cmx \ + typing/type_immediacy.cmi +typing/type_immediacy.cmi : \ + parsing/parsetree.cmi +typing/typeclass.cmo : \ + utils/warnings.cmi \ + typing/typetexp.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl_variance.cmi \ + typing/typedecl.cmi \ + typing/typecore.cmi \ + typing/subst.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/includeclass.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace_report.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + file_formats/cmt_format.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ typing/typeclass.cmi -typing/typeclass.cmx : utils/warnings.cmx typing/typetexp.cmx \ - typing/types.cmx typing/typedtree.cmx typing/typedecl.cmx \ - typing/typecore.cmx parsing/syntaxerr.cmx typing/subst.cmx \ - typing/stypes.cmx typing/printtyp.cmx typing/predef.cmx typing/path.cmx \ - parsing/parsetree.cmi utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx typing/includeclass.cmx typing/ident.cmx \ - typing/env.cmx typing/ctype.cmx typing/cmt_format.cmx utils/clflags.cmx \ - typing/btype.cmx parsing/asttypes.cmi parsing/ast_helper.cmx \ +typing/typeclass.cmx : \ + utils/warnings.cmx \ + typing/typetexp.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/typedecl_variance.cmx \ + typing/typedecl.cmx \ + typing/typecore.cmx \ + typing/subst.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + typing/out_type.cmx \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/includeclass.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace_report.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + file_formats/cmt_format.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ typing/typeclass.cmi -typing/typecore.cmo : utils/warnings.cmi typing/typetexp.cmi \ - typing/types.cmi typing/typedtree.cmi parsing/syntaxerr.cmi \ - typing/subst.cmi typing/stypes.cmi typing/printtyp.cmi \ - typing/primitive.cmi typing/predef.cmi typing/path.cmi \ - parsing/parsetree.cmi typing/parmatch.cmi typing/oprint.cmi \ - utils/misc.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi typing/env.cmi typing/ctype.cmi typing/cmt_format.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - parsing/ast_helper.cmi typing/annot.cmi typing/typecore.cmi -typing/typecore.cmx : utils/warnings.cmx typing/typetexp.cmx \ - typing/types.cmx typing/typedtree.cmx parsing/syntaxerr.cmx \ - typing/subst.cmx typing/stypes.cmx typing/printtyp.cmx \ - typing/primitive.cmx typing/predef.cmx typing/path.cmx \ - parsing/parsetree.cmi typing/parmatch.cmx typing/oprint.cmx \ - utils/misc.cmx parsing/longident.cmx parsing/location.cmx \ - typing/ident.cmx typing/env.cmx typing/ctype.cmx typing/cmt_format.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - parsing/ast_helper.cmx typing/annot.cmi typing/typecore.cmi -typing/typedecl.cmo : utils/warnings.cmi typing/typetexp.cmi \ - typing/types.cmi typing/typedtree.cmi parsing/syntaxerr.cmi \ - typing/subst.cmi typing/printtyp.cmi typing/primitive.cmi \ - typing/predef.cmi typing/path.cmi parsing/parsetree.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi typing/includecore.cmi \ - typing/ident.cmi typing/env.cmi typing/ctype.cmi utils/config.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - parsing/ast_helper.cmi typing/typedecl.cmi -typing/typedecl.cmx : utils/warnings.cmx typing/typetexp.cmx \ - typing/types.cmx typing/typedtree.cmx parsing/syntaxerr.cmx \ - typing/subst.cmx typing/printtyp.cmx typing/primitive.cmx \ - typing/predef.cmx typing/path.cmx parsing/parsetree.cmi utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx typing/includecore.cmx \ - typing/ident.cmx typing/env.cmx typing/ctype.cmx utils/config.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - parsing/ast_helper.cmx typing/typedecl.cmi -typing/typedtreeIter.cmo : typing/typedtree.cmi utils/misc.cmi \ - parsing/asttypes.cmi typing/typedtreeIter.cmi -typing/typedtreeIter.cmx : typing/typedtree.cmx utils/misc.cmx \ - parsing/asttypes.cmi typing/typedtreeIter.cmi -typing/typedtreeMap.cmo : typing/typedtree.cmi utils/misc.cmi \ - typing/typedtreeMap.cmi -typing/typedtreeMap.cmx : typing/typedtree.cmx utils/misc.cmx \ - typing/typedtreeMap.cmi -typing/typedtree.cmo : typing/types.cmi typing/primitive.cmi typing/path.cmi \ - parsing/parsetree.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi typing/ident.cmi typing/env.cmi parsing/asttypes.cmi \ +typing/typeclass.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + parsing/asttypes.cmi +typing/typecore.cmo : \ + utils/warnings.cmi \ + typing/value_rec_check.cmi \ + typing/untypeast.cmi \ + typing/typetexp.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl.cmi \ + typing/subst.cmi \ + typing/shape.cmi \ + typing/printtyp.cmi \ + typing/printpat.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + parsing/pprintast.cmi \ + typing/persistent_env.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/parmatch.cmi \ + typing/out_type.cmi \ + typing/mtype.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace_report.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + typing/ctype.cmi \ + file_formats/cmt_format.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + typing/typecore.cmi +typing/typecore.cmx : \ + utils/warnings.cmx \ + typing/value_rec_check.cmx \ + typing/untypeast.cmx \ + typing/typetexp.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/typedecl.cmx \ + typing/subst.cmx \ + typing/shape.cmx \ + typing/printtyp.cmx \ + typing/printpat.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + parsing/pprintast.cmx \ + typing/persistent_env.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + typing/parmatch.cmx \ + typing/out_type.cmx \ + typing/mtype.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace_report.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + typing/ctype.cmx \ + file_formats/cmt_format.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ + typing/typecore.cmi +typing/typecore.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi +typing/typedecl.cmo : \ + utils/warnings.cmi \ + typing/typetexp.cmi \ + typing/types.cmi \ + typing/typeopt.cmi \ + typing/typedtree.cmi \ + typing/typedecl_variance.cmi \ + typing/typedecl_unboxed.cmi \ + typing/typedecl_separability.cmi \ + typing/typedecl_immediacy.cmi \ + typing/type_immediacy.cmi \ + typing/subst.cmi \ + typing/shape.cmi \ + typing/printtyp.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + parsing/pprintast.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/includecore.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace_report.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + typing/ctype.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/attr_helper.cmi \ + parsing/asttypes.cmi \ + parsing/ast_iterator.cmi \ + parsing/ast_helper.cmi \ + typing/typedecl.cmi +typing/typedecl.cmx : \ + utils/warnings.cmx \ + typing/typetexp.cmx \ + typing/types.cmx \ + typing/typeopt.cmx \ + typing/typedtree.cmx \ + typing/typedecl_variance.cmx \ + typing/typedecl_unboxed.cmx \ + typing/typedecl_separability.cmx \ + typing/typedecl_immediacy.cmx \ + typing/type_immediacy.cmx \ + typing/subst.cmx \ + typing/shape.cmx \ + typing/printtyp.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + parsing/pprintast.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + typing/out_type.cmx \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/includecore.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace_report.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + typing/ctype.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/attr_helper.cmx \ + parsing/asttypes.cmx \ + parsing/ast_iterator.cmx \ + parsing/ast_helper.cmx \ + typing/typedecl.cmi +typing/typedecl.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl_variance.cmi \ + typing/typedecl_separability.cmi \ + typing/typedecl_immediacy.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/includecore.cmi \ + typing/ident.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi +typing/typedecl_immediacy.cmo : \ + typing/types.cmi \ + typing/typedecl_unboxed.cmi \ + typing/typedecl_properties.cmi \ + typing/type_immediacy.cmi \ + parsing/location.cmi \ + typing/ctype.cmi \ + typing/typedecl_immediacy.cmi +typing/typedecl_immediacy.cmx : \ + typing/types.cmx \ + typing/typedecl_unboxed.cmx \ + typing/typedecl_properties.cmx \ + typing/type_immediacy.cmx \ + parsing/location.cmx \ + typing/ctype.cmx \ + typing/typedecl_immediacy.cmi +typing/typedecl_immediacy.cmi : \ + typing/types.cmi \ + typing/typedecl_properties.cmi \ + typing/type_immediacy.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi +typing/typedecl_properties.cmo : \ + typing/types.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + parsing/builtin_attributes.cmi \ + typing/typedecl_properties.cmi +typing/typedecl_properties.cmx : \ + typing/types.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + parsing/builtin_attributes.cmx \ + typing/typedecl_properties.cmi +typing/typedecl_properties.cmi : \ + typing/types.cmi \ + typing/ident.cmi \ + typing/env.cmi +typing/typedecl_separability.cmo : \ + typing/types.cmi \ + typing/typedecl_properties.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + utils/config.cmi \ + typing/btype.cmi \ + typing/typedecl_separability.cmi +typing/typedecl_separability.cmx : \ + typing/types.cmx \ + typing/typedecl_properties.cmx \ + parsing/location.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + utils/config.cmx \ + typing/btype.cmx \ + typing/typedecl_separability.cmi +typing/typedecl_separability.cmi : \ + typing/types.cmi \ + typing/typedecl_properties.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi +typing/typedecl_unboxed.cmo : \ + typing/types.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + typing/typedecl_unboxed.cmi +typing/typedecl_unboxed.cmx : \ + typing/types.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + typing/typedecl_unboxed.cmi +typing/typedecl_unboxed.cmi : \ + typing/types.cmi \ + typing/env.cmi +typing/typedecl_variance.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl_properties.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + typing/typedecl_variance.cmi +typing/typedecl_variance.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/typedecl_properties.cmx \ + parsing/parsetree.cmi \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + typing/typedecl_variance.cmi +typing/typedecl_variance.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl_properties.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi +typing/typedtree.cmo : \ + typing/value_rec_types.cmi \ + typing/types.cmi \ + typing/shape.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi \ typing/typedtree.cmi -typing/typedtree.cmx : typing/types.cmx typing/primitive.cmx typing/path.cmx \ - parsing/parsetree.cmi utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx typing/ident.cmx typing/env.cmx parsing/asttypes.cmi \ +typing/typedtree.cmx : \ + typing/value_rec_types.cmi \ + typing/types.cmx \ + typing/shape.cmx \ + typing/primitive.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + parsing/asttypes.cmx \ typing/typedtree.cmi -typing/typemod.cmo : utils/warnings.cmi typing/typetexp.cmi typing/types.cmi \ - typing/typedtree.cmi typing/typedecl.cmi typing/typecore.cmi \ - typing/typeclass.cmi typing/subst.cmi typing/stypes.cmi \ - typing/printtyp.cmi typing/path.cmi parsing/parsetree.cmi \ - typing/mtype.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi typing/includemod.cmi typing/ident.cmi \ - typing/env.cmi typing/ctype.cmi utils/config.cmi typing/cmt_format.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - parsing/ast_mapper.cmi typing/annot.cmi typing/typemod.cmi -typing/typemod.cmx : utils/warnings.cmx typing/typetexp.cmx typing/types.cmx \ - typing/typedtree.cmx typing/typedecl.cmx typing/typecore.cmx \ - typing/typeclass.cmx typing/subst.cmx typing/stypes.cmx \ - typing/printtyp.cmx typing/path.cmx parsing/parsetree.cmi \ - typing/mtype.cmx utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx typing/includemod.cmx typing/ident.cmx \ - typing/env.cmx typing/ctype.cmx utils/config.cmx typing/cmt_format.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - parsing/ast_mapper.cmx typing/annot.cmi typing/typemod.cmi -typing/types.cmo : typing/primitive.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/longident.cmi parsing/location.cmi \ - typing/ident.cmi parsing/asttypes.cmi typing/types.cmi -typing/types.cmx : typing/primitive.cmx typing/path.cmx \ - parsing/parsetree.cmi parsing/longident.cmx parsing/location.cmx \ - typing/ident.cmx parsing/asttypes.cmi typing/types.cmi -typing/typetexp.cmo : utils/warnings.cmi typing/types.cmi \ - typing/typedtree.cmi utils/tbl.cmi parsing/syntaxerr.cmi \ - typing/printtyp.cmi typing/path.cmi parsing/parsetree.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi typing/env.cmi \ - typing/ctype.cmi utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - parsing/ast_mapper.cmi parsing/ast_helper.cmi typing/typetexp.cmi -typing/typetexp.cmx : utils/warnings.cmx typing/types.cmx \ - typing/typedtree.cmx utils/tbl.cmx parsing/syntaxerr.cmx \ - typing/printtyp.cmx typing/path.cmx parsing/parsetree.cmi utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx typing/env.cmx \ - typing/ctype.cmx utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - parsing/ast_mapper.cmx parsing/ast_helper.cmx typing/typetexp.cmi -bytecomp/bytegen.cmi : bytecomp/lambda.cmi bytecomp/instruct.cmi -bytecomp/bytelibrarian.cmi : -bytecomp/bytelink.cmi : bytecomp/symtable.cmi bytecomp/cmo_format.cmi -bytecomp/bytepackager.cmi : typing/ident.cmi typing/env.cmi -bytecomp/bytesections.cmi : -bytecomp/cmo_format.cmi : bytecomp/lambda.cmi typing/ident.cmi -bytecomp/dll.cmi : -bytecomp/emitcode.cmi : bytecomp/instruct.cmi bytecomp/cmo_format.cmi -bytecomp/instruct.cmi : typing/types.cmi typing/subst.cmi \ - parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi -bytecomp/lambda.cmi : typing/types.cmi typing/primitive.cmi typing/path.cmi \ - parsing/location.cmi typing/ident.cmi typing/env.cmi parsing/asttypes.cmi -bytecomp/matching.cmi : typing/typedtree.cmi parsing/location.cmi \ - bytecomp/lambda.cmi typing/ident.cmi -bytecomp/meta.cmi : -bytecomp/printinstr.cmi : bytecomp/instruct.cmi -bytecomp/printlambda.cmi : bytecomp/lambda.cmi -bytecomp/runtimedef.cmi : -bytecomp/simplif.cmi : bytecomp/lambda.cmi -bytecomp/switch.cmi : -bytecomp/symtable.cmi : utils/misc.cmi typing/ident.cmi \ - bytecomp/cmo_format.cmi -bytecomp/translclass.cmi : typing/typedtree.cmi parsing/location.cmi \ - bytecomp/lambda.cmi typing/ident.cmi parsing/asttypes.cmi -bytecomp/translcore.cmi : typing/typedtree.cmi typing/primitive.cmi \ - typing/path.cmi parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi \ +typing/typedtree.cmi : \ + typing/value_rec_types.cmi \ + typing/types.cmi \ + typing/shape.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi +typing/typemod.cmo : \ + utils/warnings.cmi \ + parsing/unit_info.cmi \ + typing/typetexp.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl_immediacy.cmi \ + typing/typedecl.cmi \ + typing/typecore.cmi \ + typing/typeclass.cmi \ + typing/subst.cmi \ + typing/signature_group.cmi \ + typing/shape_reduce.cmi \ + typing/shape.cmi \ + typing/printtyp.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + typing/out_type.cmi \ + typing/mtype.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/includemod_errorprinter.cmi \ + typing/includemod.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + file_formats/cmt_format.cmi \ + typing/cmt2annot.cmi \ + file_formats/cmi_format.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/attr_helper.cmi \ + parsing/asttypes.cmi \ + typing/typemod.cmi +typing/typemod.cmx : \ + utils/warnings.cmx \ + parsing/unit_info.cmx \ + typing/typetexp.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/typedecl_immediacy.cmx \ + typing/typedecl.cmx \ + typing/typecore.cmx \ + typing/typeclass.cmx \ + typing/subst.cmx \ + typing/signature_group.cmx \ + typing/shape_reduce.cmx \ + typing/shape.cmx \ + typing/printtyp.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + typing/out_type.cmx \ + typing/mtype.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + typing/includemod_errorprinter.cmx \ + typing/includemod.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + file_formats/cmt_format.cmx \ + typing/cmt2annot.cmx \ + file_formats/cmi_format.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/attr_helper.cmx \ + parsing/asttypes.cmx \ + typing/typemod.cmi +typing/typemod.cmi : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl.cmi \ + typing/shape.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/includemod.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + file_formats/cmi_format.cmi +typing/typeopt.cmo : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/typedecl_unboxed.cmi \ + typing/type_immediacy.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + typing/typeopt.cmi +typing/typeopt.cmx : \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/typedecl_unboxed.cmx \ + typing/type_immediacy.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + typing/typeopt.cmi +typing/typeopt.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/path.cmi \ + lambda/lambda.cmi \ + typing/env.cmi +typing/types.cmo : \ + typing/type_immediacy.cmi \ + typing/shape.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/local_store.cmi \ + typing/ident.cmi \ + utils/config.cmi \ + parsing/asttypes.cmi \ + typing/types.cmi +typing/types.cmx : \ + typing/type_immediacy.cmx \ + typing/shape.cmx \ + typing/primitive.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/local_store.cmx \ + typing/ident.cmx \ + utils/config.cmx \ + parsing/asttypes.cmx \ + typing/types.cmi +typing/types.cmi : \ + typing/type_immediacy.cmi \ + typing/shape.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ parsing/asttypes.cmi -bytecomp/translmod.cmi : typing/typedtree.cmi typing/primitive.cmi \ - parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi -bytecomp/translobj.cmi : bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi -bytecomp/typeopt.cmi : typing/typedtree.cmi typing/path.cmi \ - bytecomp/lambda.cmi -bytecomp/bytegen.cmo : typing/types.cmi bytecomp/switch.cmi typing/subst.cmi \ - typing/primitive.cmi utils/misc.cmi bytecomp/matching.cmi \ - bytecomp/lambda.cmi bytecomp/instruct.cmi typing/ident.cmi \ - utils/config.cmi parsing/asttypes.cmi bytecomp/bytegen.cmi -bytecomp/bytegen.cmx : typing/types.cmx bytecomp/switch.cmx typing/subst.cmx \ - typing/primitive.cmx utils/misc.cmx bytecomp/matching.cmx \ - bytecomp/lambda.cmx bytecomp/instruct.cmx typing/ident.cmx \ - utils/config.cmx parsing/asttypes.cmi bytecomp/bytegen.cmi -bytecomp/bytelibrarian.cmo : utils/misc.cmi parsing/location.cmi \ - utils/config.cmi bytecomp/cmo_format.cmi utils/clflags.cmi \ - bytecomp/bytelink.cmi bytecomp/bytelibrarian.cmi -bytecomp/bytelibrarian.cmx : utils/misc.cmx parsing/location.cmx \ - utils/config.cmx bytecomp/cmo_format.cmi utils/clflags.cmx \ - bytecomp/bytelink.cmx bytecomp/bytelibrarian.cmi -bytecomp/bytelink.cmo : utils/warnings.cmi bytecomp/symtable.cmi \ - bytecomp/opcodes.cmo utils/misc.cmi parsing/location.cmi \ - bytecomp/instruct.cmi typing/ident.cmi bytecomp/dll.cmi \ - utils/consistbl.cmi utils/config.cmi bytecomp/cmo_format.cmi \ - utils/clflags.cmi utils/ccomp.cmi bytecomp/bytesections.cmi \ +typing/typetexp.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + parsing/pprintast.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + typing/errortrace_report.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + parsing/builtin_attributes.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + typing/typetexp.cmi +typing/typetexp.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + parsing/pprintast.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + typing/out_type.cmx \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + typing/errortrace_report.cmx \ + typing/errortrace.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + parsing/builtin_attributes.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ + typing/typetexp.cmi +typing/typetexp.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/errortrace.cmi \ + typing/env.cmi \ + parsing/asttypes.cmi +typing/untypeast.cmo : \ + typing/typedtree.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + typing/untypeast.cmi +typing/untypeast.cmx : \ + typing/typedtree.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ + typing/untypeast.cmi +typing/untypeast.cmi : \ + typing/typedtree.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/asttypes.cmi +typing/value_rec_check.cmo : \ + typing/value_rec_types.cmi \ + typing/types.cmi \ + typing/typeopt.cmi \ + typing/typedtree.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + parsing/asttypes.cmi \ + typing/value_rec_check.cmi +typing/value_rec_check.cmx : \ + typing/value_rec_types.cmi \ + typing/types.cmx \ + typing/typeopt.cmx \ + typing/typedtree.cmx \ + typing/primitive.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + parsing/asttypes.cmx \ + typing/value_rec_check.cmi +typing/value_rec_check.cmi : \ + typing/value_rec_types.cmi \ + typing/typedtree.cmi \ + typing/ident.cmi +typing/value_rec_types.cmi : +bytecomp/bytegen.cmo : \ + lambda/switch.cmi \ + typing/subst.cmi \ + typing/primitive.cmi \ + utils/misc.cmi \ + lambda/matching.cmi \ + lambda/lambda.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + bytecomp/bytegen.cmi +bytecomp/bytegen.cmx : \ + lambda/switch.cmx \ + typing/subst.cmx \ + typing/primitive.cmx \ + utils/misc.cmx \ + lambda/matching.cmx \ + lambda/lambda.cmx \ + bytecomp/instruct.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + bytecomp/bytegen.cmi +bytecomp/bytegen.cmi : \ + lambda/lambda.cmi \ + bytecomp/instruct.cmi +bytecomp/bytelibrarian.cmo : \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/linkdeps.cmi \ + utils/format_doc.cmi \ + bytecomp/emitcode.cmi \ + utils/config.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + bytecomp/bytelink.cmi \ + bytecomp/bytelibrarian.cmi +bytecomp/bytelibrarian.cmx : \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/linkdeps.cmx \ + utils/format_doc.cmx \ + bytecomp/emitcode.cmx \ + utils/config.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + bytecomp/bytelink.cmx \ + bytecomp/bytelibrarian.cmi +bytecomp/bytelibrarian.cmi : \ + utils/linkdeps.cmi \ + utils/format_doc.cmi +bytecomp/bytelink.cmo : \ + bytecomp/symtable.cmi \ + bytecomp/opcodes.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/linkdeps.cmi \ + bytecomp/instruct.cmi \ + utils/format_doc.cmi \ + bytecomp/emitcode.cmi \ + bytecomp/dll.cmi \ + utils/consistbl.cmi \ + utils/config.cmi \ + utils/compression.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + bytecomp/bytesections.cmi \ bytecomp/bytelink.cmi -bytecomp/bytelink.cmx : utils/warnings.cmx bytecomp/symtable.cmx \ - bytecomp/opcodes.cmx utils/misc.cmx parsing/location.cmx \ - bytecomp/instruct.cmx typing/ident.cmx bytecomp/dll.cmx \ - utils/consistbl.cmx utils/config.cmx bytecomp/cmo_format.cmi \ - utils/clflags.cmx utils/ccomp.cmx bytecomp/bytesections.cmx \ +bytecomp/bytelink.cmx : \ + bytecomp/symtable.cmx \ + bytecomp/opcodes.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/linkdeps.cmx \ + bytecomp/instruct.cmx \ + utils/format_doc.cmx \ + bytecomp/emitcode.cmx \ + bytecomp/dll.cmx \ + utils/consistbl.cmx \ + utils/config.cmx \ + utils/compression.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + bytecomp/bytesections.cmx \ bytecomp/bytelink.cmi -bytecomp/bytepackager.cmo : typing/typemod.cmi bytecomp/translmod.cmi \ - typing/subst.cmi bytecomp/printlambda.cmi typing/path.cmi utils/misc.cmi \ - parsing/location.cmi bytecomp/instruct.cmi typing/ident.cmi \ - typing/env.cmi bytecomp/emitcode.cmi utils/config.cmi \ - bytecomp/cmo_format.cmi utils/clflags.cmi bytecomp/bytelink.cmi \ - bytecomp/bytegen.cmi bytecomp/bytepackager.cmi -bytecomp/bytepackager.cmx : typing/typemod.cmx bytecomp/translmod.cmx \ - typing/subst.cmx bytecomp/printlambda.cmx typing/path.cmx utils/misc.cmx \ - parsing/location.cmx bytecomp/instruct.cmx typing/ident.cmx \ - typing/env.cmx bytecomp/emitcode.cmx utils/config.cmx \ - bytecomp/cmo_format.cmi utils/clflags.cmx bytecomp/bytelink.cmx \ - bytecomp/bytegen.cmx bytecomp/bytepackager.cmi -bytecomp/bytesections.cmo : utils/config.cmi bytecomp/bytesections.cmi -bytecomp/bytesections.cmx : utils/config.cmx bytecomp/bytesections.cmi -bytecomp/dll.cmo : utils/misc.cmi utils/config.cmi bytecomp/dll.cmi -bytecomp/dll.cmx : utils/misc.cmx utils/config.cmx bytecomp/dll.cmi -bytecomp/emitcode.cmo : bytecomp/translmod.cmi typing/primitive.cmi \ - bytecomp/opcodes.cmo utils/misc.cmi bytecomp/meta.cmi \ - parsing/location.cmi bytecomp/lambda.cmi bytecomp/instruct.cmi \ - typing/env.cmi utils/config.cmi bytecomp/cmo_format.cmi utils/clflags.cmi \ - typing/btype.cmi parsing/asttypes.cmi bytecomp/emitcode.cmi -bytecomp/emitcode.cmx : bytecomp/translmod.cmx typing/primitive.cmx \ - bytecomp/opcodes.cmx utils/misc.cmx bytecomp/meta.cmx \ - parsing/location.cmx bytecomp/lambda.cmx bytecomp/instruct.cmx \ - typing/env.cmx utils/config.cmx bytecomp/cmo_format.cmi utils/clflags.cmx \ - typing/btype.cmx parsing/asttypes.cmi bytecomp/emitcode.cmi -bytecomp/instruct.cmo : typing/types.cmi typing/subst.cmi \ - parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi \ +bytecomp/bytelink.cmi : \ + bytecomp/symtable.cmi \ + utils/misc.cmi \ + utils/linkdeps.cmi \ + utils/format_doc.cmi \ + file_formats/cmo_format.cmi +bytecomp/bytepackager.cmo : \ + parsing/unit_info.cmi \ + typing/typemod.cmi \ + lambda/translmod.cmi \ + bytecomp/symtable.cmi \ + typing/subst.cmi \ + lambda/simplif.cmi \ + lambda/printlambda.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + bytecomp/emitcode.cmi \ + utils/config.cmi \ + utils/compression.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + bytecomp/bytelink.cmi \ + bytecomp/bytegen.cmi \ + bytecomp/bytepackager.cmi +bytecomp/bytepackager.cmx : \ + parsing/unit_info.cmx \ + typing/typemod.cmx \ + lambda/translmod.cmx \ + bytecomp/symtable.cmx \ + typing/subst.cmx \ + lambda/simplif.cmx \ + lambda/printlambda.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + bytecomp/instruct.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + bytecomp/emitcode.cmx \ + utils/config.cmx \ + utils/compression.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + bytecomp/bytelink.cmx \ + bytecomp/bytegen.cmx \ + bytecomp/bytepackager.cmi +bytecomp/bytepackager.cmi : \ + utils/format_doc.cmi \ + typing/env.cmi \ + file_formats/cmo_format.cmi +bytecomp/bytesections.cmo : \ + utils/config.cmi \ + bytecomp/bytesections.cmi +bytecomp/bytesections.cmx : \ + utils/config.cmx \ + bytecomp/bytesections.cmi +bytecomp/bytesections.cmi : +bytecomp/dll.cmo : \ + utils/misc.cmi \ + utils/config.cmi \ + utils/binutils.cmi \ + bytecomp/dll.cmi +bytecomp/dll.cmx : \ + utils/misc.cmx \ + utils/config.cmx \ + utils/binutils.cmx \ + bytecomp/dll.cmi +bytecomp/dll.cmi : +bytecomp/emitcode.cmo : \ + parsing/unit_info.cmi \ + lambda/translmod.cmi \ + bytecomp/symtable.cmi \ + typing/primitive.cmi \ + bytecomp/opcodes.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + utils/config.cmi \ + utils/compression.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + bytecomp/bytegen.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + bytecomp/emitcode.cmi +bytecomp/emitcode.cmx : \ + parsing/unit_info.cmx \ + lambda/translmod.cmx \ + bytecomp/symtable.cmx \ + typing/primitive.cmx \ + bytecomp/opcodes.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + bytecomp/instruct.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + utils/config.cmx \ + utils/compression.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + bytecomp/bytegen.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + bytecomp/emitcode.cmi +bytecomp/emitcode.cmi : \ + parsing/unit_info.cmi \ + utils/misc.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ + file_formats/cmo_format.cmi +bytecomp/instruct.cmo : \ + typing/types.cmi \ + typing/subst.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi \ bytecomp/instruct.cmi -bytecomp/instruct.cmx : typing/types.cmx typing/subst.cmx \ - parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx \ +bytecomp/instruct.cmx : \ + typing/types.cmx \ + typing/subst.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + bytecomp/instruct.cmi +bytecomp/instruct.cmi : \ + typing/types.cmi \ + typing/subst.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi +bytecomp/meta.cmo : \ + bytecomp/instruct.cmi \ + bytecomp/meta.cmi +bytecomp/meta.cmx : \ + bytecomp/instruct.cmx \ + bytecomp/meta.cmi +bytecomp/meta.cmi : \ bytecomp/instruct.cmi -bytecomp/lambda.cmo : typing/types.cmi typing/primitive.cmi typing/path.cmi \ - utils/misc.cmi parsing/location.cmi typing/ident.cmi typing/env.cmi \ - parsing/asttypes.cmi bytecomp/lambda.cmi -bytecomp/lambda.cmx : typing/types.cmx typing/primitive.cmx typing/path.cmx \ - utils/misc.cmx parsing/location.cmx typing/ident.cmx typing/env.cmx \ - parsing/asttypes.cmi bytecomp/lambda.cmi -bytecomp/matching.cmo : typing/types.cmi bytecomp/typeopt.cmi \ - typing/typedtree.cmi bytecomp/switch.cmi bytecomp/printlambda.cmi \ - typing/primitive.cmi typing/predef.cmi typing/path.cmi \ - typing/parmatch.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - bytecomp/matching.cmi -bytecomp/matching.cmx : typing/types.cmx bytecomp/typeopt.cmx \ - typing/typedtree.cmx bytecomp/switch.cmx bytecomp/printlambda.cmx \ - typing/primitive.cmx typing/predef.cmx typing/path.cmx \ - typing/parmatch.cmx utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - bytecomp/matching.cmi -bytecomp/meta.cmo : bytecomp/meta.cmi -bytecomp/meta.cmx : bytecomp/meta.cmi -bytecomp/opcodes.cmo : -bytecomp/opcodes.cmx : -bytecomp/printinstr.cmo : bytecomp/printlambda.cmi parsing/location.cmi \ - bytecomp/lambda.cmi bytecomp/instruct.cmi typing/ident.cmi \ +bytecomp/opcodes.cmo : \ + bytecomp/opcodes.cmi +bytecomp/opcodes.cmx : \ + bytecomp/opcodes.cmi +bytecomp/opcodes.cmi : +bytecomp/printinstr.cmo : \ + lambda/printlambda.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ bytecomp/printinstr.cmi -bytecomp/printinstr.cmx : bytecomp/printlambda.cmx parsing/location.cmx \ - bytecomp/lambda.cmx bytecomp/instruct.cmx typing/ident.cmx \ +bytecomp/printinstr.cmx : \ + lambda/printlambda.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + bytecomp/instruct.cmx \ + typing/ident.cmx \ bytecomp/printinstr.cmi -bytecomp/printlambda.cmo : typing/types.cmi typing/primitive.cmi \ - parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi \ - parsing/asttypes.cmi bytecomp/printlambda.cmi -bytecomp/printlambda.cmx : typing/types.cmx typing/primitive.cmx \ - parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx \ - parsing/asttypes.cmi bytecomp/printlambda.cmi -bytecomp/runtimedef.cmo : bytecomp/runtimedef.cmi -bytecomp/runtimedef.cmx : bytecomp/runtimedef.cmi -bytecomp/simplif.cmo : utils/tbl.cmi typing/stypes.cmi utils/misc.cmi \ - bytecomp/lambda.cmi typing/ident.cmi utils/clflags.cmi \ - parsing/asttypes.cmi typing/annot.cmi bytecomp/simplif.cmi -bytecomp/simplif.cmx : utils/tbl.cmx typing/stypes.cmx utils/misc.cmx \ - bytecomp/lambda.cmx typing/ident.cmx utils/clflags.cmx \ - parsing/asttypes.cmi typing/annot.cmi bytecomp/simplif.cmi -bytecomp/switch.cmo : bytecomp/switch.cmi -bytecomp/switch.cmx : bytecomp/switch.cmi -bytecomp/symtable.cmo : utils/tbl.cmi bytecomp/runtimedef.cmi \ - typing/predef.cmi utils/misc.cmi bytecomp/meta.cmi parsing/location.cmi \ - bytecomp/lambda.cmi typing/ident.cmi bytecomp/dll.cmi utils/config.cmi \ - bytecomp/cmo_format.cmi utils/clflags.cmi bytecomp/bytesections.cmi \ - parsing/asttypes.cmi bytecomp/symtable.cmi -bytecomp/symtable.cmx : utils/tbl.cmx bytecomp/runtimedef.cmx \ - typing/predef.cmx utils/misc.cmx bytecomp/meta.cmx parsing/location.cmx \ - bytecomp/lambda.cmx typing/ident.cmx bytecomp/dll.cmx utils/config.cmx \ - bytecomp/cmo_format.cmi utils/clflags.cmx bytecomp/bytesections.cmx \ - parsing/asttypes.cmi bytecomp/symtable.cmi -bytecomp/translclass.cmo : typing/types.cmi bytecomp/typeopt.cmi \ - typing/typedtree.cmi bytecomp/translobj.cmi bytecomp/translcore.cmi \ - typing/path.cmi bytecomp/matching.cmi parsing/location.cmi \ - bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi utils/clflags.cmi \ - typing/btype.cmi parsing/asttypes.cmi bytecomp/translclass.cmi -bytecomp/translclass.cmx : typing/types.cmx bytecomp/typeopt.cmx \ - typing/typedtree.cmx bytecomp/translobj.cmx bytecomp/translcore.cmx \ - typing/path.cmx bytecomp/matching.cmx parsing/location.cmx \ - bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx utils/clflags.cmx \ - typing/btype.cmx parsing/asttypes.cmi bytecomp/translclass.cmi -bytecomp/translcore.cmo : typing/types.cmi bytecomp/typeopt.cmi \ - typing/typedtree.cmi bytecomp/translobj.cmi typing/primitive.cmi \ - typing/predef.cmi typing/path.cmi typing/parmatch.cmi utils/misc.cmi \ - bytecomp/matching.cmi parsing/longident.cmi parsing/location.cmi \ - bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi utils/config.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - bytecomp/translcore.cmi -bytecomp/translcore.cmx : typing/types.cmx bytecomp/typeopt.cmx \ - typing/typedtree.cmx bytecomp/translobj.cmx typing/primitive.cmx \ - typing/predef.cmx typing/path.cmx typing/parmatch.cmx utils/misc.cmx \ - bytecomp/matching.cmx parsing/longident.cmx parsing/location.cmx \ - bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx utils/config.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - bytecomp/translcore.cmi -bytecomp/translmod.cmo : typing/types.cmi typing/typedtree.cmi \ - bytecomp/translobj.cmi bytecomp/translcore.cmi bytecomp/translclass.cmi \ - typing/printtyp.cmi typing/primitive.cmi typing/predef.cmi \ - typing/path.cmi typing/mtype.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi \ - typing/ctype.cmi parsing/asttypes.cmi bytecomp/translmod.cmi -bytecomp/translmod.cmx : typing/types.cmx typing/typedtree.cmx \ - bytecomp/translobj.cmx bytecomp/translcore.cmx bytecomp/translclass.cmx \ - typing/printtyp.cmx typing/primitive.cmx typing/predef.cmx \ - typing/path.cmx typing/mtype.cmx utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx \ - typing/ctype.cmx parsing/asttypes.cmi bytecomp/translmod.cmi -bytecomp/translobj.cmo : typing/primitive.cmi utils/misc.cmi \ - parsing/longident.cmi bytecomp/lambda.cmi typing/ident.cmi typing/env.cmi \ - utils/clflags.cmi typing/btype.cmi parsing/asttypes.cmi \ - bytecomp/translobj.cmi -bytecomp/translobj.cmx : typing/primitive.cmx utils/misc.cmx \ - parsing/longident.cmx bytecomp/lambda.cmx typing/ident.cmx typing/env.cmx \ - utils/clflags.cmx typing/btype.cmx parsing/asttypes.cmi \ - bytecomp/translobj.cmi -bytecomp/typeopt.cmo : typing/types.cmi typing/typedtree.cmi \ - typing/predef.cmi typing/path.cmi bytecomp/lambda.cmi typing/ident.cmi \ - typing/env.cmi typing/ctype.cmi bytecomp/typeopt.cmi -bytecomp/typeopt.cmx : typing/types.cmx typing/typedtree.cmx \ - typing/predef.cmx typing/path.cmx bytecomp/lambda.cmx typing/ident.cmx \ - typing/env.cmx typing/ctype.cmx bytecomp/typeopt.cmi -asmcomp/asmgen.cmi : bytecomp/lambda.cmi asmcomp/cmm.cmi -asmcomp/asmlibrarian.cmi : -asmcomp/asmlink.cmi : asmcomp/cmx_format.cmi -asmcomp/asmpackager.cmi : typing/env.cmi -asmcomp/branch_relaxation.cmi : asmcomp/linearize.cmi \ - asmcomp/branch_relaxation_intf.cmo -asmcomp/clambda.cmi : bytecomp/lambda.cmi typing/ident.cmi \ - asmcomp/debuginfo.cmi parsing/asttypes.cmi -asmcomp/closure.cmi : bytecomp/lambda.cmi asmcomp/clambda.cmi -asmcomp/cmmgen.cmi : asmcomp/cmx_format.cmi asmcomp/cmm.cmi \ - asmcomp/clambda.cmi -asmcomp/cmm.cmi : bytecomp/lambda.cmi typing/ident.cmi asmcomp/debuginfo.cmi -asmcomp/cmx_format.cmi : asmcomp/clambda.cmi -asmcomp/codegen.cmi : asmcomp/cmm.cmi -asmcomp/coloring.cmi : -asmcomp/comballoc.cmi : asmcomp/mach.cmi -asmcomp/compilenv.cmi : typing/ident.cmi asmcomp/cmx_format.cmi \ - asmcomp/clambda.cmi -asmcomp/CSEgen.cmi : asmcomp/mach.cmi -asmcomp/deadcode.cmi : asmcomp/mach.cmi -asmcomp/debuginfo.cmi : parsing/location.cmi bytecomp/lambda.cmi -asmcomp/emitaux.cmi : asmcomp/debuginfo.cmi -asmcomp/emit.cmi : asmcomp/linearize.cmi asmcomp/cmm.cmi -asmcomp/interf.cmi : asmcomp/mach.cmi -asmcomp/linearize.cmi : asmcomp/reg.cmi asmcomp/mach.cmi bytecomp/lambda.cmi \ - asmcomp/debuginfo.cmi -asmcomp/liveness.cmi : asmcomp/mach.cmi -asmcomp/mach.cmi : asmcomp/reg.cmi bytecomp/lambda.cmi asmcomp/debuginfo.cmi \ - asmcomp/cmm.cmi asmcomp/arch.cmo -asmcomp/printclambda.cmi : asmcomp/clambda.cmi -asmcomp/printcmm.cmi : asmcomp/cmm.cmi -asmcomp/printlinear.cmi : asmcomp/linearize.cmi -asmcomp/printmach.cmi : asmcomp/reg.cmi asmcomp/mach.cmi -asmcomp/proc.cmi : asmcomp/reg.cmi asmcomp/mach.cmi -asmcomp/reg.cmi : typing/ident.cmi asmcomp/cmm.cmi -asmcomp/reloadgen.cmi : asmcomp/reg.cmi asmcomp/mach.cmi -asmcomp/reload.cmi : asmcomp/mach.cmi -asmcomp/schedgen.cmi : asmcomp/mach.cmi asmcomp/linearize.cmi -asmcomp/scheduling.cmi : asmcomp/linearize.cmi -asmcomp/selectgen.cmi : utils/tbl.cmi asmcomp/reg.cmi asmcomp/mach.cmi \ - typing/ident.cmi asmcomp/debuginfo.cmi asmcomp/cmm.cmi asmcomp/arch.cmo -asmcomp/selection.cmi : asmcomp/mach.cmi asmcomp/cmm.cmi -asmcomp/spill.cmi : asmcomp/mach.cmi -asmcomp/split.cmi : asmcomp/mach.cmi -asmcomp/strmatch.cmi : asmcomp/cmm.cmi -asmcomp/arch.cmo : -asmcomp/arch.cmx : -asmcomp/asmgen.cmo : bytecomp/translmod.cmi asmcomp/split.cmi \ - asmcomp/spill.cmi asmcomp/selection.cmi asmcomp/scheduling.cmi \ - asmcomp/reload.cmi asmcomp/reg.cmi asmcomp/proc.cmi asmcomp/printmach.cmi \ - asmcomp/printlinear.cmi asmcomp/printcmm.cmi asmcomp/printclambda.cmi \ - typing/primitive.cmi utils/misc.cmi asmcomp/mach.cmi parsing/location.cmi \ - asmcomp/liveness.cmi asmcomp/linearize.cmi asmcomp/interf.cmi \ - asmcomp/emitaux.cmi asmcomp/emit.cmi asmcomp/deadcode.cmi \ - utils/config.cmi asmcomp/compilenv.cmi asmcomp/comballoc.cmi \ - asmcomp/coloring.cmi asmcomp/cmmgen.cmi asmcomp/cmm.cmi \ - asmcomp/closure.cmi utils/clflags.cmi asmcomp/CSE.cmo asmcomp/asmgen.cmi -asmcomp/asmgen.cmx : bytecomp/translmod.cmx asmcomp/split.cmx \ - asmcomp/spill.cmx asmcomp/selection.cmx asmcomp/scheduling.cmx \ - asmcomp/reload.cmx asmcomp/reg.cmx asmcomp/proc.cmx asmcomp/printmach.cmx \ - asmcomp/printlinear.cmx asmcomp/printcmm.cmx asmcomp/printclambda.cmx \ - typing/primitive.cmx utils/misc.cmx asmcomp/mach.cmx parsing/location.cmx \ - asmcomp/liveness.cmx asmcomp/linearize.cmx asmcomp/interf.cmx \ - asmcomp/emitaux.cmx asmcomp/emit.cmx asmcomp/deadcode.cmx \ - utils/config.cmx asmcomp/compilenv.cmx asmcomp/comballoc.cmx \ - asmcomp/coloring.cmx asmcomp/cmmgen.cmx asmcomp/cmm.cmx \ - asmcomp/closure.cmx utils/clflags.cmx asmcomp/CSE.cmx asmcomp/asmgen.cmi -asmcomp/asmlibrarian.cmo : utils/misc.cmi parsing/location.cmi \ - utils/config.cmi asmcomp/compilenv.cmi asmcomp/cmx_format.cmi \ - utils/clflags.cmi asmcomp/clambda.cmi utils/ccomp.cmi asmcomp/asmlink.cmi \ +bytecomp/printinstr.cmi : \ + bytecomp/instruct.cmi +bytecomp/symtable.cmo : \ + lambda/runtimedef.cmi \ + typing/predef.cmi \ + utils/misc.cmi \ + bytecomp/meta.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + bytecomp/dll.cmi \ + utils/config.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + bytecomp/symtable.cmi +bytecomp/symtable.cmx : \ + lambda/runtimedef.cmx \ + typing/predef.cmx \ + utils/misc.cmx \ + bytecomp/meta.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + bytecomp/dll.cmx \ + utils/config.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + bytecomp/symtable.cmi +bytecomp/symtable.cmi : \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + file_formats/cmo_format.cmi +asmcomp/CSE.cmi : \ + asmcomp/mach.cmi +asmcomp/CSEgen.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + parsing/asttypes.cmi \ + asmcomp/CSEgen.cmi +asmcomp/CSEgen.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + parsing/asttypes.cmx \ + asmcomp/CSEgen.cmi +asmcomp/CSEgen.cmi : \ + asmcomp/mach.cmi \ + parsing/asttypes.cmi +asmcomp/afl_instrument.cmo : \ + lambda/lambda.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/afl_instrument.cmi +asmcomp/afl_instrument.cmx : \ + lambda/lambda.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/afl_instrument.cmi +asmcomp/afl_instrument.cmi : \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi +asmcomp/asmgen.cmo : \ + parsing/unit_info.cmi \ + lambda/translmod.cmi \ + asmcomp/split.cmi \ + asmcomp/spill.cmi \ + asmcomp/selection.cmi \ + asmcomp/scheduling.cmi \ + asmcomp/reload.cmi \ + asmcomp/reg.cmi \ + utils/profile.cmi \ + asmcomp/proc.cmi \ + asmcomp/printmach.cmi \ + asmcomp/printlinear.cmi \ + asmcomp/printcmm.cmi \ + typing/primitive.cmi \ + asmcomp/polling.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + parsing/location.cmi \ + asmcomp/liveness.cmi \ + asmcomp/linscan.cmi \ + asmcomp/linearize.cmi \ + file_formats/linear_format.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + asmcomp/interval.cmi \ + asmcomp/interf.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + asmcomp/emitaux.cmi \ + asmcomp/emit.cmi \ + asmcomp/deadcode.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/comballoc.cmi \ + asmcomp/coloring.cmi \ + asmcomp/cmmgen.cmi \ + asmcomp/cmm_invariants.cmi \ + asmcomp/cmm_helpers.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + middle_end/clambda.cmi \ + asmcomp/CSE.cmi \ + middle_end/backend_intf.cmi \ + asmcomp/asmgen.cmi +asmcomp/asmgen.cmx : \ + parsing/unit_info.cmx \ + lambda/translmod.cmx \ + asmcomp/split.cmx \ + asmcomp/spill.cmx \ + asmcomp/selection.cmx \ + asmcomp/scheduling.cmx \ + asmcomp/reload.cmx \ + asmcomp/reg.cmx \ + utils/profile.cmx \ + asmcomp/proc.cmx \ + asmcomp/printmach.cmx \ + asmcomp/printlinear.cmx \ + asmcomp/printcmm.cmx \ + typing/primitive.cmx \ + asmcomp/polling.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + parsing/location.cmx \ + asmcomp/liveness.cmx \ + asmcomp/linscan.cmx \ + asmcomp/linearize.cmx \ + file_formats/linear_format.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + asmcomp/interval.cmx \ + asmcomp/interf.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + asmcomp/emitaux.cmx \ + asmcomp/emit.cmx \ + asmcomp/deadcode.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/comballoc.cmx \ + asmcomp/coloring.cmx \ + asmcomp/cmmgen.cmx \ + asmcomp/cmm_invariants.cmx \ + asmcomp/cmm_helpers.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + middle_end/clambda.cmx \ + asmcomp/CSE.cmx \ + middle_end/backend_intf.cmi \ + asmcomp/asmgen.cmi +asmcomp/asmgen.cmi : \ + parsing/unit_info.cmi \ + lambda/lambda.cmi \ + utils/format_doc.cmi \ + asmcomp/emitaux.cmi \ + asmcomp/cmm.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_intf.cmi +asmcomp/asmlibrarian.cmo : \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/linkdeps.cmi \ + utils/format_doc.cmi \ + middle_end/flambda/export_info.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + file_formats/cmx_format.cmi \ + utils/clflags.cmi \ + middle_end/clambda.cmi \ + utils/ccomp.cmi \ + asmcomp/asmlink.cmi \ asmcomp/asmlibrarian.cmi -asmcomp/asmlibrarian.cmx : utils/misc.cmx parsing/location.cmx \ - utils/config.cmx asmcomp/compilenv.cmx asmcomp/cmx_format.cmi \ - utils/clflags.cmx asmcomp/clambda.cmx utils/ccomp.cmx asmcomp/asmlink.cmx \ +asmcomp/asmlibrarian.cmx : \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/linkdeps.cmx \ + utils/format_doc.cmx \ + middle_end/flambda/export_info.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + file_formats/cmx_format.cmi \ + utils/clflags.cmx \ + middle_end/clambda.cmx \ + utils/ccomp.cmx \ + asmcomp/asmlink.cmx \ asmcomp/asmlibrarian.cmi -asmcomp/asmlink.cmo : bytecomp/runtimedef.cmi asmcomp/proc.cmi \ - utils/misc.cmi parsing/location.cmi asmcomp/emitaux.cmi asmcomp/emit.cmi \ - utils/consistbl.cmi utils/config.cmi asmcomp/compilenv.cmi \ - asmcomp/cmx_format.cmi asmcomp/cmmgen.cmi utils/clflags.cmi \ - utils/ccomp.cmi asmcomp/asmgen.cmi asmcomp/asmlink.cmi -asmcomp/asmlink.cmx : bytecomp/runtimedef.cmx asmcomp/proc.cmx \ - utils/misc.cmx parsing/location.cmx asmcomp/emitaux.cmx asmcomp/emit.cmx \ - utils/consistbl.cmx utils/config.cmx asmcomp/compilenv.cmx \ - asmcomp/cmx_format.cmi asmcomp/cmmgen.cmx utils/clflags.cmx \ - utils/ccomp.cmx asmcomp/asmgen.cmx asmcomp/asmlink.cmi -asmcomp/asmpackager.cmo : typing/typemod.cmi bytecomp/translmod.cmi \ - utils/misc.cmi parsing/location.cmi typing/ident.cmi typing/env.cmi \ - utils/config.cmi asmcomp/compilenv.cmi asmcomp/cmx_format.cmi \ - utils/clflags.cmi utils/ccomp.cmi asmcomp/asmlink.cmi asmcomp/asmgen.cmi \ +asmcomp/asmlibrarian.cmi : \ + utils/linkdeps.cmi \ + utils/format_doc.cmi +asmcomp/asmlink.cmo : \ + asmcomp/thread_sanitizer.cmi \ + lambda/runtimedef.cmi \ + utils/profile.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + utils/linkdeps.cmi \ + utils/format_doc.cmi \ + asmcomp/emitaux.cmi \ + asmcomp/emit.cmi \ + utils/consistbl.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + file_formats/cmx_format.cmi \ + asmcomp/cmm_helpers.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + asmcomp/asmgen.cmi \ + asmcomp/asmlink.cmi +asmcomp/asmlink.cmx : \ + asmcomp/thread_sanitizer.cmx \ + lambda/runtimedef.cmx \ + utils/profile.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + utils/linkdeps.cmx \ + utils/format_doc.cmx \ + asmcomp/emitaux.cmx \ + asmcomp/emit.cmx \ + utils/consistbl.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + file_formats/cmx_format.cmi \ + asmcomp/cmm_helpers.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + asmcomp/asmgen.cmx \ + asmcomp/asmlink.cmi +asmcomp/asmlink.cmi : \ + utils/misc.cmi \ + utils/linkdeps.cmi \ + utils/format_doc.cmi \ + file_formats/cmx_format.cmi +asmcomp/asmpackager.cmo : \ + parsing/unit_info.cmi \ + typing/typemod.cmi \ + lambda/translmod.cmi \ + lambda/simplif.cmi \ + utils/profile.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + middle_end/flambda/flambda_middle_end.cmi \ + middle_end/flambda/export_info_for_pack.cmi \ + middle_end/flambda/export_info.cmi \ + typing/env.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + middle_end/compilation_unit.cmi \ + file_formats/cmx_format.cmi \ + middle_end/closure/closure_middle_end.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + asmcomp/asmlink.cmi \ + asmcomp/asmgen.cmi \ asmcomp/asmpackager.cmi -asmcomp/asmpackager.cmx : typing/typemod.cmx bytecomp/translmod.cmx \ - utils/misc.cmx parsing/location.cmx typing/ident.cmx typing/env.cmx \ - utils/config.cmx asmcomp/compilenv.cmx asmcomp/cmx_format.cmi \ - utils/clflags.cmx utils/ccomp.cmx asmcomp/asmlink.cmx asmcomp/asmgen.cmx \ +asmcomp/asmpackager.cmx : \ + parsing/unit_info.cmx \ + typing/typemod.cmx \ + lambda/translmod.cmx \ + lambda/simplif.cmx \ + utils/profile.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + middle_end/flambda/flambda_middle_end.cmx \ + middle_end/flambda/export_info_for_pack.cmx \ + middle_end/flambda/export_info.cmx \ + typing/env.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + middle_end/compilation_unit.cmx \ + file_formats/cmx_format.cmi \ + middle_end/closure/closure_middle_end.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + asmcomp/asmlink.cmx \ + asmcomp/asmgen.cmx \ asmcomp/asmpackager.cmi -asmcomp/branch_relaxation_intf.cmo : asmcomp/linearize.cmi asmcomp/arch.cmo -asmcomp/branch_relaxation_intf.cmx : asmcomp/linearize.cmx asmcomp/arch.cmx -asmcomp/branch_relaxation.cmo : utils/misc.cmi asmcomp/mach.cmi \ - asmcomp/linearize.cmi asmcomp/cmm.cmi asmcomp/branch_relaxation_intf.cmo \ +asmcomp/asmpackager.cmi : \ + utils/format_doc.cmi \ + typing/env.cmi \ + middle_end/backend_intf.cmi +asmcomp/branch_relaxation.cmo : \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + asmcomp/cmm.cmi \ + asmcomp/branch_relaxation_intf.cmi \ asmcomp/branch_relaxation.cmi -asmcomp/branch_relaxation.cmx : utils/misc.cmx asmcomp/mach.cmx \ - asmcomp/linearize.cmx asmcomp/cmm.cmx asmcomp/branch_relaxation_intf.cmx \ +asmcomp/branch_relaxation.cmx : \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + asmcomp/cmm.cmx \ + asmcomp/branch_relaxation_intf.cmi \ asmcomp/branch_relaxation.cmi -asmcomp/clambda.cmo : bytecomp/lambda.cmi typing/ident.cmi \ - asmcomp/debuginfo.cmi parsing/asttypes.cmi asmcomp/clambda.cmi -asmcomp/clambda.cmx : bytecomp/lambda.cmx typing/ident.cmx \ - asmcomp/debuginfo.cmx parsing/asttypes.cmi asmcomp/clambda.cmi -asmcomp/closure.cmo : utils/tbl.cmi bytecomp/switch.cmi typing/primitive.cmi \ - utils/misc.cmi parsing/location.cmi bytecomp/lambda.cmi typing/ident.cmi \ - asmcomp/debuginfo.cmi asmcomp/compilenv.cmi utils/clflags.cmi \ - asmcomp/clambda.cmi parsing/asttypes.cmi asmcomp/arch.cmo \ - asmcomp/closure.cmi -asmcomp/closure.cmx : utils/tbl.cmx bytecomp/switch.cmx typing/primitive.cmx \ - utils/misc.cmx parsing/location.cmx bytecomp/lambda.cmx typing/ident.cmx \ - asmcomp/debuginfo.cmx asmcomp/compilenv.cmx utils/clflags.cmx \ - asmcomp/clambda.cmx parsing/asttypes.cmi asmcomp/arch.cmx \ - asmcomp/closure.cmi -asmcomp/cmmgen.cmo : typing/types.cmi bytecomp/switch.cmi \ - asmcomp/strmatch.cmi asmcomp/proc.cmi typing/primitive.cmi utils/misc.cmi \ - bytecomp/lambda.cmi typing/ident.cmi asmcomp/debuginfo.cmi \ - utils/config.cmi asmcomp/compilenv.cmi asmcomp/cmx_format.cmi \ - asmcomp/cmm.cmi utils/clflags.cmi asmcomp/clambda.cmi \ - parsing/asttypes.cmi asmcomp/arch.cmo asmcomp/cmmgen.cmi -asmcomp/cmmgen.cmx : typing/types.cmx bytecomp/switch.cmx \ - asmcomp/strmatch.cmx asmcomp/proc.cmx typing/primitive.cmx utils/misc.cmx \ - bytecomp/lambda.cmx typing/ident.cmx asmcomp/debuginfo.cmx \ - utils/config.cmx asmcomp/compilenv.cmx asmcomp/cmx_format.cmi \ - asmcomp/cmm.cmx utils/clflags.cmx asmcomp/clambda.cmx \ - parsing/asttypes.cmi asmcomp/arch.cmx asmcomp/cmmgen.cmi -asmcomp/cmm.cmo : bytecomp/lambda.cmi typing/ident.cmi asmcomp/debuginfo.cmi \ - asmcomp/arch.cmo asmcomp/cmm.cmi -asmcomp/cmm.cmx : bytecomp/lambda.cmx typing/ident.cmx asmcomp/debuginfo.cmx \ - asmcomp/arch.cmx asmcomp/cmm.cmi -asmcomp/codegen.cmo : asmcomp/split.cmi asmcomp/spill.cmi asmcomp/reload.cmi \ - asmcomp/reg.cmi asmcomp/printmach.cmi asmcomp/printlinear.cmi \ - asmcomp/printcmm.cmi asmcomp/liveness.cmi asmcomp/linearize.cmi \ - asmcomp/interf.cmi asmcomp/emit.cmi asmcomp/coloring.cmi asmcomp/cmm.cmi \ - asmcomp/codegen.cmi -asmcomp/codegen.cmx : asmcomp/split.cmx asmcomp/spill.cmx asmcomp/reload.cmx \ - asmcomp/reg.cmx asmcomp/printmach.cmx asmcomp/printlinear.cmx \ - asmcomp/printcmm.cmx asmcomp/liveness.cmx asmcomp/linearize.cmx \ - asmcomp/interf.cmx asmcomp/emit.cmx asmcomp/coloring.cmx asmcomp/cmm.cmx \ - asmcomp/codegen.cmi -asmcomp/coloring.cmo : asmcomp/reg.cmi asmcomp/proc.cmi asmcomp/coloring.cmi -asmcomp/coloring.cmx : asmcomp/reg.cmx asmcomp/proc.cmx asmcomp/coloring.cmi -asmcomp/comballoc.cmo : asmcomp/reg.cmi asmcomp/mach.cmi utils/config.cmi \ - asmcomp/arch.cmo asmcomp/comballoc.cmi -asmcomp/comballoc.cmx : asmcomp/reg.cmx asmcomp/mach.cmx utils/config.cmx \ - asmcomp/arch.cmx asmcomp/comballoc.cmi -asmcomp/compilenv.cmo : utils/misc.cmi parsing/location.cmi typing/ident.cmi \ - typing/env.cmi utils/config.cmi asmcomp/cmx_format.cmi \ - asmcomp/clambda.cmi asmcomp/compilenv.cmi -asmcomp/compilenv.cmx : utils/misc.cmx parsing/location.cmx typing/ident.cmx \ - typing/env.cmx utils/config.cmx asmcomp/cmx_format.cmi \ - asmcomp/clambda.cmx asmcomp/compilenv.cmi -asmcomp/CSEgen.cmo : asmcomp/reg.cmi asmcomp/proc.cmi asmcomp/mach.cmi \ - asmcomp/CSEgen.cmi -asmcomp/CSEgen.cmx : asmcomp/reg.cmx asmcomp/proc.cmx asmcomp/mach.cmx \ - asmcomp/CSEgen.cmi -asmcomp/CSE.cmo : asmcomp/mach.cmi asmcomp/CSEgen.cmi asmcomp/arch.cmo -asmcomp/CSE.cmx : asmcomp/mach.cmx asmcomp/CSEgen.cmx asmcomp/arch.cmx -asmcomp/deadcode.cmo : asmcomp/reg.cmi asmcomp/proc.cmi asmcomp/mach.cmi \ +asmcomp/branch_relaxation.cmi : \ + asmcomp/linear.cmi \ + asmcomp/branch_relaxation_intf.cmi +asmcomp/branch_relaxation_intf.cmi : \ + asmcomp/linear.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + asmcomp/arch.cmi +asmcomp/cmm.cmo : \ + utils/targetint.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/cmm.cmi +asmcomp/cmm.cmx : \ + utils/targetint.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/cmm.cmi +asmcomp/cmm.cmi : \ + utils/targetint.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi +asmcomp/cmm_helpers.cmo : \ + utils/targetint.cmi \ + lambda/switch.cmi \ + asmcomp/strmatch.cmi \ + typing/primitive.cmi \ + utils/numbers.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + file_formats/cmxs_format.cmi \ + file_formats/cmx_format.cmi \ + asmcomp/cmmgen_state.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi \ + asmcomp/cmm_helpers.cmi +asmcomp/cmm_helpers.cmx : \ + utils/targetint.cmx \ + lambda/switch.cmx \ + asmcomp/strmatch.cmx \ + typing/primitive.cmx \ + utils/numbers.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + file_formats/cmxs_format.cmi \ + file_formats/cmx_format.cmi \ + asmcomp/cmmgen_state.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/clambda.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/arch.cmx \ + asmcomp/cmm_helpers.cmi +asmcomp/cmm_helpers.cmi : \ + utils/targetint.cmi \ + typing/primitive.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + file_formats/cmx_format.cmi \ + asmcomp/cmmgen_state.cmi \ + asmcomp/cmm.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/clambda.cmi \ + parsing/asttypes.cmi +asmcomp/cmm_invariants.cmo : \ + utils/numbers.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + asmcomp/cmm_invariants.cmi +asmcomp/cmm_invariants.cmx : \ + utils/numbers.cmx \ + asmcomp/cmm.cmx \ + middle_end/backend_var.cmx \ + asmcomp/cmm_invariants.cmi +asmcomp/cmm_invariants.cmi : \ + asmcomp/cmm.cmi +asmcomp/cmmgen.cmo : \ + asmcomp/thread_sanitizer.cmi \ + middle_end/printclambda_primitives.cmi \ + typing/primitive.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmmgen_state.cmi \ + asmcomp/cmm_helpers.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/afl_instrument.cmi \ + asmcomp/cmmgen.cmi +asmcomp/cmmgen.cmx : \ + asmcomp/thread_sanitizer.cmx \ + middle_end/printclambda_primitives.cmx \ + typing/primitive.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmmgen_state.cmx \ + asmcomp/cmm_helpers.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/clambda.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/afl_instrument.cmx \ + asmcomp/cmmgen.cmi +asmcomp/cmmgen.cmi : \ + asmcomp/cmm.cmi \ + middle_end/clambda.cmi +asmcomp/cmmgen_state.cmo : \ + utils/misc.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + middle_end/clambda.cmi \ + asmcomp/cmmgen_state.cmi +asmcomp/cmmgen_state.cmx : \ + utils/misc.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + middle_end/clambda.cmx \ + asmcomp/cmmgen_state.cmi +asmcomp/cmmgen_state.cmi : \ + utils/misc.cmi \ + asmcomp/cmm.cmi \ + middle_end/clambda.cmi +asmcomp/coloring.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/coloring.cmi +asmcomp/coloring.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/coloring.cmi +asmcomp/coloring.cmi : +asmcomp/comballoc.cmo : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + asmcomp/arch.cmi \ + asmcomp/comballoc.cmi +asmcomp/comballoc.cmx : \ + asmcomp/reg.cmx \ + asmcomp/mach.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + asmcomp/arch.cmx \ + asmcomp/comballoc.cmi +asmcomp/comballoc.cmi : \ + asmcomp/mach.cmi +asmcomp/dataflow.cmo : \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + asmcomp/dataflow.cmi +asmcomp/dataflow.cmx : \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + asmcomp/dataflow.cmi +asmcomp/dataflow.cmi : \ + asmcomp/mach.cmi +asmcomp/deadcode.cmo : \ + asmcomp/reg.cmi \ + utils/numbers.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ asmcomp/deadcode.cmi -asmcomp/deadcode.cmx : asmcomp/reg.cmx asmcomp/proc.cmx asmcomp/mach.cmx \ +asmcomp/deadcode.cmx : \ + asmcomp/reg.cmx \ + utils/numbers.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ asmcomp/deadcode.cmi -asmcomp/debuginfo.cmo : parsing/location.cmi bytecomp/lambda.cmi \ - asmcomp/debuginfo.cmi -asmcomp/debuginfo.cmx : parsing/location.cmx bytecomp/lambda.cmx \ - asmcomp/debuginfo.cmi -asmcomp/emitaux.cmo : asmcomp/linearize.cmi asmcomp/debuginfo.cmi \ - utils/config.cmi utils/clflags.cmi asmcomp/arch.cmo asmcomp/emitaux.cmi -asmcomp/emitaux.cmx : asmcomp/linearize.cmx asmcomp/debuginfo.cmx \ - utils/config.cmx utils/clflags.cmx asmcomp/arch.cmx asmcomp/emitaux.cmi -asmcomp/emit.cmo : asmcomp/reg.cmi asmcomp/proc.cmi utils/misc.cmi \ - asmcomp/mach.cmi asmcomp/linearize.cmi bytecomp/lambda.cmi \ - asmcomp/emitaux.cmi asmcomp/debuginfo.cmi utils/config.cmi \ - asmcomp/compilenv.cmi asmcomp/cmm.cmi utils/clflags.cmi \ - asmcomp/branch_relaxation.cmi asmcomp/arch.cmo asmcomp/emit.cmi -asmcomp/emit.cmx : asmcomp/reg.cmx asmcomp/proc.cmx utils/misc.cmx \ - asmcomp/mach.cmx asmcomp/linearize.cmx bytecomp/lambda.cmx \ - asmcomp/emitaux.cmx asmcomp/debuginfo.cmx utils/config.cmx \ - asmcomp/compilenv.cmx asmcomp/cmm.cmx utils/clflags.cmx \ - asmcomp/branch_relaxation.cmx asmcomp/arch.cmx asmcomp/emit.cmi -asmcomp/interf.cmo : asmcomp/reg.cmi asmcomp/proc.cmi asmcomp/mach.cmi \ +asmcomp/deadcode.cmi : \ + asmcomp/mach.cmi +asmcomp/emit.cmi : \ + asmcomp/linear.cmi \ + asmcomp/cmm.cmi +asmcomp/emitaux.cmo : \ + parsing/location.cmi \ + utils/format_doc.cmi \ + asmcomp/emitenv.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ + asmcomp/emitaux.cmi +asmcomp/emitaux.cmx : \ + parsing/location.cmx \ + utils/format_doc.cmx \ + asmcomp/emitenv.cmi \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ + asmcomp/emitaux.cmi +asmcomp/emitaux.cmi : \ + asmcomp/linear.cmi \ + utils/format_doc.cmi \ + asmcomp/emitenv.cmi \ + lambda/debuginfo.cmi +asmcomp/emitenv.cmi : \ + asmcomp/linear.cmi +asmcomp/interf.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ asmcomp/interf.cmi -asmcomp/interf.cmx : asmcomp/reg.cmx asmcomp/proc.cmx asmcomp/mach.cmx \ +asmcomp/interf.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ asmcomp/interf.cmi -asmcomp/linearize.cmo : asmcomp/reg.cmi asmcomp/proc.cmi utils/misc.cmi \ - asmcomp/mach.cmi bytecomp/lambda.cmi asmcomp/debuginfo.cmi \ - asmcomp/cmm.cmi asmcomp/linearize.cmi -asmcomp/linearize.cmx : asmcomp/reg.cmx asmcomp/proc.cmx utils/misc.cmx \ - asmcomp/mach.cmx bytecomp/lambda.cmx asmcomp/debuginfo.cmx \ - asmcomp/cmm.cmx asmcomp/linearize.cmi -asmcomp/liveness.cmo : asmcomp/reg.cmi asmcomp/proc.cmi \ - asmcomp/printmach.cmi utils/misc.cmi asmcomp/mach.cmi \ +asmcomp/interf.cmi : \ + asmcomp/mach.cmi +asmcomp/interval.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/mach.cmi \ + asmcomp/interval.cmi +asmcomp/interval.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/mach.cmx \ + asmcomp/interval.cmi +asmcomp/interval.cmi : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi +asmcomp/linear.cmo : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + asmcomp/linear.cmi +asmcomp/linear.cmx : \ + asmcomp/reg.cmx \ + asmcomp/mach.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + asmcomp/linear.cmi +asmcomp/linear.cmi : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi +asmcomp/linearize.cmo : \ + asmcomp/stackframe.cmi \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + asmcomp/linearize.cmi +asmcomp/linearize.cmx : \ + asmcomp/stackframe.cmx \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + asmcomp/linearize.cmi +asmcomp/linearize.cmi : \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi +asmcomp/linscan.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/interval.cmi \ + asmcomp/linscan.cmi +asmcomp/linscan.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/interval.cmx \ + asmcomp/linscan.cmi +asmcomp/linscan.cmi : \ + asmcomp/interval.cmi +asmcomp/liveness.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/printmach.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/dataflow.cmi \ asmcomp/liveness.cmi -asmcomp/liveness.cmx : asmcomp/reg.cmx asmcomp/proc.cmx \ - asmcomp/printmach.cmx utils/misc.cmx asmcomp/mach.cmx \ +asmcomp/liveness.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/printmach.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/dataflow.cmx \ asmcomp/liveness.cmi -asmcomp/mach.cmo : asmcomp/reg.cmi bytecomp/lambda.cmi asmcomp/debuginfo.cmi \ - asmcomp/cmm.cmi asmcomp/arch.cmo asmcomp/mach.cmi -asmcomp/mach.cmx : asmcomp/reg.cmx bytecomp/lambda.cmx asmcomp/debuginfo.cmx \ - asmcomp/cmm.cmx asmcomp/arch.cmx asmcomp/mach.cmi -asmcomp/printclambda.cmo : bytecomp/printlambda.cmi bytecomp/lambda.cmi \ - typing/ident.cmi asmcomp/clambda.cmi parsing/asttypes.cmi \ - asmcomp/printclambda.cmi -asmcomp/printclambda.cmx : bytecomp/printlambda.cmx bytecomp/lambda.cmx \ - typing/ident.cmx asmcomp/clambda.cmx parsing/asttypes.cmi \ - asmcomp/printclambda.cmi -asmcomp/printcmm.cmo : bytecomp/lambda.cmi typing/ident.cmi \ - asmcomp/debuginfo.cmi asmcomp/cmm.cmi asmcomp/printcmm.cmi -asmcomp/printcmm.cmx : bytecomp/lambda.cmx typing/ident.cmx \ - asmcomp/debuginfo.cmx asmcomp/cmm.cmx asmcomp/printcmm.cmi -asmcomp/printlinear.cmo : asmcomp/printmach.cmi asmcomp/mach.cmi \ - asmcomp/linearize.cmi bytecomp/lambda.cmi asmcomp/debuginfo.cmi \ +asmcomp/liveness.cmi : \ + asmcomp/mach.cmi +asmcomp/mach.cmo : \ + asmcomp/reg.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi \ + asmcomp/mach.cmi +asmcomp/mach.cmx : \ + asmcomp/reg.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + parsing/asttypes.cmx \ + asmcomp/arch.cmx \ + asmcomp/mach.cmi +asmcomp/mach.cmi : \ + asmcomp/reg.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi +asmcomp/polling.cmo : \ + utils/numbers.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + lambda/debuginfo.cmi \ + asmcomp/dataflow.cmi \ + asmcomp/cmm.cmi \ + asmcomp/polling.cmi +asmcomp/polling.cmx : \ + utils/numbers.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + lambda/debuginfo.cmx \ + asmcomp/dataflow.cmx \ + asmcomp/cmm.cmx \ + asmcomp/polling.cmi +asmcomp/polling.cmi : \ + utils/misc.cmi \ + asmcomp/mach.cmi +asmcomp/printcmm.cmo : \ + utils/targetint.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/printcmm.cmi +asmcomp/printcmm.cmx : \ + utils/targetint.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/printcmm.cmi +asmcomp/printcmm.cmi : \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi +asmcomp/printlinear.cmo : \ + asmcomp/printmach.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + utils/clflags.cmi \ asmcomp/printlinear.cmi -asmcomp/printlinear.cmx : asmcomp/printmach.cmx asmcomp/mach.cmx \ - asmcomp/linearize.cmx bytecomp/lambda.cmx asmcomp/debuginfo.cmx \ +asmcomp/printlinear.cmx : \ + asmcomp/printmach.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + utils/clflags.cmx \ asmcomp/printlinear.cmi -asmcomp/printmach.cmo : asmcomp/reg.cmi asmcomp/proc.cmi \ - asmcomp/printcmm.cmi asmcomp/mach.cmi bytecomp/lambda.cmi \ - asmcomp/debuginfo.cmi asmcomp/cmm.cmi asmcomp/arch.cmo \ +asmcomp/printlinear.cmi : \ + asmcomp/linear.cmi +asmcomp/printmach.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/printcmm.cmi \ + asmcomp/mach.cmi \ + lambda/lambda.cmi \ + asmcomp/interval.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ asmcomp/printmach.cmi -asmcomp/printmach.cmx : asmcomp/reg.cmx asmcomp/proc.cmx \ - asmcomp/printcmm.cmx asmcomp/mach.cmx bytecomp/lambda.cmx \ - asmcomp/debuginfo.cmx asmcomp/cmm.cmx asmcomp/arch.cmx \ +asmcomp/printmach.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/printcmm.cmx \ + asmcomp/mach.cmx \ + lambda/lambda.cmx \ + asmcomp/interval.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ asmcomp/printmach.cmi -asmcomp/proc.cmo : asmcomp/reg.cmi utils/misc.cmi asmcomp/mach.cmi \ - utils/config.cmi asmcomp/cmm.cmi utils/clflags.cmi utils/ccomp.cmi \ - asmcomp/arch.cmo asmcomp/proc.cmi -asmcomp/proc.cmx : asmcomp/reg.cmx utils/misc.cmx asmcomp/mach.cmx \ - utils/config.cmx asmcomp/cmm.cmx utils/clflags.cmx utils/ccomp.cmx \ - asmcomp/arch.cmx asmcomp/proc.cmi -asmcomp/reg.cmo : typing/ident.cmi asmcomp/cmm.cmi asmcomp/reg.cmi -asmcomp/reg.cmx : typing/ident.cmx asmcomp/cmm.cmx asmcomp/reg.cmi -asmcomp/reloadgen.cmo : asmcomp/reg.cmi utils/misc.cmi asmcomp/mach.cmi \ +asmcomp/printmach.cmi : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + asmcomp/interval.cmi +asmcomp/proc.cmi : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi +asmcomp/reg.cmo : \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + asmcomp/reg.cmi +asmcomp/reg.cmx : \ + asmcomp/cmm.cmx \ + middle_end/backend_var.cmx \ + asmcomp/reg.cmi +asmcomp/reg.cmi : \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi +asmcomp/reload.cmi : \ + asmcomp/mach.cmi +asmcomp/reloadgen.cmo : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ asmcomp/reloadgen.cmi -asmcomp/reloadgen.cmx : asmcomp/reg.cmx utils/misc.cmx asmcomp/mach.cmx \ +asmcomp/reloadgen.cmx : \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ asmcomp/reloadgen.cmi -asmcomp/reload.cmo : asmcomp/reloadgen.cmi asmcomp/reg.cmi asmcomp/mach.cmi \ - asmcomp/cmm.cmi utils/clflags.cmi asmcomp/arch.cmo asmcomp/reload.cmi -asmcomp/reload.cmx : asmcomp/reloadgen.cmx asmcomp/reg.cmx asmcomp/mach.cmx \ - asmcomp/cmm.cmx utils/clflags.cmx asmcomp/arch.cmx asmcomp/reload.cmi -asmcomp/schedgen.cmo : asmcomp/reg.cmi asmcomp/proc.cmi asmcomp/mach.cmi \ - asmcomp/linearize.cmi asmcomp/cmm.cmi asmcomp/arch.cmo \ +asmcomp/reloadgen.cmi : \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi +asmcomp/schedgen.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ asmcomp/schedgen.cmi -asmcomp/schedgen.cmx : asmcomp/reg.cmx asmcomp/proc.cmx asmcomp/mach.cmx \ - asmcomp/linearize.cmx asmcomp/cmm.cmx asmcomp/arch.cmx \ +asmcomp/schedgen.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ asmcomp/schedgen.cmi -asmcomp/scheduling.cmo : asmcomp/schedgen.cmi asmcomp/scheduling.cmi -asmcomp/scheduling.cmx : asmcomp/schedgen.cmx asmcomp/scheduling.cmi -asmcomp/selectgen.cmo : utils/tbl.cmi bytecomp/simplif.cmi asmcomp/reg.cmi \ - asmcomp/proc.cmi utils/misc.cmi asmcomp/mach.cmi bytecomp/lambda.cmi \ - typing/ident.cmi asmcomp/debuginfo.cmi asmcomp/cmm.cmi utils/clflags.cmi \ - asmcomp/arch.cmo asmcomp/selectgen.cmi -asmcomp/selectgen.cmx : utils/tbl.cmx bytecomp/simplif.cmx asmcomp/reg.cmx \ - asmcomp/proc.cmx utils/misc.cmx asmcomp/mach.cmx bytecomp/lambda.cmx \ - typing/ident.cmx asmcomp/debuginfo.cmx asmcomp/cmm.cmx utils/clflags.cmx \ - asmcomp/arch.cmx asmcomp/selectgen.cmi -asmcomp/selection.cmo : asmcomp/selectgen.cmi asmcomp/proc.cmi \ - asmcomp/mach.cmi asmcomp/cmm.cmi utils/clflags.cmi asmcomp/arch.cmo \ - asmcomp/selection.cmi -asmcomp/selection.cmx : asmcomp/selectgen.cmx asmcomp/proc.cmx \ - asmcomp/mach.cmx asmcomp/cmm.cmx utils/clflags.cmx asmcomp/arch.cmx \ - asmcomp/selection.cmi -asmcomp/spill.cmo : asmcomp/reg.cmi asmcomp/proc.cmi utils/misc.cmi \ - asmcomp/mach.cmi asmcomp/spill.cmi -asmcomp/spill.cmx : asmcomp/reg.cmx asmcomp/proc.cmx utils/misc.cmx \ - asmcomp/mach.cmx asmcomp/spill.cmi -asmcomp/split.cmo : asmcomp/reg.cmi utils/misc.cmi asmcomp/mach.cmi \ +asmcomp/schedgen.cmi : \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi +asmcomp/scheduling.cmi : \ + asmcomp/linear.cmi +asmcomp/selectgen.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/polling.cmi \ + utils/numbers.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi \ + asmcomp/selectgen.cmi +asmcomp/selectgen.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/polling.cmx \ + utils/numbers.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/arch.cmx \ + asmcomp/selectgen.cmi +asmcomp/selectgen.cmi : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi +asmcomp/selection.cmi : \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi +asmcomp/spill.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/spill.cmi +asmcomp/spill.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/spill.cmi +asmcomp/spill.cmi : \ + asmcomp/mach.cmi +asmcomp/split.cmo : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ asmcomp/split.cmi -asmcomp/split.cmx : asmcomp/reg.cmx utils/misc.cmx asmcomp/mach.cmx \ +asmcomp/split.cmx : \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ asmcomp/split.cmi -asmcomp/strmatch.cmo : bytecomp/lambda.cmi typing/ident.cmi asmcomp/cmm.cmi \ - asmcomp/arch.cmo asmcomp/strmatch.cmi -asmcomp/strmatch.cmx : bytecomp/lambda.cmx typing/ident.cmx asmcomp/cmm.cmx \ - asmcomp/arch.cmx asmcomp/strmatch.cmi -driver/compenv.cmi : -driver/compile.cmi : -driver/compmisc.cmi : typing/env.cmi +asmcomp/split.cmi : \ + asmcomp/mach.cmi +asmcomp/stackframe.cmi : \ + asmcomp/stackframegen.cmi \ + asmcomp/mach.cmi +asmcomp/stackframegen.cmo : \ + asmcomp/mach.cmi \ + lambda/lambda.cmi \ + utils/clflags.cmi \ + asmcomp/stackframegen.cmi +asmcomp/stackframegen.cmx : \ + asmcomp/mach.cmx \ + lambda/lambda.cmx \ + utils/clflags.cmx \ + asmcomp/stackframegen.cmi +asmcomp/stackframegen.cmi : \ + asmcomp/mach.cmi +asmcomp/strmatch.cmo : \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi \ + asmcomp/strmatch.cmi +asmcomp/strmatch.cmx : \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/arch.cmx \ + asmcomp/strmatch.cmi +asmcomp/strmatch.cmi : \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi +asmcomp/thread_sanitizer.cmo : \ + lambda/debuginfo.cmi \ + asmcomp/cmm_helpers.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + asmcomp/thread_sanitizer.cmi +asmcomp/thread_sanitizer.cmx : \ + lambda/debuginfo.cmx \ + asmcomp/cmm_helpers.cmx \ + asmcomp/cmm.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + asmcomp/thread_sanitizer.cmi +asmcomp/thread_sanitizer.cmi : \ + asmcomp/cmm.cmi +asmcomp/x86_ast.cmi : +asmcomp/x86_dsl.cmo : \ + asmcomp/x86_proc.cmi \ + asmcomp/x86_ast.cmi \ + asmcomp/x86_dsl.cmi +asmcomp/x86_dsl.cmx : \ + asmcomp/x86_proc.cmx \ + asmcomp/x86_ast.cmi \ + asmcomp/x86_dsl.cmi +asmcomp/x86_dsl.cmi : \ + asmcomp/x86_ast.cmi +asmcomp/x86_gas.cmo : \ + asmcomp/x86_proc.cmi \ + asmcomp/x86_ast.cmi \ + utils/misc.cmi \ + asmcomp/x86_gas.cmi +asmcomp/x86_gas.cmx : \ + asmcomp/x86_proc.cmx \ + asmcomp/x86_ast.cmi \ + utils/misc.cmx \ + asmcomp/x86_gas.cmi +asmcomp/x86_gas.cmi : \ + asmcomp/x86_ast.cmi +asmcomp/x86_masm.cmo : \ + asmcomp/x86_proc.cmi \ + asmcomp/x86_ast.cmi \ + asmcomp/x86_masm.cmi +asmcomp/x86_masm.cmx : \ + asmcomp/x86_proc.cmx \ + asmcomp/x86_ast.cmi \ + asmcomp/x86_masm.cmi +asmcomp/x86_masm.cmi : \ + asmcomp/x86_ast.cmi +asmcomp/x86_proc.cmo : \ + asmcomp/x86_ast.cmi \ + utils/misc.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + asmcomp/x86_proc.cmi +asmcomp/x86_proc.cmx : \ + asmcomp/x86_ast.cmi \ + utils/misc.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + asmcomp/x86_proc.cmi +asmcomp/x86_proc.cmi : \ + asmcomp/x86_ast.cmi +ifeq "$(ARCH)" "amd64" +asmcomp/CSE.cmo : \ + asmcomp/mach.cmi \ + asmcomp/CSEgen.cmi \ + asmcomp/arch.cmi \ + asmcomp/CSE.cmi +asmcomp/CSE.cmx : \ + asmcomp/mach.cmx \ + asmcomp/CSEgen.cmx \ + asmcomp/arch.cmx \ + asmcomp/CSE.cmi +asmcomp/arch.cmo : \ + asmcomp/x86_ast.cmi \ + lambda/lambda.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi +asmcomp/arch.cmx : \ + asmcomp/x86_ast.cmi \ + lambda/lambda.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmi +asmcomp/arch.cmi : \ + asmcomp/x86_ast.cmi \ + lambda/lambda.cmi +asmcomp/emit.cmo : \ + asmcomp/x86_proc.cmi \ + asmcomp/x86_masm.cmi \ + asmcomp/x86_gas.cmi \ + asmcomp/x86_dsl.cmi \ + asmcomp/x86_ast.cmi \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + utils/numbers.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmi \ + utils/domainstate.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/branch_relaxation.cmi \ + asmcomp/arch.cmi \ + asmcomp/emit.cmi +asmcomp/emit.cmx : \ + asmcomp/x86_proc.cmx \ + asmcomp/x86_masm.cmx \ + asmcomp/x86_gas.cmx \ + asmcomp/x86_dsl.cmx \ + asmcomp/x86_ast.cmi \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + utils/numbers.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmx \ + utils/domainstate.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/branch_relaxation.cmx \ + asmcomp/arch.cmx \ + asmcomp/emit.cmi +asmcomp/proc.cmo : \ + asmcomp/x86_proc.cmi \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + asmcomp/arch.cmi \ + asmcomp/proc.cmi +asmcomp/proc.cmx : \ + asmcomp/x86_proc.cmx \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + asmcomp/arch.cmx \ + asmcomp/proc.cmi +asmcomp/reload.cmo : \ + asmcomp/reloadgen.cmi \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ + asmcomp/reload.cmi +asmcomp/reload.cmx : \ + asmcomp/reloadgen.cmx \ + asmcomp/reg.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ + asmcomp/reload.cmi +asmcomp/scheduling.cmo : \ + asmcomp/schedgen.cmi \ + asmcomp/scheduling.cmi +asmcomp/scheduling.cmx : \ + asmcomp/schedgen.cmx \ + asmcomp/scheduling.cmi +asmcomp/selection.cmo : \ + asmcomp/selectgen.cmi \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ + asmcomp/selection.cmi +asmcomp/selection.cmx : \ + asmcomp/selectgen.cmx \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ + asmcomp/selection.cmi +asmcomp/stackframe.cmo : \ + asmcomp/stackframegen.cmi \ + asmcomp/mach.cmi \ + utils/config.cmi \ + asmcomp/stackframe.cmi +asmcomp/stackframe.cmx : \ + asmcomp/stackframegen.cmx \ + asmcomp/mach.cmx \ + utils/config.cmx \ + asmcomp/stackframe.cmi +endif # ifeq "$(ARCH)" "amd64" +ifeq "$(ARCH)" "arm64" +asmcomp/CSE.cmo : \ + asmcomp/mach.cmi \ + asmcomp/CSEgen.cmi \ + asmcomp/arch.cmi \ + asmcomp/CSE.cmi +asmcomp/CSE.cmx : \ + asmcomp/mach.cmx \ + asmcomp/CSEgen.cmx \ + asmcomp/arch.cmx \ + asmcomp/CSE.cmi +asmcomp/arch.cmo : \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + asmcomp/arch.cmi +asmcomp/arch.cmx : \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + asmcomp/arch.cmi +asmcomp/arch.cmi : \ + lambda/debuginfo.cmi +asmcomp/emit.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmi \ + utils/domainstate.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/branch_relaxation.cmi \ + asmcomp/arch.cmi \ + asmcomp/emit.cmi +asmcomp/emit.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmx \ + utils/domainstate.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/branch_relaxation.cmx \ + asmcomp/arch.cmx \ + asmcomp/emit.cmi +asmcomp/proc.cmo : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + utils/ccomp.cmi \ + asmcomp/arch.cmi \ + asmcomp/proc.cmi +asmcomp/proc.cmx : \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + utils/ccomp.cmx \ + asmcomp/arch.cmx \ + asmcomp/proc.cmi +asmcomp/reload.cmo : \ + asmcomp/reloadgen.cmi \ + asmcomp/reg.cmi \ + asmcomp/reload.cmi +asmcomp/reload.cmx : \ + asmcomp/reloadgen.cmx \ + asmcomp/reg.cmx \ + asmcomp/reload.cmi +asmcomp/scheduling.cmo : \ + asmcomp/schedgen.cmi \ + asmcomp/scheduling.cmi +asmcomp/scheduling.cmx : \ + asmcomp/schedgen.cmx \ + asmcomp/scheduling.cmi +asmcomp/selection.cmo : \ + asmcomp/selectgen.cmi \ + asmcomp/reg.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ + asmcomp/selection.cmi +asmcomp/selection.cmx : \ + asmcomp/selectgen.cmx \ + asmcomp/reg.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ + asmcomp/selection.cmi +asmcomp/stackframe.cmo : \ + asmcomp/stackframegen.cmi \ + asmcomp/mach.cmi \ + asmcomp/stackframe.cmi +asmcomp/stackframe.cmx : \ + asmcomp/stackframegen.cmx \ + asmcomp/mach.cmx \ + asmcomp/stackframe.cmi +endif # ifeq "$(ARCH)" "arm64" +ifeq "$(ARCH)" "power" +asmcomp/CSE.cmo : \ + asmcomp/mach.cmi \ + asmcomp/CSEgen.cmi \ + asmcomp/arch.cmi \ + asmcomp/CSE.cmi +asmcomp/CSE.cmx : \ + asmcomp/mach.cmx \ + asmcomp/CSEgen.cmx \ + asmcomp/arch.cmx \ + asmcomp/CSE.cmi +asmcomp/arch.cmo : \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + asmcomp/arch.cmi +asmcomp/arch.cmx : \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + asmcomp/arch.cmi +asmcomp/arch.cmi : \ + lambda/debuginfo.cmi +asmcomp/emit.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmi \ + utils/domainstate.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/branch_relaxation.cmi \ + asmcomp/arch.cmi \ + asmcomp/emit.cmi +asmcomp/emit.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmx \ + utils/domainstate.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/branch_relaxation.cmx \ + asmcomp/arch.cmx \ + asmcomp/emit.cmi +asmcomp/proc.cmo : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + utils/ccomp.cmi \ + asmcomp/arch.cmi \ + asmcomp/proc.cmi +asmcomp/proc.cmx : \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + utils/ccomp.cmx \ + asmcomp/arch.cmx \ + asmcomp/proc.cmi +asmcomp/reload.cmo : \ + asmcomp/reloadgen.cmi \ + asmcomp/reload.cmi +asmcomp/reload.cmx : \ + asmcomp/reloadgen.cmx \ + asmcomp/reload.cmi +asmcomp/scheduling.cmo : \ + asmcomp/schedgen.cmi \ + asmcomp/mach.cmi \ + asmcomp/arch.cmi \ + asmcomp/scheduling.cmi +asmcomp/scheduling.cmx : \ + asmcomp/schedgen.cmx \ + asmcomp/mach.cmx \ + asmcomp/arch.cmx \ + asmcomp/scheduling.cmi +asmcomp/selection.cmo : \ + asmcomp/selectgen.cmi \ + asmcomp/mach.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + asmcomp/arch.cmi \ + asmcomp/selection.cmi +asmcomp/selection.cmx : \ + asmcomp/selectgen.cmx \ + asmcomp/mach.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + asmcomp/arch.cmx \ + asmcomp/selection.cmi +asmcomp/stackframe.cmo : \ + asmcomp/stackframegen.cmi \ + asmcomp/mach.cmi \ + asmcomp/stackframe.cmi +asmcomp/stackframe.cmx : \ + asmcomp/stackframegen.cmx \ + asmcomp/mach.cmx \ + asmcomp/stackframe.cmi +endif # ifeq "$(ARCH)" "power" +ifeq "$(ARCH)" "s390x" +asmcomp/CSE.cmo : \ + asmcomp/mach.cmi \ + asmcomp/CSEgen.cmi \ + asmcomp/arch.cmi \ + asmcomp/CSE.cmi +asmcomp/CSE.cmx : \ + asmcomp/mach.cmx \ + asmcomp/CSEgen.cmx \ + asmcomp/arch.cmx \ + asmcomp/CSE.cmi +asmcomp/arch.cmo : \ + utils/clflags.cmi \ + asmcomp/arch.cmi +asmcomp/arch.cmx : \ + utils/clflags.cmx \ + asmcomp/arch.cmi +asmcomp/arch.cmi : +asmcomp/emit.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmi \ + utils/domainstate.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ + asmcomp/emit.cmi +asmcomp/emit.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmx \ + utils/domainstate.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ + asmcomp/emit.cmi +asmcomp/proc.cmo : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + utils/ccomp.cmi \ + asmcomp/arch.cmi \ + asmcomp/proc.cmi +asmcomp/proc.cmx : \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + utils/ccomp.cmx \ + asmcomp/arch.cmx \ + asmcomp/proc.cmi +asmcomp/reload.cmo : \ + asmcomp/reloadgen.cmi \ + asmcomp/mach.cmi \ + asmcomp/arch.cmi \ + asmcomp/reload.cmi +asmcomp/reload.cmx : \ + asmcomp/reloadgen.cmx \ + asmcomp/mach.cmx \ + asmcomp/arch.cmx \ + asmcomp/reload.cmi +asmcomp/scheduling.cmo : \ + asmcomp/schedgen.cmi \ + asmcomp/scheduling.cmi +asmcomp/scheduling.cmx : \ + asmcomp/schedgen.cmx \ + asmcomp/scheduling.cmi +asmcomp/selection.cmo : \ + asmcomp/selectgen.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + asmcomp/arch.cmi \ + asmcomp/selection.cmi +asmcomp/selection.cmx : \ + asmcomp/selectgen.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + asmcomp/arch.cmx \ + asmcomp/selection.cmi +asmcomp/stackframe.cmo : \ + asmcomp/stackframegen.cmi \ + asmcomp/mach.cmi \ + asmcomp/stackframe.cmi +asmcomp/stackframe.cmx : \ + asmcomp/stackframegen.cmx \ + asmcomp/mach.cmx \ + asmcomp/stackframe.cmi +endif # ifeq "$(ARCH)" "s390x" +ifeq "$(ARCH)" "riscv" +asmcomp/CSE.cmo : \ + asmcomp/mach.cmi \ + asmcomp/CSEgen.cmi \ + asmcomp/arch.cmi \ + asmcomp/CSE.cmi +asmcomp/CSE.cmx : \ + asmcomp/mach.cmx \ + asmcomp/CSEgen.cmx \ + asmcomp/arch.cmx \ + asmcomp/CSE.cmi +asmcomp/arch.cmo : \ + asmcomp/arch.cmi +asmcomp/arch.cmx : \ + asmcomp/arch.cmi +asmcomp/arch.cmi : +asmcomp/emit.cmo : \ + asmcomp/reg.cmi \ + asmcomp/proc.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + asmcomp/linear.cmi \ + lambda/lambda.cmi \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmi \ + utils/domainstate.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + asmcomp/arch.cmi \ + asmcomp/emit.cmi +asmcomp/emit.cmx : \ + asmcomp/reg.cmx \ + asmcomp/proc.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + asmcomp/linear.cmx \ + lambda/lambda.cmx \ + asmcomp/emitenv.cmi \ + asmcomp/emitaux.cmx \ + utils/domainstate.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + asmcomp/arch.cmx \ + asmcomp/emit.cmi +asmcomp/proc.cmo : \ + asmcomp/reg.cmi \ + utils/misc.cmi \ + asmcomp/mach.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + asmcomp/arch.cmi \ + asmcomp/proc.cmi +asmcomp/proc.cmx : \ + asmcomp/reg.cmx \ + utils/misc.cmx \ + asmcomp/mach.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + asmcomp/arch.cmx \ + asmcomp/proc.cmi +asmcomp/reload.cmo : \ + asmcomp/reloadgen.cmi \ + asmcomp/reload.cmi +asmcomp/reload.cmx : \ + asmcomp/reloadgen.cmx \ + asmcomp/reload.cmi +asmcomp/scheduling.cmo : \ + asmcomp/schedgen.cmi \ + asmcomp/scheduling.cmi +asmcomp/scheduling.cmx : \ + asmcomp/schedgen.cmx \ + asmcomp/scheduling.cmi +asmcomp/selection.cmo : \ + asmcomp/selectgen.cmi \ + asmcomp/mach.cmi \ + asmcomp/cmm.cmi \ + asmcomp/arch.cmi \ + asmcomp/selection.cmi +asmcomp/selection.cmx : \ + asmcomp/selectgen.cmx \ + asmcomp/mach.cmx \ + asmcomp/cmm.cmx \ + asmcomp/arch.cmx \ + asmcomp/selection.cmi +asmcomp/stackframe.cmo : \ + asmcomp/stackframegen.cmi \ + asmcomp/mach.cmi \ + asmcomp/stackframe.cmi +asmcomp/stackframe.cmx : \ + asmcomp/stackframegen.cmx \ + asmcomp/mach.cmx \ + asmcomp/stackframe.cmi +endif # ifeq "$(ARCH)" "riscv" +middle_end/backend_intf.cmi : \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + typing/ident.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/backend_var.cmo : \ + typing/path.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + lambda/debuginfo.cmi \ + utils/clflags.cmi \ + middle_end/backend_var.cmi +middle_end/backend_var.cmx : \ + typing/path.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + lambda/debuginfo.cmx \ + utils/clflags.cmx \ + middle_end/backend_var.cmi +middle_end/backend_var.cmi : \ + typing/path.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi +middle_end/clambda.cmo : \ + typing/path.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + middle_end/clambda.cmi +middle_end/clambda.cmx : \ + typing/path.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + lambda/debuginfo.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + middle_end/clambda.cmi +middle_end/clambda.cmi : \ + typing/path.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi +middle_end/clambda_primitives.cmo : \ + typing/types.cmi \ + typing/primitive.cmi \ + lambda/lambda.cmi \ + parsing/asttypes.cmi \ + middle_end/clambda_primitives.cmi +middle_end/clambda_primitives.cmx : \ + typing/types.cmx \ + typing/primitive.cmx \ + lambda/lambda.cmx \ + parsing/asttypes.cmx \ + middle_end/clambda_primitives.cmi +middle_end/clambda_primitives.cmi : \ + typing/types.cmi \ + typing/primitive.cmi \ + lambda/lambda.cmi \ + parsing/asttypes.cmi +middle_end/compilation_unit.cmo : \ + utils/misc.cmi \ + middle_end/linkage_name.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi \ + middle_end/compilation_unit.cmi +middle_end/compilation_unit.cmx : \ + utils/misc.cmx \ + middle_end/linkage_name.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + typing/ident.cmx \ + middle_end/compilation_unit.cmi +middle_end/compilation_unit.cmi : \ + middle_end/linkage_name.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi +middle_end/compilenv.cmo : \ + utils/warnings.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + middle_end/linkage_name.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + middle_end/flambda/export_info.cmi \ + typing/env.cmi \ + utils/config.cmi \ + middle_end/compilation_unit.cmi \ + file_formats/cmx_format.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/clambda.cmi \ + middle_end/compilenv.cmi +middle_end/compilenv.cmx : \ + utils/warnings.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + middle_end/linkage_name.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + middle_end/flambda/export_info.cmx \ + typing/env.cmx \ + utils/config.cmx \ + middle_end/compilation_unit.cmx \ + file_formats/cmx_format.cmi \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/clambda.cmx \ + middle_end/compilenv.cmi +middle_end/compilenv.cmi : \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/linkage_name.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/compilation_unit.cmi \ + file_formats/cmx_format.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/clambda.cmi +middle_end/convert_primitives.cmo : \ + lambda/printlambda.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/convert_primitives.cmi +middle_end/convert_primitives.cmx : \ + lambda/printlambda.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/convert_primitives.cmi +middle_end/convert_primitives.cmi : \ + lambda/lambda.cmi \ + middle_end/clambda_primitives.cmi +middle_end/internal_variable_names.cmo : \ + parsing/location.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + lambda/debuginfo.cmi \ + middle_end/internal_variable_names.cmi +middle_end/internal_variable_names.cmx : \ + parsing/location.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + lambda/debuginfo.cmx \ + middle_end/internal_variable_names.cmi +middle_end/internal_variable_names.cmi : \ + lambda/lambda.cmi +middle_end/linkage_name.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/linkage_name.cmi +middle_end/linkage_name.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/linkage_name.cmi +middle_end/linkage_name.cmi : \ + utils/identifiable.cmi +middle_end/printclambda.cmo : \ + lambda/printlambda.cmi \ + middle_end/printclambda_primitives.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + middle_end/printclambda.cmi +middle_end/printclambda.cmx : \ + lambda/printlambda.cmx \ + middle_end/printclambda_primitives.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + middle_end/clambda.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + middle_end/printclambda.cmi +middle_end/printclambda.cmi : \ + middle_end/clambda.cmi +middle_end/printclambda_primitives.cmo : \ + lambda/printlambda.cmi \ + typing/primitive.cmi \ + lambda/lambda.cmi \ + middle_end/clambda_primitives.cmi \ + parsing/asttypes.cmi \ + middle_end/printclambda_primitives.cmi +middle_end/printclambda_primitives.cmx : \ + lambda/printlambda.cmx \ + typing/primitive.cmx \ + lambda/lambda.cmx \ + middle_end/clambda_primitives.cmx \ + parsing/asttypes.cmx \ + middle_end/printclambda_primitives.cmi +middle_end/printclambda_primitives.cmi : \ + middle_end/clambda_primitives.cmi +middle_end/semantics_of_primitives.cmo : \ + middle_end/clambda_primitives.cmi \ + middle_end/semantics_of_primitives.cmi +middle_end/semantics_of_primitives.cmx : \ + middle_end/clambda_primitives.cmx \ + middle_end/semantics_of_primitives.cmi +middle_end/semantics_of_primitives.cmi : \ + middle_end/clambda_primitives.cmi +middle_end/symbol.cmo : \ + middle_end/variable.cmi \ + utils/misc.cmi \ + middle_end/linkage_name.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/symbol.cmi +middle_end/symbol.cmx : \ + middle_end/variable.cmx \ + utils/misc.cmx \ + middle_end/linkage_name.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/symbol.cmi +middle_end/symbol.cmi : \ + middle_end/variable.cmi \ + middle_end/linkage_name.cmi \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi +middle_end/variable.cmo : \ + utils/misc.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/variable.cmi +middle_end/variable.cmx : \ + utils/misc.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + typing/ident.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/variable.cmi +middle_end/variable.cmi : \ + middle_end/internal_variable_names.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi \ + middle_end/compilation_unit.cmi +lambda/debuginfo.cmo : \ + parsing/location.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + typing/ident.cmi \ + parsing/asttypes.cmi \ + lambda/debuginfo.cmi +lambda/debuginfo.cmx : \ + parsing/location.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + typing/ident.cmx \ + parsing/asttypes.cmx \ + lambda/debuginfo.cmi +lambda/debuginfo.cmi : \ + parsing/location.cmi \ + typing/ident.cmi \ + parsing/asttypes.cmi +lambda/lambda.cmo : \ + typing/types.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + lambda/lambda.cmi +lambda/lambda.cmx : \ + typing/types.cmx \ + typing/primitive.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + lambda/lambda.cmi +lambda/lambda.cmi : \ + typing/types.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + parsing/asttypes.cmi +lambda/matching.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typeopt.cmi \ + typing/typedtree.cmi \ + lambda/switch.cmi \ + typing/printpat.cmi \ + lambda/printlambda.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + typing/patterns.cmi \ + typing/path.cmi \ + typing/parmatch.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + typing/data_types.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + lambda/matching.cmi +lambda/matching.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/typeopt.cmx \ + typing/typedtree.cmx \ + lambda/switch.cmx \ + typing/printpat.cmx \ + lambda/printlambda.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + typing/patterns.cmx \ + typing/path.cmx \ + typing/parmatch.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + typing/data_types.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + lambda/matching.cmi +lambda/matching.cmi : \ + typing/typedtree.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi +lambda/printlambda.cmo : \ + typing/types.cmi \ + typing/printtyp.cmi \ + typing/primitive.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + lambda/printlambda.cmi +lambda/printlambda.cmx : \ + typing/types.cmx \ + typing/printtyp.cmx \ + typing/primitive.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + lambda/debuginfo.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + lambda/printlambda.cmi +lambda/printlambda.cmi : \ + typing/types.cmi \ + lambda/lambda.cmi +lambda/runtimedef.cmo : \ + lambda/runtimedef.cmi +lambda/runtimedef.cmx : \ + lambda/runtimedef.cmi +lambda/runtimedef.cmi : +lambda/simplif.cmo : \ + utils/warnings.cmi \ + lambda/tmc.cmi \ + typing/primitive.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + lambda/simplif.cmi +lambda/simplif.cmx : \ + utils/warnings.cmx \ + lambda/tmc.cmx \ + typing/primitive.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + lambda/debuginfo.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + lambda/simplif.cmi +lambda/simplif.cmi : \ + lambda/lambda.cmi \ + typing/ident.cmi +lambda/switch.cmo : \ + lambda/switch.cmi +lambda/switch.cmx : \ + lambda/switch.cmi +lambda/switch.cmi : +lambda/tmc.cmo : \ + utils/warnings.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + lambda/debuginfo.cmi \ + parsing/asttypes.cmi \ + lambda/tmc.cmi +lambda/tmc.cmx : \ + utils/warnings.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + lambda/debuginfo.cmx \ + parsing/asttypes.cmx \ + lambda/tmc.cmi +lambda/tmc.cmi : \ + lambda/lambda.cmi +lambda/translattribute.cmo : \ + utils/warnings.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + utils/config.cmi \ + parsing/builtin_attributes.cmi \ + lambda/translattribute.cmi +lambda/translattribute.cmx : \ + utils/warnings.cmx \ + typing/typedtree.cmx \ + parsing/parsetree.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + utils/config.cmx \ + parsing/builtin_attributes.cmx \ + lambda/translattribute.cmi +lambda/translattribute.cmi : \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi +lambda/translclass.cmo : \ + typing/value_rec_types.cmi \ + typing/types.cmi \ + typing/typeopt.cmi \ + typing/typedtree.cmi \ + lambda/translobj.cmi \ + lambda/translcore.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + lambda/matching.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + lambda/translclass.cmi +lambda/translclass.cmx : \ + typing/value_rec_types.cmi \ + typing/types.cmx \ + typing/typeopt.cmx \ + typing/typedtree.cmx \ + lambda/translobj.cmx \ + lambda/translcore.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + lambda/matching.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + lambda/translclass.cmi +lambda/translclass.cmi : \ + typing/value_rec_types.cmi \ + typing/typedtree.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + lambda/debuginfo.cmi \ + parsing/asttypes.cmi +lambda/translcore.cmo : \ + lambda/value_rec_compiler.cmi \ + typing/types.cmi \ + typing/typeopt.cmi \ + typing/typedtree.cmi \ + typing/typecore.cmi \ + lambda/translprim.cmi \ + lambda/translobj.cmi \ + lambda/translattribute.cmi \ + typing/printtyp.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + typing/out_type.cmi \ + utils/misc.cmi \ + lambda/matching.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + typing/data_types.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + lambda/translcore.cmi +lambda/translcore.cmx : \ + lambda/value_rec_compiler.cmx \ + typing/types.cmx \ + typing/typeopt.cmx \ + typing/typedtree.cmx \ + typing/typecore.cmx \ + lambda/translprim.cmx \ + lambda/translobj.cmx \ + lambda/translattribute.cmx \ + typing/printtyp.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + typing/out_type.cmx \ + utils/misc.cmx \ + lambda/matching.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + typing/data_types.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + lambda/translcore.cmi +lambda/translcore.cmi : \ + typing/typedtree.cmi \ + typing/path.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + parsing/asttypes.cmi +lambda/translmod.cmo : \ + lambda/value_rec_compiler.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + lambda/translprim.cmi \ + lambda/translobj.cmi \ + lambda/translcore.cmi \ + lambda/translclass.cmi \ + lambda/translattribute.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + typing/mtype.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + typing/ctype.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + lambda/translmod.cmi +lambda/translmod.cmx : \ + lambda/value_rec_compiler.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + lambda/translprim.cmx \ + lambda/translobj.cmx \ + lambda/translcore.cmx \ + lambda/translclass.cmx \ + lambda/translattribute.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + typing/mtype.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + typing/ctype.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + lambda/translmod.cmi +lambda/translmod.cmi : \ + typing/typedtree.cmi \ + typing/primitive.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi +lambda/translobj.cmo : \ + typing/primitive.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + lambda/translobj.cmi +lambda/translobj.cmx : \ + typing/primitive.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + lambda/translobj.cmi +lambda/translobj.cmi : \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi +lambda/translprim.cmo : \ + typing/typeopt.cmi \ + typing/typedtree.cmi \ + typing/primitive.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + lambda/matching.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + lambda/translprim.cmi +lambda/translprim.cmx : \ + typing/typeopt.cmx \ + typing/typedtree.cmx \ + typing/primitive.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + lambda/matching.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + lambda/translprim.cmi +lambda/translprim.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/primitive.cmi \ + typing/path.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi +lambda/value_rec_compiler.cmo : \ + typing/value_rec_types.cmi \ + typing/primitive.cmi \ + utils/misc.cmi \ + utils/lazy_backtrack.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + lambda/debuginfo.cmi \ + parsing/asttypes.cmi \ + lambda/value_rec_compiler.cmi +lambda/value_rec_compiler.cmx : \ + typing/value_rec_types.cmi \ + typing/primitive.cmx \ + utils/misc.cmx \ + utils/lazy_backtrack.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + lambda/debuginfo.cmx \ + parsing/asttypes.cmx \ + lambda/value_rec_compiler.cmi +lambda/value_rec_compiler.cmi : \ + typing/value_rec_types.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi +file_formats/cmi_format.cmo : \ + typing/types.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + utils/config.cmi \ + utils/compression.cmi \ + file_formats/cmi_format.cmi +file_formats/cmi_format.cmx : \ + typing/types.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + utils/config.cmx \ + utils/compression.cmx \ + file_formats/cmi_format.cmi +file_formats/cmi_format.cmi : \ + typing/types.cmi \ + utils/misc.cmi \ + utils/format_doc.cmi +file_formats/cmo_format.cmi : +file_formats/cmt_format.cmo : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/tast_mapper.cmi \ + typing/tast_iterator.cmi \ + typing/shape_reduce.cmi \ + typing/shape.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + parsing/lexer.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/data_types.cmi \ + utils/config.cmi \ + utils/compression.cmi \ + file_formats/cmi_format.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + file_formats/cmt_format.cmi +file_formats/cmt_format.cmx : \ + parsing/unit_info.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/tast_mapper.cmx \ + typing/tast_iterator.cmx \ + typing/shape_reduce.cmx \ + typing/shape.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + parsing/lexer.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/data_types.cmx \ + utils/config.cmx \ + utils/compression.cmx \ + file_formats/cmi_format.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + file_formats/cmt_format.cmi +file_formats/cmt_format.cmi : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/shape_reduce.cmi \ + typing/shape.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/env.cmi \ + file_formats/cmi_format.cmi +file_formats/cmx_format.cmi : \ + utils/misc.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/clambda.cmi +file_formats/cmxs_format.cmi : +file_formats/linear_format.cmo : \ + utils/misc.cmi \ + parsing/location.cmi \ + asmcomp/linear.cmi \ + utils/format_doc.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + file_formats/linear_format.cmi +file_formats/linear_format.cmx : \ + utils/misc.cmx \ + parsing/location.cmx \ + asmcomp/linear.cmx \ + utils/format_doc.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + file_formats/linear_format.cmi +file_formats/linear_format.cmi : \ + asmcomp/linear.cmi \ + asmcomp/cmm.cmi +middle_end/closure/closure.cmo : \ + utils/warnings.cmi \ + lambda/switch.cmi \ + lambda/simplif.cmi \ + middle_end/semantics_of_primitives.cmi \ + typing/primitive.cmi \ + utils/numbers.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + lambda/debuginfo.cmi \ + middle_end/convert_primitives.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_var.cmi \ + middle_end/backend_intf.cmi \ + parsing/asttypes.cmi \ + middle_end/closure/closure.cmi +middle_end/closure/closure.cmx : \ + utils/warnings.cmx \ + lambda/switch.cmx \ + lambda/simplif.cmx \ + middle_end/semantics_of_primitives.cmx \ + typing/primitive.cmx \ + utils/numbers.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + lambda/debuginfo.cmx \ + middle_end/convert_primitives.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/clambda.cmx \ + middle_end/backend_var.cmx \ + middle_end/backend_intf.cmi \ + parsing/asttypes.cmx \ + middle_end/closure/closure.cmi +middle_end/closure/closure.cmi : \ + lambda/lambda.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_intf.cmi +middle_end/closure/closure_middle_end.cmo : \ + middle_end/printclambda.cmi \ + typing/path.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi \ + middle_end/compilenv.cmi \ + middle_end/closure/closure.cmi \ + utils/clflags.cmi \ + middle_end/clambda.cmi \ + middle_end/closure/closure_middle_end.cmi +middle_end/closure/closure_middle_end.cmx : \ + middle_end/printclambda.cmx \ + typing/path.cmx \ + lambda/lambda.cmx \ + typing/ident.cmx \ + middle_end/compilenv.cmx \ + middle_end/closure/closure.cmx \ + utils/clflags.cmx \ + middle_end/clambda.cmx \ + middle_end/closure/closure_middle_end.cmi +middle_end/closure/closure_middle_end.cmi : \ + lambda/lambda.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/alias_analysis.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/alias_analysis.cmi +middle_end/flambda/alias_analysis.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/alias_analysis.cmi +middle_end/flambda/alias_analysis.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/flambda.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi +middle_end/flambda/allocated_const.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/allocated_const.cmi +middle_end/flambda/allocated_const.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/allocated_const.cmi +middle_end/flambda/allocated_const.cmi : +middle_end/flambda/augment_specialised_args.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/pass_wrapper.cmi \ + middle_end/flambda/parameter.cmi \ + utils/misc.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/augment_specialised_args.cmi +middle_end/flambda/augment_specialised_args.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/pass_wrapper.cmx \ + middle_end/flambda/parameter.cmx \ + utils/misc.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/augment_specialised_args.cmi +middle_end/flambda/augment_specialised_args.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/build_export_info.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/traverse_for_exported_symbols.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + utils/misc.cmi \ + middle_end/flambda/invariant_params.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/find_recursive_functions.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/compilenv.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/build_export_info.cmi +middle_end/flambda/build_export_info.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/traverse_for_exported_symbols.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + utils/misc.cmx \ + middle_end/flambda/invariant_params.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/find_recursive_functions.cmx \ + middle_end/flambda/export_info.cmx \ + middle_end/flambda/base_types/export_id.cmx \ + middle_end/compilenv.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/build_export_info.cmi +middle_end/flambda/build_export_info.cmi : \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/closure_conversion.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + lambda/simplif.cmi \ + typing/predef.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + middle_end/flambda/lift_code.cmi \ + lambda/lambda.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + typing/ident.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/convert_primitives.cmi \ + utils/config.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/closure_conversion_aux.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/closure_conversion.cmi +middle_end/flambda/closure_conversion.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + lambda/simplif.cmx \ + typing/predef.cmx \ + middle_end/flambda/parameter.cmx \ + utils/numbers.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + middle_end/flambda/lift_code.cmx \ + lambda/lambda.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + typing/ident.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/convert_primitives.cmx \ + utils/config.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/closure_conversion_aux.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/closure_conversion.cmi +middle_end/flambda/closure_conversion.cmi : \ + lambda/lambda.cmi \ + typing/ident.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/closure_conversion_aux.cmo : \ + middle_end/variable.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + typing/ident.cmi \ + middle_end/flambda/closure_conversion_aux.cmi +middle_end/flambda/closure_conversion_aux.cmx : \ + middle_end/variable.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + utils/numbers.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + typing/ident.cmx \ + middle_end/flambda/closure_conversion_aux.cmi +middle_end/flambda/closure_conversion_aux.cmi : \ + middle_end/variable.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + lambda/lambda.cmi \ + typing/ident.cmi +middle_end/flambda/closure_offsets.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + utils/misc.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/closure_offsets.cmi +middle_end/flambda/closure_offsets.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + utils/misc.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/closure_offsets.cmi +middle_end/flambda/closure_offsets.cmi : \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/effect_analysis.cmo : \ + middle_end/semantics_of_primitives.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/flambda/effect_analysis.cmi +middle_end/flambda/effect_analysis.cmx : \ + middle_end/semantics_of_primitives.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/flambda/effect_analysis.cmi +middle_end/flambda/effect_analysis.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/export_info.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/export_info.cmi +middle_end/flambda/export_info.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/export_id.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/export_info.cmi +middle_end/flambda/export_info.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/export_info_for_pack.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/export_info_for_pack.cmi +middle_end/flambda/export_info_for_pack.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_origin.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/export_info.cmx \ + middle_end/flambda/base_types/export_id.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/export_info_for_pack.cmi +middle_end/flambda/export_info_for_pack.cmi : \ + middle_end/flambda/export_info.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/extract_projections.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/projection.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/extract_projections.cmi +middle_end/flambda/extract_projections.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/projection.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/freshening.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/extract_projections.cmi +middle_end/flambda/extract_projections.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/find_recursive_functions.cmo : \ + middle_end/variable.cmi \ + utils/strongly_connected_components.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/find_recursive_functions.cmi +middle_end/flambda/find_recursive_functions.cmx : \ + middle_end/variable.cmx \ + utils/strongly_connected_components.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/find_recursive_functions.cmi +middle_end/flambda/find_recursive_functions.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/flambda.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/projection.cmi \ + lambda/printlambda.cmi \ + middle_end/printclambda_primitives.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/flambda.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/base_types/set_of_closures_origin.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/projection.cmx \ + lambda/printlambda.cmx \ + middle_end/printclambda_primitives.cmx \ + middle_end/flambda/parameter.cmx \ + utils/numbers.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/flambda.cmi +middle_end/flambda/flambda.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + lambda/lambda.cmi \ + utils/identifiable.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/clambda_primitives.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi +middle_end/flambda/flambda_invariants.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/printclambda_primitives.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/clambda_primitives.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/flambda_invariants.cmi +middle_end/flambda/flambda_invariants.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/base_types/set_of_closures_origin.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/printclambda_primitives.cmx \ + middle_end/flambda/parameter.cmx \ + utils/numbers.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/clambda_primitives.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/flambda_invariants.cmi +middle_end/flambda/flambda_invariants.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/flambda_iterators.cmo : \ + middle_end/variable.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/flambda_iterators.cmi +middle_end/flambda/flambda_iterators.cmx : \ + middle_end/variable.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/flambda_iterators.cmi +middle_end/flambda/flambda_iterators.cmi : \ + middle_end/variable.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/flambda_middle_end.cmo : \ + utils/warnings.cmi \ + middle_end/variable.cmi \ + middle_end/flambda/un_anf.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/share_constants.cmi \ + middle_end/flambda/remove_unused_program_constructs.cmi \ + middle_end/flambda/remove_unused_closure_vars.cmi \ + middle_end/flambda/ref_to_variables.cmi \ + utils/profile.cmi \ + middle_end/printclambda.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + middle_end/linkage_name.cmi \ + middle_end/flambda/lift_let_to_initialize_symbol.cmi \ + middle_end/flambda/lift_constants.cmi \ + middle_end/flambda/lift_code.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify.cmi \ + middle_end/flambda/initialize_symbol_to_let_symbol.cmi \ + middle_end/flambda/flambda_to_clambda.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda_invariants.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilenv.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/closure_conversion.cmi \ + utils/clflags.cmi \ + middle_end/clambda.cmi \ + middle_end/flambda/build_export_info.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/flambda_middle_end.cmi +middle_end/flambda/flambda_middle_end.cmx : \ + utils/warnings.cmx \ + middle_end/variable.cmx \ + middle_end/flambda/un_anf.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/share_constants.cmx \ + middle_end/flambda/remove_unused_program_constructs.cmx \ + middle_end/flambda/remove_unused_closure_vars.cmx \ + middle_end/flambda/ref_to_variables.cmx \ + utils/profile.cmx \ + middle_end/printclambda.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + middle_end/linkage_name.cmx \ + middle_end/flambda/lift_let_to_initialize_symbol.cmx \ + middle_end/flambda/lift_constants.cmx \ + middle_end/flambda/lift_code.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify.cmx \ + middle_end/flambda/initialize_symbol_to_let_symbol.cmx \ + middle_end/flambda/flambda_to_clambda.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda_invariants.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilenv.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/closure_conversion.cmx \ + utils/clflags.cmx \ + middle_end/clambda.cmx \ + middle_end/flambda/build_export_info.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/flambda_middle_end.cmi +middle_end/flambda/flambda_middle_end.cmi : \ + lambda/lambda.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/flambda_to_clambda.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/un_anf.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + typing/primitive.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + middle_end/linkage_name.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/initialize_symbol_to_let_symbol.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilenv.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/closure_offsets.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_var.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/flambda_to_clambda.cmi +middle_end/flambda/flambda_to_clambda.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/un_anf.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + typing/primitive.cmx \ + middle_end/flambda/parameter.cmx \ + utils/numbers.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + middle_end/linkage_name.cmx \ + lambda/lambda.cmx \ + middle_end/flambda/initialize_symbol_to_let_symbol.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/export_info.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilenv.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/closure_offsets.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/clambda.cmx \ + middle_end/backend_var.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/flambda_to_clambda.cmi +middle_end/flambda/flambda_to_clambda.cmi : \ + middle_end/symbol.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/clambda.cmi +middle_end/flambda/flambda_utils.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + lambda/switch.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/clambda_primitives.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/flambda_utils.cmi +middle_end/flambda/flambda_utils.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/symbol.cmx \ + lambda/switch.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/parameter.cmx \ + utils/numbers.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/clambda_primitives.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/flambda_utils.cmi +middle_end/flambda/flambda_utils.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + lambda/switch.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + middle_end/internal_variable_names.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/freshening.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/freshening.cmi +middle_end/flambda/freshening.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/parameter.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/freshening.cmi +middle_end/flambda/freshening.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/import_approx.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + utils/misc.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/compilenv.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/import_approx.cmi +middle_end/flambda/import_approx.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + utils/misc.cmx \ + middle_end/flambda/freshening.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/export_info.cmx \ + middle_end/flambda/base_types/export_id.cmx \ + middle_end/compilenv.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/import_approx.cmi +middle_end/flambda/import_approx.cmi : \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi +middle_end/flambda/inconstant_idents.cmo : \ + middle_end/variable.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/parameter.cmi \ + utils/numbers.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/backend_intf.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/inconstant_idents.cmi +middle_end/flambda/inconstant_idents.cmx : \ + middle_end/variable.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/parameter.cmx \ + utils/numbers.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/backend_intf.cmi \ + parsing/asttypes.cmx \ + middle_end/flambda/inconstant_idents.cmi +middle_end/flambda/inconstant_idents.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/initialize_symbol_to_let_symbol.cmo : \ + middle_end/variable.cmi \ + utils/misc.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/initialize_symbol_to_let_symbol.cmi +middle_end/flambda/initialize_symbol_to_let_symbol.cmx : \ + middle_end/variable.cmx \ + utils/misc.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/initialize_symbol_to_let_symbol.cmi +middle_end/flambda/initialize_symbol_to_let_symbol.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/inline_and_simplify.cmo : \ + utils/warnings.cmi \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/unbox_specialised_args.cmi \ + middle_end/flambda/unbox_free_vars_of_closures.cmi \ + middle_end/flambda/unbox_closures.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/simplify_primitives.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/remove_unused_arguments.cmi \ + middle_end/flambda/remove_free_vars_equal_to_args.cmi \ + middle_end/flambda/projection.cmi \ + typing/predef.cmi \ + middle_end/flambda/parameter.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + middle_end/flambda/lift_code.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/invariant_params.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_stats.cmi \ + middle_end/flambda/inlining_decision.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + typing/ident.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/find_recursive_functions.cmi \ + middle_end/flambda/effect_analysis.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/inline_and_simplify.cmi +middle_end/flambda/inline_and_simplify.cmx : \ + utils/warnings.cmx \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/unbox_specialised_args.cmx \ + middle_end/flambda/unbox_free_vars_of_closures.cmx \ + middle_end/flambda/unbox_closures.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/simplify_primitives.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/remove_unused_arguments.cmx \ + middle_end/flambda/remove_free_vars_equal_to_args.cmx \ + middle_end/flambda/projection.cmx \ + typing/predef.cmx \ + middle_end/flambda/parameter.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + middle_end/flambda/lift_code.cmx \ + lambda/lambda.cmx \ + middle_end/flambda/invariant_params.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_stats.cmx \ + middle_end/flambda/inlining_decision.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + typing/ident.cmx \ + middle_end/flambda/freshening.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/find_recursive_functions.cmx \ + middle_end/flambda/effect_analysis.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/inline_and_simplify.cmi +middle_end/flambda/inline_and_simplify.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/inline_and_simplify_aux.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + utils/misc.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_stats.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi +middle_end/flambda/inline_and_simplify_aux.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/static_exception.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_origin.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/parameter.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + utils/misc.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_stats.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/freshening.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi +middle_end/flambda/inline_and_simplify_aux.cmi : \ + middle_end/variable.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/static_exception.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + middle_end/flambda/inlining_stats_types.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/inlining_cost.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + typing/primitive.cmi \ + utils/misc.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/flambda/inlining_cost.cmi +middle_end/flambda/inlining_cost.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/projection.cmx \ + typing/primitive.cmx \ + utils/misc.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/flambda/inlining_cost.cmi +middle_end/flambda/inlining_cost.cmi : \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/inlining_decision.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/parameter.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_transforms.cmi \ + middle_end/flambda/inlining_stats_types.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/flambda/inlining_decision.cmi +middle_end/flambda/inlining_decision.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/parameter.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_transforms.cmx \ + middle_end/flambda/inlining_stats_types.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/flambda/inlining_decision.cmi +middle_end/flambda/inlining_decision.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/inlining_decision_intf.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/inlining_decision_intf.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/inlining_stats.cmo : \ + utils/misc.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_stats_types.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/flambda/inlining_stats.cmi +middle_end/flambda/inlining_stats.cmx : \ + utils/misc.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_stats_types.cmx \ + lambda/debuginfo.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/flambda/inlining_stats.cmi +middle_end/flambda/inlining_stats.cmi : \ + middle_end/flambda/inlining_stats_types.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/inlining_stats_types.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inlining_stats_types.cmi +middle_end/flambda/inlining_stats_types.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inlining_stats_types.cmi +middle_end/flambda/inlining_stats_types.cmi : \ + middle_end/flambda/inlining_cost.cmi +middle_end/flambda/inlining_transforms.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + lambda/lambda.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_decision_intf.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/inlining_transforms.cmi +middle_end/flambda/inlining_transforms.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/parameter.cmx \ + lambda/lambda.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_decision_intf.cmi \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/inlining_transforms.cmi +middle_end/flambda/inlining_transforms.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/inlining_decision_intf.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/invariant_params.cmo : \ + middle_end/variable.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/parameter.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi \ + middle_end/flambda/invariant_params.cmi +middle_end/flambda/invariant_params.cmx : \ + middle_end/variable.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/parameter.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/backend_intf.cmi \ + middle_end/flambda/invariant_params.cmi +middle_end/flambda/invariant_params.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/lift_code.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/lift_code.cmi +middle_end/flambda/lift_code.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/lift_code.cmi +middle_end/flambda/lift_code.cmi : \ + middle_end/variable.cmi \ + middle_end/internal_variable_names.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/lift_constants.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + utils/strongly_connected_components.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + utils/misc.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inconstant_idents.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/backend_intf.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/alias_analysis.cmi \ + middle_end/flambda/lift_constants.cmi +middle_end/flambda/lift_constants.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + utils/strongly_connected_components.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + utils/misc.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inconstant_idents.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/backend_intf.cmi \ + parsing/asttypes.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/alias_analysis.cmx \ + middle_end/flambda/lift_constants.cmi +middle_end/flambda/lift_constants.cmi : \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/lift_let_to_initialize_symbol.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/lift_let_to_initialize_symbol.cmi +middle_end/flambda/lift_let_to_initialize_symbol.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/lift_let_to_initialize_symbol.cmi +middle_end/flambda/lift_let_to_initialize_symbol.cmi : \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/parameter.cmo : \ + middle_end/variable.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/parameter.cmi +middle_end/flambda/parameter.cmx : \ + middle_end/variable.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/parameter.cmi +middle_end/flambda/parameter.cmi : \ + middle_end/variable.cmi \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/pass_wrapper.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + utils/clflags.cmi \ + middle_end/flambda/pass_wrapper.cmi +middle_end/flambda/pass_wrapper.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + utils/clflags.cmx \ + middle_end/flambda/pass_wrapper.cmi +middle_end/flambda/pass_wrapper.cmi : +middle_end/flambda/projection.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/projection.cmi +middle_end/flambda/projection.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/projection.cmi +middle_end/flambda/projection.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/ref_to_variables.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi \ + lambda/lambda.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/ref_to_variables.cmi +middle_end/flambda/ref_to_variables.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/mutable_variable.cmx \ + lambda/lambda.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/ref_to_variables.cmi +middle_end/flambda/ref_to_variables.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/remove_free_vars_equal_to_args.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/pass_wrapper.cmi \ + middle_end/flambda/parameter.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/remove_free_vars_equal_to_args.cmi +middle_end/flambda/remove_free_vars_equal_to_args.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/pass_wrapper.cmx \ + middle_end/flambda/parameter.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/remove_free_vars_equal_to_args.cmi +middle_end/flambda/remove_free_vars_equal_to_args.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/remove_unused_arguments.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/parameter.cmi \ + middle_end/flambda/invariant_params.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/find_recursive_functions.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/flambda/remove_unused_arguments.cmi +middle_end/flambda/remove_unused_arguments.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/parameter.cmx \ + middle_end/flambda/invariant_params.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/find_recursive_functions.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/flambda/remove_unused_arguments.cmi +middle_end/flambda/remove_unused_arguments.cmi : \ + middle_end/flambda/flambda.cmi \ + middle_end/backend_intf.cmi +middle_end/flambda/remove_unused_closure_vars.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/parameter.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/remove_unused_closure_vars.cmi +middle_end/flambda/remove_unused_closure_vars.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/parameter.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/remove_unused_closure_vars.cmi +middle_end/flambda/remove_unused_closure_vars.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/remove_unused_program_constructs.cmo : \ + middle_end/symbol.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/effect_analysis.cmi \ + middle_end/flambda/remove_unused_program_constructs.cmi +middle_end/flambda/remove_unused_program_constructs.cmx : \ + middle_end/symbol.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/effect_analysis.cmx \ + middle_end/flambda/remove_unused_program_constructs.cmi +middle_end/flambda/remove_unused_program_constructs.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/share_constants.cmo : \ + middle_end/symbol.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/share_constants.cmi +middle_end/flambda/share_constants.cmx : \ + middle_end/symbol.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/share_constants.cmi +middle_end/flambda/share_constants.cmi : \ + middle_end/flambda/flambda.cmi +middle_end/flambda/simple_value_approx.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/parameter.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/flambda/effect_analysis.cmi \ + lambda/debuginfo.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/flambda/allocated_const.cmi \ + middle_end/flambda/simple_value_approx.cmi +middle_end/flambda/simple_value_approx.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/base_types/set_of_closures_origin.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + middle_end/flambda/parameter.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/freshening.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/export_id.cmx \ + middle_end/flambda/effect_analysis.cmx \ + lambda/debuginfo.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_origin.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/flambda/allocated_const.cmx \ + middle_end/flambda/simple_value_approx.cmi +middle_end/flambda/simple_value_approx.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/parameter.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/freshening.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + lambda/debuginfo.cmi \ + middle_end/flambda/base_types/closure_origin.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/simplify_boxed_integer_ops.cmo : \ + middle_end/flambda/simplify_common.cmi \ + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/flambda/simplify_boxed_integer_ops.cmi +middle_end/flambda/simplify_boxed_integer_ops.cmx : \ + middle_end/flambda/simplify_common.cmx \ + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi \ + middle_end/flambda/simple_value_approx.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/flambda/simplify_boxed_integer_ops.cmi +middle_end/flambda/simplify_boxed_integer_ops.cmi : \ + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi +middle_end/flambda/simplify_boxed_integer_ops_intf.cmi : \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/clambda_primitives.cmi +middle_end/flambda/simplify_common.cmo : \ + middle_end/flambda/simple_value_approx.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/effect_analysis.cmi \ + middle_end/flambda/simplify_common.cmi +middle_end/flambda/simplify_common.cmx : \ + middle_end/flambda/simple_value_approx.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/effect_analysis.cmx \ + middle_end/flambda/simplify_common.cmi +middle_end/flambda/simplify_common.cmi : \ + middle_end/flambda/simple_value_approx.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/simplify_primitives.cmo : \ + middle_end/flambda/base_types/tag.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simplify_common.cmi \ + middle_end/flambda/simplify_boxed_integer_ops.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/semantics_of_primitives.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/flambda.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/simplify_primitives.cmi +middle_end/flambda/simplify_primitives.cmx : \ + middle_end/flambda/base_types/tag.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simplify_common.cmx \ + middle_end/flambda/simplify_boxed_integer_ops.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/semantics_of_primitives.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/flambda.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/simplify_primitives.cmi +middle_end/flambda/simplify_primitives.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/flambda.cmi \ + lambda/debuginfo.cmi \ + middle_end/clambda_primitives.cmi +middle_end/flambda/traverse_for_exported_symbols.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + utils/misc.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/traverse_for_exported_symbols.cmi +middle_end/flambda/traverse_for_exported_symbols.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/base_types/var_within_closure.cmx \ + middle_end/symbol.cmx \ + middle_end/flambda/simple_value_approx.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + utils/misc.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/export_info.cmx \ + middle_end/flambda/base_types/export_id.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/traverse_for_exported_symbols.cmi +middle_end/flambda/traverse_for_exported_symbols.cmi : \ + middle_end/flambda/base_types/var_within_closure.cmi \ + middle_end/symbol.cmi \ + middle_end/flambda/simple_value_approx.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/flambda/base_types/export_id.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/un_anf.cmo : \ + middle_end/symbol.cmi \ + middle_end/semantics_of_primitives.cmi \ + middle_end/printclambda.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + utils/clflags.cmi \ + middle_end/clambda_primitives.cmi \ + middle_end/clambda.cmi \ + middle_end/backend_var.cmi \ + parsing/asttypes.cmi \ + middle_end/flambda/un_anf.cmi +middle_end/flambda/un_anf.cmx : \ + middle_end/symbol.cmx \ + middle_end/semantics_of_primitives.cmx \ + middle_end/printclambda.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + utils/clflags.cmx \ + middle_end/clambda_primitives.cmx \ + middle_end/clambda.cmx \ + middle_end/backend_var.cmx \ + parsing/asttypes.cmx \ + middle_end/flambda/un_anf.cmi +middle_end/flambda/un_anf.cmi : \ + middle_end/symbol.cmi \ + middle_end/clambda.cmi +middle_end/flambda/unbox_closures.cmo : \ + middle_end/variable.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + utils/clflags.cmi \ + middle_end/flambda/augment_specialised_args.cmi \ + middle_end/flambda/unbox_closures.cmi +middle_end/flambda/unbox_closures.cmx : \ + middle_end/variable.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + utils/clflags.cmx \ + middle_end/flambda/augment_specialised_args.cmx \ + middle_end/flambda/unbox_closures.cmi +middle_end/flambda/unbox_closures.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/unbox_free_vars_of_closures.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/pass_wrapper.cmi \ + utils/misc.cmi \ + middle_end/internal_variable_names.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda_utils.cmi \ + middle_end/flambda/flambda_iterators.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/extract_projections.cmi \ + utils/clflags.cmi \ + middle_end/flambda/unbox_free_vars_of_closures.cmi +middle_end/flambda/unbox_free_vars_of_closures.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/pass_wrapper.cmx \ + utils/misc.cmx \ + middle_end/internal_variable_names.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inlining_cost.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/flambda_utils.cmx \ + middle_end/flambda/flambda_iterators.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/extract_projections.cmx \ + utils/clflags.cmx \ + middle_end/flambda/unbox_free_vars_of_closures.cmi +middle_end/flambda/unbox_free_vars_of_closures.cmi : \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/unbox_specialised_args.cmo : \ + middle_end/variable.cmi \ + middle_end/flambda/projection.cmi \ + middle_end/flambda/invariant_params.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi \ + middle_end/flambda/extract_projections.cmi \ + utils/clflags.cmi \ + middle_end/flambda/augment_specialised_args.cmi \ + middle_end/flambda/unbox_specialised_args.cmi +middle_end/flambda/unbox_specialised_args.cmx : \ + middle_end/variable.cmx \ + middle_end/flambda/projection.cmx \ + middle_end/flambda/invariant_params.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/inline_and_simplify_aux.cmx \ + middle_end/flambda/flambda.cmx \ + middle_end/flambda/extract_projections.cmx \ + utils/clflags.cmx \ + middle_end/flambda/augment_specialised_args.cmx \ + middle_end/flambda/unbox_specialised_args.cmi +middle_end/flambda/unbox_specialised_args.cmi : \ + middle_end/variable.cmi \ + middle_end/flambda/inlining_cost.cmi \ + middle_end/flambda/inline_and_simplify_aux.cmi \ + middle_end/flambda/flambda.cmi +middle_end/flambda/base_types/closure_element.cmo : \ + middle_end/variable.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/closure_element.cmi +middle_end/flambda/base_types/closure_element.cmx : \ + middle_end/variable.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/closure_element.cmi +middle_end/flambda/base_types/closure_element.cmi : \ + middle_end/variable.cmi \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/base_types/closure_id.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/closure_element.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/base_types/closure_id.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/closure_element.cmx \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/base_types/closure_id.cmi : \ + middle_end/flambda/base_types/closure_element.cmi +middle_end/flambda/base_types/closure_origin.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/closure_id.cmi \ + middle_end/flambda/base_types/closure_origin.cmi +middle_end/flambda/base_types/closure_origin.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/closure_id.cmx \ + middle_end/flambda/base_types/closure_origin.cmi +middle_end/flambda/base_types/closure_origin.cmi : \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/closure_id.cmi +middle_end/flambda/base_types/export_id.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/base_types/id_types.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/export_id.cmi +middle_end/flambda/base_types/export_id.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/base_types/id_types.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/export_id.cmi +middle_end/flambda/base_types/export_id.cmi : \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/base_types/id_types.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/base_types/id_types.cmi +middle_end/flambda/base_types/id_types.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/base_types/id_types.cmi +middle_end/flambda/base_types/id_types.cmi : \ + utils/identifiable.cmi +middle_end/flambda/base_types/mutable_variable.cmo : \ + middle_end/variable.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/mutable_variable.cmi +middle_end/flambda/base_types/mutable_variable.cmx : \ + middle_end/variable.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/mutable_variable.cmi +middle_end/flambda/base_types/mutable_variable.cmi : \ + middle_end/variable.cmi \ + middle_end/internal_variable_names.cmi \ + utils/identifiable.cmi \ + typing/ident.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/base_types/set_of_closures_id.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/base_types/id_types.cmi \ + middle_end/compilation_unit.cmi \ + middle_end/flambda/base_types/set_of_closures_id.cmi +middle_end/flambda/base_types/set_of_closures_id.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/base_types/id_types.cmx \ + middle_end/compilation_unit.cmx \ + middle_end/flambda/base_types/set_of_closures_id.cmi +middle_end/flambda/base_types/set_of_closures_id.cmi : \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/base_types/set_of_closures_origin.cmo : \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/set_of_closures_origin.cmi +middle_end/flambda/base_types/set_of_closures_origin.cmx : \ + middle_end/flambda/base_types/set_of_closures_id.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/set_of_closures_origin.cmi +middle_end/flambda/base_types/set_of_closures_origin.cmi : \ + middle_end/flambda/base_types/set_of_closures_id.cmi \ + utils/identifiable.cmi \ + middle_end/compilation_unit.cmi +middle_end/flambda/base_types/static_exception.cmo : \ + utils/numbers.cmi \ + lambda/lambda.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/static_exception.cmi +middle_end/flambda/base_types/static_exception.cmx : \ + utils/numbers.cmx \ + lambda/lambda.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/static_exception.cmi +middle_end/flambda/base_types/static_exception.cmi : \ + utils/identifiable.cmi +middle_end/flambda/base_types/tag.cmo : \ + utils/numbers.cmi \ + utils/misc.cmi \ + utils/int_replace_polymorphic_compare.cmi \ + utils/identifiable.cmi \ + middle_end/flambda/base_types/tag.cmi +middle_end/flambda/base_types/tag.cmx : \ + utils/numbers.cmx \ + utils/misc.cmx \ + utils/int_replace_polymorphic_compare.cmx \ + utils/identifiable.cmx \ + middle_end/flambda/base_types/tag.cmi +middle_end/flambda/base_types/tag.cmi : \ + utils/identifiable.cmi +middle_end/flambda/base_types/var_within_closure.cmo : \ + utils/int_replace_polymorphic_compare.cmi \ + middle_end/flambda/base_types/closure_element.cmi \ + middle_end/flambda/base_types/var_within_closure.cmi +middle_end/flambda/base_types/var_within_closure.cmx : \ + utils/int_replace_polymorphic_compare.cmx \ + middle_end/flambda/base_types/closure_element.cmx \ + middle_end/flambda/base_types/var_within_closure.cmi +middle_end/flambda/base_types/var_within_closure.cmi : \ + middle_end/flambda/base_types/closure_element.cmi +driver/compenv.cmo : \ + utils/warnings.cmi \ + utils/profile.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + driver/compenv.cmi +driver/compenv.cmx : \ + utils/warnings.cmx \ + utils/profile.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + driver/compenv.cmi +driver/compenv.cmi : \ + utils/clflags.cmi +driver/compile.cmo : \ + parsing/unit_info.cmi \ + typing/typedtree.cmi \ + lambda/translmod.cmi \ + lambda/simplif.cmi \ + utils/profile.cmi \ + lambda/printlambda.cmi \ + bytecomp/printinstr.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + bytecomp/emitcode.cmi \ + driver/compile_common.cmi \ + utils/clflags.cmi \ + bytecomp/bytegen.cmi \ + driver/compile.cmi +driver/compile.cmx : \ + parsing/unit_info.cmx \ + typing/typedtree.cmx \ + lambda/translmod.cmx \ + lambda/simplif.cmx \ + utils/profile.cmx \ + lambda/printlambda.cmx \ + bytecomp/printinstr.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + bytecomp/emitcode.cmx \ + driver/compile_common.cmx \ + utils/clflags.cmx \ + bytecomp/bytegen.cmx \ + driver/compile.cmi +driver/compile.cmi : \ + typing/typedtree.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ + driver/compile_common.cmi \ + utils/clflags.cmi +driver/compile_common.cmo : \ + utils/warnings.cmi \ + parsing/unit_info.cmi \ + typing/typemod.cmi \ + typing/typedtree.cmi \ + typing/typecore.cmi \ + typing/shape.cmi \ + utils/profile.cmi \ + typing/printtyped.cmi \ + typing/printtyp.cmi \ + parsing/printast.cmi \ + parsing/pprintast.cmi \ + driver/pparse.cmi \ + utils/misc.cmi \ + typing/includemod.cmi \ + typing/env.cmi \ + driver/compmisc.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + driver/compile_common.cmi +driver/compile_common.cmx : \ + utils/warnings.cmx \ + parsing/unit_info.cmx \ + typing/typemod.cmx \ + typing/typedtree.cmx \ + typing/typecore.cmx \ + typing/shape.cmx \ + utils/profile.cmx \ + typing/printtyped.cmx \ + typing/printtyp.cmx \ + parsing/printast.cmx \ + parsing/pprintast.cmx \ + driver/pparse.cmx \ + utils/misc.cmx \ + typing/includemod.cmx \ + typing/env.cmx \ + driver/compmisc.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + driver/compile_common.cmi +driver/compile_common.cmi : \ + parsing/unit_info.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + utils/misc.cmi \ + typing/env.cmi +driver/compmisc.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typemod.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + utils/config.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + driver/compmisc.cmi +driver/compmisc.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/typemod.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + utils/config.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + driver/compmisc.cmi +driver/compmisc.cmi : \ + utils/load_path.cmi \ + typing/env.cmi \ + utils/clflags.cmi +driver/errors.cmo : \ + parsing/location.cmi \ + driver/errors.cmi +driver/errors.cmx : \ + parsing/location.cmx \ + driver/errors.cmi driver/errors.cmi : -driver/main_args.cmi : +driver/main.cmo : \ + driver/maindriver.cmi \ + driver/main.cmi +driver/main.cmx : \ + driver/maindriver.cmx \ + driver/main.cmi driver/main.cmi : -driver/optcompile.cmi : +driver/main_args.cmo : \ + utils/warnings.cmi \ + utils/profile.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/config.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + driver/main_args.cmi +driver/main_args.cmx : \ + utils/warnings.cmx \ + utils/profile.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/config.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + driver/main_args.cmi +driver/main_args.cmi : +driver/maindriver.cmo : \ + utils/warnings.cmi \ + utils/profile.cmi \ + driver/makedepend.cmi \ + driver/main_args.cmi \ + parsing/location.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + driver/compile.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + bytecomp/bytepackager.cmi \ + bytecomp/bytelink.cmi \ + bytecomp/bytelibrarian.cmi \ + driver/maindriver.cmi +driver/maindriver.cmx : \ + utils/warnings.cmx \ + utils/profile.cmx \ + driver/makedepend.cmx \ + driver/main_args.cmx \ + parsing/location.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + driver/compile.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + bytecomp/bytepackager.cmx \ + bytecomp/bytelink.cmx \ + bytecomp/bytelibrarian.cmx \ + driver/maindriver.cmi +driver/maindriver.cmi : +driver/makedepend.cmo : \ + parsing/unit_info.cmi \ + driver/pparse.cmi \ + parsing/parsetree.cmi \ + parsing/parser.cmi \ + parsing/parse.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + parsing/lexer.cmi \ + parsing/depend.cmi \ + utils/config.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + driver/makedepend.cmi +driver/makedepend.cmx : \ + parsing/unit_info.cmx \ + driver/pparse.cmx \ + parsing/parsetree.cmi \ + parsing/parser.cmx \ + parsing/parse.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + parsing/lexer.cmx \ + parsing/depend.cmx \ + utils/config.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + driver/makedepend.cmi +driver/makedepend.cmi : +driver/optcompile.cmo : \ + parsing/unit_info.cmi \ + typing/typedtree.cmi \ + lambda/translmod.cmi \ + lambda/simplif.cmi \ + utils/profile.cmi \ + lambda/printlambda.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/flambda_middle_end.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + driver/compile_common.cmi \ + middle_end/closure/closure_middle_end.cmi \ + utils/clflags.cmi \ + asmcomp/asmgen.cmi \ + driver/optcompile.cmi +driver/optcompile.cmx : \ + parsing/unit_info.cmx \ + typing/typedtree.cmx \ + lambda/translmod.cmx \ + lambda/simplif.cmx \ + utils/profile.cmx \ + lambda/printlambda.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + middle_end/flambda/flambda_middle_end.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + driver/compile_common.cmx \ + middle_end/closure/closure_middle_end.cmx \ + utils/clflags.cmx \ + asmcomp/asmgen.cmx \ + driver/optcompile.cmi +driver/optcompile.cmi : \ + typing/typedtree.cmi \ + driver/compile_common.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi +driver/opterrors.cmo : \ + parsing/location.cmi \ + driver/opterrors.cmi +driver/opterrors.cmx : \ + parsing/location.cmx \ + driver/opterrors.cmi driver/opterrors.cmi : -driver/optmain.cmi : -driver/pparse.cmi : parsing/parsetree.cmi -driver/compenv.cmo : utils/warnings.cmi utils/misc.cmi parsing/location.cmi \ - utils/config.cmi utils/clflags.cmi driver/compenv.cmi -driver/compenv.cmx : utils/warnings.cmx utils/misc.cmx parsing/location.cmx \ - utils/config.cmx utils/clflags.cmx driver/compenv.cmi -driver/compile.cmo : utils/warnings.cmi typing/typemod.cmi \ - typing/typedtree.cmi typing/typecore.cmi bytecomp/translmod.cmi \ - typing/stypes.cmi bytecomp/simplif.cmi typing/printtyped.cmi \ - typing/printtyp.cmi bytecomp/printlambda.cmi bytecomp/printinstr.cmi \ - parsing/printast.cmi parsing/pprintast.cmi driver/pparse.cmi \ - utils/misc.cmi parsing/location.cmi typing/includemod.cmi typing/env.cmi \ - bytecomp/emitcode.cmi driver/compmisc.cmi driver/compenv.cmi \ - utils/clflags.cmi utils/ccomp.cmi bytecomp/bytegen.cmi driver/compile.cmi -driver/compile.cmx : utils/warnings.cmx typing/typemod.cmx \ - typing/typedtree.cmx typing/typecore.cmx bytecomp/translmod.cmx \ - typing/stypes.cmx bytecomp/simplif.cmx typing/printtyped.cmx \ - typing/printtyp.cmx bytecomp/printlambda.cmx bytecomp/printinstr.cmx \ - parsing/printast.cmx parsing/pprintast.cmx driver/pparse.cmx \ - utils/misc.cmx parsing/location.cmx typing/includemod.cmx typing/env.cmx \ - bytecomp/emitcode.cmx driver/compmisc.cmx driver/compenv.cmx \ - utils/clflags.cmx utils/ccomp.cmx bytecomp/bytegen.cmx driver/compile.cmi -driver/compmisc.cmo : typing/typemod.cmi utils/misc.cmi \ - parsing/longident.cmi parsing/location.cmi typing/ident.cmi \ - typing/env.cmi utils/config.cmi driver/compenv.cmi utils/clflags.cmi \ - parsing/asttypes.cmi driver/compmisc.cmi -driver/compmisc.cmx : typing/typemod.cmx utils/misc.cmx \ - parsing/longident.cmx parsing/location.cmx typing/ident.cmx \ - typing/env.cmx utils/config.cmx driver/compenv.cmx utils/clflags.cmx \ - parsing/asttypes.cmi driver/compmisc.cmi -driver/errors.cmo : parsing/location.cmi driver/errors.cmi -driver/errors.cmx : parsing/location.cmx driver/errors.cmi -driver/main_args.cmo : utils/warnings.cmi driver/main_args.cmi -driver/main_args.cmx : utils/warnings.cmx driver/main_args.cmi -driver/main.cmo : utils/warnings.cmi utils/misc.cmi driver/main_args.cmi \ - parsing/location.cmi utils/config.cmi driver/compmisc.cmi \ - driver/compile.cmi driver/compenv.cmi utils/clflags.cmi \ - bytecomp/bytepackager.cmi bytecomp/bytelink.cmi \ - bytecomp/bytelibrarian.cmi driver/main.cmi -driver/main.cmx : utils/warnings.cmx utils/misc.cmx driver/main_args.cmx \ - parsing/location.cmx utils/config.cmx driver/compmisc.cmx \ - driver/compile.cmx driver/compenv.cmx utils/clflags.cmx \ - bytecomp/bytepackager.cmx bytecomp/bytelink.cmx \ - bytecomp/bytelibrarian.cmx driver/main.cmi -driver/optcompile.cmo : utils/warnings.cmi typing/typemod.cmi \ - typing/typedtree.cmi typing/typecore.cmi bytecomp/translmod.cmi \ - typing/stypes.cmi bytecomp/simplif.cmi typing/printtyped.cmi \ - typing/printtyp.cmi bytecomp/printlambda.cmi parsing/printast.cmi \ - parsing/pprintast.cmi driver/pparse.cmi utils/misc.cmi \ - typing/includemod.cmi typing/env.cmi utils/config.cmi driver/compmisc.cmi \ - asmcomp/compilenv.cmi driver/compenv.cmi utils/clflags.cmi \ - utils/ccomp.cmi asmcomp/asmgen.cmi driver/optcompile.cmi -driver/optcompile.cmx : utils/warnings.cmx typing/typemod.cmx \ - typing/typedtree.cmx typing/typecore.cmx bytecomp/translmod.cmx \ - typing/stypes.cmx bytecomp/simplif.cmx typing/printtyped.cmx \ - typing/printtyp.cmx bytecomp/printlambda.cmx parsing/printast.cmx \ - parsing/pprintast.cmx driver/pparse.cmx utils/misc.cmx \ - typing/includemod.cmx typing/env.cmx utils/config.cmx driver/compmisc.cmx \ - asmcomp/compilenv.cmx driver/compenv.cmx utils/clflags.cmx \ - utils/ccomp.cmx asmcomp/asmgen.cmx driver/optcompile.cmi -driver/opterrors.cmo : parsing/location.cmi driver/opterrors.cmi -driver/opterrors.cmx : parsing/location.cmx driver/opterrors.cmi -driver/optmain.cmo : utils/warnings.cmi asmcomp/printmach.cmi \ - driver/optcompile.cmi utils/misc.cmi driver/main_args.cmi \ - parsing/location.cmi utils/config.cmi driver/compmisc.cmi \ - driver/compenv.cmi utils/clflags.cmi asmcomp/asmpackager.cmi \ - asmcomp/asmlink.cmi asmcomp/asmlibrarian.cmi asmcomp/arch.cmo \ +driver/optmain.cmo : \ + driver/optmaindriver.cmi \ driver/optmain.cmi -driver/optmain.cmx : utils/warnings.cmx asmcomp/printmach.cmx \ - driver/optcompile.cmx utils/misc.cmx driver/main_args.cmx \ - parsing/location.cmx utils/config.cmx driver/compmisc.cmx \ - driver/compenv.cmx utils/clflags.cmx asmcomp/asmpackager.cmx \ - asmcomp/asmlink.cmx asmcomp/asmlibrarian.cmx asmcomp/arch.cmx \ +driver/optmain.cmx : \ + driver/optmaindriver.cmx \ driver/optmain.cmi -driver/pparse.cmo : parsing/parse.cmi utils/misc.cmi parsing/location.cmi \ - utils/config.cmi utils/clflags.cmi utils/ccomp.cmi parsing/ast_mapper.cmi \ +driver/optmain.cmi : +driver/optmaindriver.cmo : \ + utils/warnings.cmi \ + utils/profile.cmi \ + asmcomp/proc.cmi \ + driver/optcompile.cmi \ + driver/makedepend.cmi \ + driver/main_args.cmi \ + parsing/location.cmi \ + middle_end/flambda/import_approx.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + middle_end/compilenv.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi \ + asmcomp/asmpackager.cmi \ + asmcomp/asmlink.cmi \ + asmcomp/asmlibrarian.cmi \ + asmcomp/arch.cmi \ + driver/optmaindriver.cmi +driver/optmaindriver.cmx : \ + utils/warnings.cmx \ + utils/profile.cmx \ + asmcomp/proc.cmx \ + driver/optcompile.cmx \ + driver/makedepend.cmx \ + driver/main_args.cmx \ + parsing/location.cmx \ + middle_end/flambda/import_approx.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + middle_end/compilenv.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + middle_end/backend_intf.cmi \ + asmcomp/asmpackager.cmx \ + asmcomp/asmlink.cmx \ + asmcomp/asmlibrarian.cmx \ + asmcomp/arch.cmx \ + driver/optmaindriver.cmi +driver/optmaindriver.cmi : +driver/pparse.cmo : \ + utils/warnings.cmi \ + utils/profile.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/format_doc.cmi \ + utils/config.cmi \ + utils/clflags.cmi \ + utils/ccomp.cmi \ + parsing/ast_mapper.cmi \ + parsing/ast_iterator.cmi \ + parsing/ast_invariants.cmi \ driver/pparse.cmi -driver/pparse.cmx : parsing/parse.cmx utils/misc.cmx parsing/location.cmx \ - utils/config.cmx utils/clflags.cmx utils/ccomp.cmx parsing/ast_mapper.cmx \ +driver/pparse.cmx : \ + utils/warnings.cmx \ + utils/profile.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/format_doc.cmx \ + utils/config.cmx \ + utils/clflags.cmx \ + utils/ccomp.cmx \ + parsing/ast_mapper.cmx \ + parsing/ast_iterator.cmx \ + parsing/ast_invariants.cmx \ driver/pparse.cmi -toplevel/genprintval.cmi : typing/types.cmi typing/path.cmi \ - typing/outcometree.cmi typing/env.cmi -toplevel/opttopdirs.cmi : parsing/longident.cmi -toplevel/opttoploop.cmi : utils/warnings.cmi typing/types.cmi \ - typing/path.cmi parsing/parsetree.cmi typing/outcometree.cmi \ - parsing/longident.cmi parsing/location.cmi typing/env.cmi -toplevel/opttopmain.cmi : -toplevel/topdirs.cmi : parsing/longident.cmi -toplevel/toploop.cmi : utils/warnings.cmi typing/types.cmi typing/path.cmi \ - parsing/parsetree.cmi typing/outcometree.cmi parsing/longident.cmi \ - parsing/location.cmi typing/env.cmi -toplevel/topmain.cmi : -toplevel/trace.cmi : typing/types.cmi typing/path.cmi parsing/longident.cmi \ - typing/env.cmi -toplevel/expunge.cmo : bytecomp/symtable.cmi bytecomp/runtimedef.cmi \ - utils/misc.cmi typing/ident.cmi bytecomp/bytesections.cmi -toplevel/expunge.cmx : bytecomp/symtable.cmx bytecomp/runtimedef.cmx \ - utils/misc.cmx typing/ident.cmx bytecomp/bytesections.cmx -toplevel/genprintval.cmo : typing/types.cmi typing/printtyp.cmi \ - typing/predef.cmi typing/path.cmi typing/outcometree.cmi \ - typing/oprint.cmi utils/misc.cmi parsing/longident.cmi typing/ident.cmi \ - typing/env.cmi typing/datarepr.cmi typing/ctype.cmi typing/btype.cmi \ +driver/pparse.cmi : \ + parsing/parsetree.cmi \ + utils/format_doc.cmi +toplevel/expunge.cmo : \ + parsing/unit_info.cmi \ + bytecomp/symtable.cmi \ + utils/misc.cmi \ + file_formats/cmo_format.cmi \ + bytecomp/bytesections.cmi \ + toplevel/expunge.cmi +toplevel/expunge.cmx : \ + parsing/unit_info.cmx \ + bytecomp/symtable.cmx \ + utils/misc.cmx \ + file_formats/cmo_format.cmi \ + bytecomp/bytesections.cmx \ + toplevel/expunge.cmi +toplevel/expunge.cmi : +toplevel/genprintval.cmo : \ + typing/untypeast.cmi \ + typing/types.cmi \ + parsing/syntaxerr.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + parsing/parse.cmi \ + typing/outcometree.cmi \ + typing/out_type.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/lexer.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + typing/datarepr.cmi \ + typing/data_types.cmi \ + typing/ctype.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ toplevel/genprintval.cmi -toplevel/genprintval.cmx : typing/types.cmx typing/printtyp.cmx \ - typing/predef.cmx typing/path.cmx typing/outcometree.cmi \ - typing/oprint.cmx utils/misc.cmx parsing/longident.cmx typing/ident.cmx \ - typing/env.cmx typing/datarepr.cmx typing/ctype.cmx typing/btype.cmx \ +toplevel/genprintval.cmx : \ + typing/untypeast.cmx \ + typing/types.cmx \ + parsing/syntaxerr.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + parsing/parse.cmx \ + typing/outcometree.cmi \ + typing/out_type.cmx \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/lexer.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + typing/datarepr.cmx \ + typing/data_types.cmx \ + typing/ctype.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ toplevel/genprintval.cmi -toplevel/opttopdirs.cmo : utils/warnings.cmi typing/types.cmi \ - typing/printtyp.cmi toplevel/opttoploop.cmi utils/misc.cmi \ - parsing/longident.cmi typing/ident.cmi typing/env.cmi typing/ctype.cmi \ - utils/config.cmi utils/clflags.cmi asmcomp/asmlink.cmi \ - toplevel/opttopdirs.cmi -toplevel/opttopdirs.cmx : utils/warnings.cmx typing/types.cmx \ - typing/printtyp.cmx toplevel/opttoploop.cmx utils/misc.cmx \ - parsing/longident.cmx typing/ident.cmx typing/env.cmx typing/ctype.cmx \ - utils/config.cmx utils/clflags.cmx asmcomp/asmlink.cmx \ - toplevel/opttopdirs.cmi -toplevel/opttoploop.cmo : utils/warnings.cmi typing/types.cmi \ - typing/typemod.cmi typing/typedtree.cmi typing/typecore.cmi \ - bytecomp/translmod.cmi bytecomp/simplif.cmi typing/printtyped.cmi \ - typing/printtyp.cmi bytecomp/printlambda.cmi parsing/printast.cmi \ - typing/predef.cmi parsing/pprintast.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/parse.cmi typing/outcometree.cmi \ - typing/oprint.cmi utils/misc.cmi parsing/longident.cmi \ - parsing/location.cmi parsing/lexer.cmi typing/ident.cmi \ - toplevel/genprintval.cmi typing/env.cmi utils/config.cmi \ - driver/compmisc.cmi asmcomp/compilenv.cmi utils/clflags.cmi \ - typing/btype.cmi asmcomp/asmlink.cmi asmcomp/asmgen.cmi \ - toplevel/opttoploop.cmi -toplevel/opttoploop.cmx : utils/warnings.cmx typing/types.cmx \ - typing/typemod.cmx typing/typedtree.cmx typing/typecore.cmx \ - bytecomp/translmod.cmx bytecomp/simplif.cmx typing/printtyped.cmx \ - typing/printtyp.cmx bytecomp/printlambda.cmx parsing/printast.cmx \ - typing/predef.cmx parsing/pprintast.cmx typing/path.cmx \ - parsing/parsetree.cmi parsing/parse.cmx typing/outcometree.cmi \ - typing/oprint.cmx utils/misc.cmx parsing/longident.cmx \ - parsing/location.cmx parsing/lexer.cmx typing/ident.cmx \ - toplevel/genprintval.cmx typing/env.cmx utils/config.cmx \ - driver/compmisc.cmx asmcomp/compilenv.cmx utils/clflags.cmx \ - typing/btype.cmx asmcomp/asmlink.cmx asmcomp/asmgen.cmx \ - toplevel/opttoploop.cmi -toplevel/opttopmain.cmo : utils/warnings.cmi asmcomp/printmach.cmi \ - toplevel/opttoploop.cmi toplevel/opttopdirs.cmi utils/misc.cmi \ - driver/main_args.cmi parsing/location.cmi utils/config.cmi \ - driver/compenv.cmi utils/clflags.cmi toplevel/opttopmain.cmi -toplevel/opttopmain.cmx : utils/warnings.cmx asmcomp/printmach.cmx \ - toplevel/opttoploop.cmx toplevel/opttopdirs.cmx utils/misc.cmx \ - driver/main_args.cmx parsing/location.cmx utils/config.cmx \ - driver/compenv.cmx utils/clflags.cmx toplevel/opttopmain.cmi -toplevel/opttopstart.cmo : toplevel/opttopmain.cmi -toplevel/opttopstart.cmx : toplevel/opttopmain.cmx -toplevel/topdirs.cmo : utils/warnings.cmi typing/typetexp.cmi \ - typing/types.cmi toplevel/trace.cmi toplevel/toploop.cmi \ - bytecomp/symtable.cmi typing/printtyp.cmi typing/predef.cmi \ - typing/path.cmi bytecomp/opcodes.cmo utils/misc.cmi bytecomp/meta.cmi \ - parsing/longident.cmi parsing/location.cmi typing/ident.cmi \ - typing/env.cmi bytecomp/dll.cmi typing/ctype.cmi utils/consistbl.cmi \ - utils/config.cmi bytecomp/cmo_format.cmi utils/clflags.cmi \ - typing/btype.cmi parsing/asttypes.cmi toplevel/topdirs.cmi -toplevel/topdirs.cmx : utils/warnings.cmx typing/typetexp.cmx \ - typing/types.cmx toplevel/trace.cmx toplevel/toploop.cmx \ - bytecomp/symtable.cmx typing/printtyp.cmx typing/predef.cmx \ - typing/path.cmx bytecomp/opcodes.cmx utils/misc.cmx bytecomp/meta.cmx \ - parsing/longident.cmx parsing/location.cmx typing/ident.cmx \ - typing/env.cmx bytecomp/dll.cmx typing/ctype.cmx utils/consistbl.cmx \ - utils/config.cmx bytecomp/cmo_format.cmi utils/clflags.cmx \ - typing/btype.cmx parsing/asttypes.cmi toplevel/topdirs.cmi -toplevel/toploop.cmo : utils/warnings.cmi typing/types.cmi \ - typing/typemod.cmi typing/typedtree.cmi typing/typecore.cmi \ - bytecomp/translmod.cmi bytecomp/symtable.cmi bytecomp/simplif.cmi \ - typing/printtyped.cmi typing/printtyp.cmi bytecomp/printlambda.cmi \ - bytecomp/printinstr.cmi parsing/printast.cmi typing/predef.cmi \ - parsing/pprintast.cmi driver/pparse.cmi typing/path.cmi \ - parsing/parsetree.cmi parsing/parse.cmi typing/outcometree.cmi \ - typing/oprint.cmi utils/misc.cmi bytecomp/meta.cmi parsing/longident.cmi \ - parsing/location.cmi parsing/lexer.cmi typing/includemod.cmi \ - typing/ident.cmi toplevel/genprintval.cmi typing/env.cmi \ - bytecomp/emitcode.cmi bytecomp/dll.cmi utils/consistbl.cmi \ - utils/config.cmi driver/compmisc.cmi utils/clflags.cmi \ - bytecomp/bytegen.cmi typing/btype.cmi parsing/ast_helper.cmi \ +toplevel/genprintval.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + typing/outcometree.cmi \ + typing/env.cmi +toplevel/topcommon.cmo : \ + parsing/unit_info.cmi \ + typing/typemod.cmi \ + typing/typedtree.cmi \ + typing/typecore.cmi \ + bytecomp/symtable.cmi \ + typing/shape_reduce.cmi \ + typing/shape.cmi \ + typing/printtyped.cmi \ + parsing/printast.cmi \ + typing/predef.cmi \ + parsing/pprintast.cmi \ + driver/pparse.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + parsing/lexer.cmi \ + typing/includemod.cmi \ + typing/ident.cmi \ + toplevel/genprintval.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + bytecomp/dll.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + driver/compenv.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + toplevel/topcommon.cmi +toplevel/topcommon.cmx : \ + parsing/unit_info.cmx \ + typing/typemod.cmx \ + typing/typedtree.cmx \ + typing/typecore.cmx \ + bytecomp/symtable.cmx \ + typing/shape_reduce.cmx \ + typing/shape.cmx \ + typing/printtyped.cmx \ + parsing/printast.cmx \ + typing/predef.cmx \ + parsing/pprintast.cmx \ + driver/pparse.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + typing/outcometree.cmi \ + typing/oprint.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + parsing/lexer.cmx \ + typing/includemod.cmx \ + typing/ident.cmx \ + toplevel/genprintval.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + bytecomp/dll.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + driver/compenv.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ + toplevel/topcommon.cmi +toplevel/topcommon.cmi : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/ident.cmi \ + toplevel/genprintval.cmi \ + typing/env.cmi +toplevel/topdirs.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + toplevel/topprinters.cmi \ + toplevel/toploop.cmi \ + toplevel/topeval.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/out_type.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + bytecomp/dll.cmi \ + typing/data_types.cmi \ + typing/ctype.cmi \ + utils/config.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + toplevel/topdirs.cmi +toplevel/topdirs.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + toplevel/topprinters.cmx \ + toplevel/toploop.cmx \ + toplevel/topeval.cmi \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + typing/out_type.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + bytecomp/dll.cmx \ + typing/data_types.cmx \ + typing/ctype.cmx \ + utils/config.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + parsing/ast_helper.cmx \ + toplevel/topdirs.cmi +toplevel/topdirs.cmi : \ + parsing/longident.cmi +toplevel/topeval.cmi : \ + toplevel/topcommon.cmi \ + parsing/parsetree.cmi +toplevel/toploop.cmo : \ + utils/warnings.cmi \ + typing/typetexp.cmi \ + toplevel/topeval.cmi \ + toplevel/topcommon.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + parsing/lexer.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ toplevel/toploop.cmi -toplevel/toploop.cmx : utils/warnings.cmx typing/types.cmx \ - typing/typemod.cmx typing/typedtree.cmx typing/typecore.cmx \ - bytecomp/translmod.cmx bytecomp/symtable.cmx bytecomp/simplif.cmx \ - typing/printtyped.cmx typing/printtyp.cmx bytecomp/printlambda.cmx \ - bytecomp/printinstr.cmx parsing/printast.cmx typing/predef.cmx \ - parsing/pprintast.cmx driver/pparse.cmx typing/path.cmx \ - parsing/parsetree.cmi parsing/parse.cmx typing/outcometree.cmi \ - typing/oprint.cmx utils/misc.cmx bytecomp/meta.cmx parsing/longident.cmx \ - parsing/location.cmx parsing/lexer.cmx typing/includemod.cmx \ - typing/ident.cmx toplevel/genprintval.cmx typing/env.cmx \ - bytecomp/emitcode.cmx bytecomp/dll.cmx utils/consistbl.cmx \ - utils/config.cmx driver/compmisc.cmx utils/clflags.cmx \ - bytecomp/bytegen.cmx typing/btype.cmx parsing/ast_helper.cmx \ +toplevel/toploop.cmx : \ + utils/warnings.cmx \ + typing/typetexp.cmx \ + toplevel/topeval.cmi \ + toplevel/topcommon.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + parsing/lexer.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ toplevel/toploop.cmi -toplevel/topmain.cmo : utils/warnings.cmi toplevel/toploop.cmi \ - toplevel/topdirs.cmi utils/misc.cmi driver/main_args.cmi \ - parsing/location.cmi utils/config.cmi driver/compenv.cmi \ - utils/clflags.cmi toplevel/topmain.cmi -toplevel/topmain.cmx : utils/warnings.cmx toplevel/toploop.cmx \ - toplevel/topdirs.cmx utils/misc.cmx driver/main_args.cmx \ - parsing/location.cmx utils/config.cmx driver/compenv.cmx \ - utils/clflags.cmx toplevel/topmain.cmi -toplevel/topstart.cmo : toplevel/topmain.cmi -toplevel/topstart.cmx : toplevel/topmain.cmx -toplevel/trace.cmo : typing/types.cmi toplevel/toploop.cmi \ - typing/printtyp.cmi typing/predef.cmi typing/path.cmi utils/misc.cmi \ - bytecomp/meta.cmi parsing/longident.cmi typing/ctype.cmi \ - toplevel/trace.cmi -toplevel/trace.cmx : typing/types.cmx toplevel/toploop.cmx \ - typing/printtyp.cmx typing/predef.cmx typing/path.cmx utils/misc.cmx \ - bytecomp/meta.cmx parsing/longident.cmx typing/ctype.cmx \ - toplevel/trace.cmi +toplevel/toploop.cmi : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/env.cmi +toplevel/topmain.cmi : +toplevel/topprinters.cmo : \ + typing/types.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + toplevel/topprinters.cmi +toplevel/topprinters.cmx : \ + typing/types.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + parsing/longident.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + toplevel/topprinters.cmi +toplevel/topprinters.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/env.cmi +toplevel/topstart.cmo : \ + toplevel/topmain.cmi \ + toplevel/topstart.cmi +toplevel/topstart.cmx : \ + toplevel/topmain.cmi \ + toplevel/topstart.cmi +toplevel/topstart.cmi : +toplevel/trace.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/env.cmi +toplevel/byte/topeval.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + lambda/translmod.cmi \ + toplevel/topcommon.cmi \ + bytecomp/symtable.cmi \ + lambda/simplif.cmi \ + typing/printtyp.cmi \ + lambda/printlambda.cmi \ + bytecomp/printinstr.cmi \ + typing/predef.cmi \ + typing/persistent_env.cmi \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/out_type.cmi \ + utils/misc.cmi \ + bytecomp/meta.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + bytecomp/emitcode.cmi \ + bytecomp/dll.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + bytecomp/bytegen.cmi \ + toplevel/byte/topeval.cmi +toplevel/byte/topeval.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + lambda/translmod.cmx \ + toplevel/topcommon.cmx \ + bytecomp/symtable.cmx \ + lambda/simplif.cmx \ + typing/printtyp.cmx \ + lambda/printlambda.cmx \ + bytecomp/printinstr.cmx \ + typing/predef.cmx \ + typing/persistent_env.cmx \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/out_type.cmx \ + utils/misc.cmx \ + bytecomp/meta.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + bytecomp/emitcode.cmx \ + bytecomp/dll.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + bytecomp/bytegen.cmx \ + toplevel/byte/topeval.cmi +toplevel/byte/topeval.cmi : \ + toplevel/topcommon.cmi \ + parsing/parsetree.cmi +toplevel/byte/topmain.cmo : \ + typing/types.cmi \ + toplevel/byte/trace.cmi \ + toplevel/toploop.cmi \ + toplevel/topdirs.cmi \ + toplevel/topcommon.cmi \ + typing/printtyp.cmi \ + typing/path.cmi \ + driver/main_args.cmi \ + parsing/location.cmi \ + typing/env.cmi \ + typing/ctype.cmi \ + driver/compmisc.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + toplevel/byte/topmain.cmi +toplevel/byte/topmain.cmx : \ + typing/types.cmx \ + toplevel/byte/trace.cmx \ + toplevel/toploop.cmx \ + toplevel/topdirs.cmx \ + toplevel/topcommon.cmx \ + typing/printtyp.cmx \ + typing/path.cmx \ + driver/main_args.cmx \ + parsing/location.cmx \ + typing/env.cmx \ + typing/ctype.cmx \ + driver/compmisc.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + toplevel/byte/topmain.cmi +toplevel/byte/topmain.cmi : +toplevel/byte/trace.cmo : \ + typing/types.cmi \ + toplevel/byte/topeval.cmi \ + toplevel/topcommon.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + bytecomp/meta.cmi \ + parsing/longident.cmi \ + typing/ctype.cmi \ + parsing/asttypes.cmi \ + toplevel/byte/trace.cmi +toplevel/byte/trace.cmx : \ + typing/types.cmx \ + toplevel/byte/topeval.cmx \ + toplevel/topcommon.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + bytecomp/meta.cmx \ + parsing/longident.cmx \ + typing/ctype.cmx \ + parsing/asttypes.cmx \ + toplevel/byte/trace.cmi +toplevel/byte/trace.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/env.cmi +toplevel/native/topeval.cmo : \ + utils/warnings.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + lambda/translmod.cmi \ + toplevel/native/tophooks.cmi \ + toplevel/topcommon.cmi \ + lambda/simplif.cmi \ + typing/printtyp.cmi \ + lambda/printlambda.cmi \ + typing/predef.cmi \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/out_type.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + lambda/lambda.cmi \ + typing/includemod.cmi \ + typing/ident.cmi \ + typing/env.cmi \ + otherlibs/dynlink/dynlink.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + middle_end/compilenv.cmi \ + utils/clflags.cmi \ + asmcomp/asmlink.cmi \ + toplevel/native/topeval.cmi +toplevel/native/topeval.cmx : \ + utils/warnings.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + lambda/translmod.cmx \ + toplevel/native/tophooks.cmx \ + toplevel/topcommon.cmx \ + lambda/simplif.cmx \ + typing/printtyp.cmx \ + lambda/printlambda.cmx \ + typing/predef.cmx \ + parsing/parsetree.cmi \ + typing/outcometree.cmi \ + typing/out_type.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + lambda/lambda.cmx \ + typing/includemod.cmx \ + typing/ident.cmx \ + typing/env.cmx \ + otherlibs/dynlink/dynlink.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + middle_end/compilenv.cmx \ + utils/clflags.cmx \ + asmcomp/asmlink.cmx \ + toplevel/native/topeval.cmi +toplevel/native/topeval.cmi : \ + toplevel/topcommon.cmi \ + parsing/parsetree.cmi +toplevel/native/tophooks.cmo : \ + toplevel/topcommon.cmi \ + asmcomp/proc.cmi \ + utils/misc.cmi \ + lambda/lambda.cmi \ + middle_end/flambda/import_approx.cmi \ + middle_end/flambda/flambda_middle_end.cmi \ + otherlibs/dynlink/dynlink.cmi \ + utils/config.cmi \ + middle_end/compilenv.cmi \ + middle_end/closure/closure_middle_end.cmi \ + utils/clflags.cmi \ + middle_end/backend_intf.cmi \ + asmcomp/asmlink.cmi \ + asmcomp/asmgen.cmi \ + asmcomp/arch.cmi \ + toplevel/native/tophooks.cmi +toplevel/native/tophooks.cmx : \ + toplevel/topcommon.cmx \ + asmcomp/proc.cmx \ + utils/misc.cmx \ + lambda/lambda.cmx \ + middle_end/flambda/import_approx.cmx \ + middle_end/flambda/flambda_middle_end.cmx \ + otherlibs/dynlink/dynlink.cmx \ + utils/config.cmx \ + middle_end/compilenv.cmx \ + middle_end/closure/closure_middle_end.cmx \ + utils/clflags.cmx \ + middle_end/backend_intf.cmi \ + asmcomp/asmlink.cmx \ + asmcomp/asmgen.cmx \ + asmcomp/arch.cmx \ + toplevel/native/tophooks.cmi +toplevel/native/tophooks.cmi : \ + toplevel/topcommon.cmi \ + lambda/lambda.cmi +toplevel/native/topmain.cmo : \ + toplevel/toploop.cmi \ + toplevel/topcommon.cmi \ + driver/main_args.cmi \ + parsing/location.cmi \ + driver/compmisc.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + toplevel/native/topmain.cmi +toplevel/native/topmain.cmx : \ + toplevel/toploop.cmx \ + toplevel/topcommon.cmx \ + driver/main_args.cmx \ + parsing/location.cmx \ + driver/compmisc.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + toplevel/native/topmain.cmi +toplevel/native/topmain.cmi : +toplevel/native/trace.cmo : \ + typing/path.cmi \ + toplevel/native/trace.cmi +toplevel/native/trace.cmx : \ + typing/path.cmx \ + toplevel/native/trace.cmi +toplevel/native/trace.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/env.cmi +lex/common.cmo : \ + lex/syntax.cmi \ + lex/lexgen.cmi \ + lex/common.cmi +lex/common.cmx : \ + lex/syntax.cmx \ + lex/lexgen.cmx \ + lex/common.cmi +lex/common.cmi : \ + lex/syntax.cmi \ + lex/lexgen.cmi +lex/compact.cmo : \ + lex/table.cmi \ + lex/lexgen.cmi \ + lex/compact.cmi +lex/compact.cmx : \ + lex/table.cmx \ + lex/lexgen.cmx \ + lex/compact.cmi +lex/compact.cmi : \ + lex/lexgen.cmi +lex/cset.cmo : \ + lex/cset.cmi +lex/cset.cmx : \ + lex/cset.cmi +lex/cset.cmi : +lex/lexer.cmo : \ + lex/syntax.cmi \ + lex/parser.cmi \ + lex/lexer.cmi +lex/lexer.cmx : \ + lex/syntax.cmx \ + lex/parser.cmx \ + lex/lexer.cmi +lex/lexer.cmi : \ + lex/parser.cmi +lex/lexgen.cmo : \ + lex/table.cmi \ + lex/syntax.cmi \ + lex/cset.cmi \ + lex/lexgen.cmi +lex/lexgen.cmx : \ + lex/table.cmx \ + lex/syntax.cmx \ + lex/cset.cmx \ + lex/lexgen.cmi +lex/lexgen.cmi : \ + lex/syntax.cmi +lex/main.cmo : \ + lex/syntax.cmi \ + lex/parser.cmi \ + lex/outputbis.cmi \ + lex/output.cmi \ + lex/lexgen.cmi \ + lex/lexer.cmi \ + lex/cset.cmi \ + lex/compact.cmi \ + lex/common.cmi \ + lex/main.cmi +lex/main.cmx : \ + lex/syntax.cmx \ + lex/parser.cmx \ + lex/outputbis.cmx \ + lex/output.cmx \ + lex/lexgen.cmx \ + lex/lexer.cmx \ + lex/cset.cmx \ + lex/compact.cmx \ + lex/common.cmx \ + lex/main.cmi +lex/main.cmi : +lex/output.cmo : \ + lex/lexgen.cmi \ + lex/compact.cmi \ + lex/common.cmi \ + lex/output.cmi +lex/output.cmx : \ + lex/lexgen.cmx \ + lex/compact.cmx \ + lex/common.cmx \ + lex/output.cmi +lex/output.cmi : \ + lex/syntax.cmi \ + lex/lexgen.cmi \ + lex/compact.cmi \ + lex/common.cmi +lex/outputbis.cmo : \ + lex/lexgen.cmi \ + lex/common.cmi \ + lex/outputbis.cmi +lex/outputbis.cmx : \ + lex/lexgen.cmx \ + lex/common.cmx \ + lex/outputbis.cmi +lex/outputbis.cmi : \ + lex/syntax.cmi \ + lex/lexgen.cmi \ + lex/common.cmi +lex/parser.cmo : \ + lex/syntax.cmi \ + lex/cset.cmi \ + lex/parser.cmi +lex/parser.cmx : \ + lex/syntax.cmx \ + lex/cset.cmx \ + lex/parser.cmi +lex/parser.cmi : \ + lex/syntax.cmi +lex/syntax.cmo : \ + lex/cset.cmi \ + lex/syntax.cmi +lex/syntax.cmx : \ + lex/cset.cmx \ + lex/syntax.cmi +lex/syntax.cmi : \ + lex/cset.cmi +lex/table.cmo : \ + lex/table.cmi +lex/table.cmx : \ + lex/table.cmi +lex/table.cmi : +tools/cmpbyt.cmo : \ + bytecomp/bytesections.cmi \ + tools/cmpbyt.cmi +tools/cmpbyt.cmx : \ + bytecomp/bytesections.cmx \ + tools/cmpbyt.cmi +tools/cmpbyt.cmi : +tools/cvt_emit.cmo : \ + tools/cvt_emit.cmi +tools/cvt_emit.cmx : \ + tools/cvt_emit.cmi +tools/cvt_emit.cmi : +tools/dumpobj.cmo : \ + bytecomp/symtable.cmi \ + tools/opnames.cmi \ + bytecomp/opcodes.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + bytecomp/instruct.cmi \ + utils/format_doc.cmi \ + utils/config.cmi \ + utils/compression.cmi \ + file_formats/cmo_format.cmi \ + bytecomp/bytesections.cmi \ + tools/dumpobj.cmi +tools/dumpobj.cmx : \ + bytecomp/symtable.cmx \ + tools/opnames.cmx \ + bytecomp/opcodes.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + bytecomp/instruct.cmx \ + utils/format_doc.cmx \ + utils/config.cmx \ + utils/compression.cmx \ + file_formats/cmo_format.cmi \ + bytecomp/bytesections.cmx \ + tools/dumpobj.cmi +tools/dumpobj.cmi : +tools/eqparsetree.cmo : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/asttypes.cmi +tools/eqparsetree.cmx : \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/asttypes.cmx +tools/gen_sizeclasses.cmo : +tools/gen_sizeclasses.cmx : +tools/lintapidiff.cmo : \ + parsing/unit_info.cmi \ + otherlibs/str/str.cmi \ + typing/printtyp.cmi \ + driver/pparse.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + tools/lintapidiff.cmi +tools/lintapidiff.cmx : \ + parsing/unit_info.cmx \ + otherlibs/str/str.cmx \ + typing/printtyp.cmx \ + driver/pparse.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + tools/lintapidiff.cmi +tools/lintapidiff.cmi : +tools/make_opcodes.cmo : \ + tools/make_opcodes.cmi +tools/make_opcodes.cmx : \ + tools/make_opcodes.cmi +tools/make_opcodes.cmi : +tools/objinfo.cmo : \ + typing/typedtree.cmi \ + bytecomp/symtable.cmi \ + middle_end/symbol.cmi \ + typing/shape_reduce.cmi \ + typing/shape.cmi \ + middle_end/printclambda.cmi \ + parsing/pprintast.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + middle_end/linkage_name.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + middle_end/flambda/export_info.cmi \ + middle_end/compilation_unit.cmi \ + file_formats/cmxs_format.cmi \ + file_formats/cmx_format.cmi \ + file_formats/cmt_format.cmi \ + file_formats/cmo_format.cmi \ + file_formats/cmi_format.cmi \ + bytecomp/bytesections.cmi \ + utils/binutils.cmi \ + tools/objinfo.cmi +tools/objinfo.cmx : \ + typing/typedtree.cmx \ + bytecomp/symtable.cmx \ + middle_end/symbol.cmx \ + typing/shape_reduce.cmx \ + typing/shape.cmx \ + middle_end/printclambda.cmx \ + parsing/pprintast.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + middle_end/linkage_name.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + middle_end/flambda/export_info.cmx \ + middle_end/compilation_unit.cmx \ + file_formats/cmxs_format.cmi \ + file_formats/cmx_format.cmi \ + file_formats/cmt_format.cmx \ + file_formats/cmo_format.cmi \ + file_formats/cmi_format.cmx \ + bytecomp/bytesections.cmx \ + utils/binutils.cmx \ + tools/objinfo.cmi +tools/objinfo.cmi : +tools/ocamlcmt.cmo : \ + typing/untypeast.cmi \ + typing/stypes.cmi \ + parsing/pprintast.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + typing/envaux.cmi \ + driver/compmisc.cmi \ + file_formats/cmt_format.cmi \ + typing/cmt2annot.cmi \ + utils/clflags.cmi \ + typing/annot.cmi \ + tools/ocamlcmt.cmi +tools/ocamlcmt.cmx : \ + typing/untypeast.cmx \ + typing/stypes.cmx \ + parsing/pprintast.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + typing/envaux.cmx \ + driver/compmisc.cmx \ + file_formats/cmt_format.cmx \ + typing/cmt2annot.cmx \ + utils/clflags.cmx \ + typing/annot.cmi \ + tools/ocamlcmt.cmi +tools/ocamlcmt.cmi : +tools/ocamlcp.cmo : \ + tools/ocamlcp_common.cmi \ + driver/main_args.cmi \ + tools/ocamlcp.cmi +tools/ocamlcp.cmx : \ + tools/ocamlcp_common.cmx \ + driver/main_args.cmx \ + tools/ocamlcp.cmi +tools/ocamlcp.cmi : +tools/ocamlcp_common.cmo : \ + driver/main_args.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + tools/ocamlcp_common.cmi +tools/ocamlcp_common.cmx : \ + driver/main_args.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + tools/ocamlcp_common.cmi +tools/ocamlcp_common.cmi : \ + driver/main_args.cmi +tools/ocamldep.cmo : \ + driver/makedepend.cmi \ + tools/ocamldep.cmi +tools/ocamldep.cmx : \ + driver/makedepend.cmx \ + tools/ocamldep.cmi +tools/ocamldep.cmi : +tools/ocamlmklib.cmo : \ + utils/misc.cmi \ + utils/config.cmi \ + tools/ocamlmklib.cmi +tools/ocamlmklib.cmx : \ + utils/misc.cmx \ + utils/config.cmx \ + tools/ocamlmklib.cmi +tools/ocamlmklib.cmi : +tools/ocamlmktop.cmo : \ + utils/config.cmi \ + utils/ccomp.cmi \ + tools/ocamlmktop.cmi +tools/ocamlmktop.cmx : \ + utils/config.cmx \ + utils/ccomp.cmx \ + tools/ocamlmktop.cmi +tools/ocamlmktop.cmi : +tools/ocamloptp.cmo : \ + tools/ocamlcp_common.cmi \ + driver/main_args.cmi \ + tools/ocamloptp.cmi +tools/ocamloptp.cmx : \ + tools/ocamlcp_common.cmx \ + driver/main_args.cmx \ + tools/ocamloptp.cmi +tools/ocamloptp.cmi : +tools/ocamlprof.cmo : \ + utils/warnings.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + parsing/location.cmi \ + utils/clflags.cmi \ + tools/ocamlprof.cmi +tools/ocamlprof.cmx : \ + utils/warnings.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + parsing/location.cmx \ + utils/clflags.cmx \ + tools/ocamlprof.cmi +tools/ocamlprof.cmi : +tools/ocamltex.cmo : \ + otherlibs/unix/unix.cmi \ + toplevel/toploop.cmi \ + parsing/syntaxerr.cmi \ + otherlibs/str/str.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + parsing/lexer.cmi \ + driver/compmisc.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + parsing/ast_iterator.cmi \ + parsing/ast_helper.cmi \ + tools/ocamltex.cmi +tools/ocamltex.cmx : \ + otherlibs/unix/unix.cmx \ + toplevel/toploop.cmx \ + parsing/syntaxerr.cmx \ + otherlibs/str/str.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + parsing/lexer.cmx \ + driver/compmisc.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + parsing/ast_iterator.cmx \ + parsing/ast_helper.cmx \ + tools/ocamltex.cmi +tools/ocamltex.cmi : +tools/opnames.cmo : \ + tools/opnames.cmi +tools/opnames.cmx : \ + tools/opnames.cmi +tools/opnames.cmi : +tools/primreq.cmo : \ + utils/misc.cmi \ + utils/config.cmi \ + file_formats/cmo_format.cmi \ + tools/primreq.cmi +tools/primreq.cmx : \ + utils/misc.cmx \ + utils/config.cmx \ + file_formats/cmo_format.cmi \ + tools/primreq.cmi +tools/primreq.cmi : +tools/profiling.cmo : \ + tools/profiling.cmi +tools/profiling.cmx : \ + tools/profiling.cmi +tools/profiling.cmi : +tools/stripdebug.cmo : \ + utils/misc.cmi \ + bytecomp/bytesections.cmi \ + tools/stripdebug.cmi +tools/stripdebug.cmx : \ + utils/misc.cmx \ + bytecomp/bytesections.cmx \ + tools/stripdebug.cmi +tools/stripdebug.cmi : +tools/sync_dynlink.cmo : \ + tools/sync_dynlink.cmi +tools/sync_dynlink.cmx : \ + tools/sync_dynlink.cmi +tools/sync_dynlink.cmi : +debugger/breakpoints.cmo : \ + debugger/symbols.cmi \ + debugger/pos.cmi \ + debugger/parameters.cmi \ + utils/misc.cmi \ + bytecomp/instruct.cmi \ + debugger/exec.cmi \ + debugger/events.cmi \ + debugger/debugger_config.cmi \ + debugger/debugcom.cmi \ + debugger/checkpoints.cmi \ + debugger/breakpoints.cmi +debugger/breakpoints.cmx : \ + debugger/symbols.cmx \ + debugger/pos.cmx \ + debugger/parameters.cmx \ + utils/misc.cmx \ + bytecomp/instruct.cmx \ + debugger/exec.cmx \ + debugger/events.cmx \ + debugger/debugger_config.cmx \ + debugger/debugcom.cmx \ + debugger/checkpoints.cmx \ + debugger/breakpoints.cmi +debugger/breakpoints.cmi : \ + debugger/events.cmi \ + debugger/debugcom.cmi +debugger/checkpoints.cmo : \ + debugger/primitives.cmi \ + debugger/int64ops.cmi \ + debugger/debugcom.cmi \ + debugger/checkpoints.cmi +debugger/checkpoints.cmx : \ + debugger/primitives.cmx \ + debugger/int64ops.cmx \ + debugger/debugcom.cmx \ + debugger/checkpoints.cmi +debugger/checkpoints.cmi : \ + debugger/primitives.cmi \ + debugger/debugcom.cmi +debugger/command_line.cmo : \ + debugger/unix_tools.cmi \ + otherlibs/unix/unix.cmi \ + parsing/unit_info.cmi \ + typing/types.cmi \ + debugger/time_travel.cmi \ + debugger/symbols.cmi \ + debugger/source.cmi \ + debugger/show_source.cmi \ + debugger/show_information.cmi \ + debugger/question.cmi \ + debugger/program_management.cmi \ + debugger/program_loading.cmi \ + debugger/printval.cmi \ + debugger/primitives.cmi \ + debugger/pos.cmi \ + debugger/parser_aux.cmi \ + debugger/parameters.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + debugger/loadprinter.cmi \ + utils/load_path.cmi \ + debugger/int64ops.cmi \ + bytecomp/instruct.cmi \ + debugger/input_handling.cmi \ + debugger/history.cmi \ + debugger/frames.cmi \ + debugger/events.cmi \ + debugger/eval.cmi \ + typing/envaux.cmi \ + typing/env.cmi \ + debugger/debugger_parser.cmi \ + debugger/debugger_lexer.cmi \ + debugger/debugger_config.cmi \ + debugger/debugcom.cmi \ + driver/compmisc.cmi \ + debugger/checkpoints.cmi \ + debugger/breakpoints.cmi \ + debugger/command_line.cmi +debugger/command_line.cmx : \ + debugger/unix_tools.cmx \ + otherlibs/unix/unix.cmx \ + parsing/unit_info.cmx \ + typing/types.cmx \ + debugger/time_travel.cmx \ + debugger/symbols.cmx \ + debugger/source.cmx \ + debugger/show_source.cmx \ + debugger/show_information.cmx \ + debugger/question.cmx \ + debugger/program_management.cmx \ + debugger/program_loading.cmx \ + debugger/printval.cmx \ + debugger/primitives.cmx \ + debugger/pos.cmx \ + debugger/parser_aux.cmi \ + debugger/parameters.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + debugger/loadprinter.cmx \ + utils/load_path.cmx \ + debugger/int64ops.cmx \ + bytecomp/instruct.cmx \ + debugger/input_handling.cmx \ + debugger/history.cmx \ + debugger/frames.cmx \ + debugger/events.cmx \ + debugger/eval.cmx \ + typing/envaux.cmx \ + typing/env.cmx \ + debugger/debugger_parser.cmx \ + debugger/debugger_lexer.cmx \ + debugger/debugger_config.cmx \ + debugger/debugcom.cmx \ + driver/compmisc.cmx \ + debugger/checkpoints.cmx \ + debugger/breakpoints.cmx \ + debugger/command_line.cmi +debugger/command_line.cmi : +debugger/debugcom.cmo : \ + debugger/primitives.cmi \ + utils/misc.cmi \ + debugger/int64ops.cmi \ + bytecomp/instruct.cmi \ + debugger/input_handling.cmi \ + debugger/debugcom.cmi +debugger/debugcom.cmx : \ + debugger/primitives.cmx \ + utils/misc.cmx \ + debugger/int64ops.cmx \ + bytecomp/instruct.cmx \ + debugger/input_handling.cmx \ + debugger/debugcom.cmi +debugger/debugcom.cmi : \ + debugger/primitives.cmi \ + bytecomp/instruct.cmi +debugger/debugger_config.cmo : \ + debugger/int64ops.cmi \ + debugger/debugger_config.cmi +debugger/debugger_config.cmx : \ + debugger/int64ops.cmx \ + debugger/debugger_config.cmi +debugger/debugger_config.cmi : +debugger/debugger_lexer.cmo : \ + utils/misc.cmi \ + debugger/debugger_parser.cmi \ + debugger/debugger_lexer.cmi +debugger/debugger_lexer.cmx : \ + utils/misc.cmx \ + debugger/debugger_parser.cmx \ + debugger/debugger_lexer.cmi +debugger/debugger_lexer.cmi : \ + debugger/debugger_parser.cmi +debugger/debugger_parser.cmo : \ + debugger/parser_aux.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + debugger/int64ops.cmi \ + debugger/input_handling.cmi \ + debugger/debugcom.cmi \ + debugger/debugger_parser.cmi +debugger/debugger_parser.cmx : \ + debugger/parser_aux.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + debugger/int64ops.cmx \ + debugger/input_handling.cmx \ + debugger/debugcom.cmx \ + debugger/debugger_parser.cmi +debugger/debugger_parser.cmi : \ + debugger/parser_aux.cmi \ + parsing/longident.cmi +debugger/eval.cmo : \ + typing/types.cmi \ + bytecomp/symtable.cmi \ + typing/subst.cmi \ + debugger/printval.cmi \ + typing/printtyp.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + debugger/parser_aux.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + bytecomp/instruct.cmi \ + typing/ident.cmi \ + debugger/frames.cmi \ + utils/format_doc.cmi \ + debugger/events.cmi \ + typing/env.cmi \ + debugger/debugcom.cmi \ + typing/ctype.cmi \ + typing/btype.cmi \ + debugger/eval.cmi +debugger/eval.cmx : \ + typing/types.cmx \ + bytecomp/symtable.cmx \ + typing/subst.cmx \ + debugger/printval.cmx \ + typing/printtyp.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + debugger/parser_aux.cmi \ + utils/misc.cmx \ + parsing/longident.cmx \ + bytecomp/instruct.cmx \ + typing/ident.cmx \ + debugger/frames.cmx \ + utils/format_doc.cmx \ + debugger/events.cmx \ + typing/env.cmx \ + debugger/debugcom.cmx \ + typing/ctype.cmx \ + typing/btype.cmx \ + debugger/eval.cmi +debugger/eval.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + debugger/parser_aux.cmi \ + parsing/longident.cmi \ + typing/ident.cmi \ + debugger/events.cmi \ + typing/env.cmi \ + debugger/debugcom.cmi +debugger/events.cmo : \ + parsing/location.cmi \ + bytecomp/instruct.cmi \ + debugger/events.cmi +debugger/events.cmx : \ + parsing/location.cmx \ + bytecomp/instruct.cmx \ + debugger/events.cmi +debugger/events.cmi : \ + bytecomp/instruct.cmi +debugger/exec.cmo : \ + debugger/exec.cmi +debugger/exec.cmx : \ + debugger/exec.cmi +debugger/exec.cmi : +debugger/frames.cmo : \ + debugger/symbols.cmi \ + utils/misc.cmi \ + bytecomp/instruct.cmi \ + debugger/events.cmi \ + debugger/debugcom.cmi \ + debugger/frames.cmi +debugger/frames.cmx : \ + debugger/symbols.cmx \ + utils/misc.cmx \ + bytecomp/instruct.cmx \ + debugger/events.cmx \ + debugger/debugcom.cmx \ + debugger/frames.cmi +debugger/frames.cmi : \ + debugger/events.cmi +debugger/history.cmo : \ + debugger/primitives.cmi \ + debugger/int64ops.cmi \ + debugger/debugger_config.cmi \ + debugger/checkpoints.cmi \ + debugger/history.cmi +debugger/history.cmx : \ + debugger/primitives.cmx \ + debugger/int64ops.cmx \ + debugger/debugger_config.cmx \ + debugger/checkpoints.cmx \ + debugger/history.cmi +debugger/history.cmi : +debugger/input_handling.cmo : \ + otherlibs/unix/unix.cmi \ + debugger/primitives.cmi \ + debugger/parameters.cmi \ + debugger/input_handling.cmi +debugger/input_handling.cmx : \ + otherlibs/unix/unix.cmx \ + debugger/primitives.cmx \ + debugger/parameters.cmx \ + debugger/input_handling.cmi +debugger/input_handling.cmi : \ + debugger/primitives.cmi +debugger/int64ops.cmo : \ + debugger/int64ops.cmi +debugger/int64ops.cmx : \ + debugger/int64ops.cmi +debugger/int64ops.cmi : +debugger/loadprinter.cmo : \ + parsing/unit_info.cmi \ + toplevel/topprinters.cmi \ + bytecomp/symtable.cmi \ + debugger/printval.cmi \ + typing/printtyp.cmi \ + typing/path.cmi \ + utils/misc.cmi \ + parsing/longident.cmi \ + utils/load_path.cmi \ + typing/ident.cmi \ + utils/format_doc.cmi \ + typing/env.cmi \ + otherlibs/dynlink/dynlink.cmi \ + debugger/debugcom.cmi \ + file_formats/cmo_format.cmi \ + debugger/loadprinter.cmi +debugger/loadprinter.cmx : \ + parsing/unit_info.cmx \ + toplevel/topprinters.cmx \ + bytecomp/symtable.cmx \ + debugger/printval.cmx \ + typing/printtyp.cmx \ + typing/path.cmx \ + utils/misc.cmx \ + parsing/longident.cmx \ + utils/load_path.cmx \ + typing/ident.cmx \ + utils/format_doc.cmx \ + typing/env.cmx \ + otherlibs/dynlink/dynlink.cmx \ + debugger/debugcom.cmx \ + file_formats/cmo_format.cmi \ + debugger/loadprinter.cmi +debugger/loadprinter.cmi : \ + toplevel/topprinters.cmi \ + parsing/longident.cmi \ + otherlibs/dynlink/dynlink.cmi +debugger/main.cmo : \ + debugger/unix_tools.cmi \ + otherlibs/unix/unix.cmi \ + debugger/time_travel.cmi \ + debugger/show_information.cmi \ + debugger/question.cmi \ + debugger/program_management.cmi \ + debugger/primitives.cmi \ + typing/persistent_env.cmi \ + debugger/parameters.cmi \ + utils/misc.cmi \ + utils/load_path.cmi \ + debugger/input_handling.cmi \ + debugger/frames.cmi \ + debugger/exec.cmi \ + debugger/debugger_config.cmi \ + utils/config.cmi \ + driver/compmisc.cmi \ + debugger/command_line.cmi \ + file_formats/cmi_format.cmi \ + utils/clflags.cmi \ + debugger/checkpoints.cmi \ + debugger/main.cmi +debugger/main.cmx : \ + debugger/unix_tools.cmx \ + otherlibs/unix/unix.cmx \ + debugger/time_travel.cmx \ + debugger/show_information.cmx \ + debugger/question.cmx \ + debugger/program_management.cmx \ + debugger/primitives.cmx \ + typing/persistent_env.cmx \ + debugger/parameters.cmx \ + utils/misc.cmx \ + utils/load_path.cmx \ + debugger/input_handling.cmx \ + debugger/frames.cmx \ + debugger/exec.cmx \ + debugger/debugger_config.cmx \ + utils/config.cmx \ + driver/compmisc.cmx \ + debugger/command_line.cmx \ + file_formats/cmi_format.cmx \ + utils/clflags.cmx \ + debugger/checkpoints.cmx \ + debugger/main.cmi +debugger/main.cmi : +debugger/ocamldebug_entry.cmo : \ + otherlibs/unix/unix.cmi \ + debugger/ocamldebug_entry.cmi +debugger/ocamldebug_entry.cmx : \ + otherlibs/unix/unix.cmx \ + debugger/ocamldebug_entry.cmi +debugger/ocamldebug_entry.cmi : +debugger/parameters.cmo : \ + utils/load_path.cmi \ + typing/envaux.cmi \ + debugger/debugger_config.cmi \ + utils/config.cmi \ + debugger/parameters.cmi +debugger/parameters.cmx : \ + utils/load_path.cmx \ + typing/envaux.cmx \ + debugger/debugger_config.cmx \ + utils/config.cmx \ + debugger/parameters.cmi +debugger/parameters.cmi : +debugger/parser_aux.cmi : \ + parsing/longident.cmi \ + debugger/debugcom.cmi +debugger/pos.cmo : \ + parsing/location.cmi \ + bytecomp/instruct.cmi \ + debugger/events.cmi \ + debugger/pos.cmi +debugger/pos.cmx : \ + parsing/location.cmx \ + bytecomp/instruct.cmx \ + debugger/events.cmx \ + debugger/pos.cmi +debugger/pos.cmi : \ + debugger/events.cmi +debugger/primitives.cmo : \ + otherlibs/unix/unix.cmi \ + debugger/primitives.cmi +debugger/primitives.cmx : \ + otherlibs/unix/unix.cmx \ + debugger/primitives.cmi +debugger/primitives.cmi : \ + otherlibs/unix/unix.cmi +debugger/printval.cmo : \ + typing/types.cmi \ + bytecomp/symtable.cmi \ + typing/printtyp.cmi \ + debugger/parser_aux.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmi \ + toplevel/genprintval.cmi \ + typing/env.cmi \ + debugger/debugcom.cmi \ + debugger/printval.cmi +debugger/printval.cmx : \ + typing/types.cmx \ + bytecomp/symtable.cmx \ + typing/printtyp.cmx \ + debugger/parser_aux.cmi \ + typing/outcometree.cmi \ + typing/oprint.cmx \ + toplevel/genprintval.cmx \ + typing/env.cmx \ + debugger/debugcom.cmx \ + debugger/printval.cmi +debugger/printval.cmi : \ + typing/types.cmi \ + typing/path.cmi \ + debugger/parser_aux.cmi \ + typing/env.cmi \ + debugger/debugcom.cmi +debugger/program_loading.cmo : \ + debugger/unix_tools.cmi \ + otherlibs/unix/unix.cmi \ + debugger/primitives.cmi \ + debugger/parameters.cmi \ + debugger/input_handling.cmi \ + debugger/debugger_config.cmi \ + debugger/program_loading.cmi +debugger/program_loading.cmx : \ + debugger/unix_tools.cmx \ + otherlibs/unix/unix.cmx \ + debugger/primitives.cmx \ + debugger/parameters.cmx \ + debugger/input_handling.cmx \ + debugger/debugger_config.cmx \ + debugger/program_loading.cmi +debugger/program_loading.cmi : \ + debugger/primitives.cmi +debugger/program_management.cmo : \ + debugger/unix_tools.cmi \ + otherlibs/unix/unix.cmi \ + debugger/time_travel.cmi \ + debugger/symbols.cmi \ + debugger/question.cmi \ + debugger/program_loading.cmi \ + debugger/primitives.cmi \ + debugger/parameters.cmi \ + utils/load_path.cmi \ + debugger/int64ops.cmi \ + debugger/input_handling.cmi \ + debugger/history.cmi \ + typing/envaux.cmi \ + debugger/debugger_config.cmi \ + debugger/debugcom.cmi \ + driver/compmisc.cmi \ + debugger/breakpoints.cmi \ + debugger/program_management.cmi +debugger/program_management.cmx : \ + debugger/unix_tools.cmx \ + otherlibs/unix/unix.cmx \ + debugger/time_travel.cmx \ + debugger/symbols.cmx \ + debugger/question.cmx \ + debugger/program_loading.cmx \ + debugger/primitives.cmx \ + debugger/parameters.cmx \ + utils/load_path.cmx \ + debugger/int64ops.cmx \ + debugger/input_handling.cmx \ + debugger/history.cmx \ + typing/envaux.cmx \ + debugger/debugger_config.cmx \ + debugger/debugcom.cmx \ + driver/compmisc.cmx \ + debugger/breakpoints.cmx \ + debugger/program_management.cmi +debugger/program_management.cmi : +debugger/question.cmo : \ + debugger/primitives.cmi \ + debugger/input_handling.cmi \ + debugger/debugger_lexer.cmi \ + debugger/question.cmi +debugger/question.cmx : \ + debugger/primitives.cmx \ + debugger/input_handling.cmx \ + debugger/debugger_lexer.cmx \ + debugger/question.cmi +debugger/question.cmi : +debugger/show_information.cmo : \ + debugger/symbols.cmi \ + debugger/source.cmi \ + debugger/show_source.cmi \ + debugger/printval.cmi \ + debugger/parameters.cmi \ + utils/misc.cmi \ + bytecomp/instruct.cmi \ + debugger/frames.cmi \ + debugger/events.cmi \ + debugger/debugcom.cmi \ + debugger/checkpoints.cmi \ + debugger/breakpoints.cmi \ + debugger/show_information.cmi +debugger/show_information.cmx : \ + debugger/symbols.cmx \ + debugger/source.cmx \ + debugger/show_source.cmx \ + debugger/printval.cmx \ + debugger/parameters.cmx \ + utils/misc.cmx \ + bytecomp/instruct.cmx \ + debugger/frames.cmx \ + debugger/events.cmx \ + debugger/debugcom.cmx \ + debugger/checkpoints.cmx \ + debugger/breakpoints.cmx \ + debugger/show_information.cmi +debugger/show_information.cmi : \ + debugger/events.cmi +debugger/show_source.cmo : \ + debugger/source.cmi \ + debugger/primitives.cmi \ + debugger/parameters.cmi \ + parsing/location.cmi \ + bytecomp/instruct.cmi \ + debugger/events.cmi \ + debugger/debugger_config.cmi \ + debugger/show_source.cmi +debugger/show_source.cmx : \ + debugger/source.cmx \ + debugger/primitives.cmx \ + debugger/parameters.cmx \ + parsing/location.cmx \ + bytecomp/instruct.cmx \ + debugger/events.cmx \ + debugger/debugger_config.cmx \ + debugger/show_source.cmi +debugger/show_source.cmi : \ + bytecomp/instruct.cmi +debugger/source.cmo : \ + debugger/primitives.cmi \ + utils/misc.cmi \ + utils/load_path.cmi \ + debugger/debugger_config.cmi \ + debugger/source.cmi +debugger/source.cmx : \ + debugger/primitives.cmx \ + utils/misc.cmx \ + utils/load_path.cmx \ + debugger/debugger_config.cmx \ + debugger/source.cmi +debugger/source.cmi : +debugger/symbols.cmo : \ + bytecomp/symtable.cmi \ + debugger/program_loading.cmi \ + utils/misc.cmi \ + bytecomp/instruct.cmi \ + debugger/events.cmi \ + debugger/debugger_config.cmi \ + debugger/debugcom.cmi \ + debugger/checkpoints.cmi \ + bytecomp/bytesections.cmi \ + debugger/symbols.cmi +debugger/symbols.cmx : \ + bytecomp/symtable.cmx \ + debugger/program_loading.cmx \ + utils/misc.cmx \ + bytecomp/instruct.cmx \ + debugger/events.cmx \ + debugger/debugger_config.cmx \ + debugger/debugcom.cmx \ + debugger/checkpoints.cmx \ + bytecomp/bytesections.cmx \ + debugger/symbols.cmi +debugger/symbols.cmi : \ + bytecomp/instruct.cmi \ + debugger/events.cmi \ + debugger/debugcom.cmi +debugger/time_travel.cmo : \ + debugger/trap_barrier.cmi \ + debugger/symbols.cmi \ + debugger/question.cmi \ + debugger/program_loading.cmi \ + debugger/primitives.cmi \ + utils/misc.cmi \ + debugger/int64ops.cmi \ + bytecomp/instruct.cmi \ + debugger/input_handling.cmi \ + debugger/exec.cmi \ + debugger/events.cmi \ + debugger/debugger_config.cmi \ + debugger/debugcom.cmi \ + debugger/checkpoints.cmi \ + debugger/breakpoints.cmi \ + debugger/time_travel.cmi +debugger/time_travel.cmx : \ + debugger/trap_barrier.cmx \ + debugger/symbols.cmx \ + debugger/question.cmx \ + debugger/program_loading.cmx \ + debugger/primitives.cmx \ + utils/misc.cmx \ + debugger/int64ops.cmx \ + bytecomp/instruct.cmx \ + debugger/input_handling.cmx \ + debugger/exec.cmx \ + debugger/events.cmx \ + debugger/debugger_config.cmx \ + debugger/debugcom.cmx \ + debugger/checkpoints.cmx \ + debugger/breakpoints.cmx \ + debugger/time_travel.cmi +debugger/time_travel.cmi : \ + debugger/primitives.cmi +debugger/trap_barrier.cmo : \ + debugger/exec.cmi \ + debugger/debugcom.cmi \ + debugger/checkpoints.cmi \ + debugger/trap_barrier.cmi +debugger/trap_barrier.cmx : \ + debugger/exec.cmx \ + debugger/debugcom.cmx \ + debugger/checkpoints.cmx \ + debugger/trap_barrier.cmi +debugger/trap_barrier.cmi : \ + debugger/debugcom.cmi +debugger/unix_tools.cmo : \ + otherlibs/unix/unix.cmi \ + utils/misc.cmi \ + debugger/unix_tools.cmi +debugger/unix_tools.cmx : \ + otherlibs/unix/unix.cmx \ + utils/misc.cmx \ + debugger/unix_tools.cmi +debugger/unix_tools.cmi : \ + otherlibs/unix/unix.cmi +ocamldoc/odoc.cmo : \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_gen.cmi \ + ocamldoc/odoc_config.cmi \ + ocamldoc/odoc_args.cmi \ + ocamldoc/odoc_analyse.cmi \ + otherlibs/dynlink/dynlink.cmi \ + ocamldoc/odoc.cmi +ocamldoc/odoc.cmx : \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_info.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_gen.cmx \ + ocamldoc/odoc_config.cmx \ + ocamldoc/odoc_args.cmx \ + ocamldoc/odoc_analyse.cmx \ + otherlibs/dynlink/dynlink.cmx \ + ocamldoc/odoc.cmi +ocamldoc/odoc.cmi : +ocamldoc/odoc_analyse.cmo : \ + utils/warnings.cmi \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/typemod.cmi \ + typing/typedtree.cmi \ + parsing/syntaxerr.cmi \ + driver/pparse.cmi \ + parsing/parse.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_text.cmi \ + ocamldoc/odoc_sig.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_merge.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_dep.cmi \ + ocamldoc/odoc_cross.cmi \ + ocamldoc/odoc_comments.cmi \ + ocamldoc/odoc_class.cmi \ + ocamldoc/odoc_ast.cmi \ + parsing/location.cmi \ + parsing/lexer.cmi \ + typing/env.cmi \ + driver/compmisc.cmi \ + utils/clflags.cmi \ + ocamldoc/odoc_analyse.cmi +ocamldoc/odoc_analyse.cmx : \ + utils/warnings.cmx \ + parsing/unit_info.cmx \ + typing/types.cmx \ + typing/typemod.cmx \ + typing/typedtree.cmx \ + parsing/syntaxerr.cmx \ + driver/pparse.cmx \ + parsing/parse.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_text.cmx \ + ocamldoc/odoc_sig.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_merge.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_dep.cmx \ + ocamldoc/odoc_cross.cmx \ + ocamldoc/odoc_comments.cmx \ + ocamldoc/odoc_class.cmx \ + ocamldoc/odoc_ast.cmx \ + parsing/location.cmx \ + parsing/lexer.cmx \ + typing/env.cmx \ + driver/compmisc.cmx \ + utils/clflags.cmx \ + ocamldoc/odoc_analyse.cmi +ocamldoc/odoc_analyse.cmi : \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_global.cmi +ocamldoc/odoc_args.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_texi.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_man.cmi \ + ocamldoc/odoc_latex.cmi \ + ocamldoc/odoc_html.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_gen.cmi \ + ocamldoc/odoc_dot.cmi \ + ocamldoc/odoc_config.cmi \ + driver/main_args.cmi \ + utils/config.cmi \ + driver/compenv.cmi \ + ocamldoc/odoc_args.cmi +ocamldoc/odoc_args.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_texi.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_man.cmx \ + ocamldoc/odoc_latex.cmx \ + ocamldoc/odoc_html.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_gen.cmx \ + ocamldoc/odoc_dot.cmx \ + ocamldoc/odoc_config.cmx \ + driver/main_args.cmx \ + utils/config.cmx \ + driver/compenv.cmx \ + ocamldoc/odoc_args.cmi +ocamldoc/odoc_args.cmi : \ + ocamldoc/odoc_gen.cmi +ocamldoc/odoc_ast.cmo : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + parsing/parsetree.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_sig.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_env.cmi \ + ocamldoc/odoc_class.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/data_types.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_ast.cmi +ocamldoc/odoc_ast.cmx : \ + parsing/unit_info.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + parsing/parsetree.cmi \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_sig.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_env.cmx \ + ocamldoc/odoc_class.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/data_types.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_ast.cmi +ocamldoc/odoc_ast.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + ocamldoc/odoc_sig.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_module.cmi +ocamldoc/odoc_class.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_class.cmi +ocamldoc/odoc_class.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_class.cmi +ocamldoc/odoc_class.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_name.cmi +ocamldoc/odoc_comments.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_text.cmi \ + ocamldoc/odoc_see_lexer.cmi \ + ocamldoc/odoc_parser.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_merge.cmi \ + ocamldoc/odoc_lexer.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_cross.cmi \ + ocamldoc/odoc_comments_global.cmi \ + ocamldoc/odoc_comments.cmi +ocamldoc/odoc_comments.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_text.cmx \ + ocamldoc/odoc_see_lexer.cmx \ + ocamldoc/odoc_parser.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_merge.cmx \ + ocamldoc/odoc_lexer.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_cross.cmx \ + ocamldoc/odoc_comments_global.cmx \ + ocamldoc/odoc_comments.cmi +ocamldoc/odoc_comments.cmi : \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_module.cmi +ocamldoc/odoc_comments_global.cmo : \ + ocamldoc/odoc_comments_global.cmi +ocamldoc/odoc_comments_global.cmx : \ + ocamldoc/odoc_comments_global.cmi +ocamldoc/odoc_comments_global.cmi : +ocamldoc/odoc_config.cmo : \ + utils/config.cmi \ + ocamldoc/odoc_config.cmi +ocamldoc/odoc_config.cmx : \ + utils/config.cmx \ + ocamldoc/odoc_config.cmi +ocamldoc/odoc_config.cmi : +ocamldoc/odoc_cross.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_search.cmi \ + ocamldoc/odoc_scan.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + utils/misc.cmi \ + ocamldoc/odoc_cross.cmi +ocamldoc/odoc_cross.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_search.cmx \ + ocamldoc/odoc_scan.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_class.cmx \ + utils/misc.cmx \ + ocamldoc/odoc_cross.cmi +ocamldoc/odoc_cross.cmi : \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_module.cmi +ocamldoc/odoc_dag2html.cmo : \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_dag2html.cmi +ocamldoc/odoc_dag2html.cmx : \ + ocamldoc/odoc_info.cmx \ + ocamldoc/odoc_dag2html.cmi +ocamldoc/odoc_dag2html.cmi : \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_dep.cmo : \ + otherlibs/str/str.cmi \ + parsing/parsetree.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_print.cmi \ + ocamldoc/odoc_module.cmi \ + utils/misc.cmi \ + parsing/depend.cmi \ + ocamldoc/odoc_dep.cmi +ocamldoc/odoc_dep.cmx : \ + otherlibs/str/str.cmx \ + parsing/parsetree.cmi \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_print.cmx \ + ocamldoc/odoc_module.cmx \ + utils/misc.cmx \ + parsing/depend.cmx \ + ocamldoc/odoc_dep.cmi +ocamldoc/odoc_dep.cmi : \ + parsing/parsetree.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_module.cmi \ + utils/misc.cmi +ocamldoc/odoc_dot.cmo : \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_dot.cmi +ocamldoc/odoc_dot.cmx : \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_info.cmx \ + ocamldoc/odoc_dot.cmi +ocamldoc/odoc_dot.cmi : \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_env.cmo : \ + typing/types.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + ocamldoc/odoc_name.cmi \ + typing/btype.cmi \ + ocamldoc/odoc_env.cmi +ocamldoc/odoc_env.cmx : \ + typing/types.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + ocamldoc/odoc_name.cmx \ + typing/btype.cmx \ + ocamldoc/odoc_env.cmi +ocamldoc/odoc_env.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_name.cmi +ocamldoc/odoc_exception.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_exception.cmi +ocamldoc/odoc_exception.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_exception.cmi +ocamldoc/odoc_exception.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi +ocamldoc/odoc_extension.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_extension.cmi +ocamldoc/odoc_extension.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_name.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_extension.cmi +ocamldoc/odoc_extension.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi \ + parsing/asttypes.cmi +ocamldoc/odoc_gen.cmo : \ + ocamldoc/odoc_texi.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_man.cmi \ + ocamldoc/odoc_latex.cmi \ + ocamldoc/odoc_html.cmi \ + ocamldoc/odoc_dot.cmi \ + ocamldoc/odoc_gen.cmi +ocamldoc/odoc_gen.cmx : \ + ocamldoc/odoc_texi.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_man.cmx \ + ocamldoc/odoc_latex.cmx \ + ocamldoc/odoc_html.cmx \ + ocamldoc/odoc_dot.cmx \ + ocamldoc/odoc_gen.cmi +ocamldoc/odoc_gen.cmi : \ + ocamldoc/odoc_texi.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_man.cmi \ + ocamldoc/odoc_latex.cmi \ + ocamldoc/odoc_html.cmi \ + ocamldoc/odoc_dot.cmi +ocamldoc/odoc_global.cmo : \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_config.cmi \ + utils/clflags.cmi \ + ocamldoc/odoc_global.cmi +ocamldoc/odoc_global.cmx : \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_config.cmx \ + utils/clflags.cmx \ + ocamldoc/odoc_global.cmi +ocamldoc/odoc_global.cmi : \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_html.cmo : \ + otherlibs/str/str.cmi \ + middle_end/flambda/parameter.cmi \ + ocamldoc/odoc_text.cmi \ + ocamldoc/odoc_ocamlhtml.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_dag2html.cmi \ + utils/misc.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_html.cmi +ocamldoc/odoc_html.cmx : \ + otherlibs/str/str.cmx \ + middle_end/flambda/parameter.cmx \ + ocamldoc/odoc_text.cmx \ + ocamldoc/odoc_ocamlhtml.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_info.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_dag2html.cmx \ + utils/misc.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_html.cmi +ocamldoc/odoc_html.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_dag2html.cmi \ + utils/misc.cmi +ocamldoc/odoc_info.cmo : \ + typing/out_type.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_text.cmi \ + ocamldoc/odoc_str.cmi \ + ocamldoc/odoc_search.cmi \ + ocamldoc/odoc_scan.cmi \ + ocamldoc/odoc_print.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_dep.cmi \ + ocamldoc/odoc_config.cmi \ + ocamldoc/odoc_comments.cmi \ + ocamldoc/odoc_class.cmi \ + ocamldoc/odoc_analyse.cmi \ + parsing/location.cmi \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_info.cmx : \ + typing/out_type.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_text.cmx \ + ocamldoc/odoc_str.cmx \ + ocamldoc/odoc_search.cmx \ + ocamldoc/odoc_scan.cmx \ + ocamldoc/odoc_print.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_dep.cmx \ + ocamldoc/odoc_config.cmx \ + ocamldoc/odoc_comments.cmx \ + ocamldoc/odoc_class.cmx \ + ocamldoc/odoc_analyse.cmx \ + parsing/location.cmx \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_info.cmi : \ + typing/types.cmi \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_search.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + parsing/location.cmi \ + parsing/asttypes.cmi +ocamldoc/odoc_latex.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_to_text.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_latex_style.cmi \ + ocamldoc/odoc_info.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_latex.cmi +ocamldoc/odoc_latex.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_to_text.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_latex_style.cmx \ + ocamldoc/odoc_info.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_latex.cmi +ocamldoc/odoc_latex.cmi : \ + typing/types.cmi \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_latex_style.cmo : \ + ocamldoc/odoc_latex_style.cmi +ocamldoc/odoc_latex_style.cmx : \ + ocamldoc/odoc_latex_style.cmi +ocamldoc/odoc_latex_style.cmi : +ocamldoc/odoc_lexer.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_parser.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_comments_global.cmi \ + utils/misc.cmi \ + ocamldoc/odoc_lexer.cmi +ocamldoc/odoc_lexer.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_parser.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_comments_global.cmx \ + utils/misc.cmx \ + ocamldoc/odoc_lexer.cmi +ocamldoc/odoc_lexer.cmi : \ + ocamldoc/odoc_parser.cmi +ocamldoc/odoc_man.cmo : \ + otherlibs/str/str.cmi \ + middle_end/flambda/parameter.cmi \ + ocamldoc/odoc_str.cmi \ + ocamldoc/odoc_print.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_info.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_man.cmi +ocamldoc/odoc_man.cmx : \ + otherlibs/str/str.cmx \ + middle_end/flambda/parameter.cmx \ + ocamldoc/odoc_str.cmx \ + ocamldoc/odoc_print.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_info.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_man.cmi +ocamldoc/odoc_man.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_merge.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + ocamldoc/odoc_merge.cmi +ocamldoc/odoc_merge.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_class.cmx \ + ocamldoc/odoc_merge.cmi +ocamldoc/odoc_merge.cmi : \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_module.cmi +ocamldoc/odoc_messages.cmo : \ + otherlibs/str/str.cmi \ + utils/config.cmi \ + ocamldoc/odoc_messages.cmi +ocamldoc/odoc_messages.cmx : \ + otherlibs/str/str.cmx \ + utils/config.cmx \ + ocamldoc/odoc_messages.cmi +ocamldoc/odoc_messages.cmi : +ocamldoc/odoc_misc.cmo : \ + otherlibs/unix/unix.cmi \ + typing/types.cmi \ + typing/predef.cmi \ + typing/path.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_messages.cmi \ + parsing/longident.cmi \ + typing/btype.cmi \ + ocamldoc/odoc_misc.cmi +ocamldoc/odoc_misc.cmx : \ + otherlibs/unix/unix.cmx \ + typing/types.cmx \ + typing/predef.cmx \ + typing/path.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_messages.cmx \ + parsing/longident.cmx \ + typing/btype.cmx \ + ocamldoc/odoc_misc.cmi +ocamldoc/odoc_misc.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + parsing/longident.cmi \ + parsing/asttypes.cmi +ocamldoc/odoc_module.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + utils/misc.cmi \ + ocamldoc/odoc_module.cmi +ocamldoc/odoc_module.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_class.cmx \ + utils/misc.cmx \ + ocamldoc/odoc_module.cmi +ocamldoc/odoc_module.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + utils/misc.cmi +ocamldoc/odoc_name.cmo : \ + parsing/unit_info.cmi \ + otherlibs/str/str.cmi \ + typing/path.cmi \ + ocamldoc/odoc_misc.cmi \ + typing/ident.cmi \ + ocamldoc/odoc_name.cmi +ocamldoc/odoc_name.cmx : \ + parsing/unit_info.cmx \ + otherlibs/str/str.cmx \ + typing/path.cmx \ + ocamldoc/odoc_misc.cmx \ + typing/ident.cmx \ + ocamldoc/odoc_name.cmi +ocamldoc/odoc_name.cmi : \ + typing/path.cmi \ + parsing/longident.cmi \ + typing/ident.cmi +ocamldoc/odoc_ocamlhtml.cmo : \ + otherlibs/str/str.cmi \ + utils/misc.cmi \ + ocamldoc/odoc_ocamlhtml.cmi +ocamldoc/odoc_ocamlhtml.cmx : \ + otherlibs/str/str.cmx \ + utils/misc.cmx \ + ocamldoc/odoc_ocamlhtml.cmi +ocamldoc/odoc_ocamlhtml.cmi : +ocamldoc/odoc_parameter.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_parameter.cmi +ocamldoc/odoc_parameter.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_parameter.cmi +ocamldoc/odoc_parameter.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_parser.cmo : \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_comments_global.cmi \ + ocamldoc/odoc_parser.cmi +ocamldoc/odoc_parser.cmx : \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_comments_global.cmx \ + ocamldoc/odoc_parser.cmi +ocamldoc/odoc_parser.cmi : \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_print.cmo : \ + typing/types.cmi \ + typing/printtyp.cmi \ + typing/out_type.cmi \ + typing/btype.cmi \ + ocamldoc/odoc_print.cmi +ocamldoc/odoc_print.cmx : \ + typing/types.cmx \ + typing/printtyp.cmx \ + typing/out_type.cmx \ + typing/btype.cmx \ + ocamldoc/odoc_print.cmi +ocamldoc/odoc_print.cmi : \ + typing/types.cmi +ocamldoc/odoc_scan.cmo : \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + ocamldoc/odoc_scan.cmi +ocamldoc/odoc_scan.cmx : \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_class.cmx \ + ocamldoc/odoc_scan.cmi +ocamldoc/odoc_scan.cmi : \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi +ocamldoc/odoc_search.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + ocamldoc/odoc_search.cmi +ocamldoc/odoc_search.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_class.cmx \ + ocamldoc/odoc_search.cmi +ocamldoc/odoc_search.cmi : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi +ocamldoc/odoc_see_lexer.cmo : \ + ocamldoc/odoc_parser.cmi \ + ocamldoc/odoc_see_lexer.cmi +ocamldoc/odoc_see_lexer.cmx : \ + ocamldoc/odoc_parser.cmx \ + ocamldoc/odoc_see_lexer.cmi +ocamldoc/odoc_see_lexer.cmi : \ + ocamldoc/odoc_parser.cmi +ocamldoc/odoc_sig.cmo : \ + parsing/unit_info.cmi \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_merge.cmi \ + ocamldoc/odoc_global.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_env.cmi \ + ocamldoc/odoc_class.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + typing/ident.cmi \ + typing/ctype.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_sig.cmi +ocamldoc/odoc_sig.cmx : \ + parsing/unit_info.cmx \ + typing/types.cmx \ + typing/typedtree.cmx \ + parsing/parsetree.cmi \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_merge.cmx \ + ocamldoc/odoc_global.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_env.cmx \ + ocamldoc/odoc_class.cmx \ + parsing/longident.cmx \ + parsing/location.cmx \ + typing/ident.cmx \ + typing/ctype.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_sig.cmi +ocamldoc/odoc_sig.cmi : \ + typing/types.cmi \ + typing/typedtree.cmi \ + parsing/parsetree.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_env.cmi \ + ocamldoc/odoc_class.cmi \ + parsing/location.cmi +ocamldoc/odoc_str.cmo : \ + typing/types.cmi \ + typing/printtyp.cmi \ + typing/out_type.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_print.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_str.cmi +ocamldoc/odoc_str.cmx : \ + typing/types.cmx \ + typing/printtyp.cmx \ + typing/out_type.cmx \ + ocamldoc/odoc_value.cmx \ + ocamldoc/odoc_type.cmx \ + ocamldoc/odoc_print.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_extension.cmx \ + ocamldoc/odoc_exception.cmx \ + ocamldoc/odoc_class.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_str.cmi +ocamldoc/odoc_str.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_value.cmi \ + ocamldoc/odoc_type.cmi \ + ocamldoc/odoc_extension.cmi \ + ocamldoc/odoc_exception.cmi \ + ocamldoc/odoc_class.cmi +ocamldoc/odoc_test.cmo : \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_gen.cmi \ + ocamldoc/odoc_args.cmi \ + ocamldoc/odoc_test.cmi +ocamldoc/odoc_test.cmx : \ + ocamldoc/odoc_info.cmx \ + ocamldoc/odoc_gen.cmx \ + ocamldoc/odoc_args.cmx \ + ocamldoc/odoc_test.cmi +ocamldoc/odoc_test.cmi : +ocamldoc/odoc_texi.cmo : \ + typing/types.cmi \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_to_text.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_info.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_texi.cmi +ocamldoc/odoc_texi.cmx : \ + typing/types.cmx \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_to_text.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_info.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_texi.cmi +ocamldoc/odoc_texi.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_text.cmo : \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_text_parser.cmi \ + ocamldoc/odoc_text_lexer.cmi \ + ocamldoc/odoc_text.cmi +ocamldoc/odoc_text.cmx : \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_text_parser.cmx \ + ocamldoc/odoc_text_lexer.cmx \ + ocamldoc/odoc_text.cmi +ocamldoc/odoc_text.cmi : \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_text_lexer.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_text_parser.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_text_lexer.cmi +ocamldoc/odoc_text_lexer.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_text_parser.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_text_lexer.cmi +ocamldoc/odoc_text_lexer.cmi : \ + ocamldoc/odoc_text_parser.cmi +ocamldoc/odoc_text_parser.cmo : \ + otherlibs/str/str.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_misc.cmi \ + ocamldoc/odoc_text_parser.cmi +ocamldoc/odoc_text_parser.cmx : \ + otherlibs/str/str.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_misc.cmx \ + ocamldoc/odoc_text_parser.cmi +ocamldoc/odoc_text_parser.cmi : \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_to_text.cmo : \ + otherlibs/str/str.cmi \ + middle_end/flambda/parameter.cmi \ + ocamldoc/odoc_str.cmi \ + ocamldoc/odoc_module.cmi \ + ocamldoc/odoc_messages.cmi \ + ocamldoc/odoc_info.cmi \ + ocamldoc/odoc_to_text.cmi +ocamldoc/odoc_to_text.cmx : \ + otherlibs/str/str.cmx \ + middle_end/flambda/parameter.cmx \ + ocamldoc/odoc_str.cmx \ + ocamldoc/odoc_module.cmx \ + ocamldoc/odoc_messages.cmx \ + ocamldoc/odoc_info.cmx \ + ocamldoc/odoc_to_text.cmi +ocamldoc/odoc_to_text.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_info.cmi +ocamldoc/odoc_type.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_name.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_type.cmi +ocamldoc/odoc_type.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_name.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_type.cmi +ocamldoc/odoc_type.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_name.cmi \ + parsing/asttypes.cmi +ocamldoc/odoc_types.cmo : \ + ocamldoc/odoc_messages.cmi \ + parsing/location.cmi \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_types.cmx : \ + ocamldoc/odoc_messages.cmx \ + parsing/location.cmx \ + ocamldoc/odoc_types.cmi +ocamldoc/odoc_types.cmi : \ + parsing/location.cmi +ocamldoc/odoc_value.cmo : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_name.cmi \ + ocamldoc/odoc_misc.cmi \ + parsing/asttypes.cmi \ + ocamldoc/odoc_value.cmi +ocamldoc/odoc_value.cmx : \ + typing/types.cmx \ + ocamldoc/odoc_types.cmx \ + ocamldoc/odoc_parameter.cmx \ + ocamldoc/odoc_name.cmx \ + ocamldoc/odoc_misc.cmx \ + parsing/asttypes.cmx \ + ocamldoc/odoc_value.cmi +ocamldoc/odoc_value.cmi : \ + typing/types.cmi \ + ocamldoc/odoc_types.cmi \ + ocamldoc/odoc_parameter.cmi \ + ocamldoc/odoc_name.cmi +ocamltest/actions.cmo : \ + ocamltest/variables.cmi \ + ocamltest/result.cmi \ + ocamltest/environments.cmi \ + ocamltest/actions.cmi +ocamltest/actions.cmx : \ + ocamltest/variables.cmx \ + ocamltest/result.cmx \ + ocamltest/environments.cmx \ + ocamltest/actions.cmi +ocamltest/actions.cmi : \ + ocamltest/variables.cmi \ + ocamltest/result.cmi \ + ocamltest/environments.cmi +ocamltest/actions_helpers.cmo : \ + ocamltest/variables.cmi \ + otherlibs/unix/unix.cmi \ + ocamltest/strace.cmi \ + ocamltest/run_command.cmi \ + ocamltest/result.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/modifier_parser.cmi \ + ocamltest/filecompare.cmi \ + ocamltest/environments.cmi \ + ocamltest/builtin_variables.cmi \ + ocamltest/actions.cmi \ + ocamltest/actions_helpers.cmi +ocamltest/actions_helpers.cmx : \ + ocamltest/variables.cmx \ + otherlibs/unix/unix.cmx \ + ocamltest/strace.cmx \ + ocamltest/run_command.cmx \ + ocamltest/result.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/modifier_parser.cmx \ + ocamltest/filecompare.cmx \ + ocamltest/environments.cmx \ + ocamltest/builtin_variables.cmx \ + ocamltest/actions.cmx \ + ocamltest/actions_helpers.cmi +ocamltest/actions_helpers.cmi : \ + ocamltest/variables.cmi \ + ocamltest/result.cmi \ + ocamltest/environments.cmi \ + ocamltest/actions.cmi +ocamltest/builtin_actions.cmo : \ + otherlibs/unix/unix.cmi \ + ocamltest/result.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocamltest_config.cmi \ + ocamltest/environments.cmi \ + ocamltest/builtin_variables.cmi \ + ocamltest/actions_helpers.cmi \ + ocamltest/actions.cmi \ + ocamltest/builtin_actions.cmi +ocamltest/builtin_actions.cmx : \ + otherlibs/unix/unix.cmx \ + ocamltest/result.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocamltest_config.cmx \ + ocamltest/environments.cmx \ + ocamltest/builtin_variables.cmx \ + ocamltest/actions_helpers.cmx \ + ocamltest/actions.cmx \ + ocamltest/builtin_actions.cmi +ocamltest/builtin_actions.cmi : \ + ocamltest/actions.cmi +ocamltest/builtin_variables.cmo : \ + ocamltest/variables.cmi \ + ocamltest/builtin_variables.cmi +ocamltest/builtin_variables.cmx : \ + ocamltest/variables.cmx \ + ocamltest/builtin_variables.cmi +ocamltest/builtin_variables.cmi : \ + ocamltest/variables.cmi +ocamltest/debugger_actions.cmo : \ + ocamltest/result.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocaml_variables.cmi \ + ocamltest/ocaml_directories.cmi \ + ocamltest/ocaml_commands.cmi \ + utils/misc.cmi \ + ocamltest/environments.cmi \ + ocamltest/debugger_variables.cmi \ + ocamltest/debugger_flags.cmi \ + utils/clflags.cmi \ + ocamltest/builtin_variables.cmi \ + ocamltest/actions_helpers.cmi \ + ocamltest/actions.cmi \ + ocamltest/debugger_actions.cmi +ocamltest/debugger_actions.cmx : \ + ocamltest/result.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocaml_variables.cmx \ + ocamltest/ocaml_directories.cmx \ + ocamltest/ocaml_commands.cmx \ + utils/misc.cmx \ + ocamltest/environments.cmx \ + ocamltest/debugger_variables.cmx \ + ocamltest/debugger_flags.cmx \ + utils/clflags.cmx \ + ocamltest/builtin_variables.cmx \ + ocamltest/actions_helpers.cmx \ + ocamltest/actions.cmx \ + ocamltest/debugger_actions.cmi +ocamltest/debugger_actions.cmi : \ + ocamltest/actions.cmi +ocamltest/debugger_flags.cmo : \ + ocamltest/ocaml_directories.cmi \ + ocamltest/debugger_flags.cmi +ocamltest/debugger_flags.cmx : \ + ocamltest/ocaml_directories.cmx \ + ocamltest/debugger_flags.cmi +ocamltest/debugger_flags.cmi : +ocamltest/debugger_variables.cmo : \ + ocamltest/variables.cmi \ + ocamltest/debugger_variables.cmi +ocamltest/debugger_variables.cmx : \ + ocamltest/variables.cmx \ + ocamltest/debugger_variables.cmi +ocamltest/debugger_variables.cmi : \ + ocamltest/variables.cmi +ocamltest/environments.cmo : \ + ocamltest/variables.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/environments.cmi +ocamltest/environments.cmx : \ + ocamltest/variables.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/environments.cmi +ocamltest/environments.cmi : \ + ocamltest/variables.cmi +ocamltest/filecompare.cmo : \ + ocamltest/run_command.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocamltest_config.cmi \ + utils/misc.cmi \ + ocamltest/filecompare.cmi +ocamltest/filecompare.cmx : \ + ocamltest/run_command.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocamltest_config.cmx \ + utils/misc.cmx \ + ocamltest/filecompare.cmi +ocamltest/filecompare.cmi : +ocamltest/main.cmo : \ + ocamltest/variables.cmi \ + otherlibs/unix/unix.cmi \ + ocamltest/tsl_semantics.cmi \ + ocamltest/tsl_parser.cmi \ + ocamltest/tsl_lexer.cmi \ + ocamltest/tsl_ast.cmi \ + ocamltest/translate.cmi \ + ocamltest/tests.cmi \ + ocamltest/result.cmi \ + ocamltest/options.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocaml_actions.cmi \ + parsing/location.cmi \ + ocamltest/environments.cmi \ + ocamltest/builtin_variables.cmi \ + ocamltest/actions_helpers.cmi \ + ocamltest/actions.cmi \ + ocamltest/main.cmi +ocamltest/main.cmx : \ + ocamltest/variables.cmx \ + otherlibs/unix/unix.cmx \ + ocamltest/tsl_semantics.cmx \ + ocamltest/tsl_parser.cmx \ + ocamltest/tsl_lexer.cmx \ + ocamltest/tsl_ast.cmx \ + ocamltest/translate.cmx \ + ocamltest/tests.cmx \ + ocamltest/result.cmx \ + ocamltest/options.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocaml_actions.cmx \ + parsing/location.cmx \ + ocamltest/environments.cmx \ + ocamltest/builtin_variables.cmx \ + ocamltest/actions_helpers.cmx \ + ocamltest/actions.cmx \ + ocamltest/main.cmi +ocamltest/main.cmi : +ocamltest/modifier_parser.cmo : \ + ocamltest/variables.cmi \ + ocamltest/tsl_lexer.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/environments.cmi \ + ocamltest/modifier_parser.cmi +ocamltest/modifier_parser.cmx : \ + ocamltest/variables.cmx \ + ocamltest/tsl_lexer.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/environments.cmx \ + ocamltest/modifier_parser.cmi +ocamltest/modifier_parser.cmi : \ + ocamltest/environments.cmi +ocamltest/ocaml_actions.cmo : \ + ocamltest/result.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocamltest_config.cmi \ + ocamltest/ocaml_variables.cmi \ + ocamltest/ocaml_toplevels.cmi \ + ocamltest/ocaml_tools.cmi \ + ocamltest/ocaml_modifiers.cmi \ + ocamltest/ocaml_flags.cmi \ + ocamltest/ocaml_filetypes.cmi \ + ocamltest/ocaml_files.cmi \ + ocamltest/ocaml_directories.cmi \ + ocamltest/ocaml_compilers.cmi \ + ocamltest/ocaml_commands.cmi \ + ocamltest/ocaml_backends.cmi \ + utils/misc.cmi \ + ocamltest/filecompare.cmi \ + ocamltest/environments.cmi \ + utils/config.cmi \ + file_formats/cmo_format.cmi \ + utils/clflags.cmi \ + ocamltest/builtin_variables.cmi \ + ocamltest/actions_helpers.cmi \ + ocamltest/actions.cmi \ + ocamltest/ocaml_actions.cmi +ocamltest/ocaml_actions.cmx : \ + ocamltest/result.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocamltest_config.cmx \ + ocamltest/ocaml_variables.cmx \ + ocamltest/ocaml_toplevels.cmx \ + ocamltest/ocaml_tools.cmx \ + ocamltest/ocaml_modifiers.cmx \ + ocamltest/ocaml_flags.cmx \ + ocamltest/ocaml_filetypes.cmx \ + ocamltest/ocaml_files.cmx \ + ocamltest/ocaml_directories.cmx \ + ocamltest/ocaml_compilers.cmx \ + ocamltest/ocaml_commands.cmx \ + ocamltest/ocaml_backends.cmx \ + utils/misc.cmx \ + ocamltest/filecompare.cmx \ + ocamltest/environments.cmx \ + utils/config.cmx \ + file_formats/cmo_format.cmi \ + utils/clflags.cmx \ + ocamltest/builtin_variables.cmx \ + ocamltest/actions_helpers.cmx \ + ocamltest/actions.cmx \ + ocamltest/ocaml_actions.cmi +ocamltest/ocaml_actions.cmi : \ + ocamltest/actions.cmi +ocamltest/ocaml_backends.cmo : \ + ocamltest/ocaml_backends.cmi +ocamltest/ocaml_backends.cmx : \ + ocamltest/ocaml_backends.cmi +ocamltest/ocaml_backends.cmi : +ocamltest/ocaml_commands.cmo : \ + ocamltest/ocaml_files.cmi \ + ocamltest/ocaml_commands.cmi +ocamltest/ocaml_commands.cmx : \ + ocamltest/ocaml_files.cmx \ + ocamltest/ocaml_commands.cmi +ocamltest/ocaml_commands.cmi : +ocamltest/ocaml_compilers.cmo : \ + ocamltest/variables.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocaml_variables.cmi \ + ocamltest/ocaml_tools.cmi \ + ocamltest/ocaml_files.cmi \ + ocamltest/ocaml_commands.cmi \ + ocamltest/ocaml_backends.cmi \ + ocamltest/builtin_variables.cmi \ + ocamltest/ocaml_compilers.cmi +ocamltest/ocaml_compilers.cmx : \ + ocamltest/variables.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocaml_variables.cmx \ + ocamltest/ocaml_tools.cmx \ + ocamltest/ocaml_files.cmx \ + ocamltest/ocaml_commands.cmx \ + ocamltest/ocaml_backends.cmx \ + ocamltest/builtin_variables.cmx \ + ocamltest/ocaml_compilers.cmi +ocamltest/ocaml_compilers.cmi : \ + ocamltest/variables.cmi \ + ocamltest/ocaml_tools.cmi \ + ocamltest/ocaml_backends.cmi +ocamltest/ocaml_directories.cmo : \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocamltest_config.cmi \ + ocamltest/ocaml_directories.cmi +ocamltest/ocaml_directories.cmx : \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocamltest_config.cmx \ + ocamltest/ocaml_directories.cmi +ocamltest/ocaml_directories.cmi : +ocamltest/ocaml_files.cmo : \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocamltest_config.cmi \ + ocamltest/ocaml_directories.cmi \ + ocamltest/ocaml_files.cmi +ocamltest/ocaml_files.cmx : \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocamltest_config.cmx \ + ocamltest/ocaml_directories.cmx \ + ocamltest/ocaml_files.cmi +ocamltest/ocaml_files.cmi : +ocamltest/ocaml_filetypes.cmo : \ + ocamltest/ocamltest_config.cmi \ + ocamltest/ocaml_backends.cmi \ + ocamltest/ocaml_filetypes.cmi +ocamltest/ocaml_filetypes.cmx : \ + ocamltest/ocamltest_config.cmx \ + ocamltest/ocaml_backends.cmx \ + ocamltest/ocaml_filetypes.cmi +ocamltest/ocaml_filetypes.cmi : \ + ocamltest/ocaml_backends.cmi +ocamltest/ocaml_flags.cmo : \ + ocamltest/ocaml_variables.cmi \ + ocamltest/ocaml_files.cmi \ + ocamltest/ocaml_directories.cmi \ + ocamltest/ocaml_backends.cmi \ + ocamltest/environments.cmi \ + ocamltest/ocaml_flags.cmi +ocamltest/ocaml_flags.cmx : \ + ocamltest/ocaml_variables.cmx \ + ocamltest/ocaml_files.cmx \ + ocamltest/ocaml_directories.cmx \ + ocamltest/ocaml_backends.cmx \ + ocamltest/environments.cmx \ + ocamltest/ocaml_flags.cmi +ocamltest/ocaml_flags.cmi : \ + ocamltest/ocaml_backends.cmi \ + ocamltest/environments.cmi +ocamltest/ocaml_modifiers.cmo : \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocamltest_config.cmi \ + ocamltest/ocaml_variables.cmi \ + ocamltest/environments.cmi \ + ocamltest/ocaml_modifiers.cmi +ocamltest/ocaml_modifiers.cmx : \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocamltest_config.cmx \ + ocamltest/ocaml_variables.cmx \ + ocamltest/environments.cmx \ + ocamltest/ocaml_modifiers.cmi +ocamltest/ocaml_modifiers.cmi : \ + ocamltest/environments.cmi +ocamltest/ocaml_tests.cmo : \ + ocamltest/tests.cmi \ + ocamltest/ocamltest_config.cmi \ + ocamltest/ocaml_actions.cmi \ + ocamltest/builtin_actions.cmi \ + ocamltest/actions_helpers.cmi \ + ocamltest/ocaml_tests.cmi +ocamltest/ocaml_tests.cmx : \ + ocamltest/tests.cmx \ + ocamltest/ocamltest_config.cmx \ + ocamltest/ocaml_actions.cmx \ + ocamltest/builtin_actions.cmx \ + ocamltest/actions_helpers.cmx \ + ocamltest/ocaml_tests.cmi +ocamltest/ocaml_tests.cmi : \ + ocamltest/tests.cmi +ocamltest/ocaml_tools.cmo : \ + ocamltest/variables.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocaml_variables.cmi \ + ocamltest/ocaml_files.cmi \ + ocamltest/environments.cmi \ + ocamltest/actions_helpers.cmi \ + ocamltest/ocaml_tools.cmi +ocamltest/ocaml_tools.cmx : \ + ocamltest/variables.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocaml_variables.cmx \ + ocamltest/ocaml_files.cmx \ + ocamltest/environments.cmx \ + ocamltest/actions_helpers.cmx \ + ocamltest/ocaml_tools.cmi +ocamltest/ocaml_tools.cmi : \ + ocamltest/variables.cmi \ + ocamltest/environments.cmi +ocamltest/ocaml_toplevels.cmo : \ + ocamltest/variables.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocaml_variables.cmi \ + ocamltest/ocaml_tools.cmi \ + ocamltest/ocaml_files.cmi \ + ocamltest/ocaml_compilers.cmi \ + ocamltest/ocaml_commands.cmi \ + ocamltest/ocaml_backends.cmi \ + ocamltest/ocaml_toplevels.cmi +ocamltest/ocaml_toplevels.cmx : \ + ocamltest/variables.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocaml_variables.cmx \ + ocamltest/ocaml_tools.cmx \ + ocamltest/ocaml_files.cmx \ + ocamltest/ocaml_compilers.cmx \ + ocamltest/ocaml_commands.cmx \ + ocamltest/ocaml_backends.cmx \ + ocamltest/ocaml_toplevels.cmi +ocamltest/ocaml_toplevels.cmi : \ + ocamltest/variables.cmi \ + ocamltest/ocaml_tools.cmi \ + ocamltest/ocaml_compilers.cmi \ + ocamltest/ocaml_backends.cmi +ocamltest/ocaml_variables.cmo : \ + ocamltest/variables.cmi \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/ocaml_variables.cmi +ocamltest/ocaml_variables.cmx : \ + ocamltest/variables.cmx \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/ocaml_variables.cmi +ocamltest/ocaml_variables.cmi : \ + ocamltest/variables.cmi +ocamltest/ocamltest_config.cmo : \ + ocamltest/ocamltest_config.cmi +ocamltest/ocamltest_config.cmx : \ + ocamltest/ocamltest_config.cmi +ocamltest/ocamltest_config.cmi : +ocamltest/ocamltest_stdlib.cmo : \ + ocamltest/ocamltest_unix.cmi \ + ocamltest/ocamltest_config.cmi \ + utils/misc.cmi \ + ocamltest/ocamltest_stdlib.cmi +ocamltest/ocamltest_stdlib.cmx : \ + ocamltest/ocamltest_unix.cmx \ + ocamltest/ocamltest_config.cmx \ + utils/misc.cmx \ + ocamltest/ocamltest_stdlib.cmi +ocamltest/ocamltest_stdlib.cmi : \ + ocamltest/ocamltest_unix.cmi \ + utils/misc.cmi +ocamltest/ocamltest_unix.cmo : \ + otherlibs/unix/unix.cmi \ + ocamltest/ocamltest_unix.cmi +ocamltest/ocamltest_unix.cmx : \ + otherlibs/unix/unix.cmx \ + ocamltest/ocamltest_unix.cmi +ocamltest/ocamltest_unix.cmi : +ocamltest/ocamltest_unix_dummy.cmo : +ocamltest/ocamltest_unix_dummy.cmx : +ocamltest/ocamltest_unix_real.cmo : \ + otherlibs/unix/unix.cmi +ocamltest/ocamltest_unix_real.cmx : \ + otherlibs/unix/unix.cmx +ocamltest/options.cmo : \ + ocamltest/variables.cmi \ + ocamltest/translate.cmi \ + ocamltest/tests.cmi \ + utils/misc.cmi \ + driver/compmisc.cmi \ + utils/clflags.cmi \ + ocamltest/actions.cmi \ + ocamltest/options.cmi +ocamltest/options.cmx : \ + ocamltest/variables.cmx \ + ocamltest/translate.cmx \ + ocamltest/tests.cmx \ + utils/misc.cmx \ + driver/compmisc.cmx \ + utils/clflags.cmx \ + ocamltest/actions.cmx \ + ocamltest/options.cmi +ocamltest/options.cmi : \ + ocamltest/translate.cmi +ocamltest/result.cmo : \ + ocamltest/result.cmi +ocamltest/result.cmx : \ + ocamltest/result.cmi +ocamltest/result.cmi : +ocamltest/run_command.cmo : \ + ocamltest/ocamltest_stdlib.cmi \ + ocamltest/run_command.cmi +ocamltest/run_command.cmx : \ + ocamltest/ocamltest_stdlib.cmx \ + ocamltest/run_command.cmi +ocamltest/run_command.cmi : +ocamltest/strace.cmo : \ + ocamltest/variables.cmi \ + ocamltest/strace.cmi +ocamltest/strace.cmx : \ + ocamltest/variables.cmx \ + ocamltest/strace.cmi +ocamltest/strace.cmi : \ + ocamltest/variables.cmi +ocamltest/tests.cmo : \ + ocamltest/result.cmi \ + ocamltest/actions.cmi \ + ocamltest/tests.cmi +ocamltest/tests.cmx : \ + ocamltest/result.cmx \ + ocamltest/actions.cmx \ + ocamltest/tests.cmi +ocamltest/tests.cmi : \ + ocamltest/result.cmi \ + ocamltest/environments.cmi \ + ocamltest/actions.cmi +ocamltest/translate.cmo : \ + ocamltest/tsl_semantics.cmi \ + ocamltest/tsl_parser.cmi \ + ocamltest/tsl_lexer.cmi \ + ocamltest/tsl_ast.cmi \ + parsing/location.cmi \ + ocamltest/translate.cmi +ocamltest/translate.cmx : \ + ocamltest/tsl_semantics.cmx \ + ocamltest/tsl_parser.cmx \ + ocamltest/tsl_lexer.cmx \ + ocamltest/tsl_ast.cmx \ + parsing/location.cmx \ + ocamltest/translate.cmi +ocamltest/translate.cmi : +ocamltest/tsl_ast.cmo : \ + parsing/location.cmi \ + ocamltest/tsl_ast.cmi +ocamltest/tsl_ast.cmx : \ + parsing/location.cmx \ + ocamltest/tsl_ast.cmi +ocamltest/tsl_ast.cmi : \ + parsing/location.cmi +ocamltest/tsl_lexer.cmo : \ + ocamltest/tsl_parser.cmi \ + ocamltest/tsl_lexer.cmi +ocamltest/tsl_lexer.cmx : \ + ocamltest/tsl_parser.cmx \ + ocamltest/tsl_lexer.cmi +ocamltest/tsl_lexer.cmi : \ + ocamltest/tsl_parser.cmi +ocamltest/tsl_parser.cmo : \ + ocamltest/tsl_ast.cmi \ + parsing/location.cmi \ + ocamltest/tsl_parser.cmi +ocamltest/tsl_parser.cmx : \ + ocamltest/tsl_ast.cmx \ + parsing/location.cmx \ + ocamltest/tsl_parser.cmi +ocamltest/tsl_parser.cmi : \ + ocamltest/tsl_ast.cmi +ocamltest/tsl_semantics.cmo : \ + ocamltest/variables.cmi \ + ocamltest/tsl_ast.cmi \ + ocamltest/tests.cmi \ + parsing/location.cmi \ + ocamltest/environments.cmi \ + ocamltest/actions.cmi \ + ocamltest/tsl_semantics.cmi +ocamltest/tsl_semantics.cmx : \ + ocamltest/variables.cmx \ + ocamltest/tsl_ast.cmx \ + ocamltest/tests.cmx \ + parsing/location.cmx \ + ocamltest/environments.cmx \ + ocamltest/actions.cmx \ + ocamltest/tsl_semantics.cmi +ocamltest/tsl_semantics.cmi : \ + ocamltest/tsl_ast.cmi \ + ocamltest/tests.cmi \ + ocamltest/environments.cmi \ + ocamltest/actions.cmi +ocamltest/variables.cmo : \ + ocamltest/variables.cmi +ocamltest/variables.cmx : \ + ocamltest/variables.cmi +ocamltest/variables.cmi : +testsuite/lib/lib.cmo : \ + testsuite/lib/lib.cmi +testsuite/lib/lib.cmx : \ + testsuite/lib/lib.cmi +testsuite/lib/lib.cmi : +testsuite/lib/testing.cmo : \ + testsuite/lib/testing.cmi +testsuite/lib/testing.cmx : \ + testsuite/lib/testing.cmi +testsuite/lib/testing.cmi : +testsuite/tools/codegen_main.cmo : \ + utils/profile.cmi \ + testsuite/tools/parsecmmaux.cmi \ + testsuite/tools/parsecmm.cmi \ + testsuite/tools/lexcmm.cmi \ + asmcomp/emitaux.cmi \ + asmcomp/emit.cmi \ + middle_end/compilenv.cmi \ + utils/clflags.cmi \ + asmcomp/asmgen.cmi \ + testsuite/tools/codegen_main.cmi +testsuite/tools/codegen_main.cmx : \ + utils/profile.cmx \ + testsuite/tools/parsecmmaux.cmx \ + testsuite/tools/parsecmm.cmx \ + testsuite/tools/lexcmm.cmx \ + asmcomp/emitaux.cmx \ + asmcomp/emit.cmx \ + middle_end/compilenv.cmx \ + utils/clflags.cmx \ + asmcomp/asmgen.cmx \ + testsuite/tools/codegen_main.cmi +testsuite/tools/codegen_main.cmi : +testsuite/tools/expect.cmo : \ + utils/warnings.cmi \ + toplevel/toploop.cmi \ + parsing/printast.cmi \ + parsing/pprintast.cmi \ + parsing/parsetree.cmi \ + parsing/parse.cmi \ + utils/misc.cmi \ + driver/main_args.cmi \ + parsing/location.cmi \ + utils/load_path.cmi \ + driver/compmisc.cmi \ + driver/compenv.cmi \ + utils/clflags.cmi \ + typing/btype.cmi \ + parsing/asttypes.cmi \ + parsing/ast_mapper.cmi \ + testsuite/tools/expect.cmi +testsuite/tools/expect.cmx : \ + utils/warnings.cmx \ + toplevel/toploop.cmx \ + parsing/printast.cmx \ + parsing/pprintast.cmx \ + parsing/parsetree.cmi \ + parsing/parse.cmx \ + utils/misc.cmx \ + driver/main_args.cmx \ + parsing/location.cmx \ + utils/load_path.cmx \ + driver/compmisc.cmx \ + driver/compenv.cmx \ + utils/clflags.cmx \ + typing/btype.cmx \ + parsing/asttypes.cmx \ + parsing/ast_mapper.cmx \ + testsuite/tools/expect.cmi +testsuite/tools/expect.cmi : \ + parsing/location.cmi +testsuite/tools/lexcmm.cmo : \ + testsuite/tools/parsecmm.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + testsuite/tools/lexcmm.cmi +testsuite/tools/lexcmm.cmx : \ + testsuite/tools/parsecmm.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + testsuite/tools/lexcmm.cmi +testsuite/tools/lexcmm.cmi : \ + testsuite/tools/parsecmm.cmi +testsuite/tools/parsecmm.cmo : \ + testsuite/tools/parsecmmaux.cmi \ + utils/misc.cmi \ + parsing/location.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + utils/config.cmi \ + asmcomp/cmm.cmi \ + parsing/asttypes.cmi \ + asmcomp/arch.cmi \ + testsuite/tools/parsecmm.cmi +testsuite/tools/parsecmm.cmx : \ + testsuite/tools/parsecmmaux.cmx \ + utils/misc.cmx \ + parsing/location.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + utils/config.cmx \ + asmcomp/cmm.cmx \ + parsing/asttypes.cmx \ + asmcomp/arch.cmx \ + testsuite/tools/parsecmm.cmi +testsuite/tools/parsecmm.cmi : \ + parsing/location.cmi \ + lambda/lambda.cmi \ + asmcomp/cmm.cmi +testsuite/tools/parsecmmaux.cmo : \ + parsing/location.cmi \ + lambda/lambda.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi \ + testsuite/tools/parsecmmaux.cmi +testsuite/tools/parsecmmaux.cmx : \ + parsing/location.cmx \ + lambda/lambda.cmx \ + lambda/debuginfo.cmx \ + asmcomp/cmm.cmx \ + middle_end/backend_var.cmx \ + testsuite/tools/parsecmmaux.cmi +testsuite/tools/parsecmmaux.cmi : \ + parsing/location.cmi \ + lambda/debuginfo.cmi \ + asmcomp/cmm.cmi \ + middle_end/backend_var.cmi +otherlibs/dynlink/byte/dynlink.cmo : \ + otherlibs/dynlink/dynlink_types.cmi \ + otherlibs/dynlink/byte/dynlink_symtable.cmi \ + otherlibs/dynlink/dynlink_config.cmi \ + otherlibs/dynlink/dynlink_common.cmi \ + otherlibs/dynlink/dynlink_cmo_format.cmi \ + otherlibs/dynlink/byte/dynlink.cmi +otherlibs/dynlink/byte/dynlink.cmi : +otherlibs/dynlink/byte/dynlink_symtable.cmo : \ + otherlibs/dynlink/dynlink_config.cmi \ + otherlibs/dynlink/dynlink_cmo_format.cmi \ + otherlibs/dynlink/byte/dynlink_symtable.cmi +otherlibs/dynlink/byte/dynlink_symtable.cmi : \ + otherlibs/dynlink/dynlink_cmo_format.cmi +otherlibs/dynlink/dynlink.cmi : +otherlibs/dynlink/dynlink_cmo_format.cmi : +otherlibs/dynlink/dynlink_cmxs_format.cmi : +otherlibs/dynlink/dynlink_common.cmo : \ + otherlibs/dynlink/dynlink_types.cmi \ + otherlibs/dynlink/dynlink_platform_intf.cmi \ + otherlibs/dynlink/dynlink_common.cmi +otherlibs/dynlink/dynlink_common.cmi : \ + otherlibs/dynlink/dynlink_platform_intf.cmi +otherlibs/dynlink/dynlink_config.cmo : \ + otherlibs/dynlink/dynlink_config.cmi +otherlibs/dynlink/dynlink_config.cmi : +otherlibs/dynlink/dynlink_platform_intf.cmo : \ + otherlibs/dynlink/dynlink_types.cmi \ + otherlibs/dynlink/dynlink_platform_intf.cmi +otherlibs/dynlink/dynlink_platform_intf.cmi : \ + otherlibs/dynlink/dynlink_types.cmi +otherlibs/dynlink/dynlink_types.cmo : \ + otherlibs/dynlink/dynlink_types.cmi +otherlibs/dynlink/dynlink_types.cmi : +otherlibs/dynlink/dynlink_common.cmx : \ + otherlibs/dynlink/dynlink_types.cmx \ + otherlibs/dynlink/dynlink_platform_intf.cmx \ + otherlibs/dynlink/dynlink_common.cmi +otherlibs/dynlink/dynlink_config.cmx : \ + otherlibs/dynlink/dynlink_config.cmi +otherlibs/dynlink/dynlink_platform_intf.cmx : \ + otherlibs/dynlink/dynlink_types.cmx \ + otherlibs/dynlink/dynlink_platform_intf.cmi +otherlibs/dynlink/dynlink_types.cmx : \ + otherlibs/dynlink/dynlink_types.cmi +otherlibs/dynlink/native/dynlink.cmx : \ + otherlibs/dynlink/dynlink_types.cmx \ + otherlibs/dynlink/dynlink_config.cmx \ + otherlibs/dynlink/dynlink_common.cmx \ + otherlibs/dynlink/dynlink_cmxs_format.cmi \ + otherlibs/dynlink/native/dynlink.cmi diff --git a/.depend.menhir b/.depend.menhir new file mode 100644 index 000000000000..67a4e60e7337 --- /dev/null +++ b/.depend.menhir @@ -0,0 +1,28 @@ +parsing/parser.cmo : \ + parsing/syntaxerr.cmi \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi \ + utils/clflags.cmi \ + parsing/builtin_attributes.cmi \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmi \ + parsing/parser.cmi +parsing/parser.cmx : \ + parsing/syntaxerr.cmx \ + parsing/parsetree.cmi \ + parsing/longident.cmx \ + parsing/location.cmx \ + parsing/docstrings.cmx \ + utils/clflags.cmx \ + parsing/builtin_attributes.cmx \ + parsing/asttypes.cmi \ + parsing/ast_helper.cmx \ + parsing/parser.cmi +parsing/parser.cmi : \ + parsing/parsetree.cmi \ + parsing/longident.cmi \ + parsing/location.cmi \ + parsing/docstrings.cmi +parsing/parser.ml parsing/parser.mli: parsing/ast_helper.cmi parsing/asttypes.cmi parsing/builtin_attributes.cmi utils/clflags.cmi parsing/docstrings.cmi parsing/location.cmi parsing/longident.cmi parsing/parsetree.cmi parsing/syntaxerr.cmi diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000000..8291bf70582c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ml*] +indent_style = space + +[*.{c,h,h.in,sh,ac,m4}] +indent_style = space +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000000..73dc7d1325b2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,236 @@ +#************************************************************************** +#* * +#* OCaml * +#* * +#* Damien Doligez, projet Gallium, INRIA * +#* * +#* Copyright 2015 Institut National de Recherche en Informatique et * +#* en Automatique. * +#* * +#* 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. * +#* * +#************************************************************************** + +# Default behaviour, for if core.autocrlf isn't set +* text=auto + +# It is not possible to wrap lines lines in .gitattributes files +.gitattributes typo.long-line=may typo.non-ascii +.gitmodules typo.long-line=may typo.tab=may + +.editorconfig typo.missing-header=may + +# Binary files +/boot/ocamlc binary +/boot/ocamllex binary +*.gif binary +*.png binary +*.tfm binary + +/boot/menhir/parser.ml* -diff + +# configure is a shell-script; the linguist-generated attribute suppresses +# changes being displayed by default in pull requests. +/configure text eol=lf -diff linguist-generated + +# 'union' merge driver just unions textual content in case of conflict +# http://krlmlr.github.io/using-gitattributes-to-avoid-merge-conflicts/ +/.mailmap merge=union + +# We tried using 'union' for Changes and it did not work: +# instead of creating Changes conflict it would silently duplicate +# the lines involved in the conflict, which is arguably worse +#/Changes merge=union + +# No header for text and META files (would be too obtrusive). +*.md typo.missing-header +README* typo.missing-header +VERSION typo.missing-header +*.adoc typo.missing-header +api_docgen/*.mld typo.missing-header +api_docgen/alldoc.tex typo.missing-header +tools/mantis2gh_stripped.csv typo.missing-header +META.in typo.missing-header + +# Hyperlinks and other markup features cause long lines +*.adoc typo.long-line=may typo.very-long-line=may typo.non-ascii=may +*.md typo.long-line=may typo.very-long-line=may typo.non-ascii=may + +# Github templates and scripts lack headers, have long lines +/.github/** typo.missing-header typo.long-line=may typo.very-long-line=may +/.github/workflows/*.yml typo.non-ascii=may + +/.mailmap typo.long-line typo.missing-header typo.non-ascii +/CONTRIBUTING.md typo.non-ascii +/Changes typo.non-ascii typo.missing-header +/release-info/News typo.non-ascii typo.missing-header +/LICENSE typo.very-long-line typo.missing-header +# tools/ci/appveyor/appveyor_build.cmd only has missing-header because +# dra27 too lazy to update check-typo to interpret Cmd-style comments! +/tools/ci/appveyor/appveyor_build.cmd typo.very-long-line typo.missing-header typo.non-ascii +/tools/ci/inria/bootstrap/remove-sinh-primitive.patch typo.prune +/release-info/howto.md typo.missing-header typo.long-line +/release-info/templates/*.md typo.missing-header typo.very-long-line=may +# ignore auto-generated .depend files +.depend typo.prune +/.depend.menhir typo.prune + +# Makefiles may contain tabs +Makefile* typo.makefile-whitespace=may + +asmcomp/*/emit.mlp typo.tab=may typo.long-line=may + +# Unicode character used for graphical debugging and box drawing +typing/gprinttyp.mli typo.non-ascii +typing/gprinttyp.ml typo.non-ascii + +# The build-aux directory contains bundled files so do not check it +build-aux typo.prune + +/manual typo.prune +/manual/** typo.prune + +# configure is generated so do not check it +configure typo.prune + +ocaml-variants.opam typo.prune + +ocamldoc/** typo.long-line=may +ocamldoc/Changes.txt typo.missing-header +ocamldoc/ocamldoc.sty typo.missing-header +ocamldoc/odoc_index.html typo.missing-header + +otherlibs/unix/readlink_win32.c typo.long-line +otherlibs/unix/stat_win32.c typo.long-line +otherlibs/unix/symlink_win32.c typo.long-line + +# Some Unicode characters here and there +utils/misc.ml typo.non-ascii +runtime/sak.c typo.non-ascii + +testsuite/tests/** typo.missing-header typo.long-line=may +testsuite/tests/lib-bigarray-2/bigarrf.f typo.tab linguist-language=Fortran +testsuite/tests/lib-unix/win-stat/fakeclock.c typo.missing-header=false +testsuite/tests/misc-unsafe/almabench.ml typo.long-line +testsuite/tests/parsing/latin9.ml typo.non-ascii typo.very-long-line +testsuite/tests/parsing/comments.ml typo.non-ascii +testsuite/tests/tool-ocamldoc/Latin9.ml typo.non-ascii +testsuite/tests/parsetree/source.ml typo.non-ascii +testsuite/tests/typing-unicode/*.ml typo.non-ascii +testsuite/tests/tool-toplevel/strings.ml typo.non-ascii +testsuite/tests/win-unicode/*.ml typo.non-ascii +testsuite/tests/unicode/見.ml typo.non-ascii +testsuite/tests/lib-format/unicode.ml typo.non-ascii +testsuite/tests/lib-string/test_string.ml typo.non-ascii +testsuite/tests/lib-uchar/test.ml typo.non-ascii +testsuite/tests/lexing/reject_bad_encoding.ml typo.prune +testsuite/tests/asmgen/immediates.cmm typo.very-long-line +testsuite/tests/generated-parse-errors/errors.* typo.very-long-line +testsuite/tools/*.S typo.missing-header +testsuite/tools/*.asm typo.missing-header +testsuite/tests/messages/highlight_tabs.ml typo.tab +testsuite/tests/tool-toplevel/multi_phrase_line.ml typo.very-long-line + +# prune testsuite reference files +testsuite/tests/**/*.reference typo.prune + +# Expect tests with overly long lines of expected output +testsuite/tests/parsing/docstrings.ml typo.very-long-line + +# Generated test with overly long ocamltest description +testsuite/tests/lib-dynlink-domains/main.ml typo.very-long-line + +# The normalisation tests have very specific line endings which mustn't be +# corrupted by git. +testsuite/tests/tool-ocamltest/norm*.reference binary + +tools/magic typo.missing-header + +# TODO we should fix the long-line errors in yacc/*.c +/yacc/*.[ch] typo.very-long-line=may + +# bootstrap files produced by Menhir +/boot/menhir/** typo.long-line=may typo.very-long-line=may +/boot/menhir/** typo.missing-header=may +/boot/menhir/** typo.white-at-eol=may +/boot/menhir/** typo.non-ascii=may + +# Line-ending specifications, for Windows interoperability +*.sh text eol=lf +*.sh.in text eol=lf +*.awk text eol=lf +*.m4 text eol=lf linguist-language=M4Sugar + +# ocamltest hooks which are used in the testsuite +*.check-program-output text eol=lf +*.run text eol=lf + +/tools/ci/appveyor/appveyor_build.cmd text eol=crlf + +Makefile* linguist-language=Makefile +*.c linguist-language=C +*.h linguist-language=C +*.h.in linguist-language=C +*.hva linguist-language=TeX +*.ml linguist-language=OCaml +*.ml? linguist-language=OCaml +*.mld linguist-documentation +*.ml*.in linguist-language=OCaml +*.tbl linguist-language=C + +aclocal.m4 typo.tab -linguist-vendored linguist-language=M4Sugar +configure.ac text eol=lf +# These scripts are all parts of autoconf and are tagged linguist-generated +# to suppress inclusion in PR diffs. +build-aux/config.guess linguist-generated text eol=lf +build-aux/config.sub linguist-generated text eol=lf +build-aux/install-sh linguist-generated text eol=lf +build-aux/ltmain.sh linguist-generated text eol=lf +build-aux/*.m4 linguist-vendored +build-aux/ocaml_version.m4 -linguist-vendored linguist-language=M4Sugar +ocamltest/OCAMLTEST.org typo.long-line=may typo.missing-header +stdlib/Compflags text eol=lf +stdlib/hashbang -text +tools/autogen text eol=lf +tools/bump-magic-numbers eol=lf typo.long-line +tools/ci/inria/bootstrap/remove-sinh-primitive.patch -text +tools/ci/inria/bootstrap/script text eol=lf +tools/ci/inria/dune-build/script text eol=lf +tools/ci/inria/launch text eol=lf +tools/ci/inria/light text eol=lf +tools/ci/inria/main text eol=lf +tools/ci/inria/other-configs/script text eol=lf +tools/ci/inria/sanitizers/script text eol=lf +tools/ci/inria/step-by-step-build/script text eol=lf +tools/check-typo text eol=lf +tools/check-symbol-names text eol=lf +tools/msvs-promote-path text eol=lf +tools/magic text eol=lf +tools/ocamlsize text eol=lf +tools/pre-commit-githook text eol=lf +runtime/caml/sizeclasses.h typo.missing-header + +/tools/gdb_ocamlrun.py typo.long-line + +# Tests which include references spanning multiple lines fail with \r\n +# endings, so use \n endings only, even on Windows. +testsuite/tests/basic-modules/anonymous.ml text eol=lf +testsuite/tests/formatting/test_locations.ml text eol=lf +testsuite/tests/functors/functors.ml text eol=lf +testsuite/tests/parsing/attributes.ml text eol=lf +testsuite/tests/parsing/extensions.ml text eol=lf +testsuite/tests/parsing/hash_ambiguity.ml text eol=lf +testsuite/tests/parsing/int_and_float_with_modifier.ml text eol=lf +testsuite/tests/parsing/pr6865.ml text eol=lf +testsuite/tests/parsing/quotedextensions.ml text eol=lf +testsuite/tests/parsing/shortcut_ext_attr.ml text eol=lf +testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_impl.ml text eol=lf +testsuite/tests/tool-ocamlc-stop-after/stop_after_parsing_intf.mli text eol=lf +testsuite/tests/tool-ocamlc-stop-after/stop_after_typing_impl.ml text eol=lf +testsuite/tests/translprim/module_coercion.ml text eol=lf + +# This is forced to \n to allow the Cygwin testsuite to pass on a +# Windows-checkout +testsuite/tests/parsetree/locations_test.ml text eol=lf diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000000..72076946af3b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,28 @@ +--- +name: Bug report +about: Please submit bug reports here. +title: '' +labels: '' +assignees: '' + +--- + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000000..fb253417c853 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,10 @@ +blank_issues_enabled: false +contact_links: + - name: OCaml Discuss Forum + url: https://discuss.ocaml.org/ + about: This is the best place to start with questions about using OCaml. + - name: opam Package Repository + url: https://github.com/ocaml/opam-repository/issues + about: >- + Virtually all OCaml packages are available in the opam repository - please + report packaging issues there. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000000..48e6763c211b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature request +about: Suggest a new feature for OCaml. +title: '' +labels: 'feature-wish' +assignees: '' + +--- + diff --git a/.github/workflows/build-cross.yml b/.github/workflows/build-cross.yml new file mode 100644 index 000000000000..6d2ba59e1360 --- /dev/null +++ b/.github/workflows/build-cross.yml @@ -0,0 +1,273 @@ +name: Cross compilers + +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + workflow_dispatch: + +# Restrict the GITHUB_TOKEN +permissions: {} + +# See build.yml +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'pull_request' || github.sha }} + cancel-in-progress: true + +env: + res: 0 + TESTDIR: >- + C:\Бактріан🫠+ STR_UTF8: >- + "C:\\БактріанðŸ«" + STR_UTF16: >- + L"C:\\\x0411\x0430\x043a\x0442\x0440\x0456\x0430\x043d\xd83d\xdc2b" + EXAMPLE_PROGRAM: | + let _ = + Printf.printf "Version: %s\nOS: %s\nUnix: %b\nWin: %b\nCygwin: %b\n" + Sys.ocaml_version Sys.os_type Sys.unix Sys.win32 Sys.cygwin + COMPLIBS_PROG_X86_64: | + let _ = + Printf.printf "allow_unaligned_access = %b\n" Arch.allow_unaligned_access; + Printf.printf "win64 = %b\n" Arch.win64 + COMPLIBS_PROG_AARCH64: | + let _ = + Printf.printf "allow_unaligned_access = %b\n" Arch.allow_unaligned_access; + Printf.printf "macosx = %b\n" Arch.macosx + +jobs: + non-cross: + if: contains(github.event.pull_request.labels.*.name, 'run-crosscompiler-tests') + runs-on: ubuntu-latest + steps: + - name: Checkout OCaml + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Configure, build and install OCaml + run: | + PREFIX="$HOME/.local" + echo "$PREFIX/bin" >> "$GITHUB_PATH" + set -x + ./configure --disable-warn-error --disable-ocamldoc \ + --disable-ocamltest --disable-stdlib-manpages \ + --disable-dependency-generation --prefix="$PREFIX" || res=$? + if ! [ "$res" = 0 ]; then cat config.log; exit "$res"; fi + make -j + make install + cd "$HOME" + tar caf /tmp/ocaml.tar.zst .local + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: non-cross-ocaml + path: /tmp/ocaml.tar.zst + retention-days: 1 + + cross-windows: + runs-on: ubuntu-latest + needs: non-cross + steps: + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: non-cross-ocaml + - name: Install non-cross OCaml and set up environment + run: | + set -x + tar xaf ocaml.tar.zst -C "$HOME" + rm -f ocaml.tar.zst + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + sudo apt-get update -y + sudo apt-get install -y gcc-mingw-w64-x86-64 + - name: Checkout OCaml + uses: actions/checkout@v4 + with: + submodules: true + persist-credentials: false + - name: Configure, build and install Linux-to-Windows OCaml + run: | + set -x + ./configure --prefix="$HOME/cross" --target=x86_64-w64-mingw32 \ + TARGET_LIBDIR="$TESTDIR" || res=$? + if ! [ "$res" = 0 ]; then cat config.log; exit "$res"; fi + # The OOM-killer may be triggered if the number of parallel + # jobs isn't limited. + make crossopt -j$(nproc) + make installcross + ln -sr "$HOME/cross/bin/flexlink.opt.exe" "$HOME/.local/bin/flexlink" + - name: Show opt.opt configuration + run: | + set -x + $HOME/cross/bin/ocamlopt.opt.exe -config + cat runtime/build_config.h + - name: Cross compile a small program + run: | + printf %s "$EXAMPLE_PROGRAM$COMPLIBS_PROG_X86_64" > example.ml + set -x + cat example.ml + $HOME/cross/bin/ocamlopt.opt.exe -I $HOME/cross/lib/ocaml/compiler-libs/ ocamlcommon.cmxa ocamloptcomp.cmxa example.ml -o example.exe -verbose + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: windows-executable + path: example.exe + retention-days: 1 + - name: Test cross sak + run: | + printf %s "$STR_UTF16" > utf16.ref + printf %s "$STR_UTF8" > utf8.ref + set -x + runtime/sak encode-C-utf16-literal "$TESTDIR" > utf16 + git diff --no-index utf16.ref utf16 + runtime/sak encode-C-utf8-literal "$TESTDIR" > utf8 + git diff --no-index utf8.ref utf8 + + run-windows: + runs-on: windows-latest + needs: cross-windows + steps: + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: windows-executable + - name: Run example program + run: | + .\example.exe + + cross-arm-linux: + runs-on: ubuntu-latest + needs: non-cross + steps: + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: non-cross-ocaml + - name: Install non-cross OCaml and set up environment + run: | + set -x + tar xaf ocaml.tar.zst -C "$HOME" + rm -f ocaml.tar.zst + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + sudo apt-get update -y + sudo apt-get install -y gcc-aarch64-linux-gnu qemu-user + - name: Checkout OCaml + uses: actions/checkout@v4 + with: + submodules: true + persist-credentials: false + - name: Configure, build and install Linux-to-Windows OCaml + run: | + set -x + ./configure --prefix="$HOME/cross" --target=aarch64-linux-gnu \ + || res=$? + if ! [ "$res" = 0 ]; then cat config.log; exit "$res"; fi + make crossopt -j + make installcross + - name: Show opt.opt configuration + run: | + set -x + $HOME/cross/bin/ocamlopt.opt -config + cat runtime/build_config.h + - name: Cross compile a small program + run: | + printf %s "$EXAMPLE_PROGRAM$COMPLIBS_PROG_AARCH64" > example.ml + set -x + cat example.ml + $HOME/cross/bin/ocamlopt.opt -I $HOME/cross/lib/ocaml/compiler-libs/ ocamlcommon.cmxa ocamloptcomp.cmxa example.ml -o example -verbose + - name: Run the small example program + run: | + set -x + qemu-aarch64 -L /usr/aarch64-linux-gnu example + - name: Test cross sak + run: | + printf %s "$STR_UTF16" > utf16.ref + printf %s "$STR_UTF8" > utf8.ref + set -x + runtime/sak encode-C-utf16-literal "$TESTDIR" > utf16 + git diff --no-index utf16.ref utf16 + runtime/sak encode-C-utf8-literal "$TESTDIR" > utf8 + git diff --no-index utf8.ref utf8 + + cross-android: + runs-on: ubuntu-latest + needs: non-cross + steps: + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: non-cross-ocaml + - name: Install non-cross OCaml + run: | + set -x + tar xaf ocaml.tar.zst -C "$HOME" + rm -f ocaml.tar.zst + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + - name: Restore the Android NDK from cache + uses: actions/cache/restore@v4 + id: cache + with: + path: | + /home/runner/android + key: android-ndk + - name: Download the Android NDK + run: | + set -x + mkdir -p "$HOME/android" + cd "$HOME/android" + wget --no-verbose https://dl.google.com/android/repository/android-ndk-r27b-linux.zip + unzip android-ndk-r27b-linux.zip + rm android-ndk-r27b-linux.zip + if: steps.cache.outputs.cache-hit != 'true' + - name: Save the Android NDK to cache + uses: actions/cache/save@v4 + with: + path: | + /home/runner/android + key: android-ndk + if: steps.cache.outputs.cache-hit != 'true' + - name: Checkout OCaml + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Configure, build and install Linux-to-Android OCaml + env: + TARGET: x86_64-linux-android21 + TOOLDIR: android-ndk-r27b/toolchains/llvm/prebuilt/linux-x86_64/bin + run: | + DIR="$HOME/android/$TOOLDIR" + set -x + # Hack around the fact that pthread_cancel isn't available on Android + # So the result program should _not_ be run with cleanup on exit + # (so no `c=1` in `OCAMLRUNPARAM`) + ./configure --prefix="$HOME/cross" --target=$TARGET \ + TARGET_LIBDIR="/dummy/directory" \ + CC="$DIR/clang --target=$TARGET" \ + CPPFLAGS='-Dpthread_cancel=assert' \ + AR="$DIR/llvm-ar" \ + PARTIALLD="$DIR/ld -r" \ + RANLIB="$DIR/llvm-ranlib" \ + STRIP="$DIR/llvm-strip" || res=$? + if ! [ "$res" = 0 ]; then cat config.log; exit "$res"; fi + make crossopt -j + make installcross + - name: Show opt.opt configuration + run: | + set -x + $HOME/cross/bin/ocamlopt.opt -config + cat runtime/build_config.h + - name: Cross compile a small program + run: | + printf %s "$EXAMPLE_PROGRAM" > example.ml + set -x + cat example.ml + $HOME/cross/bin/ocamlopt.opt example.ml -o example -verbose + file example + - name: Run example + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 21 + arch: x86_64 + disable-animations: true + script: | + adb push example /data/local/tmp/example + adb shell /data/local/tmp/example diff --git a/.github/workflows/build-msvc.yml b/.github/workflows/build-msvc.yml new file mode 100644 index 000000000000..2a98fff1e55d --- /dev/null +++ b/.github/workflows/build-msvc.yml @@ -0,0 +1,144 @@ +name: Build with MSVC + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +on: + push: + branches: + - '4.**' + - '5.**' + - 'trunk' + pull_request: + +# env: + # Fully print commands executed by Make + # MAKEFLAGS: V=1 + +defaults: + run: + shell: bash -eo pipefail -o igncr {0} + +jobs: + build: + permissions: {} + + runs-on: windows-latest + + timeout-minutes: 60 + + name: ${{ matrix.cc == 'cl' && 'MSVC' || 'clang-cl' }} ${{ matrix.x86_64 && '64 bits' || '32 bits' }} + + strategy: + matrix: + x86_64: [true, false] + cc: [cl, clang-cl] + exclude: + - cc: clang-cl + x86_64: false + + steps: + + - name: Fetch OCaml + uses: actions/checkout@v4 + with: + submodules: true + + - name: Restore Cygwin cache + uses: actions/cache/restore@v4 + with: + path: | + C:\cygwin-packages + key: cygwin-packages + + - name: Install Cygwin + uses: cygwin/cygwin-install-action@v3 + with: + packages: make,mingw64-x86_64-gcc-core + install-dir: 'D:\cygwin' + + - name: Save Cygwin cache + uses: actions/cache/save@v4 + with: + path: | + C:\cygwin-packages + key: cygwin-packages + + - name: Set up MSVC + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.x86_64 && 'x64' || 'x86' }} + + - name: Compute a key to cache configure results + id: autoconf-cache-key + env: + HOST: ${{ matrix.x86_64 && 'x86_64-pc-windows' || 'i686-pc-windows' }} + run: | + echo "key=${{ env.HOST }}-${{ matrix.cc }}-${{ hashFiles('configure') }}" >> $GITHUB_OUTPUT + + - name: Restore Autoconf cache + uses: actions/cache/restore@v4 + with: + path: | + config.cache + key: ${{ steps.autoconf-cache-key.outputs.key }} + + - name: Configure tree + env: + HOST: ${{ matrix.x86_64 && 'x86_64-pc-windows' || 'i686-pc-windows' }} + run: | + eval $(tools/msvs-promote-path) + if ! ./configure --cache-file=config.cache --host=$HOST \ + --prefix="$PROGRAMFILES/БактріанðŸ«" \ + CC=${{ matrix.cc }}; then + rm -rf config.cache + failed=0 + ./configure --cache-file=config.cache --host=$HOST \ + --prefix="$PROGRAMFILES/БактріанðŸ«" \ + CC=${{ matrix.cc }} \ + || failed=$? + if ((failed)) ; then + echo + echo "::group::config.log content ($(wc -l config.log) lines)" + cat config.log + echo '::endgroup::' + exit $failed + fi + fi + + - name: Save Autoconf cache + uses: actions/cache/save@v4 + with: + path: | + config.cache + key: ${{ steps.autoconf-cache-key.outputs.key }} + + - name: Build OCaml + run: | + eval $(tools/msvs-promote-path) + make -j || failed=$? + if ((failed)) ; then make -j1 V=1 ; exit $failed ; fi + runtime/ocamlrun ocamlc -config + + - name: Assemble backend with mingw-w64 GASM and compare + run: | + x86_64-w64-mingw32-gcc -c -I./runtime -I ./flexdll -D__USE_MINGW_ANSI_STDIO=0 -DUNICODE -D_UNICODE -DWINDOWS_UNICODE=1 -DCAMLDLLIMPORT= -DIN_CAML_RUNTIME -DNATIVE_CODE -DTARGET_amd64 -DMODEL_default -DSYS_mingw64 -o runtime/amd64.o runtime/amd64.S + dumpbin /disasm:nobytes runtime/amd64nt.obj > runtime/amd64nt.dump + awk -f tools/ci/actions/canonicalize-dumpbin.awk runtime/amd64nt.dump runtime/amd64nt.dump > runtime/amd64nt.canonical + dumpbin /disasm:nobytes runtime/amd64.o > runtime/amd64.dump + awk -f tools/ci/actions/canonicalize-dumpbin.awk runtime/amd64.dump runtime/amd64.dump > runtime/amd64.canonical + git diff --no-index -- runtime/amd64*.canonical + wc -l runtime/amd64*.dump runtime/amd64*.canonical + # ^ The final wc is there to make sure that the canonical files are + # reasonable cleaned-up versions of the raw dumpbins and not simply + # empty + if: matrix.x86_64 + + - name: Run the test suite + run: | + eval $(tools/msvs-promote-path) + make tests + + - name: Install the compiler + run: make install diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000000..7bfb981be51f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,235 @@ +name: Build + +on: + push: + branches: + - '4.**' + - '5.**' + - 'trunk' + pull_request: + +# Restrict the GITHUB_TOKEN +permissions: {} + +env: + # List of test directories for the debug-s4096 and linux-O0 jobs. These + # directories are selected because of their tendencies to reach corner cases + # in the runtime system. + PARALLEL_TESTS: parallel callback gc-roots weak-ephe-final + # Fully print commands executed by Make + # MAKEFLAGS: V=1 + +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency +# Concurrent workflows are grouped by the PR or branch that triggered them +# (github.ref) and the name of the workflow (github.workflow). The +# 'cancel-in-progress' option then make sure that only one workflow is running +# at a time. This doesn't prevent new jobs from running, rather it cancels +# already running jobs before scheduling new jobs. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'pull_request' || github.sha }} + cancel-in-progress: true + +jobs: +# This job will do the initial build of the compiler (on linux), with flambda on. +# We then upload the compiler tree as a build artifact to enable re-use in +# subsequent jobs. + build: + runs-on: 'ubuntu-24.04' + outputs: + manual_changed: ${{ steps.manual.outputs.manual_changed }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Check for manual changes + id: manual + run: >- + tools/ci/actions/check-manual-modified.sh + '${{ github.ref }}' + '${{ github.event_name }}' + '${{ github.event.pull_request.base.ref }}' + '${{ github.event.pull_request.base.sha }}' + '${{ github.event.pull_request.head.ref }}' + '${{ github.event.pull_request.head.sha }}' + '${{ github.event.ref }}' + '${{ github.event.before }}' + '${{ github.event.ref }}' + '${{ github.event.after }}' + '${{ github.event.repository.full_name }}' + - name: Configure tree + run: | + MAKE_ARG=-j CONFIG_ARG='--enable-flambda --enable-cmm-invariants --enable-codegen-invariants --enable-dependency-generation --enable-native-toplevel' OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh configure + - name: Build + run: | + MAKE_ARG=-j bash -xe tools/ci/actions/runner.sh build + - name: Prepare Artifact + run: tar --zstd -cf /tmp/sources.tar.zstd . + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: compiler + path: /tmp/sources.tar.zstd + retention-days: 1 + +# Full testsuite run, and other sanity checks +# "extra" testsuite runs, reusing the previously built compiler tree. +# debug: running the full testsuite with the +# debug runtime and minor heap verification. +# debug-s4096: select testsuite run with the debug runtime and a small +# minor heap. + normal: + name: ${{ matrix.name }} + needs: build + runs-on: ubuntu-24.04 + strategy: + matrix: + include: + - id: normal + name: normal + dependencies: texlive-latex-extra texlive-fonts-recommended texlive-luatex hevea sass gdb lldb + - id: debug + name: extra (debug) + - id: debug-s4096 + name: extra (debug-s4096) + steps: + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: compiler + - name: Unpack Artifact + run: | + tar --zstd -xf sources.tar.zstd + rm -f sources.tar.zstd + - name: Packages + if: matrix.dependencies != '' + run: | + sudo apt-get update -y + sudo apt-get install -y ${{ matrix.dependencies }} + - name: Run the testsuite + if: matrix.id == 'normal' + run: | + MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh test + - name: Run the testsuite (debug runtime) + if: matrix.id == 'debug' + env: + OCAMLRUNPARAM: v=0,V=1 + USE_RUNTIME: d + run: | + bash -cxe "SHOW_TIMINGS=1 tools/ci/actions/runner.sh test" + - name: Run the testsuite (s=4096, debug runtime) + if: matrix.id == 'debug-s4096' + env: + OCAMLRUNPARAM: s=4096,v=0 + USE_RUNTIME: d + run: | + for dir in $PARALLEL_TESTS; do \ + bash -cxe "SHOW_TIMINGS=1 tools/ci/actions/runner.sh test_prefix $dir"; \ + done + - name: Build API Documentation + if: matrix.id == 'normal' + run: | + MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh api-docs + - name: Install + if: matrix.id == 'normal' + run: | + MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh install + - name: Build the manual + if: matrix.id == 'normal' && needs.build.outputs.manual_changed == 'true' + run: | + MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh manual + - name: Other checks + if: matrix.id == 'normal' + run: | + MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh other-checks + +# MacOS build+testsuite run, and Linux O0 run. + others: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - name: linux-O0 + os: ubuntu-latest + config_arg: CFLAGS='-O0' + - name: linux-arm64 + os: ubuntu-24.04-arm + - name: macos-x86_64 + os: macos-13 + - name: macos-arm64 + os: macos-15 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: MacOS 13 Dependencies + if: matrix.os == 'macos-13' + run: | + brew install parallel + # Allows starting up lldb from a remote terminal + sudo DevToolsSecurity --enable + spctl developer-mode enable-terminal + # Select latest supported version + sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer + lldb --version + + - name: MacOS 15 Dependencies + if: matrix.os == 'macos-15' + run: | + brew install parallel + # Allows starting up lldb from a remote terminal + # Note: in order to start lldb, the user must also be in + # one of these groups: "admin" or "_developer". + sudo DevToolsSecurity --enable + spctl developer-mode enable-terminal + # Select latest supported version + sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer + lldb --version + + - name: configure tree + run: | + CONFIG_ARG='--enable-codegen-invariants ${{ matrix.config_arg }}' MAKE_ARG=-j bash -xe tools/ci/actions/runner.sh configure + - name: Build + run: | + MAKE_ARG=-j bash -xe tools/ci/actions/runner.sh build + - name: Run the testsuite + if: ${{ matrix.name != 'linux-O0' }} + run: | + bash -c 'SHOW_TIMINGS=1 tools/ci/actions/runner.sh test' + - name: Run the testsuite (linux-O0) + if: ${{ matrix.name == 'linux-O0' }} + env: + OCAMLRUNPARAM: v=0,V=1 + USE_RUNTIME: d + run: | + for dir in $PARALLEL_TESTS; do \ + bash -cxe "SHOW_TIMINGS=1 tools/ci/actions/runner.sh test_prefix $dir"; \ + done + + i386: + runs-on: ubuntu-latest + container: + image: debian:12 + options: --platform linux/i386 --user root + steps: + - name: OS Dependencies + run: | + apt-get update -y + apt-get install -y git gcc make parallel + adduser --disabled-password --gecos '' ocaml + - name: Checkout + # See https://github.com/actions/checkout/issues/334 + uses: actions/checkout@v1 + - name: configure tree + run: | + chown -R ocaml:ocaml . + MAKE_ARG=-j su ocaml -c "bash -xe tools/ci/actions/runner.sh configure" + - name: Build + run: | + MAKE_ARG=-j su ocaml -c "bash -xe tools/ci/actions/runner.sh build" + - name: Run the testsuite + run: | + su ocaml -c "bash -xe tools/ci/actions/runner.sh test" diff --git a/.github/workflows/hygiene.yml b/.github/workflows/hygiene.yml new file mode 100644 index 000000000000..dd39db60e8a9 --- /dev/null +++ b/.github/workflows/hygiene.yml @@ -0,0 +1,115 @@ +name: Hygiene +on: + push: + branches: + - '4.**' + - '5.**' + - 'trunk' + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + +# Restrict the GITHUB_TOKEN +permissions: {} + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + hygiene: + name: Checks + runs-on: ubuntu-latest + steps: + - name: GitHub Context + run: echo $GITHUB_CONTEXT + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + # Comment out the line below to enable (debugging) display of the github + # context variable. + if: failure() + + - uses: actions/checkout@v4 + with: + fetch-depth: 50 + persist-credentials: false + + - name: Changes updated + run: >- + tools/ci/actions/check-changes-modified.sh + '${{ github.event.pull_request.issue_url }}' + '${{ github.ref }}' + 'pull_request' + '${{ github.event.pull_request.base.ref }}' + '${{ github.event.pull_request.base.sha }}' + '${{ github.event.pull_request.head.ref }}' + '${{ github.event.pull_request.head.sha }}' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: github.event_name == 'pull_request' + + - name: configure correctly generated + run: >- + tools/ci/actions/check-configure.sh + '${{ github.ref }}' + '${{ github.event_name }}' + '${{ github.event.pull_request.base.ref }}' + '${{ github.event.pull_request.base.sha }}' + '${{ github.event.pull_request.head.ref }}' + '${{ github.event.pull_request.head.sha }}' + '${{ github.event.ref }}' + '${{ github.event.before }}' + '${{ github.event.ref }}' + '${{ github.event.after }}' + if: ${{ always() }} + + - name: Check that no ignored files have been committed + run: tools/ci/actions/check-no-ignored-files.sh + if: ${{ always() }} + + - name: check-typo revered + id: revered + run: >- + tools/ci/actions/check-typo.sh + '${{ github.ref }}' + '${{ github.event_name }}' + '${{ github.event.pull_request.base.ref }}' + '${{ github.event.pull_request.base.sha }}' + '${{ github.event.pull_request.head.ref }}' + '${{ github.event.pull_request.head.sha }}' + '${{ github.event.ref }}' + '${{ github.event.before }}' + '${{ github.event.ref }}' + '${{ github.event.after }}' + if: ${{ always() }} + + - name: check-typo on whole tree + run: tools/check-typo + if: >- + ((github.event_name == 'push' + && (github.event.ref == 'refs/heads/trunk' + || startsWith(github.event.ref, 'refs/heads/4.') + || startsWith(github.event.ref, 'refs/heads/5.'))) + || steps.revered.outputs.full_check_needed == 'true') + && always() + + - name: Check that labelled/unlabelled .mli files are in sync + run: tools/ci/actions/check-labelled-interfaces.sh + if: always() + + # This step records the build success in the variable build-status, + # allowing the last two steps to skip, rather than go beserk with a + # faulty compiler. + - name: Build a minimal compiler for alldepend + id: compiler + run: tools/ci/actions/runner.sh basic-compiler + if: always() + + - name: Check that dependency info is up-to-date + run: tools/ci/actions/check-alldepend.sh + if: steps.compiler.outputs.build-status == 'success' && always() + + - name: Check global structure of the reference manual + run: | + # Required configuration info is left-over from the previous step + make -C manual/tests check-stdlib check-case-collision + if: steps.compiler.outputs.build-status == 'success' && always() diff --git a/.github/workflows/multicoretests.yml b/.github/workflows/multicoretests.yml new file mode 100644 index 000000000000..2bc8b4cc1e1f --- /dev/null +++ b/.github/workflows/multicoretests.yml @@ -0,0 +1,73 @@ +# Run the multicoretests testsuite if PR is labelled with run-multicoretests +name: Run multicoretests testsuite +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + +# Restrict the GITHUB_TOKEN +permissions: {} + +# See build.yml +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'pull_request' || github.sha }} + cancel-in-progress: true + +jobs: + multicoretests: + if: contains(github.event.pull_request.labels.*.name, 'run-multicoretests') + runs-on: 'ubuntu-latest' + strategy: + matrix: + include: + - profile: dev + ocamlrunparam: b + - profile: debug-runtime + ocamlrunparam: b,s=4096 + steps: + - name: Checkout OCaml + uses: actions/checkout@v4 + with: + path: ocaml + persist-credentials: false + - name: Configure, build and install OCaml + run: | + bash -xe ocaml/tools/ci/actions/multicoretests.sh ocaml + - name: Checkout multicoretests + uses: actions/checkout@v4 + with: + repository: ocaml-multicore/multicoretests + ref: 0.8 + path: multicoretests + persist-credentials: false + - name: Checkout QCheck + uses: actions/checkout@v4 + with: + repository: c-cube/qcheck + ref: v0.25 + path: multicoretests/qcheck + persist-credentials: false + - name: Checkout dune + uses: actions/checkout@v4 + with: + repository: ocaml/dune + ref: 3.18.0 + path: dune + persist-credentials: false + - name: Build and install dune + run: | + bash -xe ocaml/tools/ci/actions/multicoretests.sh dune + - name: Show the configuration + run: | + bash ocaml/tools/ci/actions/multicoretests.sh show_config + - name: Build the test suite + env: + DUNE_PROFILE: ${{ matrix.profile }} + OCAMLRUNPARAM: ${{ matrix.ocamlrunparam }} + run: | + bash -xe ocaml/tools/ci/actions/multicoretests.sh build + - name: Run the multicore test suite + env: + DUNE_PROFILE: ${{ matrix.profile }} + OCAMLRUNPARAM: ${{ matrix.ocamlrunparam }} + run: | + bash -xe ocaml/tools/ci/actions/multicoretests.sh testsuite diff --git a/.github/workflows/parsetree-change.yml b/.github/workflows/parsetree-change.yml new file mode 100644 index 000000000000..b953969cc511 --- /dev/null +++ b/.github/workflows/parsetree-change.yml @@ -0,0 +1,39 @@ +name: Parsetree Updated + +on: + pull_request: + paths: + - 'parsing/parsetree.mli' + - 'parsing/asttypes.mli' + - 'parsing/location.mli' + - 'parsing/longident.mli' + - 'parsing/parse.mli' + - 'parsing/pprintast.mli' + +jobs: + comment-and-label: + if: ${{! contains(github.event.pull_request.labels.*.name, 'parsetree-change')}} + permissions: + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: Notify ppxlib maintainers + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'CC @ocaml/ppxlib-dev' + }) + - name: Label PR + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['parsetree-change'] + }) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000000..fd8fe3452f0f --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,18 @@ +name: "Close stale issues" +on: + schedule: + - cron: "15 4 * * 1,3,5" + +jobs: + stale: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - uses: actions/stale@v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: 'This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc.' + days-before-stale: 366 + days-before-close: 30 + exempt-issue-labels: 'bug' diff --git a/.github/workflows/tsan.yml b/.github/workflows/tsan.yml new file mode 100644 index 000000000000..3327397723b6 --- /dev/null +++ b/.github/workflows/tsan.yml @@ -0,0 +1,103 @@ +# Build the compiler and run the testsuite with ThreadSanitizer, if PR is +# labelled with run-thread-sanitizer +name: Run testsuite with ThreadSanitizer +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + +# Restrict the GITHUB_TOKEN +permissions: {} + +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency +# Concurrent workflows are grouped by the PR or branch that triggered them +# (github.ref) and the name of the workflow (github.workflow). The +# 'cancel-in-progress' option then make sure that only one workflow is running +# at a time. This doesn't prevent new jobs from running, rather it cancels +# already running jobs before scheduling new jobs. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'pull_request' || github.sha }} + cancel-in-progress: true + +jobs: +# This job will do the initial build of the compiler (on linux). +# We then upload the compiler tree as a build artifact to enable re-use in +# subsequent jobs. + build: + if: contains(github.event.pull_request.labels.*.name, 'run-thread-sanitizer') + runs-on: 'ubuntu-latest' + outputs: + manual_changed: ${{ steps.manual.outputs.manual_changed }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Install libunwind + run: | + sudo apt-get update -y + sudo apt-get install -y libunwind-dev + # This temporary workaround reduces the number of random bits for the base + # address of vma regions for mmap allocation, to avoid the + # "FATAL: ThreadSanitizer: unexpected memory mapping" TSan error. + # See: https://github.com/google/sanitizers/issues/1716 + - name: Tune vm.mmap_rnd_bits value for TSan + run: sudo sysctl vm.mmap_rnd_bits=28 + - name: Configure tree + run: | + MAKE_ARG=-j CONFIG_ARG='--enable-cmm-invariants --enable-dependency-generation --enable-native-toplevel --enable-tsan --enable-ocamltest CPPFLAGS=-DTSAN_INSTRUMENT_ALL' OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh configure + - name: Build + run: | + MAKE_ARG=-j bash -xe tools/ci/actions/runner.sh build + - name: Prepare Artifact + run: tar --zstd -cf /tmp/sources.tar.zstd . + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: compiler + path: /tmp/sources.tar.zstd + retention-days: 1 + +# Testsuite run jobs: +# normal: Run the full testsuite +# debug: Run the full testsuite with the debug runtime and minor heap +# verification. + normal: + if: contains(github.event.pull_request.labels.*.name, 'run-thread-sanitizer') + name: ${{ matrix.name }} + needs: build + runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: normal + name: normal + dependencies: libunwind-dev + - id: debug + name: debug runtime + dependencies: libunwind-dev + steps: + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: compiler + - name: Unpack Artifact + run: | + tar --zstd -xf sources.tar.zstd + rm -f sources.tar.zstd + - name: Packages + if: matrix.dependencies != '' + run: | + sudo apt-get update -y + sudo apt-get install -y ${{ matrix.dependencies }} + - name: Run the testsuite + if: matrix.id == 'normal' + # Run testsuite with 30-minute timeout per test + run: | + TIMEOUT=1800 TSAN_OPTIONS=history_size=6 OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh test_sequential + - name: Run the testsuite (debug runtime) + if: matrix.id == 'debug' + env: + OCAMLRUNPARAM: v=0,V=1 + USE_RUNTIME: d + run: | + bash -cxe "TSAN_OPTIONS=history_size=6 SHOW_TIMINGS=1 tools/ci/actions/runner.sh test_sequential" diff --git a/.gitignore b/.gitignore index 87f7cda48785..e72adc794768 100644 --- a/.gitignore +++ b/.gitignore @@ -1,409 +1,193 @@ - -# / -/*.o -/*.a -/*.so -/*.obj -/*.lib -/*.dll -/*.cm[ioxat] -/*.cmx[as] -/*.cmti -/*.annot -/*.result -/*.byte -/*.native -/program -/*.exe -/*.exe.manifest -/.depend -/.depend.nt -/.DS_Store -/configure +#************************************************************************** +#* * +#* OCaml * +#* * +#* Damien Doligez, projet Gallium, INRIA * +#* * +#* Copyright 2015 Institut National de Recherche en Informatique et * +#* en Automatique. * +#* * +#* 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. * +#* * +#************************************************************************** + +# general patterns + +*.o +*.a +*.so +*.obj +*.lib +*.dll +*.la +*.cm[ioxat] +*.cmx[as] +*.cmti +*.annot +*.exe +*.exe.manifest +.DS_Store +*.out +*.dSYM/ +*.swp +_ocamltest +_ocamltestd +*.odoc +.merlin +_build +META +# Ignore foo.depend, but not .depend +?*.depend + +# local to root directory + +/.dep +/Makefile.build_config +/Makefile.config +/autom4te.cache /ocamlc +/config.cache +/ocaml-*.cache +/config.log +/config.status +/configure~ +/flexlink.opt +/libtool /ocamlc.opt /expunge /ocaml /ocamlopt /ocamlopt.opt -/ocamlcomp.sh -/ocamlcompopt.sh -/package-macosx /ocamlnat +/_opam + +# specific files and patterns in sub-directories -# /asmcomp/ -/asmcomp/*.o -/asmcomp/*.a -/asmcomp/*.so -/asmcomp/*.obj -/asmcomp/*.lib -/asmcomp/*.dll -/asmcomp/*.cm[ioxat] -/asmcomp/*.cmx[as] -/asmcomp/*.cmti -/asmcomp/*.annot -/asmcomp/*.result -/asmcomp/*.byte -/asmcomp/*.native -/asmcomp/program -/asmcomp/*.exe -/asmcomp/*.exe.manifest -/asmcomp/.depend -/asmcomp/.depend.nt -/asmcomp/.DS_Store /asmcomp/emit.ml +/asmcomp/arch.mli /asmcomp/arch.ml /asmcomp/proc.ml /asmcomp/selection.ml /asmcomp/reload.ml /asmcomp/scheduling.ml /asmcomp/CSE.ml +/asmcomp/stackframe.ml -# /asmcomp/amd64/ -/asmcomp/amd64/*.o -/asmcomp/amd64/*.a -/asmcomp/amd64/*.so -/asmcomp/amd64/*.obj -/asmcomp/amd64/*.cm[ioxat] -/asmcomp/amd64/*.cmx[as] -/asmcomp/amd64/*.cmti -/asmcomp/amd64/*.annot -/asmcomp/amd64/*.result -/asmcomp/amd64/*.byte -/asmcomp/amd64/*.native -/asmcomp/amd64/program -/asmcomp/amd64/program.exe -/asmcomp/amd64/.depend -/asmcomp/amd64/.depend.nt -/asmcomp/amd64/.DS_Store - -# /asmrun/ -/asmrun/*.o -/asmrun/*.a -/asmrun/*.so -/asmrun/*.obj -/asmrun/*.lib -/asmrun/*.dll -/asmrun/*.cm[ioxat] -/asmrun/*.cmx[as] -/asmrun/*.cmti -/asmrun/*.annot -/asmrun/*.result -/asmrun/*.byte -/asmrun/*.native -/asmrun/program -/asmrun/*.exe -/asmrun/.depend -/asmrun/.depend.nt -/asmrun/.DS_Store -/asmrun/*.p.c -/asmrun/*.d.c -/asmrun/libasmrun.a -/asmrun/libasmrunp.a -/asmrun/main.c -/asmrun/misc.c -/asmrun/freelist.c -/asmrun/major_gc.c -/asmrun/minor_gc.c -/asmrun/memory.c -/asmrun/alloc.c -/asmrun/array.c -/asmrun/compare.c -/asmrun/ints.c -/asmrun/floats.c -/asmrun/str.c -/asmrun/io.c -/asmrun/extern.c -/asmrun/intern.c -/asmrun/hash.c -/asmrun/sys.c -/asmrun/parsing.c -/asmrun/gc_ctrl.c -/asmrun/terminfo.c -/asmrun/md5.c -/asmrun/obj.c -/asmrun/lexing.c -/asmrun/printexc.c -/asmrun/callback.c -/asmrun/weak.c -/asmrun/compact.c -/asmrun/finalise.c -/asmrun/custom.c -/asmrun/meta.c -/asmrun/globroots.c -/asmrun/unix.c -/asmrun/dynlink.c -/asmrun/signals.c -/asmrun/debugger.c -/asmrun/.depend.nt - -# /boot/ -/boot/*.o -/boot/*.a -/boot/*.so -/boot/*.obj -/boot/*.lib -/boot/*.dll -/boot/*.cm[ioxat] -/boot/*.cmx[as] -/boot/*.cmti -/boot/*.annot -/boot/*.result -/boot/*.byte -/boot/*.native -/boot/program -/boot/*.exe -/boot/*.exe.manifest -/boot/.depend -/boot/.depend.nt -/boot/.DS_Store -/boot/Saved /boot/ocamlrun -/boot/ocamlrun.exe -/boot/ocamlyacc -/boot/ocamlyacc.exe -/boot/camlheader - -# /bytecomp/ -/bytecomp/*.o -/bytecomp/*.a -/bytecomp/*.so -/bytecomp/*.obj -/bytecomp/*.lib -/bytecomp/*.dll -/bytecomp/*.cm[ioxat] -/bytecomp/*.cmx[as] -/bytecomp/*.cmti -/bytecomp/*.annot -/bytecomp/*.result -/bytecomp/*.byte -/bytecomp/*.native -/bytecomp/program -/bytecomp/*.exe -/bytecomp/.depend -/bytecomp/.depend.nt -/bytecomp/.DS_Store -/bytecomp/runtimedef.ml -/bytecomp/opcodes.ml - -# /byterun/ -/byterun/*.o -/byterun/*.a -/byterun/*.so -/byterun/*.obj -/byterun/*.cm[ioxa] -/byterun/*.cmx[as] -/byterun/*.annot -/byterun/*.result -/byterun/*.byte -/byterun/*.native -/byterun/program -/byterun/program.exe -/byterun/.depend -/byterun/.depend.nt -/byterun/.DS_Store -/byterun/caml/jumptbl.h -/byterun/primitives -/byterun/prims.c -/byterun/caml/opnames.h -/byterun/caml/version.h -/byterun/ocamlrun -/byterun/ocamlrun.exe -/byterun/ocamlrund -/byterun/ocamlrund.exe -/byterun/ld.conf -/byterun/interp.a.lst -/byterun/*.[sd]obj -/byterun/*.lib -/byterun/.gdb_history -/byterun/*.d.c -/byterun/*.pic.c - -# /compilerlibs/ -/compilerlibs/* +/boot/runtime-launch-info +/boot/ocamlc.opt -# /config/ -/config/*.o -/config/*.a -/config/*.so -/config/*.obj -/config/*.lib -/config/*.dll -/config/*.cm[ioxat] -/config/*.cmx[as] -/config/*.cmti -/config/*.annot -/config/*.result -/config/*.byte -/config/*.native -/config/program -/config/*.exe -/config/*.exe.manifest -/config/.depend -/config/.depend.nt -/config/.DS_Store -/config/m.h -/config/s.h -/config/Makefile +/byte/** -# /config/auto-aux/ -/config/auto-aux/*.o -/config/auto-aux/*.a -/config/auto-aux/*.so -/config/auto-aux/*.obj -/config/auto-aux/*.cm[ioxa] -/config/auto-aux/*.cmx[as] -/config/auto-aux/*.annot -/config/auto-aux/*.result -/config/auto-aux/*.byte -/config/auto-aux/*.native -/config/auto-aux/program -/config/auto-aux/.depend -/config/auto-aux/.depend.nt -/config/auto-aux/.DS_Store -/config/auto-aux/camlp4_config.ml - -# /config/gnu/ +/bytecomp/opcodes.ml +/bytecomp/opcodes.mli -# /debugger/ -/debugger/*.o -/debugger/*.a -/debugger/*.so -/debugger/*.obj -/debugger/*.cm[ioxa] -/debugger/*.cmx[as] -/debugger/*.annot -/debugger/*.result -/debugger/*.byte -/debugger/*.native -/debugger/program -/debugger/program.exe -/debugger/.depend -/debugger/.depend.nt -/debugger/.DS_Store -/debugger/lexer.ml -/debugger/parser.ml -/debugger/parser.mli +/debugger/debugger_lexer.ml +/debugger/debugger_parser.ml +/debugger/debugger_parser.mli +/debugger/debugger_parser.output /debugger/ocamldebug -/debugger/ocamldebug.exe -/debugger/dynlink.ml -/debugger/dynlink.mli -# /driver/ -/driver/*.o -/driver/*.a -/driver/*.so -/driver/*.obj -/driver/*.lib -/driver/*.dll -/driver/*.cm[ioxat] -/driver/*.cmx[as] -/driver/*.cmti -/driver/*.annot -/driver/*.result -/driver/*.byte -/driver/*.native -/driver/program -/driver/*.exe -/driver/*.exe.manifest -/driver/.depend -/driver/.depend.nt -/driver/.DS_Store - -# /emacs/ -/emacs/*.o -/emacs/*.a -/emacs/*.so -/emacs/*.obj -/emacs/*.lib -/emacs/*.dll -/emacs/*.cm[ioxat] -/emacs/*.cmx[as] -/emacs/*.cmti -/emacs/*.annot -/emacs/*.result -/emacs/*.byte -/emacs/*.native -/emacs/program -/emacs/*.exe -/emacs/*.exe.manifest -/emacs/.depend -/emacs/.depend.nt -/emacs/.DS_Store /emacs/ocamltags /emacs/*.elc -# /experimental/ +/flexdll-sources +/winpthreads-sources -# /experimental/garrigue/ -/experimental/garrigue/*.out -/experimental/garrigue/*.out2 +/lambda/runtimedef.ml -# /lex/ -/lex/*.o -/lex/*.a -/lex/*.so -/lex/*.obj -/lex/*.lib -/lex/*.dll -/lex/*.cm[ioxat] -/lex/*.cmx[as] -/lex/*.cmti -/lex/*.annot -/lex/*.result -/lex/*.byte -/lex/*.native -/lex/program -/lex/*.exe -/lex/*.exe.manifest -/lex/.depend -/lex/.depend.nt -/lex/.DS_Store /lex/parser.ml /lex/parser.mli /lex/lexer.ml /lex/ocamllex /lex/ocamllex.opt /lex/parser.output +/manual/src/allfiles.tex +/manual/src/biblio.tex +/manual/src/foreword.tex +/manual/src/version.tex +/manual/src/warnings.etex +/manual/src/warnings.tex +/manual/src/foreword.htex +/manual/src/manual.html +/manual/src/webman +/manual/src/ifocamldoc.tex +/manual/src/cmds/*.tex +/manual/src/cmds/*.htex +/manual/src/cmds/warnings.etex +/manual/src/cmds/warnings-help.etex +/manual/src/html_processing/.sass-cache +/manual/src/html_processing/camlp-streams +/manual/src/html_processing/dune +/manual/src/html_processing/markup.ml +/manual/src/html_processing/uchar +/manual/src/html_processing/uutf +/manual/src/html_processing/lambdasoup +/manual/src/html_processing/ocaml-re +/manual/src/html_processing/src/common.ml +/manual/src/htmlman/*.html +/manual/src/htmlman/*.haux +/manual/src/htmlman/*.hind +/manual/src/htmlman/compilerlibref +/manual/src/htmlman/highlight.pack.js +/manual/src/htmlman/katex.min.css +/manual/src/htmlman/katex.min.js +/manual/src/htmlman/libref +/manual/src/htmlman/fonts/KaTeX* +/manual/src/htmlman/manual.hmanual +/manual/src/htmlman/manual.hmanual.kwd +/manual/src/htmlman/manual.css +/manual/src/htmlman/odoc.css +/manual/src/htmlman/*.htoc +/manual/src/htmlman/*.svg +/manual/src/infoman/*.haux +/manual/src/infoman/*.hind +/manual/src/infoman/*.info*.gz +/manual/src/infoman/*.info.body* +/manual/src/infoman/ocaml.hocaml.kwd +/manual/src/library/*.tex +/manual/src/library/*.htex +/manual/src/library/ocamldoc.out +/manual/src/library/ocamldoc.sty +/manual/src/library/compiler_libs.txt +/manual/src/refman/*.tex +/manual/src/refman/*.htex +/manual/src/refman/extensions/*.tex +/manual/src/refman/extensions/*.htex +/manual/src/texstuff/*.aux +/manual/src/texstuff/*.dvi +/manual/src/texstuff/*.idx +/manual/src/texstuff/*.ilg +/manual/src/texstuff/*.ind +/manual/src/texstuff/*.log +/manual/src/texstuff/*.toc +/manual/src/texstuff/*.ipr +/manual/src/texstuff/*.txt +/manual/src/texstuff/*.pdf +/manual/src/texstuff/*.ps +/manual/src/texstuff/manual.out +/manual/src/textman/manual.txt +/manual/src/textman/manual.hmanual.kwd +/manual/src/textman/*.haux +/manual/src/textman/*.hind +/manual/src/textman/*.htoc +/manual/src/tutorials/*.tex +/manual/src/tutorials/*.htex +/manual/src/warnings-help.etex +/manual/tests/cross-reference-checker +/manual/tools/transf.ml +/manual/tools/texquote2 +/manual/tools/transf + +/api_docgen/build +/api_docgen/odoc/build +/api_docgen/ocamldoc/build -# /ocamlbuild/ -/ocamlbuild/*.o -/ocamlbuild/*.a -/ocamlbuild/*.so -/ocamlbuild/*.obj -/ocamlbuild/*.lib -/ocamlbuild/*.dll -/ocamlbuild/*.cm[ioxat] -/ocamlbuild/*.cmx[as] -/ocamlbuild/*.cmti -/ocamlbuild/*.annot -/ocamlbuild/*.byte -/ocamlbuild/*.native -/ocamlbuild/ocamlbuild_config.ml -/ocamlbuild/lexers.ml -/ocamlbuild/glob_lexer.ml - -# /ocamldoc/ -/ocamldoc/*.o -/ocamldoc/*.a -/ocamldoc/*.so -/ocamldoc/*.obj -/ocamldoc/*.lib -/ocamldoc/*.dll -/ocamldoc/*.cm[ioxat] -/ocamldoc/*.cmx[as] -/ocamldoc/*.cmti -/ocamldoc/*.annot -/ocamldoc/*.result -/ocamldoc/*.byte -/ocamldoc/*.native -/ocamldoc/program -/ocamldoc/*.exe -/ocamldoc/.depend -/ocamldoc/.depend.nt -/ocamldoc/.DS_Store /ocamldoc/ocamldoc /ocamldoc/ocamldoc.opt +/ocamldoc/odoc /ocamldoc/odoc_crc.ml /ocamldoc/odoc_lexer.ml /ocamldoc/odoc_ocamlhtml.ml @@ -413,316 +197,29 @@ /ocamldoc/odoc_text_lexer.ml /ocamldoc/odoc_text_parser.ml /ocamldoc/odoc_text_parser.mli -/ocamldoc/stdlib_man -/ocamldoc/stdlib_html /ocamldoc/*.output -/ocamldoc/test_stdlib -/ocamldoc/test_latex -/ocamldoc/test - -# /ocamldoc/generators/ -/ocamldoc/generators/*.o -/ocamldoc/generators/*.a -/ocamldoc/generators/*.so -/ocamldoc/generators/*.obj -/ocamldoc/generators/*.lib -/ocamldoc/generators/*.dll -/ocamldoc/generators/*.cm[ioxat] -/ocamldoc/generators/*.cmx[as] -/ocamldoc/generators/*.cmti -/ocamldoc/generators/*.annot -/ocamldoc/generators/*.result -/ocamldoc/generators/*.byte -/ocamldoc/generators/*.native -/ocamldoc/generators/program -/ocamldoc/generators/*.exe -/ocamldoc/generators/*.exe.manifest -/ocamldoc/generators/.depend -/ocamldoc/generators/.depend.nt -/ocamldoc/generators/.DS_Store - -# /otherlibs/ -/otherlibs/.depend -/otherlibs/configure -/otherlibs/ocamlc -/otherlibs/ocamlc.opt -/otherlibs/expunge -/otherlibs/ocaml -/otherlibs/ocamlopt -/otherlibs/ocamlopt.opt -/otherlibs/ocamlcomp.sh -/otherlibs/ocamlcompopt.sh -/otherlibs/package-macosx -/otherlibs/.DS_Store -/otherlibs/*.annot -/otherlibs/_boot_log1 -/otherlibs/_boot_log2 -/otherlibs/_build -/otherlibs/_log -/otherlibs/myocamlbuild_config.ml -/otherlibs/ocamlnat -/otherlibs/*.cm* -/otherlibs/*.o - -# /otherlibs/bigarray/ -/otherlibs/bigarray/*.o -/otherlibs/bigarray/*.a -/otherlibs/bigarray/*.so -/otherlibs/bigarray/*.obj -/otherlibs/bigarray/*.lib -/otherlibs/bigarray/*.dll -/otherlibs/bigarray/*.cm[ioxat] -/otherlibs/bigarray/*.cmx[as] -/otherlibs/bigarray/*.cmti -/otherlibs/bigarray/*.annot -/otherlibs/bigarray/*.result -/otherlibs/bigarray/*.byte -/otherlibs/bigarray/*.native -/otherlibs/bigarray/program -/otherlibs/bigarray/*.exe -/otherlibs/bigarray/.depend -/otherlibs/bigarray/.depend.nt -/otherlibs/bigarray/.DS_Store - -# /otherlibs/dynlink/ -/otherlibs/dynlink/*.o -/otherlibs/dynlink/*.a -/otherlibs/dynlink/*.so -/otherlibs/dynlink/*.obj -/otherlibs/dynlink/*.lib -/otherlibs/dynlink/*.dll -/otherlibs/dynlink/*.cm[ioxat] -/otherlibs/dynlink/*.cmx[as] -/otherlibs/dynlink/*.cmti -/otherlibs/dynlink/*.annot -/otherlibs/dynlink/*.result -/otherlibs/dynlink/*.byte -/otherlibs/dynlink/*.native -/otherlibs/dynlink/program -/otherlibs/dynlink/*.exe -/otherlibs/dynlink/.depend -/otherlibs/dynlink/.depend.nt -/otherlibs/dynlink/.DS_Store -/otherlibs/dynlink/extract_crc -# /otherlibs/graph/ -/otherlibs/graph/*.o -/otherlibs/graph/*.a -/otherlibs/graph/*.so -/otherlibs/graph/*.obj -/otherlibs/graph/*.lib -/otherlibs/graph/*.dll -/otherlibs/graph/*.cm[ioxat] -/otherlibs/graph/*.cmx[as] -/otherlibs/graph/*.cmti -/otherlibs/graph/*.annot -/otherlibs/graph/*.result -/otherlibs/graph/*.byte -/otherlibs/graph/*.native -/otherlibs/graph/program -/otherlibs/graph/*.exe -/otherlibs/graph/*.exe.manifest -/otherlibs/graph/.depend -/otherlibs/graph/.depend.nt -/otherlibs/graph/.DS_Store +/ocamltest/ocamltest +/ocamltest/ocamltest.opt +/ocamltest/ocamltest_config.ml +/ocamltest/ocamltest_unix.ml +/ocamltest/tsl_lexer.ml +/ocamltest/tsl_parser.ml +/ocamltest/tsl_parser.mli +/ocamltest/tsl_parser.output +/ocamltest/ocamltest.html + +/opt/** + +/otherlibs/*/.dep +/otherlibs/dynlink/dynlink_config.ml +/otherlibs/dynlink/dynlink_cmo_format.mli +/otherlibs/dynlink/dynlink_cmxs_format.mli +/otherlibs/dynlink/dynlink_platform_intf.mli +/otherlibs/dynlink/byte/dynlink.mli +/otherlibs/dynlink/native/dynlink.mli +/otherlibs/unix/unix.ml -# /otherlibs/num/ -/otherlibs/num/*.o -/otherlibs/num/*.a -/otherlibs/num/*.so -/otherlibs/num/*.obj -/otherlibs/num/*.lib -/otherlibs/num/*.dll -/otherlibs/num/*.cm[ioxat] -/otherlibs/num/*.cmx[as] -/otherlibs/num/*.cmti -/otherlibs/num/*.annot -/otherlibs/num/*.result -/otherlibs/num/*.byte -/otherlibs/num/*.native -/otherlibs/num/program -/otherlibs/num/*.exe -/otherlibs/num/.depend -/otherlibs/num/.depend.nt -/otherlibs/num/.DS_Store - -# /otherlibs/str/ -/otherlibs/str/*.o -/otherlibs/str/*.a -/otherlibs/str/*.so -/otherlibs/str/*.obj -/otherlibs/str/*.lib -/otherlibs/str/*.dll -/otherlibs/str/*.cm[ioxat] -/otherlibs/str/*.cmx[as] -/otherlibs/str/*.cmti -/otherlibs/str/*.annot -/otherlibs/str/*.result -/otherlibs/str/*.byte -/otherlibs/str/*.native -/otherlibs/str/program -/otherlibs/str/*.exe -/otherlibs/str/.depend -/otherlibs/str/.depend.nt -/otherlibs/str/.DS_Store - -# /otherlibs/systhreads/ -/otherlibs/systhreads/*.o -/otherlibs/systhreads/*.a -/otherlibs/systhreads/*.so -/otherlibs/systhreads/*.obj -/otherlibs/systhreads/*.lib -/otherlibs/systhreads/*.dll -/otherlibs/systhreads/*.cm[ioxat] -/otherlibs/systhreads/*.cmx[as] -/otherlibs/systhreads/*.cmti -/otherlibs/systhreads/*.annot -/otherlibs/systhreads/*.result -/otherlibs/systhreads/*.byte -/otherlibs/systhreads/*.native -/otherlibs/systhreads/program -/otherlibs/systhreads/*.exe -/otherlibs/systhreads/.depend -/otherlibs/systhreads/.depend.nt -/otherlibs/systhreads/.DS_Store -/otherlibs/systhreads/thread.ml - -# /otherlibs/threads/ -/otherlibs/threads/*.o -/otherlibs/threads/*.a -/otherlibs/threads/*.so -/otherlibs/threads/*.obj -/otherlibs/threads/*.lib -/otherlibs/threads/*.dll -/otherlibs/threads/*.cm[ioxat] -/otherlibs/threads/*.cmx[as] -/otherlibs/threads/*.cmti -/otherlibs/threads/*.annot -/otherlibs/threads/*.result -/otherlibs/threads/*.byte -/otherlibs/threads/*.native -/otherlibs/threads/program -/otherlibs/threads/*.exe -/otherlibs/threads/*.exe.manifest -/otherlibs/threads/.depend -/otherlibs/threads/.depend.nt -/otherlibs/threads/.DS_Store -/otherlibs/threads/marshal.mli -/otherlibs/threads/pervasives.mli -/otherlibs/threads/unix.mli - -# /otherlibs/unix/ -/otherlibs/unix/*.o -/otherlibs/unix/*.a -/otherlibs/unix/*.so -/otherlibs/unix/*.obj -/otherlibs/unix/*.lib -/otherlibs/unix/*.dll -/otherlibs/unix/*.cm[ioxat] -/otherlibs/unix/*.cmx[as] -/otherlibs/unix/*.cmti -/otherlibs/unix/*.annot -/otherlibs/unix/*.result -/otherlibs/unix/*.byte -/otherlibs/unix/*.native -/otherlibs/unix/program -/otherlibs/unix/*.exe -/otherlibs/unix/*.exe.manifest -/otherlibs/unix/.depend -/otherlibs/unix/.depend.nt -/otherlibs/unix/.DS_Store - -# /otherlibs/win32graph/ -/otherlibs/win32graph/*.o -/otherlibs/win32graph/*.a -/otherlibs/win32graph/*.so -/otherlibs/win32graph/*.obj -/otherlibs/win32graph/*.lib -/otherlibs/win32graph/*.dll -/otherlibs/win32graph/*.cm[ioxat] -/otherlibs/win32graph/*.cmx[as] -/otherlibs/win32graph/*.cmti -/otherlibs/win32graph/*.annot -/otherlibs/win32graph/*.result -/otherlibs/win32graph/*.byte -/otherlibs/win32graph/*.native -/otherlibs/win32graph/program -/otherlibs/win32graph/*.exe -/otherlibs/win32graph/.depend -/otherlibs/win32graph/.depend.nt -/otherlibs/win32graph/.DS_Store -/otherlibs/win32graph/graphics.ml -/otherlibs/win32graph/graphics.mli - -# /otherlibs/win32unix/ -/otherlibs/win32unix/*.o -/otherlibs/win32unix/*.a -/otherlibs/win32unix/*.so -/otherlibs/win32unix/*.obj -/otherlibs/win32unix/*.lib -/otherlibs/win32unix/*.dll -/otherlibs/win32unix/*.cm[ioxat] -/otherlibs/win32unix/*.cmx[as] -/otherlibs/win32unix/*.cmti -/otherlibs/win32unix/*.annot -/otherlibs/win32unix/*.result -/otherlibs/win32unix/*.byte -/otherlibs/win32unix/*.native -/otherlibs/win32unix/program -/otherlibs/win32unix/*.exe -/otherlibs/win32unix/.depend -/otherlibs/win32unix/.depend.nt -/otherlibs/win32unix/.DS_Store -/otherlibs/win32unix/unixLabels.ml* -/otherlibs/win32unix/unix.mli -/otherlibs/win32unix/unix.lib -/otherlibs/win32unix/access.c -/otherlibs/win32unix/addrofstr.c -/otherlibs/win32unix/chdir.c -/otherlibs/win32unix/chmod.c -/otherlibs/win32unix/cst2constr.c -/otherlibs/win32unix/cstringv.c -/otherlibs/win32unix/envir.c -/otherlibs/win32unix/execv.c -/otherlibs/win32unix/execve.c -/otherlibs/win32unix/execvp.c -/otherlibs/win32unix/exit.c -/otherlibs/win32unix/getaddrinfo.c -/otherlibs/win32unix/getcwd.c -/otherlibs/win32unix/gethost.c -/otherlibs/win32unix/gethostname.c -/otherlibs/win32unix/getnameinfo.c -/otherlibs/win32unix/getproto.c -/otherlibs/win32unix/getserv.c -/otherlibs/win32unix/gmtime.c -/otherlibs/win32unix/putenv.c -/otherlibs/win32unix/rmdir.c -/otherlibs/win32unix/socketaddr.c -/otherlibs/win32unix/strofaddr.c -/otherlibs/win32unix/time.c -/otherlibs/win32unix/unlink.c -/otherlibs/win32unix/utimes.c - -# /parsing/ -/parsing/*.o -/parsing/*.a -/parsing/*.so -/parsing/*.obj -/parsing/*.lib -/parsing/*.dll -/parsing/*.cm[ioxat] -/parsing/*.cmx[as] -/parsing/*.cmti -/parsing/*.annot -/parsing/*.result -/parsing/*.byte -/parsing/*.native -/parsing/program -/parsing/*.exe -/parsing/*.exe.manifest -/parsing/.depend -/parsing/.depend.nt -/parsing/.DS_Store /parsing/parser.ml /parsing/parser.mli /parsing/lexer.ml @@ -732,2053 +229,106 @@ /parsing/parser.output /parsing/parser.automaton /parsing/parser.conflicts - -# /stdlib/ -/stdlib/*.o -/stdlib/*.a -/stdlib/*.so -/stdlib/*.obj -/stdlib/*.lib -/stdlib/*.dll -/stdlib/*.cm[ioxat] -/stdlib/*.cmx[as] -/stdlib/*.cmti -/stdlib/*.annot -/stdlib/*.result -/stdlib/*.byte -/stdlib/*.native -/stdlib/program -/stdlib/*.exe -/stdlib/.depend -/stdlib/.depend.nt -/stdlib/.DS_Store -/stdlib/camlheader -/stdlib/camlheaderd -/stdlib/camlheader_ur +/parsing/parser.auto.messages +/parsing/camlinternalMenhirLib.ml +/parsing/camlinternalMenhirLib.mli + +/runtime/domain_state.inc +/runtime/caml/jumptbl.h +/runtime/caml/m.h +/runtime/caml/s.h +/runtime/primitives +/runtime/primitives*.new +/runtime/prims.c +/runtime/caml/exec.h +/runtime/caml/opnames.h +/runtime/caml/version.h +/runtime/ocamlrun +/runtime/ocamlrund +/runtime/ocamlruni +/runtime/ld.conf +/runtime/.gdb_history +/runtime/build_config.h +/runtime/sak + +/stdlib/runtime.info +/stdlib/runtime-launch-info /stdlib/labelled-* /stdlib/caml /stdlib/sys.ml +/stdlib/target_runtime.info +/stdlib/target_runtime-launch-info + +/testsuite/**/*.result +/testsuite/**/*.opt_result +/testsuite/**/*.corrected +/testsuite/**/*.byte +/testsuite/**/*.native +/testsuite/**/program +/testsuite/**/_log* +/testsuite/failure.stamp + +/testsuite/_retries + +/testsuite/tools/codegen +/testsuite/tools/expect +/testsuite/tools/lexcmm.ml +/testsuite/tools/parsecmm.ml +/testsuite/tools/parsecmm.mli +/testsuite/tools/parsecmm.output -# /testsuite/ -/testsuite/*.o -/testsuite/*.a -/testsuite/*.so -/testsuite/*.obj -/testsuite/*.cm[ioxa] -/testsuite/*.cmx[as] -/testsuite/*.annot -/testsuite/*.result -/testsuite/*.byte -/testsuite/*.native -/testsuite/program -/testsuite/.depend -/testsuite/.depend.nt -/testsuite/.DS_Store -/testsuite/_log - -# /testsuite/external/ -/testsuite/external/*.o -/testsuite/external/*.a -/testsuite/external/*.so -/testsuite/external/*.obj -/testsuite/external/*.lib -/testsuite/external/*.dll -/testsuite/external/*.cm[ioxat] -/testsuite/external/*.cmx[as] -/testsuite/external/*.cmti -/testsuite/external/*.annot -/testsuite/external/*.result -/testsuite/external/*.byte -/testsuite/external/*.native -/testsuite/external/program -/testsuite/external/*.exe -/testsuite/external/*.exe.manifest -/testsuite/external/.depend -/testsuite/external/.depend.nt -/testsuite/external/.DS_Store -/testsuite/external/*.tar.gz -/testsuite/external/*.tar.bz2 -/testsuite/external/*.tgz -/testsuite/external/*.tbz -/testsuite/external/*.zip -/testsuite/external/log-* -/testsuite/external/log_* -/testsuite/external/advi -/testsuite/external/advi-1.10.2 -/testsuite/external/altergo -/testsuite/external/alt-ergo-0.95.2 -/testsuite/external/binprot -/testsuite/external/bin_prot-109.30.00 -/testsuite/external/bitstring -/testsuite/external/ocaml-bitstring-2.0.3 -/testsuite/external/boomerang -/testsuite/external/boomerang-0.2 -/testsuite/external/calendar -/testsuite/external/calendar-2.03.2 -/testsuite/external/camlimages -/testsuite/external/camlimages-4.0.1 -/testsuite/external/camlpdf -/testsuite/external/camlpdf-0.5 -/testsuite/external/camlp4 -/testsuite/external/camlp4-trunk -/testsuite/external/camlp5 -/testsuite/external/camlp5-git -/testsuite/external/camlzip -/testsuite/external/camlzip-1.04 -/testsuite/external/camomile -/testsuite/external/camomile-0.8.4 -/testsuite/external/comparelib -/testsuite/external/comparelib-109.15.00 -/testsuite/external/compcert -/testsuite/external/compcert-1.13 -/testsuite/external/configfile -/testsuite/external/config-file-1.1 -/testsuite/external/coq -/testsuite/external/coq-8.4pl2 -/testsuite/external/core -/testsuite/external/core-109.37.00 -/testsuite/external/coreextended -/testsuite/external/core_extended-109.36.00 -/testsuite/external/corekernel -/testsuite/external/core_kernel-109.37.00 -/testsuite/external/cryptokit -/testsuite/external/cryptokit-1.6 -/testsuite/external/csv -/testsuite/external/csv-1.3.1 -/testsuite/external/customprintf -/testsuite/external/custom_printf-109.27.00 -/testsuite/external/dbm -/testsuite/external/camldbm-1.0 -/testsuite/external/expect -/testsuite/external/ocaml-expect-0.0.3 -/testsuite/external/extlib -/testsuite/external/extlib-1.5.2 -/testsuite/external/fieldslib -/testsuite/external/fieldslib-109.15.00 -/testsuite/external/fileutils -/testsuite/external/ocaml-fileutils-0.4.4 -/testsuite/external/findlib -/testsuite/external/findlib-1.4.1 -/testsuite/external/framac -/testsuite/external/frama-c-Oxygen-20120901 -/testsuite/external/geneweb -/testsuite/external/gw-6.05-src -/testsuite/external/herelib -/testsuite/external/herelib-109.35.00 -/testsuite/external/hevea -/testsuite/external/hevea-2.09 -/testsuite/external/kaputt -/testsuite/external/kaputt-1.2 -/testsuite/external/lablgtk -/testsuite/external/lablgtk-2.18.0 -/testsuite/external/lablgtkextras -/testsuite/external/lablgtkextras-1.3 -/testsuite/external/lwt -/testsuite/external/lwt-2.4.0 -/testsuite/external/menhir -/testsuite/external/menhir-20120123 -/testsuite/external/mldonkey -/testsuite/external/mldonkey-3.1.2 -/testsuite/external/mysql -/testsuite/external/ocaml-mysql-1.0.4 -/testsuite/external/oasis -/testsuite/external/oasis-0.3.0 -/testsuite/external/obrowser -/testsuite/external/obrowser-1.1.1 -/testsuite/external/ocamlgraph -/testsuite/external/ocamlgraph-1.8.2 -/testsuite/external/ocamlify -/testsuite/external/ocamlify-0.0.1 -/testsuite/external/ocamlmod -/testsuite/external/ocamlmod-0.0.3 -/testsuite/external/ocamlnet -/testsuite/external/ocamlnet-3.5.1 -/testsuite/external/ocamlscript -/testsuite/external/ocamlscript-2.0.3 -/testsuite/external/ocamlssl -/testsuite/external/ocaml-ssl-0.4.6 -/testsuite/external/ocamltext -/testsuite/external/ocaml-text-0.5 -/testsuite/external/ocgi -/testsuite/external/ocgi-0.5 -/testsuite/external/ocsigen -/testsuite/external/ocsigen-bundle-2.2.2 -/testsuite/external/odn -/testsuite/external/ocaml-data-notation-0.0.10 -/testsuite/external/omake -/testsuite/external/omake-0.9.8.6 -/testsuite/external/ounit -/testsuite/external/ounit-1.1.2 -/testsuite/external/paounit -/testsuite/external/pa_ounit-109.36.00 -/testsuite/external/pcre -/testsuite/external/pcre-ocaml-6.2.5 -/testsuite/external/pipebang -/testsuite/external/pipebang-109.28.00 -/testsuite/external/react -/testsuite/external/react-0.9.3 -/testsuite/external/res -/testsuite/external/res-3.2.0 -/testsuite/external/rss -/testsuite/external/ocamlrss-2.2.2 -/testsuite/external/sexplib -/testsuite/external/sexplib-109.15.00 -/testsuite/external/sks -/testsuite/external/sks-1.1.3 -/testsuite/external/sqlite -/testsuite/external/sqlite3-ocaml-2.0.1 -/testsuite/external/textutils -/testsuite/external/textutils-109.36.00 -/testsuite/external/typeconv -/testsuite/external/type_conv-109.28.00 -/testsuite/external/unison -/testsuite/external/unison-2.45.4 -/testsuite/external/variantslib -/testsuite/external/variantslib-109.15.00 -/testsuite/external/vsyml -/testsuite/external/vsyml-2010-04-06 -/testsuite/external/xmllight -/testsuite/external/xml-light.2.3 -/testsuite/external/xmlm -/testsuite/external/xmlm-1.1.0 -/testsuite/external/zarith -/testsuite/external/zarith-1.2.1 -/testsuite/external/zen -/testsuite/external/zen_2.3.2 -/testsuite/external/._ZEN_2.3.2 - -# /testsuite/interactive/ -/testsuite/interactive/# svn propset -R svn:ignore -F .svnignore . -/testsuite/interactive/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/interactive/_log -/testsuite/interactive/*.so -/testsuite/interactive/*.a -/testsuite/interactive/*.result -/testsuite/interactive/*.byte -/testsuite/interactive/*.native -/testsuite/interactive/program -/testsuite/interactive/*.cm* -/testsuite/interactive/*.o - -# /testsuite/interactive/lib-gc/ -/testsuite/interactive/lib-gc/# svn propset -R svn:ignore -F .svnignore . -/testsuite/interactive/lib-gc/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/interactive/lib-gc/_log -/testsuite/interactive/lib-gc/*.so -/testsuite/interactive/lib-gc/*.a -/testsuite/interactive/lib-gc/*.result -/testsuite/interactive/lib-gc/*.byte -/testsuite/interactive/lib-gc/*.native -/testsuite/interactive/lib-gc/program -/testsuite/interactive/lib-gc/*.cm* -/testsuite/interactive/lib-gc/*.o - -# /testsuite/interactive/lib-graph/ -/testsuite/interactive/lib-graph/# svn propset -R svn:ignore -F .svnignore . -/testsuite/interactive/lib-graph/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/interactive/lib-graph/_log -/testsuite/interactive/lib-graph/*.so -/testsuite/interactive/lib-graph/*.a -/testsuite/interactive/lib-graph/*.result -/testsuite/interactive/lib-graph/*.byte -/testsuite/interactive/lib-graph/*.native -/testsuite/interactive/lib-graph/program -/testsuite/interactive/lib-graph/*.cm* -/testsuite/interactive/lib-graph/*.o - -# /testsuite/interactive/lib-graph-2/ -/testsuite/interactive/lib-graph-2/# svn propset -R svn:ignore -F .svnignore . -/testsuite/interactive/lib-graph-2/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/interactive/lib-graph-2/_log -/testsuite/interactive/lib-graph-2/*.so -/testsuite/interactive/lib-graph-2/*.a -/testsuite/interactive/lib-graph-2/*.result -/testsuite/interactive/lib-graph-2/*.byte -/testsuite/interactive/lib-graph-2/*.native -/testsuite/interactive/lib-graph-2/program -/testsuite/interactive/lib-graph-2/*.cm* -/testsuite/interactive/lib-graph-2/*.o - -# /testsuite/interactive/lib-graph-3/ -/testsuite/interactive/lib-graph-3/# svn propset -R svn:ignore -F .svnignore . -/testsuite/interactive/lib-graph-3/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/interactive/lib-graph-3/_log -/testsuite/interactive/lib-graph-3/*.so -/testsuite/interactive/lib-graph-3/*.a -/testsuite/interactive/lib-graph-3/*.result -/testsuite/interactive/lib-graph-3/*.byte -/testsuite/interactive/lib-graph-3/*.native -/testsuite/interactive/lib-graph-3/program -/testsuite/interactive/lib-graph-3/*.cm* -/testsuite/interactive/lib-graph-3/*.o - -# /testsuite/interactive/lib-signals/ -/testsuite/interactive/lib-signals/# svn propset -R svn:ignore -F .svnignore . -/testsuite/interactive/lib-signals/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/interactive/lib-signals/_log -/testsuite/interactive/lib-signals/*.so -/testsuite/interactive/lib-signals/*.a -/testsuite/interactive/lib-signals/*.result -/testsuite/interactive/lib-signals/*.byte -/testsuite/interactive/lib-signals/*.native -/testsuite/interactive/lib-signals/program -/testsuite/interactive/lib-signals/*.cm* -/testsuite/interactive/lib-signals/*.o - -# /testsuite/lib/ -/testsuite/lib/*.o -/testsuite/lib/*.a -/testsuite/lib/*.so -/testsuite/lib/*.obj -/testsuite/lib/*.dll -/testsuite/lib/*.cm[ioxat] -/testsuite/lib/*.cmx[as] -/testsuite/lib/*.cmti -/testsuite/lib/*.annot -/testsuite/lib/*.result -/testsuite/lib/*.byte -/testsuite/lib/*.native -/testsuite/lib/program -/testsuite/lib/*.exe -/testsuite/lib/.depend -/testsuite/lib/.depend.nt -/testsuite/lib/.DS_Store - -# /testsuite/makefiles/ -/testsuite/makefiles/# svn propset -R svn:ignore -F .svnignore . -/testsuite/makefiles/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/makefiles/_log -/testsuite/makefiles/*.so -/testsuite/makefiles/*.a -/testsuite/makefiles/*.result -/testsuite/makefiles/*.byte -/testsuite/makefiles/*.native -/testsuite/makefiles/program -/testsuite/makefiles/*.cm* -/testsuite/makefiles/*.o - -# /testsuite/tests/ -/testsuite/tests/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/_log -/testsuite/tests/*.so -/testsuite/tests/*.a -/testsuite/tests/*.result -/testsuite/tests/*.byte -/testsuite/tests/*.native -/testsuite/tests/program -/testsuite/tests/*.cm* -/testsuite/tests/*.o - -# /testsuite/tests/asmcomp/ -/testsuite/tests/asmcomp/*.o -/testsuite/tests/asmcomp/*.a -/testsuite/tests/asmcomp/*.so -/testsuite/tests/asmcomp/*.obj -/testsuite/tests/asmcomp/*.lib -/testsuite/tests/asmcomp/*.dll -/testsuite/tests/asmcomp/*.cm[ioxat] -/testsuite/tests/asmcomp/*.cmx[as] -/testsuite/tests/asmcomp/*.cmti -/testsuite/tests/asmcomp/*.annot -/testsuite/tests/asmcomp/*.result -/testsuite/tests/asmcomp/*.byte -/testsuite/tests/asmcomp/*.native -/testsuite/tests/asmcomp/program -/testsuite/tests/asmcomp/*.exe -/testsuite/tests/asmcomp/*.exe.manifest -/testsuite/tests/asmcomp/.depend -/testsuite/tests/asmcomp/.depend.nt -/testsuite/tests/asmcomp/.DS_Store -/testsuite/tests/asmcomp/codegen -/testsuite/tests/asmcomp/parsecmm.ml -/testsuite/tests/asmcomp/parsecmm.mli -/testsuite/tests/asmcomp/lexcmm.ml -/testsuite/tests/asmcomp/*.s -/testsuite/tests/asmcomp/*.out -/testsuite/tests/asmcomp/*.out.dSYM - -# /testsuite/tests/backtrace/ -/testsuite/tests/backtrace/*.o -/testsuite/tests/backtrace/*.a -/testsuite/tests/backtrace/*.so -/testsuite/tests/backtrace/*.obj -/testsuite/tests/backtrace/*.lib -/testsuite/tests/backtrace/*.dll -/testsuite/tests/backtrace/*.cm[ioxat] -/testsuite/tests/backtrace/*.cmx[as] -/testsuite/tests/backtrace/*.cmti -/testsuite/tests/backtrace/*.annot -/testsuite/tests/backtrace/*.result -/testsuite/tests/backtrace/*.byte -/testsuite/tests/backtrace/*.native -/testsuite/tests/backtrace/program -/testsuite/tests/backtrace/*.exe -/testsuite/tests/backtrace/*.exe.manifest -/testsuite/tests/backtrace/.depend -/testsuite/tests/backtrace/.depend.nt -/testsuite/tests/backtrace/.DS_Store - -# /testsuite/tests/basic/ -/testsuite/tests/basic/*.o -/testsuite/tests/basic/*.a -/testsuite/tests/basic/*.so -/testsuite/tests/basic/*.obj -/testsuite/tests/basic/*.cm[ioxa] -/testsuite/tests/basic/*.cmx[as] -/testsuite/tests/basic/*.annot -/testsuite/tests/basic/*.result -/testsuite/tests/basic/*.byte -/testsuite/tests/basic/*.native -/testsuite/tests/basic/program -/testsuite/tests/basic/program.exe -/testsuite/tests/basic/.depend -/testsuite/tests/basic/.depend.nt -/testsuite/tests/basic/.DS_Store - -# /testsuite/tests/basic-float/ -/testsuite/tests/basic-float/*.o -/testsuite/tests/basic-float/*.a -/testsuite/tests/basic-float/*.so -/testsuite/tests/basic-float/*.obj -/testsuite/tests/basic-float/*.lib -/testsuite/tests/basic-float/*.dll -/testsuite/tests/basic-float/*.cm[ioxat] -/testsuite/tests/basic-float/*.cmx[as] -/testsuite/tests/basic-float/*.cmti -/testsuite/tests/basic-float/*.annot -/testsuite/tests/basic-float/*.result -/testsuite/tests/basic-float/*.byte -/testsuite/tests/basic-float/*.native -/testsuite/tests/basic-float/program -/testsuite/tests/basic-float/*.exe -/testsuite/tests/basic-float/*.exe.manifest -/testsuite/tests/basic-float/.depend -/testsuite/tests/basic-float/.depend.nt -/testsuite/tests/basic-float/.DS_Store - -# /testsuite/tests/basic-io/ -/testsuite/tests/basic-io/*.o -/testsuite/tests/basic-io/*.a -/testsuite/tests/basic-io/*.so -/testsuite/tests/basic-io/*.obj -/testsuite/tests/basic-io/*.lib -/testsuite/tests/basic-io/*.dll -/testsuite/tests/basic-io/*.cm[ioxat] -/testsuite/tests/basic-io/*.cmx[as] -/testsuite/tests/basic-io/*.cmti -/testsuite/tests/basic-io/*.annot -/testsuite/tests/basic-io/*.result -/testsuite/tests/basic-io/*.byte -/testsuite/tests/basic-io/*.native -/testsuite/tests/basic-io/program -/testsuite/tests/basic-io/*.exe -/testsuite/tests/basic-io/*.exe.manifest -/testsuite/tests/basic-io/.depend -/testsuite/tests/basic-io/.depend.nt -/testsuite/tests/basic-io/.DS_Store - -# /testsuite/tests/basic-io-2/ -/testsuite/tests/basic-io-2/*.o -/testsuite/tests/basic-io-2/*.a -/testsuite/tests/basic-io-2/*.so -/testsuite/tests/basic-io-2/*.obj -/testsuite/tests/basic-io-2/*.lib -/testsuite/tests/basic-io-2/*.dll -/testsuite/tests/basic-io-2/*.cm[ioxat] -/testsuite/tests/basic-io-2/*.cmx[as] -/testsuite/tests/basic-io-2/*.cmti -/testsuite/tests/basic-io-2/*.annot -/testsuite/tests/basic-io-2/*.result -/testsuite/tests/basic-io-2/*.byte -/testsuite/tests/basic-io-2/*.native -/testsuite/tests/basic-io-2/program -/testsuite/tests/basic-io-2/*.exe -/testsuite/tests/basic-io-2/*.exe.manifest -/testsuite/tests/basic-io-2/.depend -/testsuite/tests/basic-io-2/.depend.nt -/testsuite/tests/basic-io-2/.DS_Store - -# /testsuite/tests/basic-manyargs/ -/testsuite/tests/basic-manyargs/*.o -/testsuite/tests/basic-manyargs/*.a -/testsuite/tests/basic-manyargs/*.so -/testsuite/tests/basic-manyargs/*.obj -/testsuite/tests/basic-manyargs/*.lib -/testsuite/tests/basic-manyargs/*.dll -/testsuite/tests/basic-manyargs/*.cm[ioxat] -/testsuite/tests/basic-manyargs/*.cmx[as] -/testsuite/tests/basic-manyargs/*.cmti -/testsuite/tests/basic-manyargs/*.annot -/testsuite/tests/basic-manyargs/*.result -/testsuite/tests/basic-manyargs/*.byte -/testsuite/tests/basic-manyargs/*.native -/testsuite/tests/basic-manyargs/program -/testsuite/tests/basic-manyargs/*.exe -/testsuite/tests/basic-manyargs/*.exe.manifest -/testsuite/tests/basic-manyargs/.depend -/testsuite/tests/basic-manyargs/.depend.nt -/testsuite/tests/basic-manyargs/.DS_Store - -# /testsuite/tests/basic-modules/ -/testsuite/tests/basic-modules/*.o -/testsuite/tests/basic-modules/*.a -/testsuite/tests/basic-modules/*.so -/testsuite/tests/basic-modules/*.obj -/testsuite/tests/basic-modules/*.lib -/testsuite/tests/basic-modules/*.dll -/testsuite/tests/basic-modules/*.cm[ioxat] -/testsuite/tests/basic-modules/*.cmx[as] -/testsuite/tests/basic-modules/*.cmti -/testsuite/tests/basic-modules/*.annot -/testsuite/tests/basic-modules/*.result -/testsuite/tests/basic-modules/*.byte -/testsuite/tests/basic-modules/*.native -/testsuite/tests/basic-modules/program -/testsuite/tests/basic-modules/*.exe -/testsuite/tests/basic-modules/*.exe.manifest -/testsuite/tests/basic-modules/.depend -/testsuite/tests/basic-modules/.depend.nt -/testsuite/tests/basic-modules/.DS_Store - -# /testsuite/tests/basic-more/ -/testsuite/tests/basic-more/*.o -/testsuite/tests/basic-more/*.a -/testsuite/tests/basic-more/*.so -/testsuite/tests/basic-more/*.obj -/testsuite/tests/basic-more/*.cm[ioxa] -/testsuite/tests/basic-more/*.cmx[as] -/testsuite/tests/basic-more/*.annot -/testsuite/tests/basic-more/*.result -/testsuite/tests/basic-more/*.byte -/testsuite/tests/basic-more/*.native -/testsuite/tests/basic-more/program -/testsuite/tests/basic-more/program.exe -/testsuite/tests/basic-more/.depend -/testsuite/tests/basic-more/.depend.nt -/testsuite/tests/basic-more/.DS_Store - -# /testsuite/tests/basic-multdef/ -/testsuite/tests/basic-multdef/*.o -/testsuite/tests/basic-multdef/*.a -/testsuite/tests/basic-multdef/*.so -/testsuite/tests/basic-multdef/*.obj -/testsuite/tests/basic-multdef/*.lib -/testsuite/tests/basic-multdef/*.dll -/testsuite/tests/basic-multdef/*.cm[ioxat] -/testsuite/tests/basic-multdef/*.cmx[as] -/testsuite/tests/basic-multdef/*.cmti -/testsuite/tests/basic-multdef/*.annot -/testsuite/tests/basic-multdef/*.result -/testsuite/tests/basic-multdef/*.byte -/testsuite/tests/basic-multdef/*.native -/testsuite/tests/basic-multdef/program -/testsuite/tests/basic-multdef/*.exe -/testsuite/tests/basic-multdef/*.exe.manifest -/testsuite/tests/basic-multdef/.depend -/testsuite/tests/basic-multdef/.depend.nt -/testsuite/tests/basic-multdef/.DS_Store - -# /testsuite/tests/basic-private/ -/testsuite/tests/basic-private/*.o -/testsuite/tests/basic-private/*.a -/testsuite/tests/basic-private/*.so -/testsuite/tests/basic-private/*.obj -/testsuite/tests/basic-private/*.lib -/testsuite/tests/basic-private/*.dll -/testsuite/tests/basic-private/*.cm[ioxat] -/testsuite/tests/basic-private/*.cmx[as] -/testsuite/tests/basic-private/*.cmti -/testsuite/tests/basic-private/*.annot -/testsuite/tests/basic-private/*.result -/testsuite/tests/basic-private/*.byte -/testsuite/tests/basic-private/*.native -/testsuite/tests/basic-private/program -/testsuite/tests/basic-private/*.exe -/testsuite/tests/basic-private/*.exe.manifest -/testsuite/tests/basic-private/.depend -/testsuite/tests/basic-private/.depend.nt -/testsuite/tests/basic-private/.DS_Store - -# /testsuite/tests/callback/ -/testsuite/tests/callback/*.o -/testsuite/tests/callback/*.a -/testsuite/tests/callback/*.so -/testsuite/tests/callback/*.obj -/testsuite/tests/callback/*.cm[ioxa] -/testsuite/tests/callback/*.cmx[as] -/testsuite/tests/callback/*.annot -/testsuite/tests/callback/*.result -/testsuite/tests/callback/*.byte -/testsuite/tests/callback/*.native -/testsuite/tests/callback/program -/testsuite/tests/callback/program.exe -/testsuite/tests/callback/.depend -/testsuite/tests/callback/.depend.nt -/testsuite/tests/callback/.DS_Store - -# /testsuite/tests/embedded/ -/testsuite/tests/embedded/*.o -/testsuite/tests/embedded/*.a -/testsuite/tests/embedded/*.so -/testsuite/tests/embedded/*.obj -/testsuite/tests/embedded/*.lib -/testsuite/tests/embedded/*.dll -/testsuite/tests/embedded/*.cm[ioxat] -/testsuite/tests/embedded/*.cmx[as] -/testsuite/tests/embedded/*.cmti -/testsuite/tests/embedded/*.annot -/testsuite/tests/embedded/*.result -/testsuite/tests/embedded/*.byte -/testsuite/tests/embedded/*.native -/testsuite/tests/embedded/program -/testsuite/tests/embedded/*.exe -/testsuite/tests/embedded/*.exe.manifest -/testsuite/tests/embedded/.depend -/testsuite/tests/embedded/.depend.nt -/testsuite/tests/embedded/.DS_Store -/testsuite/tests/embedded/caml - -# /testsuite/tests/exotic-syntax/ -/testsuite/tests/exotic-syntax/*.o -/testsuite/tests/exotic-syntax/*.a -/testsuite/tests/exotic-syntax/*.so -/testsuite/tests/exotic-syntax/*.obj -/testsuite/tests/exotic-syntax/*.lib -/testsuite/tests/exotic-syntax/*.dll -/testsuite/tests/exotic-syntax/*.cm[ioxat] -/testsuite/tests/exotic-syntax/*.cmx[as] -/testsuite/tests/exotic-syntax/*.cmti -/testsuite/tests/exotic-syntax/*.annot -/testsuite/tests/exotic-syntax/*.result -/testsuite/tests/exotic-syntax/*.byte -/testsuite/tests/exotic-syntax/*.native -/testsuite/tests/exotic-syntax/program -/testsuite/tests/exotic-syntax/*.exe -/testsuite/tests/exotic-syntax/*.exe.manifest -/testsuite/tests/exotic-syntax/.depend -/testsuite/tests/exotic-syntax/.depend.nt -/testsuite/tests/exotic-syntax/.DS_Store - -# /testsuite/tests/formats-transition/ -/testsuite/tests/formats-transition/*.o -/testsuite/tests/formats-transition/*.a -/testsuite/tests/formats-transition/*.so -/testsuite/tests/formats-transition/*.obj -/testsuite/tests/formats-transition/*.lib -/testsuite/tests/formats-transition/*.dll -/testsuite/tests/formats-transition/*.cm[ioxat] -/testsuite/tests/formats-transition/*.cmx[as] -/testsuite/tests/formats-transition/*.cmti -/testsuite/tests/formats-transition/*.annot -/testsuite/tests/formats-transition/*.result -/testsuite/tests/formats-transition/*.byte -/testsuite/tests/formats-transition/*.native -/testsuite/tests/formats-transition/program -/testsuite/tests/formats-transition/*.exe -/testsuite/tests/formats-transition/*.exe.manifest -/testsuite/tests/formats-transition/.depend -/testsuite/tests/formats-transition/.depend.nt -/testsuite/tests/formats-transition/.DS_Store - -# /testsuite/tests/gc-roots/ -/testsuite/tests/gc-roots/*.o -/testsuite/tests/gc-roots/*.a -/testsuite/tests/gc-roots/*.so -/testsuite/tests/gc-roots/*.obj -/testsuite/tests/gc-roots/*.lib -/testsuite/tests/gc-roots/*.dll -/testsuite/tests/gc-roots/*.cm[ioxat] -/testsuite/tests/gc-roots/*.cmx[as] -/testsuite/tests/gc-roots/*.cmti -/testsuite/tests/gc-roots/*.annot -/testsuite/tests/gc-roots/*.result -/testsuite/tests/gc-roots/*.byte -/testsuite/tests/gc-roots/*.native -/testsuite/tests/gc-roots/program -/testsuite/tests/gc-roots/*.exe -/testsuite/tests/gc-roots/*.exe.manifest -/testsuite/tests/gc-roots/.depend -/testsuite/tests/gc-roots/.depend.nt -/testsuite/tests/gc-roots/.DS_Store - -# /testsuite/tests/letrec/ -/testsuite/tests/letrec/*.o -/testsuite/tests/letrec/*.a -/testsuite/tests/letrec/*.so -/testsuite/tests/letrec/*.obj -/testsuite/tests/letrec/*.cm[ioxa] -/testsuite/tests/letrec/*.cmx[as] -/testsuite/tests/letrec/*.annot -/testsuite/tests/letrec/*.result -/testsuite/tests/letrec/*.byte -/testsuite/tests/letrec/*.native -/testsuite/tests/letrec/program -/testsuite/tests/letrec/program.exe -/testsuite/tests/letrec/.depend -/testsuite/tests/letrec/.depend.nt -/testsuite/tests/letrec/.DS_Store - -# /testsuite/tests/lib-bigarray/ -/testsuite/tests/lib-bigarray/*.o -/testsuite/tests/lib-bigarray/*.a -/testsuite/tests/lib-bigarray/*.so -/testsuite/tests/lib-bigarray/*.obj -/testsuite/tests/lib-bigarray/*.lib -/testsuite/tests/lib-bigarray/*.dll -/testsuite/tests/lib-bigarray/*.cm[ioxat] -/testsuite/tests/lib-bigarray/*.cmx[as] -/testsuite/tests/lib-bigarray/*.cmti -/testsuite/tests/lib-bigarray/*.annot -/testsuite/tests/lib-bigarray/*.result -/testsuite/tests/lib-bigarray/*.byte -/testsuite/tests/lib-bigarray/*.native -/testsuite/tests/lib-bigarray/program -/testsuite/tests/lib-bigarray/*.exe -/testsuite/tests/lib-bigarray/*.exe.manifest -/testsuite/tests/lib-bigarray/.depend -/testsuite/tests/lib-bigarray/.depend.nt -/testsuite/tests/lib-bigarray/.DS_Store - -# /testsuite/tests/lib-bigarray-2/ -/testsuite/tests/lib-bigarray-2/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/lib-bigarray-2/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/lib-bigarray-2/_log -/testsuite/tests/lib-bigarray-2/*.so -/testsuite/tests/lib-bigarray-2/*.a -/testsuite/tests/lib-bigarray-2/*.result -/testsuite/tests/lib-bigarray-2/*.byte -/testsuite/tests/lib-bigarray-2/*.native -/testsuite/tests/lib-bigarray-2/program -/testsuite/tests/lib-bigarray-2/*.cm* -/testsuite/tests/lib-bigarray-2/*.o - -# /testsuite/tests/lib-digest/ -/testsuite/tests/lib-digest/*.o -/testsuite/tests/lib-digest/*.a -/testsuite/tests/lib-digest/*.so -/testsuite/tests/lib-digest/*.obj -/testsuite/tests/lib-digest/*.lib -/testsuite/tests/lib-digest/*.dll -/testsuite/tests/lib-digest/*.cm[ioxat] -/testsuite/tests/lib-digest/*.cmx[as] -/testsuite/tests/lib-digest/*.cmti -/testsuite/tests/lib-digest/*.annot -/testsuite/tests/lib-digest/*.result -/testsuite/tests/lib-digest/*.byte -/testsuite/tests/lib-digest/*.native -/testsuite/tests/lib-digest/program -/testsuite/tests/lib-digest/*.exe -/testsuite/tests/lib-digest/*.exe.manifest -/testsuite/tests/lib-digest/.depend -/testsuite/tests/lib-digest/.depend.nt -/testsuite/tests/lib-digest/.DS_Store - -# /testsuite/tests/lib-dynlink-bytecode/ -/testsuite/tests/lib-dynlink-bytecode/*.o -/testsuite/tests/lib-dynlink-bytecode/*.a -/testsuite/tests/lib-dynlink-bytecode/*.so -/testsuite/tests/lib-dynlink-bytecode/*.obj -/testsuite/tests/lib-dynlink-bytecode/*.lib -/testsuite/tests/lib-dynlink-bytecode/*.dll -/testsuite/tests/lib-dynlink-bytecode/*.cm[ioxat] -/testsuite/tests/lib-dynlink-bytecode/*.cmx[as] -/testsuite/tests/lib-dynlink-bytecode/*.cmti -/testsuite/tests/lib-dynlink-bytecode/*.annot -/testsuite/tests/lib-dynlink-bytecode/*.result -/testsuite/tests/lib-dynlink-bytecode/*.byte -/testsuite/tests/lib-dynlink-bytecode/*.native -/testsuite/tests/lib-dynlink-bytecode/program -/testsuite/tests/lib-dynlink-bytecode/*.exe -/testsuite/tests/lib-dynlink-bytecode/*.exe.manifest -/testsuite/tests/lib-dynlink-bytecode/.depend -/testsuite/tests/lib-dynlink-bytecode/.depend.nt -/testsuite/tests/lib-dynlink-bytecode/.DS_Store -/testsuite/tests/lib-dynlink-bytecode/main -/testsuite/tests/lib-dynlink-bytecode/static -/testsuite/tests/lib-dynlink-bytecode/custom -/testsuite/tests/lib-dynlink-bytecode/custom.exe -/testsuite/tests/lib-dynlink-bytecode/marshal.data -/testsuite/tests/lib-dynlink-bytecode/caml - -# /testsuite/tests/lib-dynlink-csharp/ -/testsuite/tests/lib-dynlink-csharp/*.o -/testsuite/tests/lib-dynlink-csharp/*.a -/testsuite/tests/lib-dynlink-csharp/*.so -/testsuite/tests/lib-dynlink-csharp/*.obj -/testsuite/tests/lib-dynlink-csharp/*.lib -/testsuite/tests/lib-dynlink-csharp/*.dll -/testsuite/tests/lib-dynlink-csharp/*.cm[ioxat] -/testsuite/tests/lib-dynlink-csharp/*.cmx[as] -/testsuite/tests/lib-dynlink-csharp/*.cmti -/testsuite/tests/lib-dynlink-csharp/*.annot -/testsuite/tests/lib-dynlink-csharp/*.result -/testsuite/tests/lib-dynlink-csharp/*.byte -/testsuite/tests/lib-dynlink-csharp/*.native -/testsuite/tests/lib-dynlink-csharp/program -/testsuite/tests/lib-dynlink-csharp/*.exe -/testsuite/tests/lib-dynlink-csharp/*.exe.manifest -/testsuite/tests/lib-dynlink-csharp/.depend -/testsuite/tests/lib-dynlink-csharp/.depend.nt -/testsuite/tests/lib-dynlink-csharp/.DS_Store - -# /testsuite/tests/lib-dynlink-native/ -/testsuite/tests/lib-dynlink-native/*.o -/testsuite/tests/lib-dynlink-native/*.a -/testsuite/tests/lib-dynlink-native/*.so -/testsuite/tests/lib-dynlink-native/*.obj -/testsuite/tests/lib-dynlink-native/*.lib -/testsuite/tests/lib-dynlink-native/*.dll -/testsuite/tests/lib-dynlink-native/*.cm[ioxat] -/testsuite/tests/lib-dynlink-native/*.cmx[as] -/testsuite/tests/lib-dynlink-native/*.cmti -/testsuite/tests/lib-dynlink-native/*.annot -/testsuite/tests/lib-dynlink-native/*.result -/testsuite/tests/lib-dynlink-native/*.byte -/testsuite/tests/lib-dynlink-native/*.native -/testsuite/tests/lib-dynlink-native/program -/testsuite/tests/lib-dynlink-native/*.exe -/testsuite/tests/lib-dynlink-native/*.exe.manifest -/testsuite/tests/lib-dynlink-native/.depend -/testsuite/tests/lib-dynlink-native/.depend.nt -/testsuite/tests/lib-dynlink-native/.DS_Store -/testsuite/tests/lib-dynlink-native/mypack.pack.s -/testsuite/tests/lib-dynlink-native/mypack.pack.asm -/testsuite/tests/lib-dynlink-native/result -/testsuite/tests/lib-dynlink-native/main -/testsuite/tests/lib-dynlink-native/main.exe -/testsuite/tests/lib-dynlink-native/marshal.data -/testsuite/tests/lib-dynlink-native/caml - -# /testsuite/tests/lib-dynlink-native/sub/ -/testsuite/tests/lib-dynlink-native/sub/*.o -/testsuite/tests/lib-dynlink-native/sub/*.a -/testsuite/tests/lib-dynlink-native/sub/*.so -/testsuite/tests/lib-dynlink-native/sub/*.obj -/testsuite/tests/lib-dynlink-native/sub/*.lib -/testsuite/tests/lib-dynlink-native/sub/*.dll -/testsuite/tests/lib-dynlink-native/sub/*.cm[ioxat] -/testsuite/tests/lib-dynlink-native/sub/*.cmx[as] -/testsuite/tests/lib-dynlink-native/sub/*.cmti -/testsuite/tests/lib-dynlink-native/sub/*.annot -/testsuite/tests/lib-dynlink-native/sub/*.result -/testsuite/tests/lib-dynlink-native/sub/*.byte -/testsuite/tests/lib-dynlink-native/sub/*.native -/testsuite/tests/lib-dynlink-native/sub/program -/testsuite/tests/lib-dynlink-native/sub/*.exe -/testsuite/tests/lib-dynlink-native/sub/*.exe.manifest -/testsuite/tests/lib-dynlink-native/sub/.depend -/testsuite/tests/lib-dynlink-native/sub/.depend.nt -/testsuite/tests/lib-dynlink-native/sub/.DS_Store - -# /testsuite/tests/lib-format/ -/testsuite/tests/lib-format/*.o -/testsuite/tests/lib-format/*.a -/testsuite/tests/lib-format/*.so -/testsuite/tests/lib-format/*.obj -/testsuite/tests/lib-format/*.lib -/testsuite/tests/lib-format/*.dll -/testsuite/tests/lib-format/*.cm[ioxat] -/testsuite/tests/lib-format/*.cmx[as] -/testsuite/tests/lib-format/*.cmti -/testsuite/tests/lib-format/*.annot -/testsuite/tests/lib-format/*.result -/testsuite/tests/lib-format/*.byte -/testsuite/tests/lib-format/*.native -/testsuite/tests/lib-format/program -/testsuite/tests/lib-format/*.exe -/testsuite/tests/lib-format/*.exe.manifest -/testsuite/tests/lib-format/.depend -/testsuite/tests/lib-format/.depend.nt -/testsuite/tests/lib-format/.DS_Store - -# /testsuite/tests/lib-hashtbl/ -/testsuite/tests/lib-hashtbl/*.o -/testsuite/tests/lib-hashtbl/*.a -/testsuite/tests/lib-hashtbl/*.so -/testsuite/tests/lib-hashtbl/*.obj -/testsuite/tests/lib-hashtbl/*.cm[ioxa] -/testsuite/tests/lib-hashtbl/*.cmx[as] -/testsuite/tests/lib-hashtbl/*.annot -/testsuite/tests/lib-hashtbl/*.result -/testsuite/tests/lib-hashtbl/*.byte -/testsuite/tests/lib-hashtbl/*.native -/testsuite/tests/lib-hashtbl/program -/testsuite/tests/lib-hashtbl/program.exe -/testsuite/tests/lib-hashtbl/.depend -/testsuite/tests/lib-hashtbl/.depend.nt -/testsuite/tests/lib-hashtbl/.DS_Store - -# /testsuite/tests/lib-marshal/ -/testsuite/tests/lib-marshal/*.o -/testsuite/tests/lib-marshal/*.a -/testsuite/tests/lib-marshal/*.so -/testsuite/tests/lib-marshal/*.obj -/testsuite/tests/lib-marshal/*.lib -/testsuite/tests/lib-marshal/*.dll -/testsuite/tests/lib-marshal/*.cm[ioxat] -/testsuite/tests/lib-marshal/*.cmx[as] -/testsuite/tests/lib-marshal/*.cmti -/testsuite/tests/lib-marshal/*.annot -/testsuite/tests/lib-marshal/*.result -/testsuite/tests/lib-marshal/*.byte -/testsuite/tests/lib-marshal/*.native -/testsuite/tests/lib-marshal/program -/testsuite/tests/lib-marshal/*.exe -/testsuite/tests/lib-marshal/*.exe.manifest -/testsuite/tests/lib-marshal/.depend -/testsuite/tests/lib-marshal/.depend.nt -/testsuite/tests/lib-marshal/.DS_Store - -# /testsuite/tests/lib-num/ -/testsuite/tests/lib-num/*.o -/testsuite/tests/lib-num/*.a -/testsuite/tests/lib-num/*.so -/testsuite/tests/lib-num/*.obj -/testsuite/tests/lib-num/*.lib -/testsuite/tests/lib-num/*.dll -/testsuite/tests/lib-num/*.cm[ioxat] -/testsuite/tests/lib-num/*.cmx[as] -/testsuite/tests/lib-num/*.cmti -/testsuite/tests/lib-num/*.annot -/testsuite/tests/lib-num/*.result -/testsuite/tests/lib-num/*.byte -/testsuite/tests/lib-num/*.native -/testsuite/tests/lib-num/program -/testsuite/tests/lib-num/*.exe -/testsuite/tests/lib-num/*.exe.manifest -/testsuite/tests/lib-num/.depend -/testsuite/tests/lib-num/.depend.nt -/testsuite/tests/lib-num/.DS_Store - -# /testsuite/tests/lib-num-2/ -/testsuite/tests/lib-num-2/*.o -/testsuite/tests/lib-num-2/*.a -/testsuite/tests/lib-num-2/*.so -/testsuite/tests/lib-num-2/*.obj -/testsuite/tests/lib-num-2/*.cm[ioxa] -/testsuite/tests/lib-num-2/*.cmx[as] -/testsuite/tests/lib-num-2/*.annot -/testsuite/tests/lib-num-2/*.result -/testsuite/tests/lib-num-2/*.byte -/testsuite/tests/lib-num-2/*.native -/testsuite/tests/lib-num-2/program -/testsuite/tests/lib-num-2/program.exe -/testsuite/tests/lib-num-2/.depend -/testsuite/tests/lib-num-2/.depend.nt -/testsuite/tests/lib-num-2/.DS_Store - -# /testsuite/tests/lib-printf/ -/testsuite/tests/lib-printf/*.o -/testsuite/tests/lib-printf/*.a -/testsuite/tests/lib-printf/*.so -/testsuite/tests/lib-printf/*.obj -/testsuite/tests/lib-printf/*.lib -/testsuite/tests/lib-printf/*.dll -/testsuite/tests/lib-printf/*.cm[ioxat] -/testsuite/tests/lib-printf/*.cmx[as] -/testsuite/tests/lib-printf/*.cmti -/testsuite/tests/lib-printf/*.annot -/testsuite/tests/lib-printf/*.result -/testsuite/tests/lib-printf/*.byte -/testsuite/tests/lib-printf/*.native -/testsuite/tests/lib-printf/program -/testsuite/tests/lib-printf/*.exe -/testsuite/tests/lib-printf/*.exe.manifest -/testsuite/tests/lib-printf/.depend -/testsuite/tests/lib-printf/.depend.nt -/testsuite/tests/lib-printf/.DS_Store - -# /testsuite/tests/lib-random/ -/testsuite/tests/lib-random/*.o -/testsuite/tests/lib-random/*.a -/testsuite/tests/lib-random/*.so -/testsuite/tests/lib-random/*.obj -/testsuite/tests/lib-random/*.lib -/testsuite/tests/lib-random/*.dll -/testsuite/tests/lib-random/*.cm[ioxat] -/testsuite/tests/lib-random/*.cmx[as] -/testsuite/tests/lib-random/*.cmti -/testsuite/tests/lib-random/*.annot -/testsuite/tests/lib-random/*.result -/testsuite/tests/lib-random/*.byte -/testsuite/tests/lib-random/*.native -/testsuite/tests/lib-random/program -/testsuite/tests/lib-random/*.exe -/testsuite/tests/lib-random/*.exe.manifest -/testsuite/tests/lib-random/.depend -/testsuite/tests/lib-random/.depend.nt -/testsuite/tests/lib-random/.DS_Store - -# /testsuite/tests/lib-scanf/ -/testsuite/tests/lib-scanf/*.o -/testsuite/tests/lib-scanf/*.a -/testsuite/tests/lib-scanf/*.so -/testsuite/tests/lib-scanf/*.obj -/testsuite/tests/lib-scanf/*.lib -/testsuite/tests/lib-scanf/*.dll -/testsuite/tests/lib-scanf/*.cm[ioxat] -/testsuite/tests/lib-scanf/*.cmx[as] -/testsuite/tests/lib-scanf/*.cmti -/testsuite/tests/lib-scanf/*.annot -/testsuite/tests/lib-scanf/*.result -/testsuite/tests/lib-scanf/*.byte -/testsuite/tests/lib-scanf/*.native -/testsuite/tests/lib-scanf/program -/testsuite/tests/lib-scanf/*.exe -/testsuite/tests/lib-scanf/*.exe.manifest -/testsuite/tests/lib-scanf/.depend -/testsuite/tests/lib-scanf/.depend.nt -/testsuite/tests/lib-scanf/.DS_Store -/testsuite/tests/lib-scanf/tscanf_data - -# /testsuite/tests/lib-scanf-2/ -/testsuite/tests/lib-scanf-2/*.o -/testsuite/tests/lib-scanf-2/*.a -/testsuite/tests/lib-scanf-2/*.so -/testsuite/tests/lib-scanf-2/*.obj -/testsuite/tests/lib-scanf-2/*.lib -/testsuite/tests/lib-scanf-2/*.dll -/testsuite/tests/lib-scanf-2/*.cm[ioxat] -/testsuite/tests/lib-scanf-2/*.cmx[as] -/testsuite/tests/lib-scanf-2/*.cmti -/testsuite/tests/lib-scanf-2/*.annot -/testsuite/tests/lib-scanf-2/*.result -/testsuite/tests/lib-scanf-2/*.byte -/testsuite/tests/lib-scanf-2/*.native -/testsuite/tests/lib-scanf-2/program -/testsuite/tests/lib-scanf-2/*.exe -/testsuite/tests/lib-scanf-2/*.exe.manifest -/testsuite/tests/lib-scanf-2/.depend -/testsuite/tests/lib-scanf-2/.depend.nt -/testsuite/tests/lib-scanf-2/.DS_Store - -# /testsuite/tests/lib-set/ -/testsuite/tests/lib-set/*.o -/testsuite/tests/lib-set/*.a -/testsuite/tests/lib-set/*.so -/testsuite/tests/lib-set/*.obj -/testsuite/tests/lib-set/*.cm[ioxa] -/testsuite/tests/lib-set/*.cmx[as] -/testsuite/tests/lib-set/*.annot -/testsuite/tests/lib-set/*.result -/testsuite/tests/lib-set/*.byte -/testsuite/tests/lib-set/*.native -/testsuite/tests/lib-set/program -/testsuite/tests/lib-set/program.exe -/testsuite/tests/lib-set/.depend -/testsuite/tests/lib-set/.depend.nt -/testsuite/tests/lib-set/.DS_Store - -# /testsuite/tests/lib-str/ -/testsuite/tests/lib-str/*.o -/testsuite/tests/lib-str/*.a -/testsuite/tests/lib-str/*.so -/testsuite/tests/lib-str/*.obj -/testsuite/tests/lib-str/*.cm[ioxa] -/testsuite/tests/lib-str/*.cmx[as] -/testsuite/tests/lib-str/*.annot -/testsuite/tests/lib-str/*.result -/testsuite/tests/lib-str/*.byte -/testsuite/tests/lib-str/*.native -/testsuite/tests/lib-str/program -/testsuite/tests/lib-str/program.exe -/testsuite/tests/lib-str/.depend -/testsuite/tests/lib-str/.depend.nt -/testsuite/tests/lib-str/.DS_Store - -# /testsuite/tests/lib-stream/ -/testsuite/tests/lib-stream/*.o -/testsuite/tests/lib-stream/*.a -/testsuite/tests/lib-stream/*.so -/testsuite/tests/lib-stream/*.obj -/testsuite/tests/lib-stream/*.cm[ioxa] -/testsuite/tests/lib-stream/*.cmx[as] -/testsuite/tests/lib-stream/*.annot -/testsuite/tests/lib-stream/*.result -/testsuite/tests/lib-stream/*.byte -/testsuite/tests/lib-stream/*.native -/testsuite/tests/lib-stream/program -/testsuite/tests/lib-stream/program.exe -/testsuite/tests/lib-stream/.depend -/testsuite/tests/lib-stream/.depend.nt -/testsuite/tests/lib-stream/.DS_Store - -# /testsuite/tests/lib-systhreads/ -/testsuite/tests/lib-systhreads/*.o -/testsuite/tests/lib-systhreads/*.a -/testsuite/tests/lib-systhreads/*.so -/testsuite/tests/lib-systhreads/*.obj -/testsuite/tests/lib-systhreads/*.cm[ioxa] -/testsuite/tests/lib-systhreads/*.cmx[as] -/testsuite/tests/lib-systhreads/*.annot -/testsuite/tests/lib-systhreads/*.result -/testsuite/tests/lib-systhreads/*.byte -/testsuite/tests/lib-systhreads/*.native -/testsuite/tests/lib-systhreads/program -/testsuite/tests/lib-systhreads/program.exe -/testsuite/tests/lib-systhreads/.depend -/testsuite/tests/lib-systhreads/.depend.nt -/testsuite/tests/lib-systhreads/.DS_Store - -# /testsuite/tests/lib-threads/ -/testsuite/tests/lib-threads/*.o -/testsuite/tests/lib-threads/*.a -/testsuite/tests/lib-threads/*.so -/testsuite/tests/lib-threads/*.obj -/testsuite/tests/lib-threads/*.cm[ioxa] -/testsuite/tests/lib-threads/*.cmx[as] -/testsuite/tests/lib-threads/*.annot -/testsuite/tests/lib-threads/*.result -/testsuite/tests/lib-threads/*.byte -/testsuite/tests/lib-threads/*.native -/testsuite/tests/lib-threads/program -/testsuite/tests/lib-threads/program.exe -/testsuite/tests/lib-threads/.depend -/testsuite/tests/lib-threads/.depend.nt -/testsuite/tests/lib-threads/.DS_Store -/testsuite/tests/lib-threads/*.byt - -# /testsuite/tests/match-exception/ -/testsuite/tests/match-exception/*.o -/testsuite/tests/match-exception/*.a -/testsuite/tests/match-exception/*.so -/testsuite/tests/match-exception/*.obj -/testsuite/tests/match-exception/*.lib -/testsuite/tests/match-exception/*.dll -/testsuite/tests/match-exception/*.cm[ioxat] -/testsuite/tests/match-exception/*.cmx[as] -/testsuite/tests/match-exception/*.cmti -/testsuite/tests/match-exception/*.annot -/testsuite/tests/match-exception/*.result -/testsuite/tests/match-exception/*.byte -/testsuite/tests/match-exception/*.native -/testsuite/tests/match-exception/program -/testsuite/tests/match-exception/*.exe -/testsuite/tests/match-exception/*.exe.manifest -/testsuite/tests/match-exception/.depend -/testsuite/tests/match-exception/.depend.nt -/testsuite/tests/match-exception/.DS_Store - -# /testsuite/tests/match-exception-warnings/ -/testsuite/tests/match-exception-warnings/*.o -/testsuite/tests/match-exception-warnings/*.a -/testsuite/tests/match-exception-warnings/*.so -/testsuite/tests/match-exception-warnings/*.obj -/testsuite/tests/match-exception-warnings/*.lib -/testsuite/tests/match-exception-warnings/*.dll -/testsuite/tests/match-exception-warnings/*.cm[ioxat] -/testsuite/tests/match-exception-warnings/*.cmx[as] -/testsuite/tests/match-exception-warnings/*.cmti -/testsuite/tests/match-exception-warnings/*.annot -/testsuite/tests/match-exception-warnings/*.result -/testsuite/tests/match-exception-warnings/*.byte -/testsuite/tests/match-exception-warnings/*.native -/testsuite/tests/match-exception-warnings/program -/testsuite/tests/match-exception-warnings/*.exe -/testsuite/tests/match-exception-warnings/*.exe.manifest -/testsuite/tests/match-exception-warnings/.depend -/testsuite/tests/match-exception-warnings/.depend.nt -/testsuite/tests/match-exception-warnings/.DS_Store - -# /testsuite/tests/misc/ -/testsuite/tests/misc/*.o -/testsuite/tests/misc/*.a -/testsuite/tests/misc/*.so -/testsuite/tests/misc/*.obj -/testsuite/tests/misc/*.cm[ioxa] -/testsuite/tests/misc/*.cmx[as] -/testsuite/tests/misc/*.annot -/testsuite/tests/misc/*.result -/testsuite/tests/misc/*.byte -/testsuite/tests/misc/*.native -/testsuite/tests/misc/program -/testsuite/tests/misc/program.exe -/testsuite/tests/misc/.depend -/testsuite/tests/misc/.depend.nt -/testsuite/tests/misc/.DS_Store - -# /testsuite/tests/misc-kb/ -/testsuite/tests/misc-kb/*.o -/testsuite/tests/misc-kb/*.a -/testsuite/tests/misc-kb/*.so -/testsuite/tests/misc-kb/*.obj -/testsuite/tests/misc-kb/*.lib -/testsuite/tests/misc-kb/*.dll -/testsuite/tests/misc-kb/*.cm[ioxat] -/testsuite/tests/misc-kb/*.cmx[as] -/testsuite/tests/misc-kb/*.cmti -/testsuite/tests/misc-kb/*.annot -/testsuite/tests/misc-kb/*.result -/testsuite/tests/misc-kb/*.byte -/testsuite/tests/misc-kb/*.native -/testsuite/tests/misc-kb/program -/testsuite/tests/misc-kb/*.exe -/testsuite/tests/misc-kb/*.exe.manifest -/testsuite/tests/misc-kb/.depend -/testsuite/tests/misc-kb/.depend.nt -/testsuite/tests/misc-kb/.DS_Store - -# /testsuite/tests/misc-unsafe/ -/testsuite/tests/misc-unsafe/*.o -/testsuite/tests/misc-unsafe/*.a -/testsuite/tests/misc-unsafe/*.so -/testsuite/tests/misc-unsafe/*.obj -/testsuite/tests/misc-unsafe/*.cm[ioxa] -/testsuite/tests/misc-unsafe/*.cmx[as] -/testsuite/tests/misc-unsafe/*.annot -/testsuite/tests/misc-unsafe/*.result -/testsuite/tests/misc-unsafe/*.byte -/testsuite/tests/misc-unsafe/*.native -/testsuite/tests/misc-unsafe/program -/testsuite/tests/misc-unsafe/program.exe -/testsuite/tests/misc-unsafe/.depend -/testsuite/tests/misc-unsafe/.depend.nt -/testsuite/tests/misc-unsafe/.DS_Store - -# /testsuite/tests/prim-bigstring/ -/testsuite/tests/prim-bigstring/*.o -/testsuite/tests/prim-bigstring/*.a -/testsuite/tests/prim-bigstring/*.so -/testsuite/tests/prim-bigstring/*.obj -/testsuite/tests/prim-bigstring/*.lib -/testsuite/tests/prim-bigstring/*.dll -/testsuite/tests/prim-bigstring/*.cm[ioxat] -/testsuite/tests/prim-bigstring/*.cmx[as] -/testsuite/tests/prim-bigstring/*.cmti -/testsuite/tests/prim-bigstring/*.annot -/testsuite/tests/prim-bigstring/*.result -/testsuite/tests/prim-bigstring/*.byte -/testsuite/tests/prim-bigstring/*.native -/testsuite/tests/prim-bigstring/program -/testsuite/tests/prim-bigstring/*.exe -/testsuite/tests/prim-bigstring/*.exe.manifest -/testsuite/tests/prim-bigstring/.depend -/testsuite/tests/prim-bigstring/.depend.nt -/testsuite/tests/prim-bigstring/.DS_Store - -# /testsuite/tests/prim-bswap/ -/testsuite/tests/prim-bswap/*.o -/testsuite/tests/prim-bswap/*.a -/testsuite/tests/prim-bswap/*.so -/testsuite/tests/prim-bswap/*.obj -/testsuite/tests/prim-bswap/*.cm[ioxat] -/testsuite/tests/prim-bswap/*.cmx[as] -/testsuite/tests/prim-bswap/*.cmti -/testsuite/tests/prim-bswap/*.annot -/testsuite/tests/prim-bswap/*.result -/testsuite/tests/prim-bswap/*.byte -/testsuite/tests/prim-bswap/*.native -/testsuite/tests/prim-bswap/program -/testsuite/tests/prim-bswap/program.exe -/testsuite/tests/prim-bswap/.depend -/testsuite/tests/prim-bswap/.depend.nt -/testsuite/tests/prim-bswap/.DS_Store - -# /testsuite/tests/prim-revapply/ -/testsuite/tests/prim-revapply/*.o -/testsuite/tests/prim-revapply/*.a -/testsuite/tests/prim-revapply/*.so -/testsuite/tests/prim-revapply/*.obj -/testsuite/tests/prim-revapply/*.cm[ioxa] -/testsuite/tests/prim-revapply/*.cmx[as] -/testsuite/tests/prim-revapply/*.annot -/testsuite/tests/prim-revapply/*.result -/testsuite/tests/prim-revapply/*.byte -/testsuite/tests/prim-revapply/*.native -/testsuite/tests/prim-revapply/program -/testsuite/tests/prim-revapply/program.exe -/testsuite/tests/prim-revapply/.depend -/testsuite/tests/prim-revapply/.depend.nt -/testsuite/tests/prim-revapply/.DS_Store - -# /testsuite/tests/regression/pr5080-notes/ -/testsuite/tests/regression/pr5080-notes/*.o -/testsuite/tests/regression/pr5080-notes/*.a -/testsuite/tests/regression/pr5080-notes/*.so -/testsuite/tests/regression/pr5080-notes/*.obj -/testsuite/tests/regression/pr5080-notes/*.cm[ioxa] -/testsuite/tests/regression/pr5080-notes/*.cmx[as] -/testsuite/tests/regression/pr5080-notes/*.annot -/testsuite/tests/regression/pr5080-notes/*.result -/testsuite/tests/regression/pr5080-notes/*.byte -/testsuite/tests/regression/pr5080-notes/*.native -/testsuite/tests/regression/pr5080-notes/program -/testsuite/tests/regression/pr5080-notes/program.exe -/testsuite/tests/regression/pr5080-notes/.depend -/testsuite/tests/regression/pr5080-notes/.depend.nt -/testsuite/tests/regression/pr5080-notes/.DS_Store - -# /testsuite/tests/regression/pr5233/ -/testsuite/tests/regression/pr5233/*.o -/testsuite/tests/regression/pr5233/*.a -/testsuite/tests/regression/pr5233/*.so -/testsuite/tests/regression/pr5233/*.obj -/testsuite/tests/regression/pr5233/*.lib -/testsuite/tests/regression/pr5233/*.dll -/testsuite/tests/regression/pr5233/*.cm[ioxat] -/testsuite/tests/regression/pr5233/*.cmx[as] -/testsuite/tests/regression/pr5233/*.cmti -/testsuite/tests/regression/pr5233/*.annot -/testsuite/tests/regression/pr5233/*.result -/testsuite/tests/regression/pr5233/*.byte -/testsuite/tests/regression/pr5233/*.native -/testsuite/tests/regression/pr5233/program -/testsuite/tests/regression/pr5233/*.exe -/testsuite/tests/regression/pr5233/*.exe.manifest -/testsuite/tests/regression/pr5233/.depend -/testsuite/tests/regression/pr5233/.depend.nt -/testsuite/tests/regression/pr5233/.DS_Store - -# /testsuite/tests/regression/pr5757/ -/testsuite/tests/regression/pr5757/*.o -/testsuite/tests/regression/pr5757/*.a -/testsuite/tests/regression/pr5757/*.so -/testsuite/tests/regression/pr5757/*.obj -/testsuite/tests/regression/pr5757/*.lib -/testsuite/tests/regression/pr5757/*.dll -/testsuite/tests/regression/pr5757/*.cm[ioxat] -/testsuite/tests/regression/pr5757/*.cmx[as] -/testsuite/tests/regression/pr5757/*.cmti -/testsuite/tests/regression/pr5757/*.annot -/testsuite/tests/regression/pr5757/*.result -/testsuite/tests/regression/pr5757/*.byte -/testsuite/tests/regression/pr5757/*.native -/testsuite/tests/regression/pr5757/program -/testsuite/tests/regression/pr5757/*.exe -/testsuite/tests/regression/pr5757/*.exe.manifest -/testsuite/tests/regression/pr5757/.depend -/testsuite/tests/regression/pr5757/.depend.nt -/testsuite/tests/regression/pr5757/.DS_Store - -# /testsuite/tests/regression/pr6024/ -/testsuite/tests/regression/pr6024/*.o -/testsuite/tests/regression/pr6024/*.a -/testsuite/tests/regression/pr6024/*.so -/testsuite/tests/regression/pr6024/*.obj -/testsuite/tests/regression/pr6024/*.lib -/testsuite/tests/regression/pr6024/*.dll -/testsuite/tests/regression/pr6024/*.cm[ioxat] -/testsuite/tests/regression/pr6024/*.cmx[as] -/testsuite/tests/regression/pr6024/*.cmti -/testsuite/tests/regression/pr6024/*.annot -/testsuite/tests/regression/pr6024/*.result -/testsuite/tests/regression/pr6024/*.byte -/testsuite/tests/regression/pr6024/*.native -/testsuite/tests/regression/pr6024/program -/testsuite/tests/regression/pr6024/*.exe -/testsuite/tests/regression/pr6024/*.exe.manifest -/testsuite/tests/regression/pr6024/.depend -/testsuite/tests/regression/pr6024/.depend.nt -/testsuite/tests/regression/pr6024/.DS_Store - -# /testsuite/tests/runtime-errors/ -/testsuite/tests/runtime-errors/*.o -/testsuite/tests/runtime-errors/*.a -/testsuite/tests/runtime-errors/*.so -/testsuite/tests/runtime-errors/*.obj -/testsuite/tests/runtime-errors/*.lib -/testsuite/tests/runtime-errors/*.dll -/testsuite/tests/runtime-errors/*.cm[ioxat] -/testsuite/tests/runtime-errors/*.cmx[as] -/testsuite/tests/runtime-errors/*.cmti -/testsuite/tests/runtime-errors/*.annot -/testsuite/tests/runtime-errors/*.result -/testsuite/tests/runtime-errors/*.byte -/testsuite/tests/runtime-errors/*.native -/testsuite/tests/runtime-errors/program -/testsuite/tests/runtime-errors/*.exe -/testsuite/tests/runtime-errors/*.exe.manifest -/testsuite/tests/runtime-errors/.depend -/testsuite/tests/runtime-errors/.depend.nt -/testsuite/tests/runtime-errors/.DS_Store -/testsuite/tests/runtime-errors/*.bytecode - -# /testsuite/tests/tool-debugger/ -/testsuite/tests/tool-debugger/*.o -/testsuite/tests/tool-debugger/*.a -/testsuite/tests/tool-debugger/*.so -/testsuite/tests/tool-debugger/*.obj -/testsuite/tests/tool-debugger/*.lib -/testsuite/tests/tool-debugger/*.dll -/testsuite/tests/tool-debugger/*.cm[ioxat] -/testsuite/tests/tool-debugger/*.cmx[as] -/testsuite/tests/tool-debugger/*.cmti -/testsuite/tests/tool-debugger/*.annot -/testsuite/tests/tool-debugger/*.result -/testsuite/tests/tool-debugger/*.byte -/testsuite/tests/tool-debugger/*.native -/testsuite/tests/tool-debugger/program -/testsuite/tests/tool-debugger/*.exe -/testsuite/tests/tool-debugger/*.exe.manifest -/testsuite/tests/tool-debugger/.depend -/testsuite/tests/tool-debugger/.depend.nt -/testsuite/tests/tool-debugger/.DS_Store -/testsuite/tests/tool-debugger/compiler-libs - -# /testsuite/tests/tool-debugger/basic/ -/testsuite/tests/tool-debugger/basic/*.o -/testsuite/tests/tool-debugger/basic/*.a -/testsuite/tests/tool-debugger/basic/*.so -/testsuite/tests/tool-debugger/basic/*.obj -/testsuite/tests/tool-debugger/basic/*.lib -/testsuite/tests/tool-debugger/basic/*.dll -/testsuite/tests/tool-debugger/basic/*.cm[ioxat] -/testsuite/tests/tool-debugger/basic/*.cmx[as] -/testsuite/tests/tool-debugger/basic/*.cmti -/testsuite/tests/tool-debugger/basic/*.annot -/testsuite/tests/tool-debugger/basic/*.result -/testsuite/tests/tool-debugger/basic/*.byte -/testsuite/tests/tool-debugger/basic/*.native -/testsuite/tests/tool-debugger/basic/program -/testsuite/tests/tool-debugger/basic/*.exe -/testsuite/tests/tool-debugger/basic/*.exe.manifest -/testsuite/tests/tool-debugger/basic/.depend -/testsuite/tests/tool-debugger/basic/.depend.nt -/testsuite/tests/tool-debugger/basic/.DS_Store -/testsuite/tests/tool-debugger/basic/compiler-libs - -# /testsuite/tests/tool-debugger/find-artifacts/ -/testsuite/tests/tool-debugger/find-artifacts/*.o -/testsuite/tests/tool-debugger/find-artifacts/*.a -/testsuite/tests/tool-debugger/find-artifacts/*.so -/testsuite/tests/tool-debugger/find-artifacts/*.obj -/testsuite/tests/tool-debugger/find-artifacts/*.lib -/testsuite/tests/tool-debugger/find-artifacts/*.dll -/testsuite/tests/tool-debugger/find-artifacts/*.cm[ioxat] -/testsuite/tests/tool-debugger/find-artifacts/*.cmx[as] -/testsuite/tests/tool-debugger/find-artifacts/*.cmti -/testsuite/tests/tool-debugger/find-artifacts/*.annot -/testsuite/tests/tool-debugger/find-artifacts/*.result -/testsuite/tests/tool-debugger/find-artifacts/*.byte -/testsuite/tests/tool-debugger/find-artifacts/*.native -/testsuite/tests/tool-debugger/find-artifacts/program -/testsuite/tests/tool-debugger/find-artifacts/*.exe -/testsuite/tests/tool-debugger/find-artifacts/*.exe.manifest -/testsuite/tests/tool-debugger/find-artifacts/.depend -/testsuite/tests/tool-debugger/find-artifacts/.depend.nt -/testsuite/tests/tool-debugger/find-artifacts/.DS_Store -/testsuite/tests/tool-debugger/find-artifacts/compiler-libs -/testsuite/tests/tool-debugger/find-artifacts/out - -# /testsuite/tests/tool-debugger/no_debug_event/ -/testsuite/tests/tool-debugger/no_debug_event/*.o -/testsuite/tests/tool-debugger/no_debug_event/*.a -/testsuite/tests/tool-debugger/no_debug_event/*.so -/testsuite/tests/tool-debugger/no_debug_event/*.obj -/testsuite/tests/tool-debugger/no_debug_event/*.lib -/testsuite/tests/tool-debugger/no_debug_event/*.dll -/testsuite/tests/tool-debugger/no_debug_event/*.cm[ioxat] -/testsuite/tests/tool-debugger/no_debug_event/*.cmx[as] -/testsuite/tests/tool-debugger/no_debug_event/*.cmti -/testsuite/tests/tool-debugger/no_debug_event/*.annot -/testsuite/tests/tool-debugger/no_debug_event/*.result -/testsuite/tests/tool-debugger/no_debug_event/*.byte -/testsuite/tests/tool-debugger/no_debug_event/*.native -/testsuite/tests/tool-debugger/no_debug_event/program -/testsuite/tests/tool-debugger/no_debug_event/*.exe -/testsuite/tests/tool-debugger/no_debug_event/*.exe.manifest -/testsuite/tests/tool-debugger/no_debug_event/.depend -/testsuite/tests/tool-debugger/no_debug_event/.depend.nt -/testsuite/tests/tool-debugger/no_debug_event/.DS_Store -/testsuite/tests/tool-debugger/no_debug_event/compiler-libs -/testsuite/tests/tool-debugger/no_debug_event/out -/testsuite/tests/tool-debugger/no_debug_event/c -/testsuite/tests/tool-debugger/no_debug_event/c.exe - -# /testsuite/tests/tool-lexyacc/ -/testsuite/tests/tool-lexyacc/*.o -/testsuite/tests/tool-lexyacc/*.a -/testsuite/tests/tool-lexyacc/*.so -/testsuite/tests/tool-lexyacc/*.obj -/testsuite/tests/tool-lexyacc/*.lib -/testsuite/tests/tool-lexyacc/*.dll -/testsuite/tests/tool-lexyacc/*.cm[ioxat] -/testsuite/tests/tool-lexyacc/*.cmx[as] -/testsuite/tests/tool-lexyacc/*.cmti -/testsuite/tests/tool-lexyacc/*.annot -/testsuite/tests/tool-lexyacc/*.result -/testsuite/tests/tool-lexyacc/*.byte -/testsuite/tests/tool-lexyacc/*.native -/testsuite/tests/tool-lexyacc/program -/testsuite/tests/tool-lexyacc/*.exe -/testsuite/tests/tool-lexyacc/*.exe.manifest -/testsuite/tests/tool-lexyacc/.depend -/testsuite/tests/tool-lexyacc/.depend.nt -/testsuite/tests/tool-lexyacc/.DS_Store -/testsuite/tests/tool-lexyacc/scanner.ml -/testsuite/tests/tool-lexyacc/grammar.mli -/testsuite/tests/tool-lexyacc/grammar.ml - -# /testsuite/tests/tool-ocaml/ -/testsuite/tests/tool-ocaml/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/tool-ocaml/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/tool-ocaml/_log -/testsuite/tests/tool-ocaml/*.so -/testsuite/tests/tool-ocaml/*.a -/testsuite/tests/tool-ocaml/*.result -/testsuite/tests/tool-ocaml/*.byte -/testsuite/tests/tool-ocaml/*.native -/testsuite/tests/tool-ocaml/program -/testsuite/tests/tool-ocaml/*.cm* -/testsuite/tests/tool-ocaml/*.o - -# /testsuite/tests/tool-ocamldoc/ -/testsuite/tests/tool-ocamldoc/*.o -/testsuite/tests/tool-ocamldoc/*.a -/testsuite/tests/tool-ocamldoc/*.so -/testsuite/tests/tool-ocamldoc/*.obj -/testsuite/tests/tool-ocamldoc/*.cm[ioxa] -/testsuite/tests/tool-ocamldoc/*.cmx[as] -/testsuite/tests/tool-ocamldoc/*.annot -/testsuite/tests/tool-ocamldoc/*.result -/testsuite/tests/tool-ocamldoc/*.byte -/testsuite/tests/tool-ocamldoc/*.native -/testsuite/tests/tool-ocamldoc/program -/testsuite/tests/tool-ocamldoc/.depend -/testsuite/tests/tool-ocamldoc/.depend.nt -/testsuite/tests/tool-ocamldoc/.DS_Store -/testsuite/tests/tool-ocamldoc/*.html -/testsuite/tests/tool-ocamldoc/*.sty -/testsuite/tests/tool-ocamldoc/*.css -/testsuite/tests/tool-ocamldoc/ocamldoc.out - -# /testsuite/tests/tool-toplevel/ -/testsuite/tests/tool-toplevel/*.o -/testsuite/tests/tool-toplevel/*.a -/testsuite/tests/tool-toplevel/*.so -/testsuite/tests/tool-toplevel/*.obj -/testsuite/tests/tool-toplevel/*.lib -/testsuite/tests/tool-toplevel/*.dll -/testsuite/tests/tool-toplevel/*.cm[ioxat] -/testsuite/tests/tool-toplevel/*.cmx[as] -/testsuite/tests/tool-toplevel/*.cmti -/testsuite/tests/tool-toplevel/*.annot -/testsuite/tests/tool-toplevel/*.result -/testsuite/tests/tool-toplevel/*.byte -/testsuite/tests/tool-toplevel/*.native -/testsuite/tests/tool-toplevel/program -/testsuite/tests/tool-toplevel/*.exe -/testsuite/tests/tool-toplevel/*.exe.manifest -/testsuite/tests/tool-toplevel/.depend -/testsuite/tests/tool-toplevel/.depend.nt -/testsuite/tests/tool-toplevel/.DS_Store - -# /testsuite/tests/typing-extensions/ -/testsuite/tests/typing-extensions/*.o -/testsuite/tests/typing-extensions/*.a -/testsuite/tests/typing-extensions/*.so -/testsuite/tests/typing-extensions/*.obj -/testsuite/tests/typing-extensions/*.lib -/testsuite/tests/typing-extensions/*.dll -/testsuite/tests/typing-extensions/*.cm[ioxat] -/testsuite/tests/typing-extensions/*.cmx[as] -/testsuite/tests/typing-extensions/*.cmti -/testsuite/tests/typing-extensions/*.annot -/testsuite/tests/typing-extensions/*.result -/testsuite/tests/typing-extensions/*.byte -/testsuite/tests/typing-extensions/*.native -/testsuite/tests/typing-extensions/program -/testsuite/tests/typing-extensions/*.exe -/testsuite/tests/typing-extensions/*.exe.manifest -/testsuite/tests/typing-extensions/.depend -/testsuite/tests/typing-extensions/.depend.nt -/testsuite/tests/typing-extensions/.DS_Store - -# /testsuite/tests/typing-fstclassmod/ -/testsuite/tests/typing-fstclassmod/*.o -/testsuite/tests/typing-fstclassmod/*.a -/testsuite/tests/typing-fstclassmod/*.so -/testsuite/tests/typing-fstclassmod/*.obj -/testsuite/tests/typing-fstclassmod/*.lib -/testsuite/tests/typing-fstclassmod/*.dll -/testsuite/tests/typing-fstclassmod/*.cm[ioxat] -/testsuite/tests/typing-fstclassmod/*.cmx[as] -/testsuite/tests/typing-fstclassmod/*.cmti -/testsuite/tests/typing-fstclassmod/*.annot -/testsuite/tests/typing-fstclassmod/*.result -/testsuite/tests/typing-fstclassmod/*.byte -/testsuite/tests/typing-fstclassmod/*.native -/testsuite/tests/typing-fstclassmod/program -/testsuite/tests/typing-fstclassmod/*.exe -/testsuite/tests/typing-fstclassmod/*.exe.manifest -/testsuite/tests/typing-fstclassmod/.depend -/testsuite/tests/typing-fstclassmod/.depend.nt -/testsuite/tests/typing-fstclassmod/.DS_Store - -# /testsuite/tests/typing-gadts/ -/testsuite/tests/typing-gadts/*.o -/testsuite/tests/typing-gadts/*.a -/testsuite/tests/typing-gadts/*.so -/testsuite/tests/typing-gadts/*.obj -/testsuite/tests/typing-gadts/*.cm[ioxa] -/testsuite/tests/typing-gadts/*.cmx[as] -/testsuite/tests/typing-gadts/*.annot -/testsuite/tests/typing-gadts/*.result -/testsuite/tests/typing-gadts/*.byte -/testsuite/tests/typing-gadts/*.native -/testsuite/tests/typing-gadts/program -/testsuite/tests/typing-gadts/.depend -/testsuite/tests/typing-gadts/.depend.nt -/testsuite/tests/typing-gadts/.DS_Store - -# /testsuite/tests/typing-implicit_unpack/ -/testsuite/tests/typing-implicit_unpack/*.o -/testsuite/tests/typing-implicit_unpack/*.a -/testsuite/tests/typing-implicit_unpack/*.so -/testsuite/tests/typing-implicit_unpack/*.obj -/testsuite/tests/typing-implicit_unpack/*.cm[ioxa] -/testsuite/tests/typing-implicit_unpack/*.cmx[as] -/testsuite/tests/typing-implicit_unpack/*.annot -/testsuite/tests/typing-implicit_unpack/*.result -/testsuite/tests/typing-implicit_unpack/*.byte -/testsuite/tests/typing-implicit_unpack/*.native -/testsuite/tests/typing-implicit_unpack/program -/testsuite/tests/typing-implicit_unpack/.depend -/testsuite/tests/typing-implicit_unpack/.depend.nt -/testsuite/tests/typing-implicit_unpack/.DS_Store - -# /testsuite/tests/typing-labels/ -/testsuite/tests/typing-labels/*.o -/testsuite/tests/typing-labels/*.a -/testsuite/tests/typing-labels/*.so -/testsuite/tests/typing-labels/*.obj -/testsuite/tests/typing-labels/*.cm[ioxa] -/testsuite/tests/typing-labels/*.cmx[as] -/testsuite/tests/typing-labels/*.annot -/testsuite/tests/typing-labels/*.result -/testsuite/tests/typing-labels/*.byte -/testsuite/tests/typing-labels/*.native -/testsuite/tests/typing-labels/program -/testsuite/tests/typing-labels/program.exe -/testsuite/tests/typing-labels/.depend -/testsuite/tests/typing-labels/.depend.nt -/testsuite/tests/typing-labels/.DS_Store - -# /testsuite/tests/typing-misc/ -/testsuite/tests/typing-misc/*.o -/testsuite/tests/typing-misc/*.a -/testsuite/tests/typing-misc/*.so -/testsuite/tests/typing-misc/*.obj -/testsuite/tests/typing-misc/*.cm[ioxa] -/testsuite/tests/typing-misc/*.cmx[as] -/testsuite/tests/typing-misc/*.annot -/testsuite/tests/typing-misc/*.result -/testsuite/tests/typing-misc/*.byte -/testsuite/tests/typing-misc/*.native -/testsuite/tests/typing-misc/program -/testsuite/tests/typing-misc/.depend -/testsuite/tests/typing-misc/.depend.nt -/testsuite/tests/typing-misc/.DS_Store - -# /testsuite/tests/typing-modules/ -/testsuite/tests/typing-modules/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/typing-modules/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/typing-modules/_log -/testsuite/tests/typing-modules/*.so -/testsuite/tests/typing-modules/*.a -/testsuite/tests/typing-modules/*.result -/testsuite/tests/typing-modules/*.byte -/testsuite/tests/typing-modules/*.native -/testsuite/tests/typing-modules/program - -# /testsuite/tests/typing-modules-bugs/ -/testsuite/tests/typing-modules-bugs/*.o -/testsuite/tests/typing-modules-bugs/*.a -/testsuite/tests/typing-modules-bugs/*.so -/testsuite/tests/typing-modules-bugs/*.obj -/testsuite/tests/typing-modules-bugs/*.cm[ioxa] -/testsuite/tests/typing-modules-bugs/*.cmx[as] -/testsuite/tests/typing-modules-bugs/*.annot -/testsuite/tests/typing-modules-bugs/*.result -/testsuite/tests/typing-modules-bugs/*.byte -/testsuite/tests/typing-modules-bugs/*.native -/testsuite/tests/typing-modules-bugs/program -/testsuite/tests/typing-modules-bugs/program.exe -/testsuite/tests/typing-modules-bugs/.depend -/testsuite/tests/typing-modules-bugs/.depend.nt -/testsuite/tests/typing-modules-bugs/.DS_Store - -# /testsuite/tests/typing-objects/ -/testsuite/tests/typing-objects/*.o -/testsuite/tests/typing-objects/*.a -/testsuite/tests/typing-objects/*.so -/testsuite/tests/typing-objects/*.obj -/testsuite/tests/typing-objects/*.cm[ioxa] -/testsuite/tests/typing-objects/*.cmx[as] -/testsuite/tests/typing-objects/*.annot -/testsuite/tests/typing-objects/*.result -/testsuite/tests/typing-objects/*.byte -/testsuite/tests/typing-objects/*.native -/testsuite/tests/typing-objects/program -/testsuite/tests/typing-objects/.depend -/testsuite/tests/typing-objects/.depend.nt -/testsuite/tests/typing-objects/.DS_Store - -# /testsuite/tests/typing-objects-bugs/ -/testsuite/tests/typing-objects-bugs/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/typing-objects-bugs/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/typing-objects-bugs/_log -/testsuite/tests/typing-objects-bugs/*.so -/testsuite/tests/typing-objects-bugs/*.a -/testsuite/tests/typing-objects-bugs/*.result -/testsuite/tests/typing-objects-bugs/*.byte -/testsuite/tests/typing-objects-bugs/*.native -/testsuite/tests/typing-objects-bugs/program -/testsuite/tests/typing-objects-bugs/*.cm* -/testsuite/tests/typing-objects-bugs/*.o - -# /testsuite/tests/typing-poly/ -/testsuite/tests/typing-poly/*.o -/testsuite/tests/typing-poly/*.a -/testsuite/tests/typing-poly/*.so -/testsuite/tests/typing-poly/*.obj -/testsuite/tests/typing-poly/*.cm[ioxa] -/testsuite/tests/typing-poly/*.cmx[as] -/testsuite/tests/typing-poly/*.annot -/testsuite/tests/typing-poly/*.result -/testsuite/tests/typing-poly/*.byte -/testsuite/tests/typing-poly/*.native -/testsuite/tests/typing-poly/program -/testsuite/tests/typing-poly/.depend -/testsuite/tests/typing-poly/.depend.nt -/testsuite/tests/typing-poly/.DS_Store - -# /testsuite/tests/typing-poly-bugs/ -/testsuite/tests/typing-poly-bugs/*.o -/testsuite/tests/typing-poly-bugs/*.a -/testsuite/tests/typing-poly-bugs/*.so -/testsuite/tests/typing-poly-bugs/*.obj -/testsuite/tests/typing-poly-bugs/*.cm[ioxa] -/testsuite/tests/typing-poly-bugs/*.cmx[as] -/testsuite/tests/typing-poly-bugs/*.annot -/testsuite/tests/typing-poly-bugs/*.result -/testsuite/tests/typing-poly-bugs/*.byte -/testsuite/tests/typing-poly-bugs/*.native -/testsuite/tests/typing-poly-bugs/program -/testsuite/tests/typing-poly-bugs/program.exe -/testsuite/tests/typing-poly-bugs/.depend -/testsuite/tests/typing-poly-bugs/.depend.nt -/testsuite/tests/typing-poly-bugs/.DS_Store - -# /testsuite/tests/typing-polyvariants-bugs/ -/testsuite/tests/typing-polyvariants-bugs/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/typing-polyvariants-bugs/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/typing-polyvariants-bugs/_log -/testsuite/tests/typing-polyvariants-bugs/*.so -/testsuite/tests/typing-polyvariants-bugs/*.a -/testsuite/tests/typing-polyvariants-bugs/*.result -/testsuite/tests/typing-polyvariants-bugs/*.byte -/testsuite/tests/typing-polyvariants-bugs/*.native -/testsuite/tests/typing-polyvariants-bugs/program -/testsuite/tests/typing-polyvariants-bugs/*.cm* -/testsuite/tests/typing-polyvariants-bugs/*.o - -# /testsuite/tests/typing-polyvariants-bugs-2/ -/testsuite/tests/typing-polyvariants-bugs-2/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/typing-polyvariants-bugs-2/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/typing-polyvariants-bugs-2/_log -/testsuite/tests/typing-polyvariants-bugs-2/*.so -/testsuite/tests/typing-polyvariants-bugs-2/*.a -/testsuite/tests/typing-polyvariants-bugs-2/*.result -/testsuite/tests/typing-polyvariants-bugs-2/*.byte -/testsuite/tests/typing-polyvariants-bugs-2/*.native -/testsuite/tests/typing-polyvariants-bugs-2/program -/testsuite/tests/typing-polyvariants-bugs-2/*.cm* -/testsuite/tests/typing-polyvariants-bugs-2/*.o - -# /testsuite/tests/typing-private/ -/testsuite/tests/typing-private/*.o -/testsuite/tests/typing-private/*.a -/testsuite/tests/typing-private/*.so -/testsuite/tests/typing-private/*.obj -/testsuite/tests/typing-private/*.cm[ioxa] -/testsuite/tests/typing-private/*.cmx[as] -/testsuite/tests/typing-private/*.annot -/testsuite/tests/typing-private/*.result -/testsuite/tests/typing-private/*.byte -/testsuite/tests/typing-private/*.native -/testsuite/tests/typing-private/program -/testsuite/tests/typing-private/.depend -/testsuite/tests/typing-private/.depend.nt -/testsuite/tests/typing-private/.DS_Store - -# /testsuite/tests/typing-private-bugs/ -/testsuite/tests/typing-private-bugs/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/typing-private-bugs/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/typing-private-bugs/_log -/testsuite/tests/typing-private-bugs/*.so -/testsuite/tests/typing-private-bugs/*.a -/testsuite/tests/typing-private-bugs/*.result -/testsuite/tests/typing-private-bugs/*.byte -/testsuite/tests/typing-private-bugs/*.native -/testsuite/tests/typing-private-bugs/program -/testsuite/tests/typing-private-bugs/*.cm* -/testsuite/tests/typing-private-bugs/*.o - -# /testsuite/tests/typing-recmod/ -/testsuite/tests/typing-recmod/# svn propset -R svn:ignore -F .svnignore . -/testsuite/tests/typing-recmod/# find . -name .svnignore -print | while read f; do svn propset svn:ignore -F $f `dirname $f`; done -/testsuite/tests/typing-recmod/_log -/testsuite/tests/typing-recmod/*.so -/testsuite/tests/typing-recmod/*.a -/testsuite/tests/typing-recmod/*.result -/testsuite/tests/typing-recmod/*.byte -/testsuite/tests/typing-recmod/*.native -/testsuite/tests/typing-recmod/program -/testsuite/tests/typing-recmod/*.cm* -/testsuite/tests/typing-recmod/*.o - -# /testsuite/tests/typing-short-paths/ -/testsuite/tests/typing-short-paths/*.o -/testsuite/tests/typing-short-paths/*.a -/testsuite/tests/typing-short-paths/*.so -/testsuite/tests/typing-short-paths/*.obj -/testsuite/tests/typing-short-paths/*.cm[ioxat] -/testsuite/tests/typing-short-paths/*.cmx[as] -/testsuite/tests/typing-short-paths/*.cmti -/testsuite/tests/typing-short-paths/*.annot -/testsuite/tests/typing-short-paths/*.result -/testsuite/tests/typing-short-paths/*.byte -/testsuite/tests/typing-short-paths/*.native -/testsuite/tests/typing-short-paths/program -/testsuite/tests/typing-short-paths/program.exe -/testsuite/tests/typing-short-paths/.depend -/testsuite/tests/typing-short-paths/.depend.nt -/testsuite/tests/typing-short-paths/.DS_Store - -# /testsuite/tests/typing-signatures/ -/testsuite/tests/typing-signatures/*.o -/testsuite/tests/typing-signatures/*.a -/testsuite/tests/typing-signatures/*.so -/testsuite/tests/typing-signatures/*.obj -/testsuite/tests/typing-signatures/*.cm[ioxa] -/testsuite/tests/typing-signatures/*.cmx[as] -/testsuite/tests/typing-signatures/*.annot -/testsuite/tests/typing-signatures/*.result -/testsuite/tests/typing-signatures/*.byte -/testsuite/tests/typing-signatures/*.native -/testsuite/tests/typing-signatures/program -/testsuite/tests/typing-signatures/.depend -/testsuite/tests/typing-signatures/.depend.nt -/testsuite/tests/typing-signatures/.DS_Store - -# /testsuite/tests/typing-sigsubst/ -/testsuite/tests/typing-sigsubst/*.o -/testsuite/tests/typing-sigsubst/*.a -/testsuite/tests/typing-sigsubst/*.so -/testsuite/tests/typing-sigsubst/*.obj -/testsuite/tests/typing-sigsubst/*.cm[ioxa] -/testsuite/tests/typing-sigsubst/*.cmx[as] -/testsuite/tests/typing-sigsubst/*.annot -/testsuite/tests/typing-sigsubst/*.result -/testsuite/tests/typing-sigsubst/*.byte -/testsuite/tests/typing-sigsubst/*.native -/testsuite/tests/typing-sigsubst/program -/testsuite/tests/typing-sigsubst/.depend -/testsuite/tests/typing-sigsubst/.depend.nt -/testsuite/tests/typing-sigsubst/.DS_Store - -# /testsuite/tests/typing-typeparam/ -/testsuite/tests/typing-typeparam/*.o -/testsuite/tests/typing-typeparam/*.a -/testsuite/tests/typing-typeparam/*.so -/testsuite/tests/typing-typeparam/*.obj -/testsuite/tests/typing-typeparam/*.cm[ioxa] -/testsuite/tests/typing-typeparam/*.cmx[as] -/testsuite/tests/typing-typeparam/*.annot -/testsuite/tests/typing-typeparam/*.result -/testsuite/tests/typing-typeparam/*.byte -/testsuite/tests/typing-typeparam/*.native -/testsuite/tests/typing-typeparam/program -/testsuite/tests/typing-typeparam/.depend -/testsuite/tests/typing-typeparam/.depend.nt -/testsuite/tests/typing-typeparam/.DS_Store - -# /testsuite/tests/typing-warnings/ -/testsuite/tests/typing-warnings/*.o -/testsuite/tests/typing-warnings/*.a -/testsuite/tests/typing-warnings/*.so -/testsuite/tests/typing-warnings/*.obj -/testsuite/tests/typing-warnings/*.cm[ioxat] -/testsuite/tests/typing-warnings/*.cmx[as] -/testsuite/tests/typing-warnings/*.cmti -/testsuite/tests/typing-warnings/*.annot -/testsuite/tests/typing-warnings/*.result -/testsuite/tests/typing-warnings/*.byte -/testsuite/tests/typing-warnings/*.native -/testsuite/tests/typing-warnings/program -/testsuite/tests/typing-warnings/program.exe -/testsuite/tests/typing-warnings/.depend -/testsuite/tests/typing-warnings/.depend.nt -/testsuite/tests/typing-warnings/.DS_Store - -# /testsuite/tests/utils/ -/testsuite/tests/utils/*.o -/testsuite/tests/utils/*.a -/testsuite/tests/utils/*.so -/testsuite/tests/utils/*.obj -/testsuite/tests/utils/*.cm[ioxat] -/testsuite/tests/utils/*.cmx[as] -/testsuite/tests/utils/*.cmti -/testsuite/tests/utils/*.annot -/testsuite/tests/utils/*.result -/testsuite/tests/utils/*.byte -/testsuite/tests/utils/*.native -/testsuite/tests/utils/program -/testsuite/tests/utils/program.exe -/testsuite/tests/utils/.depend -/testsuite/tests/utils/.depend.nt -/testsuite/tests/utils/.DS_Store - -# /testsuite/tests/warnings/ -/testsuite/tests/warnings/*.o -/testsuite/tests/warnings/*.a -/testsuite/tests/warnings/*.so -/testsuite/tests/warnings/*.obj -/testsuite/tests/warnings/*.lib -/testsuite/tests/warnings/*.dll -/testsuite/tests/warnings/*.cm[ioxat] -/testsuite/tests/warnings/*.cmx[as] -/testsuite/tests/warnings/*.cmti -/testsuite/tests/warnings/*.annot -/testsuite/tests/warnings/*.result -/testsuite/tests/warnings/*.byte -/testsuite/tests/warnings/*.native -/testsuite/tests/warnings/program -/testsuite/tests/warnings/*.exe -/testsuite/tests/warnings/*.exe.manifest -/testsuite/tests/warnings/.depend -/testsuite/tests/warnings/.depend.nt -/testsuite/tests/warnings/.DS_Store - -# /tools/ -/tools/*.o -/tools/*.a -/tools/*.so -/tools/*.obj -/tools/*.lib -/tools/*.dll -/tools/*.cm[ioxat] -/tools/*.cmx[as] -/tools/*.cmti -/tools/*.annot -/tools/*.result -/tools/*.byte -/tools/*.native -/tools/program -/tools/*.exe -/tools/*.exe.manifest -/tools/.depend -/tools/.depend.nt -/tools/.DS_Store /tools/ocamldep /tools/ocamldep.opt -/tools/ocamldep.bak /tools/ocamlprof +/tools/ocamlprof.opt /tools/opnames.ml /tools/dumpobj -/tools/dumpapprox -/tools/objinfo +/tools/dumpobj.opt +/tools/ocamlobjinfo +/tools/ocamlobjinfo.opt /tools/cvt_emit -/tools/cvt_emit.bak +/tools/cvt_emit.opt /tools/cvt_emit.ml /tools/ocamlcp +/tools/ocamlcp.opt /tools/ocamloptp +/tools/ocamloptp.opt /tools/ocamlmktop +/tools/ocamlmktop.opt /tools/primreq -/tools/ocamldumpobj -/tools/keywords -/tools/lexer299.ml -/tools/ocaml299to3 +/tools/primreq.opt /tools/ocamlmklib -/tools/ocamlmklibconfig.ml -/tools/lexer301.ml -/tools/scrapelabels -/tools/addlabels -/tools/objinfo_helper -/tools/read_cmt -/tools/read_cmt.opt - -# /toplevel/ -/toplevel/.depend -/toplevel/configure -/toplevel/ocamlc -/toplevel/ocamlc.opt -/toplevel/expunge -/toplevel/ocaml -/toplevel/ocamlopt -/toplevel/ocamlopt.opt -/toplevel/ocamlcomp.sh -/toplevel/ocamlcompopt.sh -/toplevel/package-macosx -/toplevel/.DS_Store -/toplevel/*.annot -/toplevel/_boot_log1 -/toplevel/_boot_log2 -/toplevel/_build -/toplevel/_log -/toplevel/myocamlbuild_config.ml -/toplevel/ocamlnat -/toplevel/*.cm* -/toplevel/*.o - -# /typing/ -/typing/*.o -/typing/*.a -/typing/*.so -/typing/*.obj -/typing/*.dll -/typing/*.cm[ioxat] -/typing/*.cmx[as] -/typing/*.cmti -/typing/*.annot -/typing/*.result -/typing/*.byte -/typing/*.native -/typing/program -/typing/*.exe -/typing/.depend -/typing/.depend.nt -/typing/.DS_Store - -# /utils/ -/utils/*.o -/utils/*.a -/utils/*.so -/utils/*.obj -/utils/*.dll -/utils/*.cm[ioxat] -/utils/*.cmx[as] -/utils/*.cmti -/utils/*.annot -/utils/*.result -/utils/*.byte -/utils/*.native -/utils/program -/utils/*.exe -/utils/.depend -/utils/.depend.nt -/utils/.DS_Store +/tools/ocamlmklib.opt +/tools/ocamlcmt +/tools/ocamlcmt.opt +/tools/cmpbyt +/tools/cmpbyt.opt +/tools/stripdebug +/tools/stripdebug.opt +/tools/make_opcodes +/tools/make_opcodes.ml +/tools/ocamltex +/tools/eventlog_metadata +/tools/lintapidiff.opt +/tools/sync_dynlink.opt + +/toplevel/byte/topeval.mli +/toplevel/byte/trace.mli +/toplevel/byte/topmain.mli +/toplevel/native/topeval.mli +/toplevel/native/trace.mli +/toplevel/native/topmain.mli + +/utils/config_boot.ml +/utils/config_boot.mli +/utils/config.common.ml +/utils/config.generated.ml +/utils/config_main.ml +/utils/config_main.mli /utils/config.ml +/utils/domainstate.ml +/utils/domainstate.mli -# /yacc/ -/yacc/*.o -/yacc/*.a -/yacc/*.so -/yacc/*.obj -/yacc/*.cm[ioxa] -/yacc/*.cmx[as] -/yacc/*.annot -/yacc/*.result -/yacc/*.byte -/yacc/*.native -/yacc/program -/yacc/program.exe -/yacc/.depend -/yacc/.depend.nt -/yacc/.DS_Store /yacc/ocamlyacc -/yacc/ocamlyacc.exe /yacc/version.h /yacc/.gdb_history diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000000..7420fbaae5b6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,8 @@ +[submodule "flexdll"] + path = flexdll + url = https://github.com/ocaml/flexdll.git + shallow = true +[submodule "winpthreads"] + path = winpthreads + url = https://github.com/ocaml/winpthreads.git + shallow = true diff --git a/.ignore b/.ignore deleted file mode 100644 index 6dce10ee3e41..000000000000 --- a/.ignore +++ /dev/null @@ -1,11 +0,0 @@ -configure -ocamlc -ocamlc.opt -expunge -ocaml -ocamlopt -ocamlopt.opt -ocamlcomp.sh -ocamlcompopt.sh -package-macosx -ocamlnat diff --git a/.mailmap b/.mailmap new file mode 100644 index 000000000000..32ddba8d041d --- /dev/null +++ b/.mailmap @@ -0,0 +1,151 @@ +# The format of this file is generally of the form +# +# for example: +# Proper Name +# +# Proper Name Commit Name +# +# See the MAPPING AUTHORS section of 'man git-shortlog' for more details. + +# Such a remapping may be useful in particular for tracking authorship +# of commits erroneously made under an obscure alias or email address. +# (Some Name , pour ne pas le citer) + + +### Normalizing information for frequent git commit authors + +Alain Frisch alainfrisch + + +Luc Maranget + + + + + + +cvs2svn +Damien Doligez Some Name +Damien Doligez doligez +Mohamed Iguernelala +Jérémie Dimino +Jérémie Dimino +Jeremy Yallop yallop +Nicolás Ojeda Bär +Nicolás Ojeda Bär +François Pottier +Jérôme Vouillon +Frédéric Bour +Frédéric Bour +Armaël Guéneau +Armaël Guéneau +Armaël Guéneau +Edwin Török +Edwin Török +Edwin Török +Enguerrand Decorne +Fabrice Buoro + +### Approved Approvers + +# The current policy to handle pull requests for the compiler +# distribution is to merge a PR only it has been "approved" by someone +# who is not an author of the PR and has the "approver" status, by +# either +# (1) having been given commit rights, or +# (2) being part of the list of "approvers" below. +# +# Format: +# +# Preferred Name + +Gabriel Radanne +Vincent Laviron +Jeremy Yallop + + +### Remembering naming preferences for contributors + +# The aliases below correspond to preference expressed by +# contributors on the name under which they credited, for example +# if they use an opaque nickname from github or mantis: +# +# Preferred Name nickname +# or +# Preferred Name +# Preferred Name +# to indicate a preference associated to a Mantis account. + +Florian Angeletti octachron +Gabriel Radanne Drup +Pierre Weis pierreweis +John Christopher McAlpine chrismamo1 +Runhang Li marklrh +Francis Souther FDSouthern +Simon Cruanes +Frederic Bour +David Sheets +David Allsopp +David Allsopp +Tim Cuthbertson +Grégoire Henry +Julien Moutinho +Adam Borowski +Mikhail Mandrykin +Maverick Woo +Andi McClure +Michael Grünewald +Michael O'Connor +Florian Angeletti +Kenji Tokudome +Philippe Veber +Valentin Gatien-Baron +Valentin Gatien-Baron +Stephen Dolan +Junsong Li +Junsong Li +Christophe Raffali +Christophe Raffali +Anton Bachin +Reed Wilson +David Scott +Martin Neuhäußer +Goswin von Brederlow +Thomas Leonard +Thomas Leonard +Adrien Nader +Sébastien Hinderer +Sébastien Hinderer +Sébastien Hinderer +Gabriel Scherer +Immanuel Litzroth +Jacques Le Normand +Konstantin Romanov +Arseniy Alekseyev +Dwight Guth +Dwight Guth +Andreas Hauptmann fdopen +Andreas Hauptmann +Andreas Hauptmann +Hendrik Tews +Hugo Heuzard +Miod Vallat +Christoph Spiel +Joris Giovannangeli +Wilfred Hughes +John Skaller +Eduardo Rafael +Runhang Li +Dmitrii Kosarev +Samuel Hym +B. Szilvasy +Hazem Elmasry +Hazem Elmasry +T. Kinsart + +# These contributors prefer to be referred to pseudonymously +whitequark +william +tkob +ygrek +linse diff --git a/.merlin b/.merlin deleted file mode 100644 index 99779840888a..000000000000 --- a/.merlin +++ /dev/null @@ -1,51 +0,0 @@ -S ./asmcomp -B ./asmcomp - -S ./bytecomp -B ./bytecomp - -S ./driver -B ./driver - -S ./lex -B ./lex - -S ./otherlibs/bigarray -B ./otherlibs/bigarray - -S ./otherlibs/dynlink -B ./otherlibs/dynlink - -S ./otherlibs/graph -B ./otherlibs/graph - -S ./otherlibs/num -B ./otherlibs/num - -S ./otherlibs/str -B ./otherlibs/str - -S ./otherlibs/systhreads -B ./otherlibs/systhreads - -S ./otherlibs/threads -B ./otherlibs/threads - -S ./otherlibs/unix -B ./otherlibs/unix - -S ./parsing -B ./parsing - -S ./stdlib -B ./stdlib - -S ./toplevel -B ./toplevel - -S ./typing -B ./typing - -S ./utils -B ./utils - diff --git a/.travis-ci.sh b/.travis-ci.sh deleted file mode 100644 index e34353afb5e1..000000000000 --- a/.travis-ci.sh +++ /dev/null @@ -1,18 +0,0 @@ -case $XARCH in -i386) - ./configure - make world.opt - sudo make install - (cd testsuite && make all) - git clone git://github.com/ocaml/camlp4 -b 4.02 - (cd camlp4 && ./configure && make && sudo make install) - git clone git://github.com/ocaml/opam - (cd opam && ./configure && make lib-ext && make && sudo make install) - opam init -y -a git://github.com/ocaml/opam-repository - opam install -y utop - ;; -*) - echo unknown arch - exit 1 - ;; -esac diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3015c16d3b03..000000000000 --- a/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: c -script: bash -ex .travis-ci.sh -env: - - XARCH=i386 diff --git a/BOOTSTRAP.adoc b/BOOTSTRAP.adoc new file mode 100644 index 000000000000..111723e4fdfa --- /dev/null +++ b/BOOTSTRAP.adoc @@ -0,0 +1,122 @@ += Bootstrapping the compiler + +This file explains how to bootstrap the OCaml compiler, i.e. how to +update the binaries in the link:boot/[] directory. + +A bootstrap is required for example when something changes in the +runtime system (the magic number of bytecode executables, the format of +bytecode instructions, the set of available primitives) or when the +format of OCaml compilation object files like .cmi files is modified. In +particular, given that the .cmi files contain information related to +types, modifying the way a type is represented will modify the format +of .cmi files and thus require a bootstrap. + +Here is how to perform a change that requires a bootstrap: + +1. Make sure you start with a clean source tree (e.g. check with + `git status`) + +2. Configure your source tree by running: + + ./configure + +3. Bring your system to a stable state. Concretely, this means that the + boot/ directory should contain a version of ocamlrun and all the + \*.cm* files of the standard library. This stable state can be reached + by running + + make world ++ +(Actually, running `make coldstart` should be enough but `make world` is +safer. Similarly, `make world.opt` will also bring you to such a stable +state but builds more things than actually required.) + +4. Now, and only now, edit the sources. Changes here may include removing + or renaming a primitive in the runtime, changing the magic + number of bytecode executable files, changing the way types are + represented or anything else in the format of .cmi files, etc. + +5. Run: + + make coreall ++ +This will rebuild runtime/ocamlrun, ocamlc, etc. + +6. (optional) The new system can now be tested: + + echo 'let _ = print_string "Hello world!\n"' > foo.ml + ./boot/ocamlrun ./ocamlc -I ./stdlib foo.ml + ./runtime/ocamlrun a.out + +7. We now know the system works and can thus build the new boot/ + binaries: + + make bootstrap + += Problems + +If you notice that this procedure fails for a given change you are +trying to implement, please report it so that the procedure can be +updated to also cope with your change. + += Upstreaming + +If you want to upstream your changes, indicate in the message of the +commit that the changes need a bootstrap. Perform the bootstrap and +commit the result of the bootstrap separately, after that commit. + += Adding, removing and renaming primitives + +Primitives can be added without having to bootstrap, however it is necessary +to repeat `make coldstart` in order to use your new primitive in the standard +library. + +There are five steps to renaming a primitive: + +1. Rename the primitive and its uses + +2. Create a temporary stub with the old primitive's name. This stub simply + passes its arguments on to the new primitive: + + CAMLprim value caml_old_primitive(value a1, value a2) { + return caml_new_primitive(a1, a2); + } + +3. Deal with the addition of the new primitive: + + make coldstart + +4. Ensure the system still works: + + make coreall + +5. Now remove the old primitive stub and issue: + + make bootstrap + +It is desirable for bootstraps to be easily repeatable, so you should commit +changes after step 4. + +To remove a primitive: + +1. Start with a working build of the compiler eg `./configure && make world` + +2. Remove uses of the primitive, but not the primitive itself. Then ensure the system still works: + + make coreall + +3. Then, and only then, remove the primitive, and run: + + make coreall + make bootstrap + += Bootstrap test script + +A script is provided (and used on Inria's continuous +integration infrastructure) to make sure the bootstrap works. This +script implements the bootstrap procedure described above and performs +two changes to the compiler: it updates the magic numbers and removes +a primitive from the runtime. It then makes sure the bootstrap still +works after these changes. This script can be run locally as follows: + + OCAML_ARCH=linux ./tools/ci/inria/bootstrap diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..5a915b87c188 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,7 @@ +# Code of Conduct + +This project has adopted the [OCaml Code of Conduct](https://github.com/ocaml/code-of-conduct/blob/main/CODE_OF_CONDUCT.md). + +# Enforcement + +This project follows the OCaml Code of Conduct [enforcement policy](https://github.com/ocaml/code-of-conduct/blob/main/CODE_OF_CONDUCT.md#enforcement). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000000..05acc62a25f1 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,456 @@ +# How to contribute changes + +:+1::tada: First off, thank you for taking time to contribute! :tada::+1: + +The following is a set of guidelines for proposing changes to the +OCaml distribution. These are just guidelines, not rules, use your +best judgment and feel free to propose changes to this document itself +in a pull request. + +This document assumes that you have a patch against the sources of the +compiler distribution, that you wish to submit to the OCaml +maintainers upstream. See [INSTALL.adoc](INSTALL.adoc) for details on +how to build the compiler distribution from sources. See +[HACKING.adoc](HACKING.adoc) for details on how to modify the sources. + +## Contribution + +Modifying the sources is far from the only way to contribute to the +OCaml distribution. Bug reports (in particular when they come with +a reproducible example), simple typos or clarifications in the +documentation also help, and help evaluating and integrating existing +change proposals also help. Providing good answers on the discussion +forums, or asking the good questions that highlight deficiencies in +existing documentations, also help. + +There are also many valuable ways to contribute to the wider OCaml +ecosystem that do not involve changes to the OCaml distribution. + +The rest of the document is concerned with the form of change +proposals against the OCaml distribution. (Code changes, but also +improvement to documentation or implementation comments, which are +valuable changes on their own.) + +## Workflow + +All changes to the OCaml distribution need to be processed through the +GitHub Pull Request (PR) system. In order to propose a change, a +contributor thus needs to have a GitHub account, fork the ocaml/ocaml +repository, create a branch for the proposal on their fork and submit +it as a Pull Request on the upstream repository. (If you are not yet +familiar with GitHub, don't worry, all these steps are actually quite +easy!) + +The current rule is that a PR needs to get an explicit approval from +one of the core maintainer in order to be merged. Reviews by +external contributors are very much appreciated. + +Since core maintainers cannot push directly without going through an +approved PR, they need to be able to apply small changes to the +contributed branches themselves. Such changes include fixing +conflicts, adjusting a Changelog entry, or applying some code changes +required by the reviewers. Contributors are thus strongly advised to +check the [**Allow edits from maintainer**]( +https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/ +) flag on their PRs in the GitHub interface. Failing to do so might +significantly delay the inclusion of an otherwise perfectly ok +contribution. + +### Maintainers + +The current list of maintainers is as follows: + +- @abbysmal Abigael +- @alainfrisch Alain Frisch +- @Armael Armaël Guéneau +- @avsm Anil Madhavapeddy +- @chambart Pierre Chambart +- @damiendoligez Damien Doligez +- @dra27 David Allsopp +- @garrigue Jacques Garrigue +- @gasche Gabriel Scherer +- @goldfirere Richard Eisenberg +- @jhjourdan Jacques-Henri Jourdan +- @kayceesrk KC Sivaramakrishnan +- @let-def Frédéric Bour +- @lpw25 Leo White +- @lthls Vincent Laviron +- @maranget Luc Maranget +- @mshinwell Mark Shinwell +- @nojb Nicolás Ojeda Bär +- @Octachron Florian Angeletti +- @OlivierNicole Olivier Nicole +- @sadiqj Sadiq Jaffer +- @shindere Sébastien Hinderer +- @stedolan Stephen Dolan +- @trefis Thomas Refis +- @xavierleroy Xavier Leroy +- @yallop Jeremy Yallop + + + +### OCaml Language Committee + +Sometimes, consensus or decisions might be elusive during the review process, or +you might feel that some of the proposed design choices might warrant a wider +discussion. + +For those situations, we are experimenting with a new OCaml Language Committee +as a collegial instance for shepherding deliberations on the evolution of the +OCaml language and its standard library in a timely fashion. + +If you think that your PR or issue might be a good fit for consideration by the +OCaml Language Committee (see +https://github.com/ocaml/RFCs/blob/master/Committee.md for a more detailed +description), you just have to mention it to the current chair (@Octachron) in +the PR or issue. + +### Releases + +For more information about when and how new releases are published, see [the release introduction](release-info/introduction.md). + +## Coding guidelines + +You should not leave trailing whitespace; not have line longer than 80 +columns, not use tab characters (spaces only), and not use non-ASCII +characters. These typographical rules can be checked with the script +`tools/check-typo`, see [HACKING.adoc: check-typo](HACKING.adoc#check-typo). + +Otherwise, there are no strongly enforced guidelines specific to the +compiler -- and, as a result, the style may differ in the different +parts of the compiler. The general [OCaml Programming +Guidelines](https://ocaml.org/learn/tutorials/guidelines.html) are +good to keep in mind, and otherwise we strive for good taste and local +consistency (following the code located around your change). + +If you strongly feel that a style-related change would improve quality +of the existing code (for example, giving more descriptive names to +some variables throughout a module, factoring repeated code patterns +as auxiliary functions, or adding comments to document a part of the +code that you had trouble understanding), you can have code cleanup +commits at the beginning of your patch series, or submit code cleanups +as your change proposal. Those cleanups should remain separate commits +from the functional changes in the rest of the patch series; it is +easier to review commits that are specifically marked as exactly +preserving the code semantics. + + +## Test you must. + +Whenever applicable, merge requests must come with tests exercising +the affected features: regression tests for bug fixes, and correctness +tests for new features (including corner cases and +failure cases). Warnings and errors should also be tested. + +See [testsuite/HACKING.adoc](testsuite/HACKING.adoc) for details on +how to write tests and run the testsuite. + +Adding tests is also a way to make sure reviewers see working +(and failing) examples of the feature you fix, extend or +introduce, rather than just an abstract description of it. + + +## Description of the proposed change + +### In the merge request interface + +The description of the merge request must contain a precise +explanation of the proposed change. + +Before going into the implementation details, you should include +a summary of the change, a justification of why it is beneficial, and +a high-level description of the design of the proposed change with +example use cases. + +Changes have a cost, they require review work and may accidentally +introduce new bugs. Communicating as clearly as you can the benefits +of your PR will reassure and motivate potential reviewers. + +### In the patches + +If some of the explanations you provide for the merge request would +make sense as comments in the code, or documentation in the manual, +you should include them there as well. + +In-code comments help make the codebase more accessible to newcomers +(many places in the compiler could benefit from a few +extra explanations), and they are also useful to code reviewers. In +particular, any subtlety in code that cannot be made +self-explanatory should come with an explanation in comment. If you +add some non-obvious code specifically to fix a bug, include the +issue number in comments. + +Do not assume that code reviewers are all experts in the existing +codebase. If you use subtle code, add a comment, even if the same +kind of code is used somewhere else in the same module. (If this is +a common and useful domain-specific idiom that is already explained +somewhere, pointing to this explanation in your commit message is +better than adding redundant explanations.) + +### User documentation + +Changes affecting the compiler libraries should be reflected in the +documentation comments of the relevant `.mli` files. After running +`make html_doc`, you can find the HTML Standard Library documentation +at `./api_docgen/html/libref/index.html`. + +It is recommended to include changes to the OCaml Reference Manual +(in particular for any change in the surface language), which is now +part of the main repository (under `manual/`). To build the full manual, +see the instructions in `manual/README.md`. + +Finally, changes in command-line options should be integrated in the +manual, but also in the man pages present in the `man/` sub-directory +of the OCaml distribution. + + +### Changelog + +Any user-visible change should have a `Changes` entry: + +- in the right section (named sections if major feature, generic + "Bug fixes" and "Feature requests" otherwise) + +- using the label "`*`" if it breaks existing programs, "`-`" otherwise + +- with all relevant issue and PR numbers `#{N}`, in ascending numerical order + (separated by commas if necessary) + +- maintaining the order: the entries in each section should be sorted by + issue/PR number (the first of each entry, if more than one is available) + +- with a concise readable description of the change (possibly taken + from a commit message, but it should make sense to end-users + reading release notes) + +- crediting the people that worked on the feature. The people that + wrote the code should be credited of course, but also substantial + code reviews or design advice, and the reporter of the bug + (if applicable) or designer of the feature request (if novel). + +- following the format + + {label} {issue number(s)}: {readable description} + ({credits}) + + note that the `{credits}` should be on their own line, aligned with the + issue number for readability + (`{readable description}` can be multiline to not overflow 80 + columns, and should be aligned with the issue number as well.) + +This changelog can be included in the main commit, if the merge +request is just one patch, or as a separate commit, if it's +a patch series and no particular commit feels best suited to +receive the Changelog entry. + +(Do not under-estimate the importance of a good changelog. Users do + read the release notes, and things forgotten from the changelog + will cause pain or regrets down the line.) + + +## Clean patch series + +Clean patch series are useful, both during the review process and +for code maintenance after it has been merged. Before submitting +your request, you should rebase your patch series: + +- on top of the OCaml branch in which you want to merge + (usually `trunk`), solving any conflicts. + +- into a few well-separated, self-contained patches (github PRs + can generate gazillions of micro-changes) + +- erasing history that does not make sense after the issue is merged + (back-and-forth between different designs, etc. The PR number + allows interested people to go back to the original discussion if + needed.) + +- bisectable: the distribution should be in a good state after + the application of each patch (in particular, later commits that + fix bugs in previous commits should always be squashed into the commit + they fix) + +- with readable commit messages (this is for future developers + needing to understand a change that happened in the past). Commit + messages should not overflow 80 columns, with the following format: + + {one-liner header description (with issue number if applicable)} + {blank line} + {one or several paragraphs of explanation if needed} + +During review, you may make many other changes to the patch +series. You can rebase it on the fly (if you `git push -f` on the +branch of the pull request in your personal clone, Github will +update the pull request automatically; remember to always create +a new branch for any) or wait until the discussion has converged, +once we agree the request is ready for merging. Doing a good +rebase is grunt work that takes some time and care (use `git +log -u` to make sure the rebase patches make sense), but: + +- It is easier and faster to do for the author of the patch than + for others (if rebasing against the current trunk creates + a conflict with another change you don't understand well, feel + free to ask). + +- Maintainers are usually short on time, and asking them to do + a rebase means they have less time to review and merge other + contributions. + +- The long-term benefits of keeping a clean, bisectable history + cannot be overstated. Imagine that in three years, under the + pressure of a coming release, a contributor ends up somewhere in + the middle of your patch series, wondering if or why it is the + cause of a specific issue. Wasting his or her time then + (with a "yolo" commit message, a big ugly commit of unrelated + changes, or an un-testable intermediary state) is a sure way to + generate ill will. + +## Contributing to the standard library + +Contributions to the standard library are very welcome. +See the dedicated [stdlib/CONTRIBUTING.md](stdlib/CONTRIBUTING.md) +for more information. + +## Contributing optimizations + +Contributions to improve the compiler's optimization capabilities are +welcome. However, due to the potential risks involved with such +changes, we ask the following of contributors when submitting pull +requests: + + - Explain the benefits of the optimization (faster code, smaller + code, improved cache behaviour, lower power consumption, increased + compilation speed). + + - Explain when the optimization does and does not apply. + + - Explain when, if ever, the optimization may be detrimental. + + - Provide benchmark measurements to justify the expected + benefits. Measurements should ideally include experiments with + full-scale applications as well as with microbenchmarks. Which + kinds of measurements are appropriate will vary depending on the + optimization; some optimizations may have to be measured indirectly + (for example, by measuring cache misses for a code size + optimization). Measurements showing clear benefits when combined + with some other optimization/change are acceptable. + + - At least some of the measurements provided should be from + experiments on open source code. + + - If assistance is sought with benchmarking then this should be made + clear on the initial pull request submission. + + - Justify the correctness of the optimization, and discuss a testing + strategy to ensure that it does not introduce bugs. The use of + formal methods to increase confidence is encouraged. + +A major criterion in assessing whether to include an optimisation in +the compiler is the balance between the increased complexity of the +compiler code and the expected benefits of the benchmark. Contributors +are asked to bear this in mind when making submissions. + +## Collective maintenance + +Proposing changes to the OCaml compiler contribution generates +"maintenance work" for other people. Maintenance work includes, for +example: + +- reviewing Pull Requests or language change proposals, + +- considering change suggestions and giving feedback to turn them into + actionable issues, + +- implementing bug fixes or feature requests of general interest, + +- improving the documentation of the tools or other usability aspects, + +- or documenting or clarifying the codebase to preserve and improve + our ability to change it in the future. + +Doing this collective maintenance work is a selfless task, and we +typically have much fewer people willing to to do it than people +willing to submit new language features or generally evolve the +codebase for their own specific needs. Without a collective effort to +participate, we end up with a handful of people doing the vast +majority of this collective maintenance work. This is exhausting, does +not scale, and slows down the pace of improvement of the compiler +distribution. + +To keep a healthy open source project, we need the total maintenance +work performed by all contributors to scale proportionally with the +total demand for maintenance work they generate. This can only work if +as many contributors as possible perform some (possibly small) amount of +maintenance work: collective maintenance. One could use the metaphor +of a shared house: things work well when most people, not just a few +people, participate to the house chores. + +If your contributions generate maintenance work for others -- in +particular, if you spend a substantial effort working on a change to +the language or compiler codebase meant to be eventually proposed +upstream -- we expect that you will spend a fraction of your +contribution time on maintenance tasks, typically on the parts of the +compiler codebase that you are already working on. This approach is +good for the project, and also for you: helping maintain the codebase +will improve the quality of your own contributions, and the social +ties created by infrequent collaboration with other contributors will +be useful when submitting your own work. + +Note: we have been asked whether groups of contributors could balance +maintenance work at the level of the whole group, rather than +individual contributors -- for example a company where some frequent +OCaml contributors would do less maintenance and others would do more +to compensate. Yes, that sounds reasonable, but also harder to balance +than encouraging everyone to play nice individually. + +## Contributor License Agreement + +We distinguish two kind of contributions: + +- Small changes that do not bear a specific mark of their authors + (another developer recreating the change without access to the + original patch would write an indistinguishable patch), and are thus + not protected by copyright, do not require any particular + paperwork. This is convenient for everyone, and of course does not + mean that those contributions are of lesser importance. (For example + a bugfix can be obvious once a bug is understood, reported and + reproduced, and yet invaluable for users.) + +- Larger changes that are covered by copyright. For them, we require + contributors to sign a Contributor License Agreement (CLA), which + gives [INRIA](http://www.inria.fr/en/) (Institut National de + Recherche en Informatique et en Automatique) the rights to integrate + the contribution, maintain it, evolve it, and redistribute it under + the license of its choice. This is not a copyright *assignment* + (as requested by the Free Software Foundation for example), + contributors retain the copyright on their contribution, and can use + it as they see fit. The OCaml CLA is lightly adapted from [the + CLA](https://apache.org/licenses/icla.pdf) of the Apache + Foundation, and is available in two versions: [for individual + contributors](http://caml.inria.fr/pub/docs/CLA-individual.doc) and + [for corporations](http://caml.inria.fr/pub/docs/CLA-corporate.doc). + +You must understand that, by proposing a contribution for integration +in the OCaml distribution, you accept that it be considered under one +of those regimes. In particular, in all cases you give INRIA the +permission to freely re-license the OCaml distribution including the +contribution. + +This ability to re-license allows INRIA to provide members of the +[Caml Consortium](http://caml.inria.fr/consortium/) with a license on +the Caml code base that is more permissive than the public license. + +### How to sign the CLA + +If your contribution is large enough, you should sign the CLA. If you +are contributing on your own behalf, you should sign [the individual +CLA](http://caml.inria.fr/pub/docs/CLA-individual.doc). For corporate +contributions, if your employer has not already done so, they should +sign [the corporate +CLA](http://caml.inria.fr/pub/docs/CLA-corporate.doc). Review the CLA, +sign it, and send it -- scanned PDF by email, or postail mail -- to +Xavier Leroy ([contact +info](http://gallium.inria.fr/%7Exleroy/contact.html)). diff --git a/Changes b/Changes index e7fdc9847eaa..6ca6b94e7eba 100644 --- a/Changes +++ b/Changes @@ -1,246 +1,12038 @@ -OCaml 4.02.3: -------------- +Working version +---------------- + +(Changes that can break existing programs are marked with a "*") + +### Language features: + +### Runtime system: + +### Code generation and optimizations: + +### Standard library: + +### Other libraries: + +### Tools: + +### Manual and documentation: + +### Compiler user-interface and warnings: + +### Internal/compiler-libs changes: + +### Build system: + +### Bug fixes: + + +OCaml 5.4.0 +--------------- + +(Changes that can break existing programs are marked with a "*") + +### Language features: + +- #13340: Array literal syntax can now be used to denote values of type `'a + array` and `floatarray`, both in expressions and patterns. The compiler + disambiguates each case by using contextual type information (assuming `'a + array` by default). + (Nicolás Ojeda Bär, review by Richard Eisenberg, Jeremy Yallop, Jacques + Garrigue, and Gabriel Scherer) +- #13097: Immutable arrays + (Antal Spector-Zabusky and Olivier Nicole, review by Gabriel Scherer, + Jeremy Yallop and Vincent Laviron) + +- #13498: Tuple fields are now optionally labeled. + (Ryan Tjoa and Chris Casinghino, review by Gabriel Scherer, Chris Casinghino, + and Leo White) + +### Runtime system: + +- #13819: Fix field initialisation bug in runtime events subsystem. + (Nick Barnes, review by Gabriel Scherer). + +- #13785: Add `Runtime_events.Timestamp.get_current`. + (Simon Cruanes) + +- #13774: Fix for inaccurate live blocks/words stats in compaction. + (Sadiq Jaffer, report by KC Sivaramakrishnan and Jan Midtgaard, review by + Gabriel Scherer) + +- #13773: Ensure that shared pool owners are correctly set on pool adoption. + (Stephen Dolan, review by Sadiq Jaffer and Gabriel Scherer) + +* #11449, #13497: Add caml_stat_char_array_{to,of}_os functions allowing + conversion of string data which may contain NUL characters. Correct + implementation of caml_stat_strdup_to_utf16 to raise Out_of_memory instead of + returning of NULL (the behaviour of caml_stat_strdup_to_os was inconsistent + between Unix/Windows). + (David Allsopp, review by Nick Barnes, Antonin Décimo and Miod Vallat) + +- #13352: Concurrency refactors and cleanups. + (Antonin Décimo, review by Gabriel Scherer, David Allsopp, and Miod Vallat) + +- #13437: Stop using GetProcAddress to load functions that were not + available in older, now unsupported Windows versions. + (Antonin Décimo, review by Nicolás Ojeda Bär and David Allsopp) + +- #13470: Constify some function parameters, flags tables, and some + pointers in C code (take 3). + (Antonin Décimo, review by Stephen Dolan and Miod Vallat) + +- #13492: Parse the CAML_LD_LIBRARY_PATH environment variable for the + shared_libs_path item in `ocamlrun -config` in addition to displaying the + entries found in ld.conf. + (David Allsopp, review by Stephen Dolan) + +- #13496: Add missing .type and .size directives to main frametable to silence + warnings from the linker when using libasmrun_shared on amd64 and power. The + other backends already carried these directives. + (David Allsopp, review by Tim McGilchrist and Miod Vallat) + +- #13500: Add frame pointers support for ARM64 on Linux and macOS. + (Tim McGilchrist, review by KC Sivaramakrishnan, Fabrice Buoro + and Miod Vallat) + +- #12964: Reintroduce "memory cleanup upon exit" mode. The cleanup will + however be incomplete if not all domains have been joined when the main + domain terminates. + (Miod Vallat, review by KC Sivaramakrishnan, feedback from Nick Barnes + and Gabriel Scherer) + +- #13354: Use C99 flexible array member syntax everywhere. + (Antonin Décimo, review by Miod Vallat, Gabriel Scherer, and Xavier Leroy) + +- #11865, #13584: Fix a deadlock triggered by deleting C roots from C finalisers + (Stephen Dolan, report by Timothy Bourke, review by Mark Shinwell and Damien + Doligez) + +- #13613: Functions from caml/skiplist.h and caml/lf_skiplist.h no longer raise + Out_of_memory exceptions that the runtime could not handle. + (Guillaume Munch-Maccagnoni, review by Stephen Dolan) + +- #13575, #13635: Maintain OCaml frame pointers correctly even when using + C libraries that do not support them. + (Stephen Dolan and David Allsopp, report by Thomas Leonard, review by Tim + McGilchrist and Fabrice Buoro) + +- #13643: Allow values reachable from ephemeron keys to be collected by minor GC + (Stephen Dolan, review by François Bobot) + +- #13701: optimize `caml_continuation_use` based on #12735 + (Hugo Heuzard, review by KC Sivaramakrishnan) + +- #13227, #13714: Review of locking in the multicore runtime. Fix + deadlocks in runtime events and potential deadlocks with named + values. + (Guillaume Munch-Maccagnoni, review by Gabriel Scherer, tests by + Jan Midtgaard) + +- #13736: Fix major GC pacing bug triggered by synchronous collections. + (Nick Barnes, review by Damien Doligez and Tim McGilchrist) + +- #13582: Enable software prefetching support for ARM64, s390x, PPC64 and RiscV. + Used during GC marking and sweeping to speed up both operations by + prefetching data. + (Tim McGilchrist, review by Nick Barnes, Antonin Décimo, + Stephen Dolan and Miod Vallat) + +- #13827: Avoid re-marking ephemerons with trivial data. + (Stephen Dolan, review by Nick Barnes and Josh Berdine, benchmarking by + Nicolás Ojeda Bär) + +- #13300, #13861: introduce `Gc.ramp_up` to explicitly mark ramp-up + phases of memory consumption and avoid GC overwork. Ramp-up behaviors + are worse with OCaml 5 than with OCaml 4 due to higher sensitivity + to excessive pacing computations. Indicating ramp-up explicitly eliminates + the main known slowdown of OCaml 5 (relative to OCaml 4) for Coq/Rocq. + (Gabriel Scherer, review by Damien Doligez and Guillaume Munch-Maccagnoni, + report by Emilio Jesús Gallego Arias and Olivier Nicole) + +### Code generation and optimizations: + +* #13050: Use '$' instead of '.' to separate module names in symbol names. + This changes mangling of OCaml identifiers from + `camlModule.name_NNN` to `camlModule$name_NNN`. Additionally it + changes the encoding of special characters from $xx (two hex digits) + to $$xx (two dollar signs followed by two hex digits). + Mangled names are now consistent across all platforms. + (Tim McGilchrist, with contributions from Xavier Leroy, + reviewed by Xavier Leroy, Miod Vallat, Gabriel Scherer, + Nick Barnes and Hugo Heuzard) + +- #13565: less tagging in switches compiled to affine transformations + by ocamlopt. + (Gabriel Scherer and Clément Allain, review by Vincent Laviron, + report by Vesa Karvonen) + +- #13672 Avoid register stall on conversion instructions on amd64. + (Pierre Chambart, review by Gabriel Scherer and Xavier Leroy, + report by Patrick Nicodemus) + +- #13667: (originally #11162) Fix instr_size computation on arm64. + (Stephen Dolan and Tim McGilchrist, review by Xavier Leroy + and David Allsopp) + +- #13758: Propagate more value kinds in Flambda to allow more unboxing + (Vincent Laviron, review by Pierre Chambart) + +- #13759: Propagate more type information from clambda to cmm. + (Pierre Chambart, review by Gabriel Scherer) + +- #13735: Follow the behaviour of the C compiler to decide whether to emit the + `.size` and `.type` directives and the `.note.GNU-stack` section + (Samuel Hym, review by Miod Vallat, Antonin Décimo and Gabriel Scherer) + +- #13807: Allow unaligned memory accesses on ARM64. (Matthew Else, review by + Xavier Leroy) + +### Standard library: + +* #13862: Make List.sort_uniq keep the first occurrences of duplicates. + (Benoît Jubin, review by Nicolás Ojeda Bär, Gabriel Scherer) + +- #13720: Add Result.{get_ok',error_to_failure} + (Daniel Bünzli, review by wikku, Gabriel Scherer, Nicolás Ojeda Bär, + Vincent Laviron and hirrolot) + +- #13696: Add Result.product and Result.Syntax. + (Daniel Bünzli, review by Gabriel Scherer, Nicolás Ojeda Bär) + +- #13885: Add Dynarray.{exists2, for_all2}. + (T. Kinsart, review by Daniel Bünzli, Gabriel Scherer, and Nicolás Ojeda Bär) + +- #13836: Add [Float.]Array.{equal,compare}. + (Daniel Bünzli, review by Nicolás Ojeda Bär and Gabriel Scherer) + +- #13796: Add Uchar.utf_8_decode_length_of_byte and + Uchar.max_utf_8_decode_length. + (Daniel Bünzli, review by Nicolás Ojeda Bär and Florian Angeletti) + +- #12871: Add the Pqueue module to the stdlib. It implements priority queues. + (Jean-Christophe Filliâtre, review by Daniel Bünzli, Léo Andrès and + Gabriel Scherer) + +- #13760: Add String.{edit_distance,spellcheck} + (Daniel Bünzli, review by wikku, Nicolás Ojeda Bär, Gabriel Scherer and + Florian Angeletti) + +- #13768: Add Either.get_left and Either.get_right + (T. Kinsart, review by Nicolás Ojeda Bär and Florian Angeletti) + +- #13570, #13794: Format, add an out_width function to Format device for + approximating unicode width. + (Florian Angeletti, review by Nicolás Ojeda Bär, Daniel Bünzli, + and Gabriel Scherer) + +- #13753 #13755: Add Stdlib.Repr + (Kate Deplaix, Thomas Blanc and Léo Andrès, review by Gabriel Scherer, + Florian Angeletti, Nicolás Ojeda Bär, Daniel Bünzli and Jeremy Yallop) + +- #13731: Add Either.retract + (Daniel Bünzli, review by Nicolás Ojeda Bär and David Allsopp) + +- #13729: Add Seq.filteri + (T. Kinsart, review by Nicolás Ojeda Bär and Daniel Bünzli) + +- #13721: Add Result.retract + (Daniel Bünzli, review by Gabriel Scherer, Nicolás Ojeda Bär and + David Allsopp) + +- #13695: Add Stdlib.Char.Ascii + (Daniel Bünzli, review by by Nicolás Ojeda Bär and Jeremy Yallop) + +- #13310: Add Stdlib.Pair + (Victoire Noizet, review by Nicolás Ojeda Bär, Daniel Bünzli, Xavier Van de + Woestyne, Jeremy Yallop and Florian Angeletti) + +- #13662: Add eager boolean operations Bool.logand, Bool.logor, Bool.logxor + (Jeremy Yallop, review by Nicolás Ojeda Bär) + +- #13463, #13572: Avoid Queue.empty to be raised by Format when used + concurrently. prefer undefined behavior to uncaught exception. + (Chritophe Raffalli, review by Gabriel Scherer and Daniel Bünzli) + +- #13620: Avoid copying the string in String.concat, String.sub and + String.split_on_char when the full string is returned. + (Christophe Raffalli, review by Nicolás Ojeda Bär and Gabriel Scherer and + Hugo Heuzard) + +- #13727: Reimplement Sys.getenv_opt not to use exceptions internally, meaning + that the current backtrace is preserved when Sys.getenv_opt returns None. + (David Allsopp, review by Nicolás Ojeda Bär, Josh Berdine and Gabriel Scherer) + +- #13737: Avoid closure allocations in Weak.Make.add when resizing the + table + (Vincent Laviron, review by Gabriel Scherer and Daniel Bünzli) + +- #13740: Improve performance of Weak.find_aux + (Josh Berdine, review by Gabriel Scherer) + +- #13782: Improve performance and type safety of Type.Id by using + [%extension_constructor] instead of Obj.Extension_constructor.of_val. + (Basile Clément, review by Vincent Laviron and Nicolás Ojeda Bär) + +- #13589: Expose Sys.io_buffer_size, the size of internal buffers used by the + runtime system and the `unix` library. + (Yves Ndiaye and Nicolás Ojeda Bär, review by Daniel Bünzli and Nicolás Ojeda + Bär) + +- #13569: add a `Format.format_text` which adds break hints to format literals. + (Florian Angeletti, review by Nicolás Ojeda Bär, Daniel Bünzli, + and Gabriel Scherer) + +- #13578: On Windows, use the OS CSPRNG to seed the Stdlib.Random generator. + (Antonin Décimo, review by Miod Vallat, Nicolás Ojeda Bär, and Xavier Leroy) + +- #13859: Fix Weak.get_copy not darkening custom blocks + (Josh Berdine, review by Stephen Dolan) + +- #13932: Add List.singleton and Seq.singleton + (David Allsopp, tariffs applied by Nicolás Ojeda Bär and Gabriel Scherer) + +* #13843: Add signal definitions for SIGIO and SIGWINCH. Introduces a + type alias for signal int, signal_to_string to convert OCaml signal numbers + to their POSIX equivalent names, and signal_of_int/signal_to_int for + converting between OCaml and platform signal numbers. (Reported in #13825) + (Tim McGilchrist, review by David Allsopp, Nicolás Ojeda Bär, Daniel Bünzli + Jan Midtgaard and Miod Vallat) + +### Other libraries: + +* #13376: Allow Dynlink.loadfile_private to load bytecode libraries with + internal dependencies + (Vincent Laviron, report by Stéphane Glondu, review by Nicolás Ojeda Bär + and Xavier Leroy) + +- #13429: add `Unix.sigwait`, a binding to the `sigwait` system call; + implement `Thread.wait_signal` using `Unix.sigwait`, and + `Thread.sigmask` using `Unix.sigprocmask`. + (Xavier Leroy, review by Antonin Décimo, Gabriel Scherer, Miod Vallat) + +- #13442, #13452: Fix Unix.getgroups for users belonging to more than 32 groups + when using musl + (Kate Deplaix, review by Gabriel Scherer, Antonin Décimo, Anil Madhavapeddy) + +* #13435: On Windows, use system calls for `Filename.get_temp_dir_name` instead + of directly reading the environment, which in particular improves the security + of OCaml processes running in the SYSTEM security context by mitigating + privileged file operation attacks. For all other processes running with the + default environment (where `TEMP` is set), there is no discernible change. + (Antonin Décimo, review by Nicolás Ojeda Bär and David Allsopp) + +- #13504, #13625: Add `Thread.set_current_thread_name`. + (Romain Beauxis, review by Gabriel Scherer and Antonin Décimo) + +- #13576: Introduce internal helpers to convert between time representations. + On Windows, prevent erroneously waiting for an unbounded time in Unix.select + if more than 64 file descriptors per lists are watched, or if watching + non-socket file descriptors, and a timeout longer than $2^{32}$ milliseconds + is used. Cap the timeout to $2^{32}$ milliseconds. + (Antonin Décimo, review by Gabriel Scherer and Miod Vallat) + +### Tools: + +- #12019: ocamlc: add `align_double` and `align_int64` to `ocamlc -config` + output. + (Romain Beauxis, review by David Allsopp) + +- #12642, #13536: in the toplevel, print shorter paths for constructors + and labels when only some modules along their path are open. + (Gabriel Scherer, review by Florian Angeletti) + +- #13686: Fix Python debugger extensions (for LLDB and GDB) to restore + functionality broken by #13272. + (Nick Barnes, review by Tim McGilchrist Gabriel Scherer) + +- #13199, #13485, #13665, #13762, #13965: Support running native debuggers in + ocamltest. + (Tim McGilchrist, Sebastien Hinderer, David Allsopp, Antonin Décimo, review by + Sebastien Hinderer, Gabriel Scherer, Antonin Décimo, and Tim McGilchrist) + +- #13764, #13779: add missing "-keywords" flag to ocamldep and ocamlprof + (Florian Angeletti, report by Prashanth Mundkur, review by Gabriel Scherer) + +- #13877: ocamldoc, add a `-latex-escape-underscore` flag to control the + escaping of `_` underscore in latex references (in order to be able to match + odoc behaviour). + (Florian Angeletti, review by Gabriel Scherer) + +- #13906: Add support for a `multicore` tag in ocamltest and use it for + tests that fail on mono-core systems. + (Stéphane Glondu, review by Nicolás Ojeda Bär) + +### Manual and documentation: + +- #13694: Fix name for caml_hash_variant in the C interface. + (Michael Hendricks) + +- #13732: Document that custom finalizers must not access the OCaml heap, etc. + (Josh Berdine, review by Stephen Dolan and Guillaume Munch-Maccagnoni) + +- #12452: Add examples to Stdlib.Fun documentation. + (Hazem ElMasry, review by Florian Angeletti and Gabriel Scherer) + +- #13924: Document how to put [@deprecated] on let bindings, constructors, etc + in the manual + (Valentin Gatien-Baron, review by Florian Angeletti) + +- #13751: Document support for profiling with Linux perf and frame pointers. + (Tim McGilchrist, review by Gabriel Scherer and Miod Vallat) + +### Compiler user-interface and warnings: + +- #13428: support dump=[source | parsetree | lambda | ... | cmm | ...] + in OCAMLRUNPARAM + (Gabriel Scherer, review by Vincent Laviron) + +- #13493: Clearer error message in ocamlc for conflicting link options for + C stubs when shared libraries are not available. + (David Allsopp, review by Gabriel Scherer) + +- #13563, lighter inline code styling for output without bold support: inline + code is no longer printed as "..." to avoid confusion with OCaml strings. + (Florian Angeletti, review by Richard Eisenberg) + +- #13568, composable formatting for warning and alert messages + (Florian Angeletti, review by Richard Eisenberg) + +- #13587: Enable native backend on x86_64 GNU/Hurd. + (Samuel Thibault, review by Antonin Décimo, Sébastien Hinderer and Miod + Vallat) + +- #13601: Enable natdynlink on x86_64 GNU/Hurd + (Samuel Thibault, review by Sébastien Hinderer) + +- #13663: Improve the error message when GADT parameter variance cannot be + checked. + (Stefan Muenzel, review by Gabriel Scherer and Florian Angeletti) + +- #13646: Improve the error messages when a recursive module type + references another recursive module type. + (Stefan Muenzel, review by Florian Angeletti and Gabriel Scherer) + +- #13702, #13865: Specialized error messages for functors appearing in contexts + where non-functors were expected `module A: sig ... end = Set.Make` + (and the reverse) + (Florian Angeletti, report by Jeremy Yallop, review by Gabriel Scherer) + +- #13788, #13813: Keep the module context in spellchecking hints. + `Fun.protact` now prompts `Did you mean "Fun.protect?"` rather than + `Did you mean "protect?"`. + (Florian Angeletti, suggestion by Daniel Bünzli, review by Gabriel Scherer) + +- #13809: Distinguish `(module M : S)` and `(module M) : (module S)` and + change locations of error messages when `S` is ill-typed in `(module S)` + (Samuel Vivien, review by Florian Angeletti and Gabriel Scherer) + +- #13814, 13898: Add an `unused-type-declaration` when using a `t as 'a` with + no other occurences of `'a` + (Samuel Vivien, review by Florian Angeletti, Kate Deplaix) + +- #13817: align spellchecking hints with the possibly misspelled identifier/ + Error: Unbound type constructor "aray" + Hint: Did you mean "array"? + (Florian Angeletti, suggestion by Daniel Bünzli, review by Gabriel Scherer) + +- #13818: better delimited hints in error message + (Florian Angeletti, review by Gabriel Scherer) + +### Internal/compiler-libs changes: + +- #13314: Comment the code of Translclass + (Vincent Laviron and Nathanaëlle Courant, review by Olivier Nicole) + +- #13362: reimplement Floatarray.concat in C (`caml_floatarray_concat`), + matching the implementation of Array.concat. + (Gabriel Scherer, review by Nicolás Ojeda Bär) + +- #13624: Added location to exception definitions and type extensions + (Samuel Vivien, review by Gabriel Scherer) + +- #13425: undocumented -dmatchcomp flag for the debug + output of the pattern-matching compiler + (Gabriel Scherer, review by Vincent Laviron and Nicolás Ojeda Bär) + +- #13460: introduce a variant of all predefined types + (Gabriel Scherer, review by Ulysse Gérard and Florian Angeletti) + +- #13457, #13537: Annotate alloc/free open/close pairs of functions + with compiler attributes for static analysis. + (Antonin Décimo, review by Gabriel Scherer and Florian Angeletti) + +- #13464: Use generic types in call to `subtype`. This improves + inference of type-directed disambiguation in principal mode. + (Richard Eisenberg, review by Jacques Garrigue) + +- #13539, #13776: Use nanosleep instead of usleep or select, if available. + (Antonin Décimo, review by Miod Vallat and Gabriel Scherer) + +- #13606: Fix Numbers.Int_base.compare + (Mark Shinwell, review by Vincent Laviron) + +- #13612: Refactor `type_application` + (Ulysse Gérard, Leo White, review by Antonin Décimo, Gabriel Scherer, + Samuel Vivien, Florian Angeletti and Jacques Garrigue) + +- #13748: Add a .editorconfig file for basic editor auto-configuration. + (Antonin Décimo, review by Gabriel Scherer and David Allsopp) + +- #13744: Refactor in `collect_apply_args` + (Samuel Vivien, review by Florian Angeletti and Gabriel Scherer) + +- #13787: a new -dcanonical-ids option to show canonicalized identifier stamps + in -d{lambda,cmm,...} outputs. + (Gabriel Scherer, review by Vincent Laviron and David Allsopp, + suggested by David Allsopp) + +- #13302: Store locations of longidents components + (Ulysse Gérard and Jules Aguillon, review by Jules Aguillon + and Florian Angeletti) + +- #13820: Add a new option -i-variance to print the variance of every + type parameter; bivariance is printed as `+-`, and for consistency, + parser is modified too to accept `+-` and `-+` as `type_variance`. + (Takafumi Saikawa and Jacques Garrigue, review by Florian Angeletti) + +- #13828: Apply BUILD_PATH_PREFIX_MAP to Sys.argv.(0) before storing it in .cmt + and .cmti files. + (David Allsopp, review by Daniel Bünzli and Gabriel Scherer) + +- #13848: Add all paths components to the cmt files indexes + (Ulysse Gérard, review by Florian Angeletti) + +- #13854: Make the parser set loc_ghost more correctly, for `keyword%extension` + syntax + (Valentin Gatien-Baron, review by Florian Angeletti) + +- #13856: Add a new indirection in types AST called `package` that stores the + content of a `Tpackage` node + (Samuel Vivien, review by Florian Angeletti) + +- #13866: Modified occurence check that prevents recursive types for it to see + the checked type as a graph rather than a tree + (Samuel Vivien, report by Didier Remy, review by Florian Angeletti + and Jacques Garrigue) + +- #13884 Correctly index modules in constructors and labels paths + (Ulysse Gérard, review by Florian Angeletti) + +- #13952: check and document the correctness of `caml_domain_alone ()`. + (Gabriel Scherer, review by KC Sivaramakrishnan, report by Olivier Nicole) + +- #13971 Keep generalized structure from patterns when typing `let` + (Leo White, review by Samuel Vivien and Florian Angeletti) + +### Build system: + +- #13431: Simplify github action responsible for flagging PRs with + the `parsetree-changes` label and extend it to mention the @ppxlib-dev + team. + (Nathan Rebours, review by Florian Angeletti) + +- #13494: Use native symlinks on Windows for the OCaml installation, reducing + disk usage considerably. + (David Allsopp, review by Nicolás Ojeda Bär and Gabriel Scherer) + +* #13526, #13789, #13804: Simplify the build of cross compilers + This replaces the configure `--with-target-bindir` option by an equivalent + `TARGET_BINDIR` variable + (Samuel Hym, review by Miod Vallat, Xavier Leroy, Antonin Décimo and Sébastien + Hinderer) + +- #13789: Strictly validate the host and target triplets when building for the + Windows ports to be *-*-cygwin, *-w64-mingw32* or *-pc-windows. Other Cygwin + variants used to be rejected - other MSVC and mingw-w64 variants are now + rejected too. + (David Allsopp, review by Antonin Décimo and Gabriel Scherer) + +### Bug fixes: + +- #13977: Pass `-fPIC` when compiling C files using `ocamlopt`. This was a + regression in OCaml 5.3. + (Nicolás Ojeda Bär, review by Daniel Bünzli and Gabriel Scherer) + +- #13957: Allow 'effect' as attribute id. + (Pieter Goetschalckx, review by Nicolás Ojeda Bär and Florian Angeletti) + +- #13691 #13895: Make four globals underlying Gc.control atomic to avoid C data + races against them. + (Jan Midtgaard, review by Miod Vallat, Sadiq Jaffer and Antonin Décimo) + +- #13454: Output a correct trace of the C_CALLN bytecode. + (Miod Vallat, review by Antonin Décimo) + +- #13595: Use x19 as Canonical Frame Address (CFA) register. This would cause + backtraces to be truncated when calling no alloc C code. + (Tim McGilchrist, report by Nick Barnes, review by Nick Barnes) + +* #13605: Fix ungenerated constraints when they where impossible due to polyvars + issues + (Samuel Vivien, review by Florian Angeletti, Richard Eisenberg + and Jacques Garrigue) + +- #13677, #13679: domain.c: remove backup_thread_running to simplify + concurrent state updates to the backup thread status. + (Gabriel Scherer, review by Jan Midtgaard and Miod Vallat, + report by Jan Midtgaard) + +- #13703: wrong explanation for some polymorphic-variant subtyping errors + (Gabriel Scherer, review by Jacques Garrigue, + report by Wiktor Kuchta and Richard Eisenberg) + +- #13710: Support unicode identifiers in comments. + (Pieter Goetschalckx, review by Florian Angeletti and Gabriel Scherer) + +- #13763: Track type of variables bound by as-patterns + (Leo White, review by Gabriel Scherer, port by Vincent Laviron) + +- #13778, #13811: do not warn for unused type declarations when the type is used + in a first-class module type (`module S with type t = int)`. + (Florian Angeletti, report by Nicolás Ojeda Bär, review by Gabriel Scherer) + +- #13790: Fix bytecode-only build of Cygwin when flexlink is being bootstrapped + with the compiler. + (David Allsopp, review by Antonin Décimo and Miod Vallat) + +- #13812: Add forgotten check about the validity of the type variable name on + the right-hand side of `_ as _`. + (Samuel Vivien, review by Gabriel Scherer) + +- #13845: Fix bug in untypeast/pprintast for value bindings with polymorphic + type annotations. + (Chris Casinghino, review by Florian Angeletti and Gabriel Scherer) + +- #13930, #13933: Fix bugs in recursive values definitions involving + lazy values that have already been evaluated. + (Gabriel Scherer, review by Vincent Laviron, report by Vincent Laviron) + +- #13867: Fix bug with some recursive bindings of lazy values. + (Guillaume Bury and Vincent Laviron, review by Stefan Muenzel + and Gabriel Scherer) + +- #13931: fix bugs in nested recursive value definitions. + (Gabriel Scherer, review by Vincent Laviron, + report by Vincent Laviron) + +- #13875, #13878: Add dedicated constructor for mutable variable access in + Cmm to prevent bugs linked to incorrect handling of coeffects. + (Vincent Laviron, review by Gabriel Scherer) + +- #13880: Make object stat counters atomic + (Dimitris Mostrous, review by Gabriel Scherer and Nicolás Ojeda Bär) + +- #13172, #13829: Fix a missing check of illegal recursive module-type + definitions + (Clement Blaudeau, review by Florian Angeletti) + +* #13874, #13882: Make evaluation order consistent for applications when using + the non-flambda native compiler + (Vincent Laviron, report by Jean-Marie Madiot, review by Gabriel Scherer) + +- #13942: Fix assertion on empty array case + (Olivier Nicole, review by Gabriel Scherer) + +- #13950: Avoid tearing in `Array.sub` + (Gabriel Scherer and Olivier Nicole, report by Jan Midtgaard, review by + Gabriel Scherer) + +- #13928, #13944: Fix handling of excessively nested unboxed types + (Vincent Laviron, review by Gabriel Scherer) + +OCaml 5.3.0 (8 January 2025) +---------------------------- + +(Changes that can break existing programs are marked with a "*") + +### Restored backend: + +- #12954: Restore the MSVC port + (David Allsopp, Antonin Décimo, Samuel Hym, and Miod Vallat, review by Nicolás + Ojeda Bär) + +- #13093: Allow building the MSVC port with clang-cl. + (Antonin Décimo, review by Nicolás Ojeda Bär, Samuel Hym, + David Allsopp and Sébastien Hinderer) + +### Language features: + +- #12828, #13283: Add short syntax for dependent functor types `(X:A) -> ...` + (Jeremy Yallop, review by Nicolás Ojeda Bär and Gabriel Scherer) + +- #12309, #13158: Add syntax support for deep effect handlers + (Leo White, Tom Kelly, Anil Madhavapeddy, KC Sivaramakrishnan, Xavier Leroy + and Florian Angeletti, review by the same, Hugo Heuzard, and Ulysse Gérard) + +- #11736, #12664, #13628: Support utf-8 encoded source files and latin-9 + compatible identifiers. + (Xavier Leroy and Florian Angeletti, review by Daniel Bünzli and + Jules Aguillon) + +### Type system + +- #11891, #12507: Allow to name new locally abstract types in constructor type + annotations. + (Jacques Garrigue, report and review by Gabriel Scherer and Florian Angeletti) + +### Runtime system: + +- #13419: Fix memory bugs in runtime events system. + (B. Szilvasy and Nick Barnes, review by Miod Vallat, Nick Barnes, + Tim McGilchrist, and Gabriel Scherer) + +- #13364: Emit major slice counters in the runtime events. + (KC Sivaramakrishnan and Sadiq Jaffer, review by Gabriel Scherer) + +- #13382: Add more documentation for Runtime_events types + (Sadiq Jaffer, review by Tim McGilchrist, Miod Vallat and KC Sivaramakrishnan) + +- #13370: Fix a low-probability crash when calling Gc.counters. + (Demi Marie Obenour, review by Gabriel Scherer) + +- #13272: Allow maximum number of domains to be specified as a OCAMLRUNPARAM + parameter. + (KC Sivaramakrishnan, review by Guillaume Munch-Maccagnoni, Miod Vallat, + Gabriel Scherer, David Allsopp, request by Zachary Yedidia). + +- #11911, #12923: Multicore statistical memory profiling. + This restores a notable OCaml 4 feature that was missing + in OCaml 5. + (Nick Barnes, review by Stephen Dolan, Jacques-Henri Jourdan + and Guillaume Munch-Maccagnoni). + +- #12579: OS-based Synchronisation for Stop-the-World Sections + (B. Szilvasy, review by Miod Vallat, Nick Barnes, Olivier Nicole, + Gabriel Scherer and Damien Doligez) + +- #12789: Restore caml_unregister_frametable from OCaml 4 + (Frédéric Recoules, review by Gabriel Scherer) + +- #13003: new, more consistent names for array-creation C functions + (Gabriel Scherer, review by Olivier Nicole) + +- #13013: introduce a `caml_result` type to supersede the + use of 'encoded exception values' in the FFI. + (Gabriel Scherer, review by Damien Doligez, + Guillaume Munch-Maccagnoni and Xavier Leroy, + suggested by Guillaume Munch-Maccagnoni) + +- #12407, #13226: Resource-handling improvements: add + exception-returning variants for all exception-raising functions in + `caml/fail.h`, for the purpose of cleaning-up state and resources + before raising. + (Guillaume Munch-Maccagnoni, review by Damien Doligez, Xavier Leroy + and Gabriel Scherer) + +- #13086: Avoid spurious major GC slices. + (Damien Doligez, report by Stephen Dolan, review by Gabriel Scherer + and Stephen Dolan) + +- #11779, #13117: Improve logic for fiber stack alignment. + (Miod Vallat, report by Damien Doligez, review by Gabriel Scherer) + +- #12839: Remove ATOMIC_UINTNAT_INIT from camlatomic.h (as part of a larger + cleanup of camlatomic.h) + (David Allsopp, review by Antonin Décimo, Sébastien Hinderer, Samuel Hym, + Guillaume Munch-Maccagnoni and Miod Vallat) + +- #13163: Enable frame pointers on macOS x86_64 + (Tim McGilchrist, review by Sébastien Hinderer and Fabrice Buoro) + +- #12951: Constify constructors and flags tables in C code (take 2). + Now these tables will go in the readonly segment, where they belong. + (Antonin Décimo, review by David Allsopp) + +- #10696: Introduce __has_attribute and __has_c_attributes in + to test the support of specific atributes in C + code. Introduce fallthrough as a wrapper around the fallthrough + attribute. + (Antonin Décimo, review by Nicolás Ojeda Bär, Xavier Leroy, and + Gabriel Scherer) + +- #13083: Use macros from limits.h to avoid signed-integer wrap-around. + Introduce CAML_{U,}INTNAT_{MIN,MAX} macros to expose {u,}intnat limits. + (Antonin Décimo, review by Nick Barnes, Xavier Leroy, Gabriel Scherer, + and Miod Vallat) + +- #13239: Check whether the compiler supports the labels as values + extension to enable threaded code interpretation. + (Antonin Décimo, review by Miod Vallat) + +- #13238: Enable software prefetching on x86 and x86_64 when building + with MSVC or clang-cl. + (Antonin Décimo, review by Miod Vallat) + +- #13241, #13261, #13271: Add CFI_SIGNAL_FRAME to ARM64 and RiscV runtimes, + for the purpose of displaying backtraces correctly in GDB. + (Tim McGilchrist, review by Miod Vallat, Gabriel Scherer and + KC Sivaramakrishnan) + +- #13139: Simplify CAMLalign to always use C23/C++11 alignas or C11 + _Alignas. Ensures that stat data is always aligned to the best + boundary. + (Antonin Décimo, review by Miod Vallat and Xavier Leroy) + +- #13280: Check for support of compiler attributes. Allows using + compiler attributes with clang-cl. + (Antonin Décimo, review by Miod Vallat) + +- #13243: Enable C compiler warnings internally when building with + clang-cl or MSVC. Provide fixes too. + (Antonin Décimo, review by Miod Vallat and Xavier Leroy) + +- #13242: Define and use unreachable and trap annotation, and clean-up some + runtime assertions. + (Antonin Décimo, review by Miod Vallat, Gabriel Scherer, and David Allsopp) + +- #13402, #13512, #13549, #13553: Revise bytecode implementation of callbacks + so that it no longer produces dangling registered bytecode fragments. + (Xavier Leroy, report by Jan Midtgaard, analysis by Stephen Dolan, + review by Miod Vallat) + +- #13407: Add Runtime_events.EV_EMPTY_MINOR. + (Thomas Leonard, review by KC Sivaramakrishnan, Sadiq Jaffer and + Gabriel Scherer) + +- #13522: Confirm runtime events ring is still active after callback. + (KC Sivaramakrishnan, review by Sadiq Jaffer and Miod Vallat) + +- #13529: Do not write to event ring after going out of stw participant set. + (KC Sivaramakrishnan, review by Sadiq Jaffer) + +### Code generation and optimizations: + +- #13014: Enable compile-time option -function-sections on all previously + unsupported native backends (POWER, riscv64 and s390x) + (Miod Vallat, review by Nicolás Ojeda Bär) + +- #7241, #12555, #13076, #13138, #13338, #13152, #13153, #13154: + fix a soundness bug in the pattern-matching compiler + when side-effects mutate the scrutinee during matching. + (Gabriel Scherer, review by Nick Roberts) + +- #13341: a warning when the pattern-matching compiler pessimizes code + because side-effects may mutate the scrutinee during + matching. (This warning is disabled by default, as this rarely + happens and its performance impact is typically not noticeable.) + (Gabriel Scherer, review by Nick Roberts, Florian Angeletti + and David Allsopp) + +- #13179: Fix evaluation of toplevel lets in classes containing + local opens + (Vincent Laviron, review by Hugo Heuzard, Nathanaëlle Courant + and Gabriel Scherer) + +- #13543: Remove some String-Bytes conversion from the stdlib to behave better + with js_of_ocaml + (Hugo Heuzard, review by Gabriel Scherer) + +### Standard library: + +- #12884: Add `Queue.drop` + (Léo Andrès, review by Nicolás Ojeda Bär and Gabriel Scherer) + +- #13168: In Array.shuffle, clarify the code that validates the + result of the user-supplied function `rand`, and improve the + error message that is produced when this result is invalid. + (François Pottier, review by Florian Angeletti, Daniel Bünzli + and Gabriel Scherer) + +- #12133: Expose support for printing substrings in Format + (Florian Angeletti, review by Daniel Bünzli, Gabriel Scherer + and Nicolás Ojeda Bär) + +- #12869: Add List.take, List.drop, List.take_while and List.drop_while + (Kate Deplaix and Oscar Butler-Aldridge, review by Nicolás Ojeda Bär, + Craig Ferguson and Gabriel Scherer) + +- #12885: move Dynarray to an unboxed representation + (Gabriel Scherer, suggestions by Vincent Laviron, + review by Olivier Nicole and Simon Cruanes, Yann Leray, Alain Frisch) + +- #13047: Add Sys.poll_actions to (only) run pending runtime actions. + (Nick Barnes, review by Gabriel Scherer, Guillaume Munch-Maccagnoni, and + Vincent Laviron) + +- #13144: Dynarray.{equal, compare} + (Gabriel Scherer, + review by Jeremy Yallop, Daniel Bünzli and Olivier Nicole, + request by Olivier Nicole) + +- #13171: expose `Domain.self_index : unit -> int` (a somewhat-dense + indexing of currently-running domains) for advanced use-cases of + domain-indexed concurrent data structures. + (Gabriel Scherer, + review by KC Sivaramakrishnan, Miod Vallat and Nicolás Ojeda Bär, + report by Vesa Karvonen) + +- #13197: Dynarray.blit, which allows to extend the destination + dynarray (0 <= dst_pos <= dst_length). + (Gabriel Scherer, report by Hazem ElMasry, + review by Olivier Nicole, Hazem ElMasry and Nicolás Ojeda Bär) + +* #13240: Add Uchar.seeded_hash, Change Uchar.hash implementation. + Previously, Uchar.hash was aliased to Uchar.to_int. If you need that behavior, + change your module instantiation from eg `module HT = Hashtbl.Make(Uchar)` to + ``` + module HT = Hashtbl.Make(struct + ... + let hash = Uchar.to_int + end) + ``` + If the current implementation is desired, and you have a hashtable module `HT` + (produced with the `Make` functor) in persistent storage, use `HT.rebuild` to + ensure it doesn't break when reading from or writing to buckets. + (Hazem ElMasry, review by Gabriel Scherer and Nicolás Ojeda Bär) + +- #13318: Fix regression in GC alarms, and fix them for flambda. + (Guillaume Munch-Maccagnoni, report by Benjamin Monate, review by + Vincent Laviron and Gabriel Scherer) + +- #13296: Add mem, memq, find_opt, find_index, find_map and find_mapi + to Dynarray. + (Jake H, review by Gabriel Scherer and Florian Angeletti) + +### Other libraries: + +- #11996: release the dependency of dynlink on compilerlibs. + (Sébastien Hinderer and Stephen Dolan, review by Damien Doligez and + Hugo Heuzard) + +- #13326: Implement Unix.O_APPEND on windows. + (Romain Beauxis, review by Miod Vallat, Gabriel Scherer and Antonin Décimo) + +### Tools: + +- #11716: ocamllex: mismatched parentheses and curly brackets are now caught + by ocamllex, instead of causing invalid OCaml code to be generated. + (Demi Marie Obenour, review by Damien Doligez and Xavier Leroy) + +- #12904: Run the testsuite with ThreadSanitizer on a PR when label + `run-thread-sanitizer` is added + (Olivier Nicole, suggested by Sébastien Hinderer and David Allsopp, review by + Gabriel Scherer) + +* #13114: Support ocamldebug remote debugging over IPv6 on all + platforms, and over Unix domain sockets on Windows. + (Antonin Décimo, review by Gabriel Scherer and Miod Vallat) + +- #13136: Rewrite GDB extensions and macros in debugger-agnostic Python, and add + LLDB support for them. + (Nick Barnes, review by Tim McGilchrist and Gabriel Scherer) + +### Toplevel: + +- #12891: Improved styling for initial prompt + (Florian Angeletti, review by Gabriel Scherer) + +- #13053: Improved display of builtin types such as `_ list` when aliased. + (Samuel Vivien, review by Florian Angeletti) + +### Manual and documentation: + +- #13370: Document that that temporary variables holding GCd pointers must + not be live across a GC. + (Demi Marie Obenour) + +- #12298: Manual: emphasize that Bigarray.int refers to an OCaml integer, + which does not match the C int type. + (Edwin Török, review by Florian Angeletti) + +- #12868: Manual: simplify style colours of the post-processed manual and API + HTML pages, and fix the search button icon + (Yawar Amin, review by Simon Grondin, Gabriel Scherer, and Florian Angeletti) + +- #12949: document OCaml release cycles and version strings in + `release-info/introduction.md`. + (Florian Angeletti, review by Fabrice Buoro, Kate Deplaix, Damien Doligez, and + Gabriel Scherer) + +- #12976: Manual: use webman//*.html and + webman//api/ for OCaml.org HTML manual generation + (Shakthi Kannan, review by Hannes Mehnert, and Florian Angeletti) + +- #13045: Emphasize caution about behaviour of custom block finalizers. + (Nick Barnes) + +- #13216: document the new `caml_result` type in the FFI chapter of the manual. + (Gabriel Scherer, review by Miod Vallat, Daniel Bünzli, Nick Barnes, + Guillaume Munch-Maccagnoni and Antonin Décimo) + +- #13287: stdlib/sys.mli: Update documentation on Sys.opaque_identity + following #9412. + (Matt Walker, review by Guillaume Munch-Maccagnoni and Vincent Laviron) + +- #13295: Use syntax for deep effect handlers in the effect handlers manual + page. + (KC Sivaramakrishnan, review by Anil Madhavapeddy, Florian Angeletti and Miod + Vallat) + +- #13424: Fix `Gc.quick_stat` documentation to clarify that returned fields + `live_words`, `live_blocks`, `free_words`, and `fragments` are not zero. + (Jan Midtgaard, review by Damien Doligez and KC Sivaramakrishnan) + +- #13440: Update documentation of `Gc.{control,get,set}` to reflect fields + not currently supported on OCaml 5. + (Jan Midtgaard, review by Gabriel Scherer) + +- #13469, #13474, #13535: Document that [Hashtbl.create n] creates a hash table + with a default minimal size, even if [n] is very small or negative. + (Antonin Décimo, Nick Barnes, report by Nikolaus Huber and Jan Midtgaard, + review by Florian Angeletti, Anil Madhavapeddy, Gabriel Scherer, + and Miod Vallat) + +- #13666: Rewrite parts of the example code around nested lists in Chapter 6 + (Polymorphism and its limitations -> Polymorphic recursion) giving the + "depth" function [in the non-polymorphically-recursive part of the example] + a much more sensible behavior; also fix a typo and some formatting. + (Frank Steffahn, review by Florian Angeletti) + +- #13668: Document the basic support for unicode identifiers and the switch to + UTF-8 encoded Unicode text for OCaml source file + (Florian Angeletti, review by Nicolás Ojeda Bär and Daniel Bünzli) + +### Compiler user-interface and warnings: + +* #12084, #13669, #13673: Check link order when creating archive and when using + ocamlopt. + (Hugo Heuzard, review by Stefan Muenzel and Sébastien Hinderer) + +- #12980: Explain type mismatch involving first-class modules by including + the module level error message + (Florian Angeletti, review by Vincent Laviron) + +- #12985, #12988: Better error messages for partially applied functors. + (Florian Angeletti, report by Arthur Wendling, review by Gabriel Scherer) + +- #13034, #13260: Better error messages for mismatched function labels + (Florian Angeletti, report by Daniel Bünzli, review by Gabriel Scherer and + Samuel Vivien) + +- #13051: Add a "Syntax error" to error messages for invalid package signatures. + (Samuel Vivien, review by Gabriel Scherer) + +- #13099: Fix erroneous loading of cmis for some module type errors. + (Nick Roberts, review by Florian Angeletti) + +- #13151, name conflicts explanation as a footnote + (Florian Angeletti, review by Gabriel Scherer) + +- #13228: Re-export Cmt2annot.{iterator,binary_part} which had become hidden + since #11288 and broke ocamlbrowser. + (David Allsopp, report by Jacques Garrigue, review by Sébastien Hinderer) + +- #13251: Register printer for errors in Emitaux + (Vincent Laviron, review by Miod Vallat and Florian Angeletti) + +- #13255: Re-enable warning 34 for unused locally abstract types + (Nick Roberts, review by Chris Casinghino and Florian Angeletti) + +- #12182: Improve the type clash error message. + For example, this message: + This expression has type ... + is changed into: + The constant "42" has type ... + (Jules Aguillon, review by Gabriel Scherer and Florian Angeletti) + +- #13471: add `-keywords ` flag to define the list of keywords + recognized by the lexer, for instance `-keywords 5.2` disable the `effect` + keyword. + (Florian Angeletti, review by Gabriel Scherer) + +### Internal/compiler-libs changes: + +- #11129, #11148: enforce that ppxs do not produce `parsetree`s with + an empty list of universally quantified type variables + (`. int -> int` instead of `'a . int -> int'`) + (Florian Angeletti, report by Simmo Saan, review by Gabriel Scherer) + +- #12534: document and refactor Matching.mk_failaction_pos + (Gabriel Scherer, review by Vincent Laviron and Nick Roberts) + +- #13076: change the handling of Match_failure exits in the pattern-matching + compiler, to prepare for a complete fix for #7241 + (Gabriel Scherer, review by Thomas Refis and Nick Roberts) + +- #12896: Simplify the compilation of custom bytecode runtimes by explicitly + compiling the primitives file before calling the linker. Tidy-up both the + generating code and the output itself for C code being generated by the + bytecode linker in `-custom` and `-output-*` modes. + (David Allsopp, Antonin Décimo and Samuel Hym, review by Vincent Laviron) + +- #12932: Remove useless code in Typecore.type_label_exp (was a fix for #4862) + (Jacques Garrigue, review by Gabriel Scherer) + +- #12943: Make transient_expr.scope a bitfield, and use it to store marks. + Marks are automatically allocated, and removed when leaving their scope. + Falls back to using TransientTypeSet when marks are exhausted. + (Jacques Garrigue and Takafumi Saikawa, review by Basile Clément) + +- #12946: Make generalization automatic when leaving scope. + As a result, the `Ctype.generalize*` and `Ctype.correct_levels` functions + were removed. The latter is now called `Ctype.duplicate_type`. + (Jacques Garrigue and Takafumi Saikawa, review by Richard Eisenberg) + +- #12968: Attach location to constants in the parsetree + (Jules Aguillon, review by Gabriel Scherer) + +- #12959, #13055: Avoid an internal error on recursive module type inconsistency + (Florian Angeletti, review by Jacques Garrigue and Gabriel Scherer) + +- #13049: graphical debugging printer for types + (Florian Angeletti, review by Gabriel Scherer) + +- #13074, #13082, #13084: refactoring in the pattern-matching compiler + (Gabriel Scherer, review by Thomas Refis, Vincent Laviron and Nick Roberts) + +- #13067: rework volatile memory access rules under TSan to consider properly + aligned smaller-than-register read operations as atomic, which gets rid of + false positives on s390x + (Miod Vallat, review by Fabrice Buoro) + +- #13162: Use quoted strings to clarify code being generated. + (Antonin Décimo, review by Miod Vallat and Gabriel Scherer) + +- #13015: Emit floating-point literals in .rodata section on ELF arm64 + platforms (Linux, *BSD). + (Miod Vallat, review by Nicolás Ojeda Bär) + +- #13169, #13311: Introduce a document data type for compiler messages + rather than relying on `Format.formatter -> unit` closures. + (Florian Angeletti, review by Gabriel Scherer) + +- #13193: Remove the unused env_init field from class blocks + (Vincent Laviron, review by Jacques Garrigue) + +- #13257: integrate MetaOCaml in the Menhir grammar to ease MetaOCaml + maintenance. This is a purely internal change: there is no support + in the lexer, so no change to the surface OCaml grammar. + (Oleg Kiselyov, Gabriel Scherer and Florian Angeletti, + review by Jeremy Yallop) + +- #13286: Distinguish unique identifiers `Shape.Uid.t` according to their + provenance: either an implementation or an interface. + (Ulysse Gérard, review by Florian Angeletti and Leo White) + +- #13289: Use C99 for loop to reduce the scope of the for loop iterator. + (Antonin Décimo, review by Miod Vallat and Gabriel Scherer) + +- #13308: keep track of relations between declaration in the cmt files. This is + useful information for external tools for navigation and analysis purposis. + (Ulysse Gérard, Florian Angeletti, review by Florian Angeletti and Gabriel + Scherer) + +- #13336: compiler-libs, split the `Printtyp` in three to only keep + "user-friendly" functions in the `Printtyp` module. + (Florian Angeletti, review by Gabriel Scherer) + +- #13361: split runtime/array.c functions to consistently expose + uniform_array and floatarray versions, use floatarray versions + in Float.Array. + (Gabriel Scherer, review by Nicolás Ojeda Bär) + +- #13507: A small refactoring to [free_vars] to make it a bit faster + by not allocating a list when the list is not necessary. + (Richard Eisenberg, review by Jacques Garrigue) + +* #13972: Renamed the `-no-alias-deps` flag internal representation to + `no_alias_deps` instead of `transparent_modules`. + (Clement Blaudeau, review by Gabriel Scherer) + +### Build system: + +- #12909: Reorganise how MKEXE_VIA_CC is built to make it correct for MSVC by + grouping all the linker flags at the end of the C compiler commandline + (David Allsopp and Samuel Hym, review by Nicolás Ojeda Bär) + +- #12992, #13009: Check that flexlink can be executed only when building in a + native windows environment. + (Romain Beauxis, review by David Allsopp and Sébastien Hinderer) + +- #12996: Only link with -lgcc_eh when available. + (Romain Beauxis, review by David Allsopp and Miod Vallat) + +* #13200: Do not use CFLAGS for linking. + (Sébastien Hinderer, review by Gabriel Scherer, Antonin Décimo, + Miod Vallat and Samuel Hym) + +- #13201, #13244: Fix and speedup builds with TSan. + (Sébastien Hinderer, review by Miod Vallat, Gabriel Scherer and + Olivier Nicole) + +* #12578, #12589, #13322, #13519: Use configured CFLAGS and CPPFLAGS *only* + during the build of the compiler itself. Do not use them when + compiling third-party C sources through the compiler. Flags for + compiling third-party C sources can still be specified at configure + time in the COMPILER_{BYTECODE,NATIVE}_{CFLAGS,CPPFLAGS} + configuration variables. + (Sébastien Hinderer, report by William Hu, review by David Allsopp) + +- #13285: continue the merge of the sub-makefiles into the root + Makefile started with #11243, #11248, #11268, #11420, #11675, + #12198, #12321, #12586, #12616, #12706 and #13048. + (Sébastien Hinderer, review by David Allsopp and Florian Angeletti) + +### Bug fixes: + +- #12854: Add a test in the regression suite that flags the bug #12825. + (Luc Maranget) + +- #12888: fix printing of uncaught exceptions in `.cmo` files passed on the + command-line of the toplevel. + (Nicolás Ojeda Bär, review by Florian Angeletti, report by Daniel Bünzli) + +- #12910, #12920: Fix an unsound interaction between first-class modules + and polymorphic records by saving and restoring univar_pairs. + (Stephen Dolan, review by Gabriel Scherer, report by Jeremy Yallop) + +- #12994: Remove un-used and unsafe caml_drop_continuation + (Tim McGilchrist, reviewed by Gabriel Scherer and Miod Vallat) + +- #12963: Restore caml_runtime_parameters implementation. This primitive allows + programs to query the runtime parameters supplied to an OCaml program. + Implementation missing since OCaml 5.0. + (Tim McGilchrist, reviewed by David Allsopp and Miod Vallat) + +- #13012: parsing: Fix dropped attributes after a '-' or '+' + The syntax '-(1 [@foo])' was incorrectly parsed as '-1'. + (Jules Aguillon, reviewed by Gabriel Scherer, report by Gabriel Scherer) + +* #13070: On Windows, when configured with bootstrapped flexdll, don't add + +flexdll to the search path when -nostdlib is specified (which then means + -L no longer gets passed to the system linker). + (David Allsopp, review by Florian Angeletti) + +- #13089: Fix bug in `runtime_events` library which could result in garbled + output under Windows. + (B. Szilvasy, review by Nicolás Ojeda Bär and Miod Vallat) + +- #13088: A few type-checker behaviors look at a type to see if there are + any labeled arguments in it. This sometimes required expansion, which + could, in obscure scenarios, result in superfluous type errors. + (Richard Eisenberg, review by Gabriel Scherer and Jacques Garrigue) + +- #13103: FreeBSD/amd64: properly annotate .o files with non-executable stack + notes (Konstantin Belousov, review by Nicolás Ojeda Bär) + +- #13150: improve a transitive-closure computation algorithm in the flambda + middle-end to avoid a compilation time blowup on Menhir-generated code + (Florian Weimer, review by Gabriel Scherer and Pierre Chambart, + report by Richard Jones) + +- #13166: Fix a MinGW/MSVC Sys.rename regression on renaming a parent directory + to an empty child directory. + (Jan Midtgaard, review by Antonin Décimo, Sébastien Hinderer, and + David Allsopp) + +- #13185, #13192: Reject type-level module aliases on functor parameter + inside signatures. + (Jacques Garrigue, report by Richard Eisenberg, review by Florian Angeletti) + +- #13170: Fix a bug that would result in some floating alerts `[@@@alert ...]` + incorrectly triggering Warning 53. + (Nicolás Ojeda Bär, review by Chris Casinghino and Florian Angeletti) + +- #13203: Do not issue warning 53 if the compiler is stopping before attributes + have been accurately marked. + (Chris Casinghino, review by Florian Angeletti) + +- #13207: Be sure to reload the register caching the exception handler in + caml_c_call and caml_c_call_stack_args, as its value may have been changed + if the OCaml stack is expanded during a callback. + (Miod Vallat, report by Vesa Karvonen, review by Gabriel Scherer and + Xavier Leroy) + +- #13209: Fix configure test that checks whether `ar` supports `@FILE` + arguments. + (Nicolás Ojeda Bär, report by Boris D.) + +- #13221: Compute more accurate instruction sizes for branch relocation on + POWER. + (Miod Vallat, review by Gabriel Scherer) + +- #13252: Rework register assignment in the interpreter code on m68k on Linux, + due to the %a5 register being used by Glibc. + (Miod Vallat, report by Stéphane Glondu, review by Gabriel Scherer and + Xavier Leroy) + +- #13247: Disable lib_unix/kill test for MacOS AMD64 with TSan, linking + to llvm bug report causing infinite signal loops. + (Tim McGilchrist, review by Olivier Nicole, Miod Vallat, Sébastien Hinderer + and Gabriel Scherer) + +- #13234, #13267: Open runtime events file in read-write mode on armel + (armv5) systems due to atomic operations limitations on that + platform. + (Stéphane Glondu, review by Miod Vallat and Vincent Laviron) + +- #13273: Fix a call to test in configure.ac that was causing errors when + LDFLAGS contains several words. + (Stéphane Glondu, review by Miod Vallat) + +- #13290: Fix uninitialized and out of bounds reads in runtime_events_consumer.c + (Edwin Török, review by Miod Vallat and Antonin Décimo) + +- #13306: An algorithm in the type-checker that checks two types for equality + could sometimes, in theory, return the wrong answer. This patch fixes the + oversight. No known program triggers the bug. + (Richard Eisenberg, review by Florian Angeletti) + +- #13400: Initialize th->signal_stack to avoid free of uninitialized data + if the user calls caml_c_thread_unregister on the main thread. + (Richard W.M. Jones, review by Guillaume Munch-Maccagnoni and + Gabriel Scherer) + +- #13140: POWER back-end: fix issue with call to `caml_call_realloc_stack` + from a DLL + (Xavier Leroy, review by Miod Vallat) + +- #13263, #13560: fix printing true and false in toplevel and error + messages (no more unexpected \#true) + (Florian Angeletti, report by Samuel Vivien, review by Gabriel Scherer) + +- #13388, #13540: raises an error message (and not an internal compiler error) + when two local substitutions are incompatible (for instance `module type + S:=sig end type t:=(module S)`) + (Florian Angeletti, report by Nailen Matschke, review by Gabriel Scherer, and + Leo White) + +- #13408: Fix misplaced debug runtime assertion triggerable by a race + between domain exit and backup thread + (Miod Vallat and Gabriel Scherer, report by Jan Midtgaard) + +- #13417: `Filename.quote_command`: fix handling of forward slashes in program + path under Win32. + (Nicolás Ojeda Bär, review by David Allsopp and Damien Doligez) + +- #13501: Regression on mutually recursive types caused by #12180. + Resuscitate Typedecl.update_type. + (Jacques Garrigue and Takafumi Saikawa, review by Florian Angeletti, Richard + Eisenberg and Gabriel Scherer) + +- #13502: Fix misindexing related to `Gc.finalise_last` that could prevent + finalisers from being run. + (Nick Roberts, review by Mark Shinwell) + +- #13495, #13514: Fix typechecker crash while typing objects + (Jacques Garrigue, report by Nicolás Ojeda Bär, review by + Nicolás Ojeda Bär, Gabriel Scherer, Stephen Dolan, Florian Angeletti) + +- #13391, #13551: fix a printing bug with `-dsource` when using + raw literal inside a locally abstract type constraint + (i.e. `let f: type \#for. ... `) + (Florian Angeletti, report by Nick Roberts, review by Richard Eisenberg) + +- #13520: Fix compilation of native-code version of systhreads. Bytecode fields + were being included in the thread descriptors. + (David Allsopp, review by Sébastien Hinderer and Miod Vallat) + +- #13541, #13591: Fix headers for C++ inclusion. + (Antonin Décimo, review by Nick Barnes, report by Kate Deplaix) + +- #13579, #13583: Unsoundness involving non-injective types + gadts + (Jacques Garrigue, report by @v-gb, + review by Richard Eisenberg and Florian Angeletti) + +- #13598: Falsely triggered warning 56 [unreachable-case] + This was caused by unproper protection of the retyping function. + (Jacques Garrigue, report by Tõivo Leedjärv, review by Florian Angeletti) + +- #13603, #13604: fix source printing in the presence of the escaped raw + identifier `\#mod`. + (Florian Angeletti, report by Chris Casinghino, review by Gabriel Scherer) + +* #13830: fail rather than silently create abstract module types when avoiding + (i.e. hiding) signature items, as in: + ```ocaml + module N = struct + open (struct type t = A | B end) + module type T = sig type u = t * int end + end + ``` + Before, it was succeeding with `module N : sig module type T end`, now it + fails. Similarly for anonymous functor calls (of the form `F(struct ... end)) + (Clement Blaudeau, review by Gabriel Scherer) + +OCaml 5.2.0 (13 May 2024) +------------------------- + +(Changes that can break existing programs are marked with a "*") + +### Restored and new backends: + +- #12276, #12601: native-code compilation for POWER (64 bits, little-endian) + (Xavier Leroy, review by KC Sivaramakrishnan, Anil Madhavapeddy, + and Stephen Dolan) + +- #12667: extend the latter to POWER 64 bits, big-endian, ELFv2 ABI + (A. Wilcox, review by Xavier Leroy) + +### Language features: + +- #12295, #12568: Give `while true' a polymorphic type, similarly to + `assert false' + (Jeremy Yallop, review by Nicolás Ojeda Bär and Gabriel Scherer, + suggestion by Rodolphe Lepigre and John Whitington) + +- #12315: Use type annotations from arguments in let rec + (Stephen Dolan, review by Gabriel Scherer) + +- #11252, RFC 27: Support raw identifier syntax \#foo + (Stephen Dolan, review by David Allsopp, Gabriel Scherer and Olivier Nicole) + +- #12044: Add local module open syntax for types. + ``` + module A = struct + type t = int + type r = unit + type s = string + end + + type example = A.(t * r * s) + ``` + (Alistair O'Brien, review by Gabriel Scherer, Nicolás Ojeda Bär + and Florian Angeletti) + +- #12456: Document the incompatibility between effects on the one + hand, and `caml_callback` and asynchronous callbacks (signal + handlers, finalisers, memprof callbacks...) on the other hand. + (Guillaume Munch-Maccagnoni, review by KC Sivaramakrishnan) + +- #12375: allow use of [@untagged] for all immediate types like char, bool, + and variant with only constant constructors. + (Christophe Raffalli, review by Gabriel Scherer) + +* #12502: the compiler now normalizes the newline sequence \r\n to + a single \n character during lexing, to guarantee that the semantics + of newlines in string literals is not modified by Windows tools + transforming \n into \r\n in source files. + Warning 29 [eol-in-string] is not emitted anymore, as the normalization + gives a more robust semantics to newlines in string literals. + (Gabriel Scherer and Damien Doligez, review by Daniel Bünzli, David + Allsopp, Andreas Rossberg, Xavier Leroy, report by Andreas Rossberg) + +- #13130: minor fixes to pprintast for raw identifiers and local module open + syntax for types. + (Chet Murthy, review by Gabriel Scherer) + +### Type system: + +- #12313, #11799: Do not re-build as-pattern type when a ground type annotation + is given. This allows to work around problems with GADTs in as-patterns. + (Jacques Garrigue, report by Leo White, review by Gabriel Scherer) + +### Runtime system: + +- #12193: Re-introduce GC compaction for shared pools + Adds a parallel compactor for the shared pools (which contain major heap + blocks sized less than 128 words). Explicit only for now, on calls to + `Gc.compact`. + (Sadiq Jaffer, Nick Barnes, review by Anil Madhavapeddy, Damien Doligez, + David Allsopp, Miod Vallat, Artem Pianykh, Stephen Dolan, Mark Shinwell + and KC Sivaramakrishnan) + +- #12850: Update Gc.quick_stat data at the end of major cycles and compaction + This PR adds an additional caml_collect_gc_stats_sample_stw to the major heap + cycling stw. This means that Gc.quick_stat now actually reflects the state of + the heap after a major cycle or compaction. + (Sadiq Jaffer, review by Miod Vallat and Gabriel Scherer) + +- #12859: Ensure Gc.compact does a full major before the compactor runs + (Sadiq Jaffer, review by Leo White, Mark Shinwell, Gabriel Scherer, + Josh Berdine, David Allsopp and KC Sivaramakrishnan) + +- #10111: Increase the detail of location information for debugging events to + allow the end line number and character offset to be reported. + (David Allsopp, review by Nick Barnes, Enguerrand Decorne and Stephen Dolan) + +- #10403, #12202: introduce `caml_ext_table_add_noexc` that does not + raise `Out_of_memory` exceptions and use it inside the blocking sections + of `caml_read_directory`. Also, check for overflows in ext table sizes. + (Xavier Leroy, report by Arseniy Alekseyev, review by Gabriel Scherer) + +- #11332, #12702: make sure `Bool_val(v)` has type `bool` in C++ + (Xavier Leroy, report by ygrek, review by Gabriel Scherer) + +- #12772, #12787: Avoid using _Bool in public headers for the sake of C++ + compatibility + (Guillaume Munch-Maccagnoni, report by KC Sivaramakrishnan, review + by Xavier Leroy and KC Sivaramakrishnan) + +- #12223: Constify constructors and flags tables in C code. Now these + tables will go in the readonly segment, where they belong. + (Antonin Décimo, review by Gabriel Scherer and Xavier Leroy) + +- #12234: make instrumented time calculation more thread-safe on macOS. + (Anil Madhavapeddy, review by Daniel Bünzli and Xavier Leroy) + +- #12235, #12468: introduce and use the `CAMLnoret` macro as + a lighter alternative to `CAMLnoreturn_start` / `CAMLnoreturn_end`. + Implement it so as to conform with C11, C23, C++11, C++17. + (Xavier Leroy and Dhruv Maroo, with help from Antonin Décimo, review by + Gabriel Scherer and David Allsopp) + +- #12275: caml/stack.h: more abstract macros to describe OCaml stacks and + how to traverse them, supporting more stack layouts. + (Xavier Leroy, review by KC Sivaramakrishnan and Fabrice Buoro) + +- #12268: deliver `Out_of_memory` exception if domain creation fails + due to memory resource exhaustion. It was previous always a `Failure`. + (Anil Madhavapeddy, review by David Allsopp) + +- #12300, #12314: Discard out_channel buffered data on permanent I/O error + (Xavier Leroy, report by Török Edwin, review by Anil Madhavapeddy + and Nicolás Ojeda Bär) + +- #11386: Simplifications and fixes to multicore systhreads implementation. + (Guillaume Munch-Maccagnoni, review by Anil Madhavapeddy and KC + Sivaramakrishnan) + +- #12875, #12879, #12882: Execute preemptive systhread switching as a + delayed pending action. This ensures that one can reason within the + FFI that no mutation happens on the same domain when allocating on + the OCaml heap from C, consistently with OCaml 4. This also fixes + further bugs with the multicore systhreads implementation. + (Guillaume Munch-Maccagnoni, bug reports and suggestion by Mark + Shinwell, review by Nick Barnes and Stephen Dolan) + +- #12408: `Domain.spawn` no longer leaks its functional argument for + the whole duration of the children domain lifetime. + (Guillaume Munch-Maccagnoni, review by Gabriel Scherer) + +- #12409: Fix unsafety and deadlocks should an asynchronous exception + arise at specific locations during domain creation and shutdown. + (Guillaume Munch-Maccagnoni, review by Gabriel Scherer) + +- #12114: Add ThreadSanitizer support + (Fabrice Buoro and Olivier Nicole, based on an initial work by Anmol Sahoo, + review by Damien Doligez, Sébastien Hinderer, Jacques-Henri Jourdan, Luc + Maranget, Guillaume Munch-Maccagnoni, Gabriel Scherer) + +- #11911, #12381: Restore statmemprof functionality in part, with + some API changes in Gc.Memprof. + (Nick Barnes, review by Jacques-Henri Jourdan + and Guillaume Munch-Maccagnoni). + +- #12430: Simplify dynamic bytecode loading in Meta.reify_bytecode + (Stephen Dolan, review by Sébastien Hinderer, Vincent Laviron and Xavier + Leroy) + +- #12489: Fix an error-handling bug in caml_alloc_sprintf + (Stephen Dolan, report by Chris Casinghino, review by Jeremy Yallop + and Xavier Leroy) + +- #11307: Finish adapting the implementation of asynchronous actions for + multicore: soundness, liveness, and performance issues. + Do not crash if a signal handler is called from an unregistered C + thread, and other possible soundness issues. Prevent issues where join + on other domains could make the toplevel unresponsible to Ctrl-C. Avoid + needless repeated polling in C code when callbacks cannot run + immediately. + (Guillaume Munch-Maccagnoni, review by Enguerrand Decorne, Xavier + Leroy, and KC Sivaramakrishnan) + +- #12634: Simplify TSan backtrace bookkeeping upon raise + (Olivier Nicole and Fabrice Buoro, review by Gabriel Scherer) + +* #12686: Some primitives had the wrong types to be callable from the bytecode + interpreter. Either fix their types, mark them as `CAMLexport` instead of + `CAMLprim`, or remove them entirely if no longer used. + (Xavier Leroy, review by David Allsopp) + +- #12700, continuing #11763 and trying to address #12660: + Use the correct types for primitives when generating the table of primitives + used by ocamlrun. + (Xavier Leroy, motivation, review and improvements by Antonin Décimo) + +- #12345, #12710: Fix issues with finaliser orphaning at domain termination + (KC Sivaramakrishnan, report by Gabriel Scherer, review by Gabriel Scherer, + Sadiq Jaffer and Fabrice Buoro) + +- #12599: Refactor Dynlink startup to avoid parsing bytecode sections twice + (Stephen Dolan, review by David Allsopp, Hugo Heuzard, Damien Doligez and + Xavier Leroy) + +- #12678, #12898: free channel buffers on close rather than on finalization + (Damien Doligez, review by Jan Midtgaard and Gabriel Scherer, report + by Jan Midtgaard) + +- #12681: Fix TSan false positives due to volatile write handling + (Olivier Nicole, Fabrice Buoro and Anmol Sahoo, review by Luc Maranget, + Gabriel Scherer, Hernan Ponce de Leon and Xavier Leroy) + +- #12743: Use pthread_sigmask instead of sigprocmask + Updates usage of sigprocmask to pthread_sigmask in otherlibs/unix. + (Max Slater, review by Miod Vallat and Xavier Leroy) + +- #12769: Unify MSVC and MinGW-w64 code paths, by always using WinAPI + directly. + (David Allsopp, Antonin Décimo, and Samuel Hym, review by Nicolás Ojeda Bär) + +- #11911, #12382, #12383: Restore statmemprof functionality in part + (backtrace buffers, per-thread and per-domain data structures, + GC/allocation interface). (Nick Barnes, review by Gabriel Scherer, + Fabrice Buoro, Sadiq Jaffer, Guillaume Munch-Maccagnoni, and + Jacques-Henri Jourdan). + +- #12735: Store both ends of the stack chain in continuations + (Leo White, review by Miod Vallat and KC Sivaramakrishnan) + +- #12746: Simplify and clean up TSan annotations + (Olivier Nicole, review by Miod Vallat and Fabrice Buoro) + +- #12809: Add ThreadSanitizer support to FreeBSD/amd64 + (Miod Vallat, review by Gabriel Scherer) + +- #12810: Port ThreadSanitizer support to Linux and macOS on arm64 + (Miod Vallat, review by Tim McGilchrist) + +- #12811: Define and use the CAMLthread_local macro for TLS variables. + (Antonin Décimo and Samuel Hym, review by Miod Vallat and Xavier Leroy) + +- #12814: More detailed failure messages from `input_value` and `Marshal.from_*` + (Xavier Leroy, review by Stephen Dolan and Anil Madhavapeddy) + +- #12815: Correctly format multi-line locations in exception backtraces, in the + style that the compiler driver uses. + (David Allsopp, review by Gabriel Scherer) + +- #12773, #12830, #12834: Rewrite `caml_c_thread_(un)register` to fix + various bugs. + (Guillaume Munch-Maccagnoni, reported by Miod Vallat, suggested by + Hari Hara Naveen S, reviewed by Fabrice Buoro, Gabriel Scherer and + Miod Vallat) + +- #12876: Port ThreadSanitizer support to Linux on POWER + (Miod Vallat, review by Tim McGilchrist) + +- #12886: Reinitialize IO mutexes after fork + (Max Slater, review by Guillaume Munch-Maccagnoni and Xavier Leroy) + +- #12907: Port ThreadSanitizer support to Linux on RiscV + (Miod Vallat, review by Nicolás Ojeda Bär and Fabrice Buoro) + +- #12915: Port ThreadSanitizer support to Linux on s390x + (Miod Vallat, review by Tim McGilchrist) + +- #12934: Fix data races between marking and sweeping functions + (Olivier Nicole, suggested by Stephen Dolan, review by Gabriel Scherer, + Miod Vallat and Damien Doligez) + +### Code generation and optimizations: + +- #11239: on x86-64 and RISC-V, reduce alignment of OCaml stacks from 16 to 8. + This reduces stack usage. It's only C stacks that require 16-alignment. + (Xavier Leroy, review by Gabriel Scherer and Stephen Dolan) + +- #12311: on POWER, 32-bit FP numbers stored in memory (e.g. in bigarrays) + were not correctly rounded sometimes. + (Xavier Leroy, review by Anil Madhavapeddy and Tim McGilchrist) + +- #12551, #12608, #12782, #12596: Overhaul of recursive value compilation. + Non-function recursive bindings are now forbidden from Lambda onwards, + and compiled using a new Value_rec_compiler module. + (Vincent Laviron and Lunia Ayanides, review by Gabriel Scherer, + Stefan Muenzel and Nathanaëlle Courant) + +- #1809, #12181: rewrite `compare x y op 0` to `x op y` when values are integers + (Xavier Clerc, Stefan Muenzel, review by Gabriel Scherer and Vincent Laviron) + +- #12825: disable common subexpression elimination for atomic loads... again. + (Gabriel Scherer, review by KC Sivaramakrishnan, Xavier Leroy + and Vincent Laviron, report by Vesa Karvonen) + +### Standard library: + +- #12716: Add `Format.pp_print_nothing` function. + (Léo Andrès, review by Gabriel Scherer and Nicolás Ojeda Bär) + +- #11563: Add the Dynarray module to the stdlib. Dynamic arrays are + arrays whose length can be changed by adding or removing elements at + the end, similar to 'vectors' in C++ or Rust. + (Gabriel Scherer, Simon Cruanes and Florian Angeletti, review by + Daniel Bünzli, Guillaume Munch-Maccagnoni, Clément Allain, + Damien Doligez, Wiktor Kuchta and Pieter Goetschalckx) + +* #6732, #12423: Make Buffer.add_substitute surjective and fix its + documentation. + (Damien Doligez, review by Antonin Décimo) + +* #10775, #12499: Half-precision floating-point elements in Bigarray. + (Anton Yabchinskiy, review by Xavier Leroy and Nicolás Ojeda Bär) + +- #11517, #12477: Expose pp_infinity in interface of the format module, and + check that margin is less than pp_infinity when setting or checking geometry. + (Janith Petangoda, reported by Simmo Saan, reviewed by Florian Angeletti, + Simmo Saan, Josh Berdine and Gabriel Scherer) + +- #12217: Add `Array.shuffle`. + (Daniel Bünzli, review by Nicolás Ojeda Bär, David Allsopp and Alain Frisch) + +- #12212: Add cache-aligned constructor for atomics. The patch ensures that + all allocations (of the right size) in the shared heap are aligned. + (Bartosz Modelski with Gabriel Scherer, Guillaume Munch-Maccagnoni, + Xavier Leroy, review by Alain Frisch, Anil Madhavapeddy, Gabriel Scherer, + Guillaume Munch-Maccagnoni, KC Sivaramakrishnan, Stefan Muenzel, + Xavier Leroy) + +- #12307: Add BLAKE2b hashing and an MD5 submodule to the Digest module. + (Xavier Leroy, review by Olivier Nicole, Gabriel Scherer, Wiktor Kuchta, + Daniel Bünzli, David Allsopp) + +- #12365: Add In_channel.input_bigarray, In_channel.really_input_bigarray, + Out_channel.output_bigarray, Unix.read_bigarray, Unix.write_bigarray, + Unix.single_write_bigarray. + (Nicolás Ojeda Bär, review by Jeremy Yallop, Xavier Leroy, Gabriel Scherer, + David Allsopp) + +- #12455: Add `Array.init_matrix`, `Float.Array.make_matrix`, + `Float.Array.init_matrix`. + (Glen Mével, review by Xavier Leroy, Gabriel Scherer, Jeremy Yallop, + Nicolas Ojeda Bar) + +* #12455: `Array.make_matrix dimx dimy f` now raises `Invalid_argument` + when `dimx = 0 && dimy < 0` This was already specified but not enforced. + (Glen Mével, report by Jeremy Yallop, review by Nicolás Ojeda Bär) + +- #12459: Add `Random.int_in_range`, `Random.int32_in_range`, + `Random.int64_in_range`, `Random.nativeint_in_range`, + and their counterpart in `Random.State`. + (Glen Mével and Xavier Leroy, review by Gabriel Scherer, Xavier Leroy, + Florian Angeletti) + +- #12459: `Random`: restore compatibility between 32-bit integers (JavaScript) + and 63-bit integers (64-bit OCaml). + For `Random.full_int` this was guaranteed in 4.14 but wrongly removed in 5.0. + (Xavier Leroy, review by Glen Mével) + +- #12511: Minor performance improvements and cleanups in the implementation + of modules Int32, Int64, and Nativeint + (Xavier Leroy, review by Gabriel Scherer and Daniel Bünzli) + +- #12558: Adapt GC alarms for multicore and fix their documentation. + (Guillaume Munch-Maccagnoni, review by KC Sivaramakrishnan + and Gabriel Scherer) + +- #12625: Remove the Closure module from Obj + (Vincent Laviron, review by Xavier Leroy) + +- #12758, #12998: Remove the `Marshal.Compression` flag to the + `Marshal.to_*` functions. The compilers are still able to use + ZSTD compression for compilation artefacts. + This is a forward port and clean-up of the emergency fix that was introduced + in OCaml 5.1.1 by #12734. + (Xavier Leroy, review by Damien Doligez) + +- #12784: Fix computation of minor-heap allocation in Gc.counters() + and Gc.allocated_bytes(). (Nick Barnes, review by Gabriel Scherer) + +- #12770: Add `Fun.compose`. + (Justin Frank, review by Nicolás Ojeda Bär, Daniel Bünzli and Jeremy Yallop) + +- #12845: Add `{In,Out}_channel.is_binary_mode` as the dual of + `set_binary_mode`. This function was previously only available in the internal + C API. + (David Allsopp, review by Nicolás Ojeda Bär and Xavier Leroy) + +### Other libraries: + +- #12213: Dynlink library, improve legibility of error messages + (Samuel Hym, review by Gabriel Scherer and Nicolás Ojeda Bär) + +* #12686: Runtime_events library, C API: define + `caml_runtime_events_{start,pause,resume}` as returning `void` + instead of `value`. + (Xavier Leroy, review by David Allsopp) + +### Tools: + +- #12340: testsuite: collect known issues with current -short-paths + implementation for existential types + (Florian Angeletti, Samuel Hym, review by Florian Angeletti and Thomas Refis) + +- #12147: ocamllex: Allow carriage returns at the end of line directives. + (SeungCheol Jung, review by Nicolás Ojeda Bär) + +- #12260: Fix invalid_argument on some external or module aliases in ocamlnat + (Fabian Hemmer, review by Vincent Laviron) + +- #12185: New script language for ocamltest. + (Damien Doligez with Florian Angeletti, Sébastien Hinderer, Gabriel Scherer, + review by Sébastien Hinderer and Gabriel Scherer) + +- #12371: ocamltest: fix recursive expansion of variables. + (Antonin Décimo, Damien Doligez, review by Sébastien Hinderer, + Damien Doligez, Gabriel Scherer, and Xavier Leroy) + +* #12497, #12613: Make ocamlc/ocamlopt fail with an error when no + input files are specified to build an executable. + (Antonin Décimo, review by Sébastien Hinderer) + +- #12576: ocamldep: various refactors. + (Antonin Décimo, review by Florian Angeletti, Gabriel Scherer, and Léo Andrès) + +- #12615: ocamldoc: get rid of the odoc_literate and odoc_todo generators. + (Sébastien Hinderer, review by Gabriel Scherer and Florian Angeletti) + +- #12624: Use $XDG_CONFIG_DIRS in addition to $XDG_CONFIG_HOME when searching + for init.ml and use this to extend init.ml support to the toplevel when + running on Windows. + (David Allsopp, report by Jonah Beckford, review by Nicolás Ojeda Bär and + Antonin Décimo) + +- #12688: Setting the env variable `NO_COLOR` with an empty value no longer + has effects. Previously, setting `NO_COLOR` with any value, including + the empty value, would disable colors (unless `OCAML_COLOR` is also set). + After this change, the user must set `NO_COLOR` with an non-empty value + to disable colors. This reflects a specification clarification/change + from the upstream website at https://no-color.org. + (Favonia, review by Gabriel Scherer) + +- #12744: ocamltest: run tests in recursive subdirs more eagerly + (Nick Roberts, review by Nicolás Ojeda Bär) + +- #12901, 12908: ocamllex: add overflow checks to prevent generating incorrect + lexers; use unsigned numbers in the table encoding when possible. + (Vincent Laviron, report by Edwin Török, review by Xavier Leroy) + +### Manual and documentation: + +- #12338: clarification of the documentation of process related function in + the unix module regarding the first element of args and shell's pid. + (Christophe Raffalli, review by Florian Angeletti) + +- #12473: Document in runtime/memory.c our current understanding of + accesses to the OCaml heap from the C runtime code -- the problem + of hybrid programs mixing two memory models. + (Gabriel Scherer and Guillaume Munch-Maccagnoni, review by Olivier + Nicole and Xavier Leroy) + +- #12694: Document in runtime/tsan.c the TSan instrumentation choices and the + consequences with regard to the memory model. + (Olivier Nicole, review by Miod Vallat, Gabriel Scherer, Guillaume + Munch-Maccagnoni and Fabrice Buoro) + +- #12802: Add manual chapter about ThreadSanitizer support + (Olivier Nicole, review by Miod Vallat, Sebastien Hinderer, Fabrice Buoro, + Gabriel Scherer and KC Sivaramakrishnan) + +- #12819: Clarify which runtime interactions are allowed in custom ops + (Basile Clément, review by Guillaume Munch-Maccagnoni and Xavier Leroy) + +- #12840: manual: update runtime tracing chapter for custom events (ex #12335) + (Lucas Pluvinage, Sadiq Jaffer and Olivier Nicole, review by Gabriel Scherer, + David Allsopp, Tim McGilchrist and Thomas Leonard) + +- #13066, update OCAMLRUNPARAM documentation for the stack size parameter l + (Florian Angeletti, review by Nicolás Ojeda Bär, Tim McGilchrist, and + Miod Vallat) + +- #13078: update Format tutorial on structural boxes to mention alignment + questions. + (Edwin Török, review by Florian Angeletti) + +- #13092: document the existence of the `[@@poll error]` built-in attribute + (Florian Angeletti, review by Gabriel Scherer) + +### Compiler user-interface and warnings: + +* #10613, #12405: Simplify the values used for the system variable (`system:` in + `ocamlopt -config` or the `Config.system` constant). In particular, s390x and + ppc64 now report "linux" instead of "elf"; all variants of 32-bit ARM on Linux + now report "linux"; OpenBSD now reports "openbsd" instead of "bsd" for 32-bit + ARM; FreeBSD, NetBSD and OpenBSD now report the same value for both x86_64 and + x86_32; x86_32 systems matching *bsd but not freebsd*, netbsd* or openbsd* + are no longer identified (as on x86_64); x86_32 Linux now reports "linux" + instead of "linux_elf". + (David Allsopp, request by Kate Deplaix, review by Sébastien Hinderer and + Xavier Leroy) + +- #11989, #12246, RFC 31: New flag, -H, to allow for transitive dependencies + without including them in the initial environment. + (Chris Casinghino, François Bobot, and Gabriel Scherer, review by Leo White + and Stefan Muenzel, RFC by François Bobot) + +- #12247: configure: --disable-ocamldebug can now be used instead + of --disable-debugger (which remains available for compatibility) + (Gabriel Scherer, review by Damien Doligez and Sébastien Hinderer) + +- #12199: improve the error message for non-overriding `inherit!` + (Florian Angeletti, review by Jules Aguillon) + +- #12210: uniform style for inline code in compiler messages + (Florian Angeletti, review by Gabriel Scherer) + +* #12278, #:12325: Remove the OCAML_FLEXLINK environment variable from the + compiler drivers. This environment variable was previously used as part of the + FlexDLL bootstrap procedure and existed solely for that purpose. Its removal + greatly simplifies both the build system and testsuite machinery. + (David Allsopp, review by Sébastien Hinderer) + +- #12347: error messages: always report missing polyvariant tags + (Florian Angeletti, report by Tianbo Hao, review by Gabriel Scherer) + +- #12224, specialized error message when trying to apply non-functor + module (e.g `module M = Int(Int)`) + (Florian Angeletti, review by Gabriel Scherer) + +- #12451: Warning 53 (misplaced attributes) now works for all attributes. + (Chris Casinghino, review by Florian Angeletti) + +- #12622: Give hints about existential types appearing in error messages + (Leo White, review by Gabriel Scherer and Florian Angeletti) + +- #12671: When a class type parameter or class parameter does not match, + identify which parameter in the error message, instead of saying + "A type parameter" or "A parameter". + (Stefan Muenzel, review by Gabriel Scherer) + +- #12679: Add more detail to the error message and manual in case of + invalid module type substitutions. + (Stefan Muenzel, review by Gabriel Scherer and Florian Angeletti) + +- #12750: Display the command executed to extract primitives in + `ocamlc -verbose`. + (David Allsopp, review by Nicolás Ojeda Bär) + +- #12777: Add details about the actual and expected method types to the method + mismatch error messages. + (Javier Chávarri, review by Gabriel Scherer and Florian Angeletti) + +* #12942: Fix an line ordering in some module inclusion error messages + (Nick Roberts, review by Florian Angeletti, report by Carl Eastlund) + +### Internal/compiler-libs changes: + +- #12639: parsing: Attach a location to the RHS of Ptyp_alias + and improve the 'alias type mismatch' error message. + (Jules Aguillon, review by Florian Angeletti) + +- #12447: Remove 32-bit targets from X86_proc.system + (Masanori Ogino, review by David Allsopp) + +- #12216, #12248: Prevent reordering of atomic loads during instruction + scheduling. This is for reference, as instruction scheduling is currently + unused in OCaml 5. + (Xavier Leroy, report by Luc Maranget and KC Sivaramakrishnan, + review by Nicolás Ojeda Bär) + +- #12025: Split Typecore.unify_pat_types into two + to avoid unnecessary references to the environment in type_pat + (Jacques Garrigue and Takafumi Saikawa, review by Gabriel Scherer) + +- #12031: Use dedicated types to represent names of compilation units + and predefined exceptions in CMO files. + (Sébastien Hinderer, review by Florian Angeletti, Thomas Refis, + Gabriel Scherer, Vincent Laviron, Pierre Chambart, Luke Maurer, + Hugo Heuzard, Xavier Leroy and Damien Doligez) + +- #12109: Pack parameters to unification in unification_environment + (Takafumi Saikawa and Jacques Garrigue, review by Richard Eisenberg) + +- #12331, #12361: Pack the unification data for pattern checking in Typecore + (Takafumi Saikawa and Jacques Garrigue, + review by Gabriel Scherer, Thomas Refis and Florian Angeletti) + +- #12229: Remove global mutable state for typechecking patterns + in Typecore in favor of local mutable state. + (Nick Roberts, review by Takafumi Saikawa) + +- #12236, #12386, #12391, #12496, #12673: Use syntax as sole determiner of arity + This changes function arity to be based solely on the source program's + parsetree. Previously, the heuristic for arity had more subtle heuristics + that involved type information about patterns. Function arity is important + because it determines when a pattern match's effects run and is an input + into the fast path for function application. + + This change affects tooling: it changes the function constructs in parsetree + and typedtree. + + See https://github.com/ocaml/RFCs/pull/32 for the original RFC. + + (Nick Roberts; review by Richard Eisenberg, Leo White, and Gabriel Scherer; + RFC by Stephen Dolan) + +- #12542: Minor bugfix to #12236: restore dropped call to `instance` + (Nick Roberts, review by Jacques Garrigue) + +- #12242: Move the computation of stack frame parameters to a separate + `Stackframe` module, and save the parameters in the results of the + `Linearize` pass + (Xavier Leroy, review by KC Sivaramakrishnan and Mark Shinwell) + +- #12442: document jump summaries in the pattern-matching compiler + (Gabriel Scherer and Thomas Refis, review by Florian Angeletti + and Vincent Laviron) + +- #12446, #12792: remove the hooks machinery around channel locking + in runtime/io.c + (Gabriel Scherer, review by Xavier Leroy) + +- #12389, #12544, #12984, #12987: centralize the handling of metadata for + compilation units and artifacts in preparation for better unicode support for + OCaml source files. + (Florian Angeletti, review by Vincent Laviron and Gabriel Scherer) + +- #12532, #12553: improve readability of the pattern-matching debug output + (Gabriel Scherer, review by Thomas Refis) + +- #12537: Use C11/C++11 standard static assertion. + (Antonin Décimo, review by Sebastien Hinderer, Xavier Leroy, + and KC Sivaramakrishnan) + +- #12169: runtime: document and enforce naming conventions around STW sections. + (Gabriel Scherer, review by Enguerrand Decorne, Miod Vallat, B. Szilvasy + and Nick Barnes, report by KC Sivaramakrishnan) + +- #12669 : Clean up some global state handling in schedgen + (Stefan Muenzel, review by Miod Vallat and Gabriel Scherer) + +- #12640: Make the module separator used in symbol names configurable + (Miod Vallat, review by Hugo Heuzard and Xavier Leroy) + +- #12691 : Clean up Ctype.expand_abbrev_gen and + rename Env.add_local_type to add_local_constraint + (Takafumi Saikawa and Jacques Garrigue, review by Florian Angeletti) + +- #12786 : Clean up the algorithm of Ctype.limited_generalize + (Takafumi Saikawa and Jacques Garrigue, review by Gabriel Scherer) + +- #10691: Ast_mapper, Ast_iterator: add functions directive_argument, + toplevel_directive and toplevel_phrase. + (Guillaume Petiot, review by Gabriel Scherer and Kate Deplaix) + +- #12764: Move all installable headers in `caml/` sub-directories. + (Antonin Décimo, review by Gabriel Scherer and David Allsopp) + +- #12508 : Add compiler-side support for project-wide occurrences in Merlin, by + generating index tables of all identifier occurrences. This extra data in .cmt + files is only added when the new flag -bin-annot-occurrences is passed. + (Ulysse Gérard, Nathanaëlle Courant, suggestions by Gabriel Scherer and Thomas + Refis, review by Florian Angeletti, Gabriel Scherer and Thomas Refis) + +- #12914: Slightly change the s390x assembly dialect in order to build with + Clang's integrated assembler. + (Miod Vallat, review by Gabriel Scherer) + +- #13001: do not read_back entire shapes to get aliases' uids when building the + usages index + (Ulysse Gérard, review by Gabriel Scherer and Nathanaëlle Courant) + +### Build system: + +- #12198, #12321, #12586, #12616, #12706, #13048: continue the merge of the + sub-makefiles into the root Makefile started with #11243, #11248, + #11268, #11420 and #11675. + (Sébastien Hinderer, review by David Allsopp and Florian Angeletti) + +- #12569, #12570: remove 'otherlibraries' as a prerequisite for 'runtop'; + use 'runtop-with-otherlibs' to use a library from otherlibs/ + (Gabriel Scherer, review by Sébastien Hinderer, suggestion by David Allsopp) + +- #12652: Make magic numbers easier to bump and duplicate. + (Sébastien Hinderer, review by Antonin Décimo, David Allsopp and Florian + Angeletti) + +* #12751: --with-target-bindir configure option implemented. This option + refers to the location of the runtime binaries on the target system for a + cross-compiler and is embedded in executables produced by ocamlc. It does + not affect the bytecode executables installed as part of the build. The old + mechanism `make TARGET_BINDIR=..` no longer works. + (David Allsopp, review by Damien Doligez, Xavier Leroy and Olivier Nicole) + +- #12768, #13030: Detect mingw-w64 coupling with GCC or LLVM, detect clang-cl, + and fix C compiler feature detection on macOS. + (Antonin Décimo, review by Miod Vallat and Sébastien Hinderer) + +### Bug fixes: + +- #10652, #12720: fix evaluation order in presence of optional arguments + (Jacques Garrigue, report by Leo White, review by Vincent Laviron) + +- #12595, #12597: fix a race in `caml_clear_gc_stats_sample` + (Gabriel Scherer, review by B. Szilvasy, report by B. Szilvasy) + +- #12580: Fix location of alias pattern variables. + (Chris Casinghino, review Gabriel Scherer, report by Milo Davis) + +- #12583: Add a closing event for when `EV_MAJOR_EPHE_MARK` is complete + (Sudha Parimala, review by Gabriel Scherer) + +- #12566: caml_output_value_to_malloc wrongly uses `caml_stat_alloc` + instead of `malloc` since 4.06, breaking (in pooled mode) user code + that uses `free` on the result. Symmetrically, + caml_input_value_from_malloc should use `free`. + (Gabriel Scherer, review by Xavier Leroy and Enguerrand Decorne, + report by Ido Yariv) + +- #12490: Unix: protect the popen_processes hashtable with a mutex + (Gabriel Scherer, report by Olivier Nicole, review by Xavier Leroy) + +- #11931: Fix tricky typing bug with type substitutions + (Stephen Dolan, review by Leo White and Jacques Garrigue) + +- #12037, #12171: Fix get_extern_state potential NULL dereference. + (Alexander Skvortsov, report by Török Edwin, + design by Gabriel Scherer, Xavier Leroy) + +- #12635: Fix get_intern_state potential NULL dereference. + (Antonin Décimo, review by KC Sivaramakrishnan) + +- #12032, #12059: Bug fixes related to compilation of recursive definitions + (Vincent Laviron, report by Victoire Noizet, review by Gabriel Scherer) + +* #12145: Loopy constraints cause ocamlc to loop. + Fixed by completely removing the call to `update_type` in + `Typedecl.transl_type_decl`, as the expansion is already checked by + `check_regularity`. As a result, recursion is more polymorphic, + which may cause some (essentially wrong) type declarations to have + unbound type variables, and some constraints unrelated to the concrete + type to be ignored (see tests/typing-misc/constraints.ml). + (Jacques Garrigue, report by Richard Eisenberg, review by Leo White) + +- #12207, #12222: Make closure computation linear in the number of recursive + functions instead of quadratic + (Vincent Laviron, report by François Pottier, review by Nathanaëlle Courant + and Gabriel Scherer) + +- #11040, #12591: fix a data race in major_gc.c + (Gabriel Scherer, review by Guillaume Munch-Maccagnoni + and KC Sivaramakrishnan, report by Sadiq Jaffer) + +- #12238, #12403, #12698: read input files in one go to avoid source reprinting + issues. + (Gabriel Scherer, report by Mike Spivey and Vincent Laviron, review by + Nicolás Ojeda Bär, Xavier Leroy and Jeremy Yallop) + +- #12334, #12368: Bad error message with mutually recursive abbreviations + (Jacques Garrigue, report by Richard Eisenberg, review by Gabriel Scherer + and Richard Eisenberg) + +- #12401: `seek_in` and `seek_out` sometimes returned normally when given + negative offsets, instead of failing. Now both functions should consistently + raise `Sys_error` in this case. + (Nicolás Ojeda Bär, review by Gabriel Scherer) + +- #12267: Fix stack alignment computation + (Miod Vallat, report by Jan Midtgaard, review by Gabriel Scherer) + +- #12395, #12404: Fix thread-unsafety in the fallback implementation of + `Unix.create_process` (the one used when `posix_spawnp` is unavailable) + (Xavier Leroy, report by Chris Vine, review by Nicolás Ojeda Bär) + +- #12949: open shadowing mistriggers + (Gabriel Scherer, review by Florian Angeletti, report by Andreas Rossberg) + +- #12526: Honor `ocaml.inline always` attribute on functions with + optional arguments and default values in the Closure backend + (Alain Frisch, review by Vincent Laviron) + +- #12677, #12889: make Domain.DLS thread-safe + (Gabriel Scherer, review by Olivier Nicole and Damien Doligez, + report by Vesa Karvonen) + +- #12561: Fix crash when combining TSan and frame-pointers + (Fabrice Buoro and Olivier Nicole, report by Jan Midtgaard, review by Miod + Vallat and Gabriel Scherer) + +- #12482: Rework bounds checking code in the POWER backend + (Miod Vallat and Xavier Leroy, report by Jan Midtgaard, review by + KC Sivaramakrishnan) + +- #12528, #12703: Avoid pointer arithmetic overflow in Tag_val macro + (very likely harmless, but can trigger alarms) + (Xavier Leroy, report by Sam Goldman, review by Guillaume Munch-Maccagnoni) + +- #12593: TSan should handle Effect.Unhandled correctly + (Fabrice Buoro and Olivier Nicole, report by Jan Midtgaard and Miod Vallat, + review by Gabriel Scherer) + +- #12684: fix locations filename in AST produced by the `-pp` option + (Gabriel Scherer, review by Florian Angeletti) + +- #12714: check whether macros are defined before using them to ensure + that the headers can always be used in code which turns on -Wundef + (or equivalent). + (Antonin Décimo, review by Miod Vallat, Gabriel Scherer, + Xavier Leroy, and David Allsopp) + +- #12726: fix segmentation fault under Windows when executing a bytecode file if + the runtime (`ocamlrun.exe`) cannot be found. + (Vadim Zborovskii, Nicolás Ojeda Bär, report by Vadim Zborovskii, review by + David Allsopp) + +- #12727, #12730: fix bug with value let-rec and labelled applications + (Vincent Laviron, review by Gabriel Scherer) + +* #12751: Always keep within the 128 character limit for shebang lines. Previous + fix in #8622 handled building the compiler with a long prefix; this patch + extends this to the bytecode executables emitted by that compiler. + (David Allsopp, review by Damien Doligez, Xavier Leroy and Olivier Nicole) + +- #12755: Fix data race on global pools arrays of pool_freelist + (Fabrice Buoro and Olivier Nicole, review by Gabriel Scherer) + +- #12796, #12801: Fix memory corruption in caml_unix_alloc_sockaddr + (Thomas Leonard, review by Nicolás Ojeda Bär) + +- #12737: Fix data races in minor_gc.c and caml_natdynlink_open + (Olivier Nicole, review by Stefan Muenzel, Miod Vallat, Guillaume + Munch-Maccagnoni, Gabriel Scherer and Xavier Leroy) + +- #12831: Fix call to caml_call_realloc_stack for s390x in PIC mode + (Vincent Laviron, report by Jerry James, review by Miod Vallat) + +* #12837: Show non-generalizable type parameters in type definitions + Changes type of type parameters in outcometree.mli. + (Jacques Garrigue, review by Richard Eisenberg) + +- #12897: fix locking bugs in Runtime_events + (Gabriel Scherer and Thomas Leonard, + review by Olivier Nicole, Vincent Laviron and Damien Doligez, + report by Thomas Leonard) + +- #12851: Fix race between runtime events teardown and event emission + (Olivier Nicole, review by Miod Vallat and Gabriel Scherer) + +- #12860: Fix an assertion that wasn't taking into account the possibility of an + ephemeron pointing at static data. + (Mark Shinwell, review by Gabriel Scherer and KC Sivaramakrishnan) + +- #12861: Fix a possible crash in the `threads` library. + (Mark Shinwell, review by Gabriel Scherer and KC Sivaramakrishnan) + +- #11040, #12894: Silence false data race observed between caml_shared_try_alloc + and oldify. Introduces macros to call tsan annotations which help annotate + a ``happens before'' relationship. + (Hari Hara Naveen S and Olivier Nicole, + review by Gabriel Scherer and Miod Vallat) + +- #12958: Fix tail-modulo-cons compilation of try-with, && and || + expressions. + (Gabriel Scherer and Nicolás Ojeda Bär, report by Sylvain Boilard, review by + Gabriel Scherer) + +- #12919: Fix register corruption in caml_callback2_asm on s390x. + (Miod Vallat, review by Gabriel Scherer) + +- #12924, #12930: Rework package constraint checking to improve interaction with + immediacy + (Chris Casinghino and Florian Angeletti, review by Florian Angeletti and + Richard Eisenberg) + +- #12969: Fix a data race in caml_darken_cont + (Fabrice Buoro and Olivier Nicole, review by Gabriel Scherer and Miod Vallat) + +- #12971, #12974: fix an uncaught Ctype.Escape exception on some + invalid programs forming recursive types. + (Gabriel Scherer, review by Florian Angeletti, report by Neven Villani) + +- #13019: Remove linking instructions for the Unix library from threads.cma + (this was done for threads.cmxa in OCaml 3.11). Eliminates warnings from + new lld when using threads.cma of duplicated libraries. + (David Allsopp, review by Nicolás Ojeda Bär) + +- #13058: Add TSan instrumentation to caml_call_gc(), since it may raise + exceptions. + (Fabrice Buoro, Olivier Nicole, Gabriel Scherer and Miod Vallat) + +- #13079: Save and restore frame pointer across Iextcall on ARM64 + (Tim McGilchrist, review by KC Sivaramakrishnan and Miod Vallat) + +- #13094: Fix undefined behavior of left-shifting a negative number. + (Antonin Décimo, review by Miod Vallat and Nicolás Ojeda Bär) + +OCaml 5.1.1 (8 December 2023) +---------------------------- + +### Standard library: + +* #12562, #12734, #12783: Remove the `Marshal.Compression` flag to the + `Marshal.to_*` functions introduced in 5.1 by #12006, as it cannot + be implemented without risking to link -lzstd with all + ocamlopt-generated executables. The compilers are still able to use + ZSTD compression for compilation artefacts. + (Xavier Leroy and David Allsopp, report by Kate Deplaix, review by + Nicolás Ojeda Bär, Kate Deplaix, and Damien Doligez). + +### Bug fixes: + +- #11800, #12707: fix an assertion race condition in `install_backup_thread` + (Jan Midtgaard, review by Gabriel Scherer) + +- #12318: GC: simplify the meaning of custom_minor_max_size: blocks with + out-of-heap memory above this limit are now allocated directly in + the major heap. + (Damien Doligez, report by Stephen Dolan, review by Gabriel Scherer) + +- #12439: Finalize and collect dead custom blocks during minor collection + (Damien Doligez, review by Xavier Leroy, Gabriel Scherer and KC + Sivaramakrishnan) + +- #12486, #12535: Fix delivery of unhandled effect exceptions on amd64 with + --enable-frame-pointers + (Miod Vallat, report by Jan Midtgaard, review by Gabriel Scherer) + +- #12581, #12609: Fix error on uses of packed modules outside their pack + to correctly handle nested packs + (Vincent Laviron, report by Javier Chávarri, review by Pierre Chambart) + +- #12590, #12595: Move `caml_collect_gc_stats_sample` in + `caml_empty_minor_heap_promote` before barrier arrival. + (B. Szilvasy, review by Gabriel Scherer) + +- #12623, fix the computation of variance composition + (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scherer) + +- #12645, #12649 fix error messages for cyclic type definitions in presence of + the `-short-paths` flag. + (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scherer) + +- #12712, #12742: fix an assertion boundary case in `caml_reset_young_limit` + (Jan Midtgaard, review by Guillaume Munch-Maccagnoni and KC Sivaramakrishnan) + +- #12713, #12715: disable common subexpression elimination for atomic loads + (Gabriel Scherer and Vincent Laviron, + review by Vincent Laviron, KC Sivaramakrishnan and Xavier Leroy, + report by Vesa Karvonen and Carine Morel) + +- #12757: Fix ocamlnat (native toplevel) by registering frametables correctly + (Stephen Dolan, Nick Barnes and Mark Shinwell, + review by Vincent Laviron and Sébastien Hinderer) + +- #12791: `extern` is applied to definitions of `caml_builtin_cprim` + and `caml_names_of_builtin_cprim` when linking bytecode '-custom' + executables with a C++ linker. + (Shayne Fletcher, review by Antonin Décimo and Xavier Leroy) + +- #12491, #12493, #12500, #12754: Do not change GC pace when creating + sub-arrays of bigarrays + (Xavier Leroy, report by Ido Yariv, analysis by Gabriel Scherer, + review by Gabriel Scherer and Fabrice Buoro) + +OCaml 5.1.0 (14 September 2023) +------------------------------- + +### Restored backends + +- #11418, #11708: RISC-V multicore support. + (Nicolás Ojeda Bär, review by KC Sivaramakrishnan) + +- #11712, #12258, #12261: s390x / IBM Z multicore support: + OCaml & C stack separation; dynamic stack size checks; fiber and + effects support. + (Aleksei Nikiforov, with help from Vincent Laviron and Xavier Leroy, + additional suggestions by Luc Maranget, + review by the same and KC Sivaramakrishnan) + +- #11642: Restore Cygwin port. Add GC messages for address space reservations + when OCAMLRUNPARAM option v includes 0x1000. + (David Allsopp, review by Xavier Leroy, Guillaume Munch-Maccagnoni + and Gabriel Scherer) + +### Standard library: + +- #12006, #12064: Add `Marshal.Compression` flag to `Marshal.to_*` functions. + When this flag is explicitly set, marshaled data is compressed using ZSTD. + On some practical examples, the marshalled output became three times smaller + at no noticeable cost on the marshalling time. + (Xavier Leroy, review by Edwin Török and Gabriel Scherer, fix by Damien + Doligez) + +- #10464: Add List.is_empty. + (Craig Ferguson, review by David Allsopp) + +- #11848: Add `List.find_mapi`, + `List.find_index: ('a -> bool) -> 'a list -> int option`, + `Seq.find_mapi`, `Seq.find_index`, `Array.find_mapi`, `Array.find_index`, + `Float.Array.find_opt`, `Float.Array.find_index`, `Float.Array.find_map`, + `Float.Array.find_mapi`. + (T. Kinsart, review by Daniel Bünzli and Nicolás Ojeda Bär) + +- #11410: Add Set.to_list, Map.to_list, Map.of_list, + `Map.add_to_list: key -> 'a -> 'a list t -> 'a list t`. + (Daniel Bünzli, review by Nicolás Ojeda Bär and Gabriel Scherer) + +- #11836, #11837: Add `Array.map_inplace`, `Array.mapi_inplace`, + `Float.Array.mapi_inplace` and `Float.Array.mapi_inplace`. + (Léo Andrès, review by Gabriel Scherer, KC Sivaramakrishnan and + Nicolás Ojeda Bär) + +- #10967: Add Filename.temp_dir. + (David Turner, review by Anil Madhavapeddy, Valentin Gatien-Baron, Nicolás + Ojeda Bär, Gabriel Scherer, and Daniel Bünzli) + +- #11246: Add "hash" and "seeded_hash" functions to Bool, Int, Char, Float, + Int32, Int64, and Nativeint. + (Nicolás Ojeda Bär, review by Xavier Leroy and Gabriel Scherer) + +- #11488: Add `Mutex.protect: Mutex.t -> (unit -> 'a) -> 'a` + for resource-safe critical sections protected by a mutex. + (Simon Cruanes, review by Gabriel Scherer, Xavier Leroy, + Guillaume Munch-Maccagnoni) + +- #11581: Add type equality witness + `type (_, _) eq = Equal: ('a, 'a) eq` + in a new module Stdlib.Type. + (Nicolás Ojeda Bär, review by Daniel Bünzli, Jacques Garrigue, Florian + Angeletti, Alain Frisch, Gabriel Scherer, Jeremy Yallop and Xavier Leroy) + +- #11843: Add `In_channel.input_lines` and `In_channel.fold_lines`. + (Xavier Leroy, review by Nicolás Ojeda Bär and Wiktor Kuchta). + +- #11856, #11859: Using TRMC, the following `Stdlib` functions are now + tail-recursive: + Stdlib.(@), List.append, + List.concat_map. + (Jeremy Yallop, review by Daniel Bünzli, Anil Madhavapeddy, Nicolás Ojeda Bär, + Gabriel Scherer, and Bannerets) + +- #11362, #11402: Using TRMC, the following `Stdlib` functions are now + tail-recursive: + List.map, List.mapi, List.map2, + List.filter, List.filteri, List.filter_map, + List.init, + List.of_seq. + (Nicolás Ojeda Bär, review by Xavier Leroy and Gabriel Scherer) + + +- #11878, #11965: Prevent seek_in from marking buffer data as valid after + closing the channel. This could lead to inputting uninitialized bytes. + (Samuel Hym, review by Xavier Leroy and Olivier Nicole) + +- #11128: Add In_channel.isatty, Out_channel.isatty. + (Nicolás Ojeda Bär, review by Gabriel Scherer and Florian Angeletti) + +- #10859: Add `Format.pp_print_iter` and `Format.pp_print_array`. + (Léo Andrès and Daniel Bünzli, review by David Allsopp and Hugo Heuzard) + +- #10789: Add `Stack.drop` + (Léo Andrès, review by Gabriel Scherer) + +* #10899: Change Stdlib.nan from signaling NaN to quiet NaN. + (Greta Yorsh, review by Xavier Leroy, Guillaume Melquiond and + Gabriel Scherer) + +- #11026, #11667, #11858: Rename the type of the accumulator + of fold functions to 'acc: + fold_left : ('acc -> 'a -> 'acc) -> 'acc -> 'a list -> 'acc + fold_right : ('a -> 'acc -> 'acc) -> 'a list -> 'acc -> 'acc + fold_left_map : ('acc -> 'a -> 'acc * 'b) -> 'acc -> 'a list -> 'acc * 'b list + ... + (Valentin Gatien-Baron and François Berenger, + review by Gabriel Scherer and Nicolás Ojeda Bär) + +- #11354: Hashtbl.find_all is now tail-recursive. + (Fermín Reig, review by Gabriel Scherer) + +- #11500: Make Hashtbl.mem non-allocating. + (Simmo Saan, review by Nicolás Ojeda Bär) + +- #11412: Add Sys.is_regular_file + (Xavier Leroy, review by Anil Madhavapeddy, Nicolás Ojeda Bär, David Allsopp) + +- #11322, #11329: serialization functions Random.State.{of,to}_binary_string + between Random.State.t and string + (Gabriel Scherer, report by Yotam Barnoy, + review by Daniel Bünzli, Damien Doligez, Hugo Heuzard and Xavier Leroy) + +- #11830: Add Type.Id with + `val provably_equal : 'a Type.Id.t -> 'b Type.Id.t -> ('a, 'b) Type.eq option` + (Daniel Bünzli, review by Jeremy Yallop, Gabriel Scherer, Wiktor Kuchta, + Nicolás Ojeda Bär) + +- #12184, #12320: Sys.rename Windows fixes on directory corner cases. + (Jan Midtgaard, review by Anil Madhavapeddy) + +* #11565: Enable -strict-formats by default. Some incorrect format + specifications (for `printf`) where silently ignored and now fail. + Those new failures occur at compile-time, except if you use advanced + format features like `%(...%)` that parse format strings dynamically. + Pass -no-strict-formats to revert to the previous lenient behavior. + (Nicolás Ojeda Bär, review by David Allsopp) + +### Installation size + + Specific efforts have been made during this release to reduce the filesystem +size of installed artifacts of the compiler distribution. +The installation size of 5.1 is 272 MiB compared to 521 MiB for 5.0. +Some of those changes will benefit all OCaml packages. + +- ocaml/RFCs#23, #12006: use compressed marshaled format from #12006 for .cmi, + .cmt, .cmti files, and for debug info in .cmo and .cma files, resulting in + major reduction in size. + (Xavier Leroy, review by Edwin Török and Gabriel Scherer, + RFC by Simon Cruanes) + +- #11981: Reduce size of OCaml installations by removing debugging information + from installed bytecode executables. It is no longer possible to + run ocamldebug over these installed bytecode executables, nor to get + exception backtraces for them. + (Xavier Leroy, review by David Allsopp, report by Fabrice Le Fessant) + +* #11993: install only bytecode executables for the `ocamlmklib`, `ocamlcmt`, + `ocamlprof`, `ocamlcp`, `ocamloptp`, and `ocamlmktop` tools, but no + native-code executables. A tool like `ocamlmklib` for example is now + installed directly to `$BINDIR/ocamlmklib`; `ocamlmklib.byte` and + `ocamlmklib.opt` are no longer installed to `$BINDIR`. + (Xavier Leroy, review by Gabriel Scherer) + +### Runtime system: + +- #11589, #11903: Modify the GC pacing code to make sure the GC keeps + up with allocations in the presence of idle domains. + (Damien Doligez and Stephen Dolan, report by Florian Angeletti, + review by KC Sivaramakrishnan and Sadiq Jaffer) + +- #11743: Speed up weak array operations + (KC Sivaramakrishnan, review by François Bobot and Sadiq Jaffer) + +- #12131: Simplify implementation of weak hash sets, fixing a + performance regression. (Nick Barnes, review by François Bobot, + Alain Frisch and Damien Doligez). + +- #11474, #11998, #12065: Add support for user-defined events in the runtime + event tracing system. + (Lucas Pluvinage, review by Sadiq Jaffer, Guillaume Munch-Maccagnoni, + Enguerrand Decorne, Gabriel Scherer and Anil Madhavapeddy) + +- #11827, #12249: Restore prefetching for GC marking + (Fabrice Buoro and Stephen Dolan, review by Gabriel Scherer and Sadiq Jaffer) + +- #11144: Restore frame-pointers support for amd64 + (Fabrice Buoro, review by Frédéric Bour and KC Sivaramakrishnan) + +- #11935: Load frametables of dynlink'd modules in batch + (Stephen Dolan, review by David Allsopp and Guillaume Munch-Maccagnoni) + +- #11284, #12525: Use compression of entries scheme when pruning mark stack. + Can decrease memory usage for some workloads, otherwise should be + unobservable. + (Tom Kelly, review by Sabine Schmaltz, Sadiq Jaffer and Damien Doligez) + +* #11865, #11868, #11876: Clarify that the operations of a custom + block must never access the OCaml runtime. The previous + documentation only mentioned the main illicit usages. In particular, + since OCaml 5.0, it is no longer safe to call + `caml_remove_global_root` or `caml_remove_generational_global_root` + from within the C finalizer of a custom block, or within the + finalization function passed to `caml_alloc_final`. As a workaround, + such a finalization operation can be registered with `Gc.finalize` + instead, which guarantees to run the finalizer at a safe point. + (Report by Timothy Bourke, discussion by Yotam Barnoy, Timothy + Bourke, Sadiq Jaffer, Xavier Leroy, Guillaume Munch-Maccagnoni, and + Gabriel Scherer) + +- #12130: Fix multicore crashes with weak hash sets. Fixes #11934. + (Nick Barnes, review by François Bobot) + +- #12099: Add ocamlrund option, -events, to produce a trace of + debug events during bytecode interpretation. Fixes #12098. + (Richard L Ford, review by Gabriel Scherer) + +- #12001: Fix book keeping for last finalisers during the minor cycle + (KC Sivaramakrishnan and Enguerrand Decorne, report by Guillaume Bury + and Vincent Laviron, review by Sadiq Jaffer and KC Sivaramakrishnan) + +- #11919: New runtime events counters for major heap stats and minor heap + resizing. + (Sadiq Jaffer, review by Gabriel Scherer and David Allsopp) + +- #11287, #11872, #11955: Clean up reserved header bits (once used for + Spacetime profiling). + (Nick Barnes, review by Gabriel Scherer and Damien Doligez) + +- #11750: Decouple major slice from minor GC. + (KC Sivaramakrishnan, review by Sadiq Jaffer, Guillaume Munch-Maccagnoni and + Damien Doligez) + +- #11796: protect lazy computation of code fragment digest by a mutex. + This makes the thread sanitizer happier, and avoids duplicating + the hashing work. + (Gabriel Scherer, review by Xavier Leroy, report by Olivier Nicole) + +- #11137: new `Unsafe_store_tag(val, new_tag)` macro to stop using + `Tag_val(val)` as lvalue. + (Gabriel Scherer, review by Xavier Leroy, Guillaume Munch-Maccagnoni + and Nicolás Ojeda Bär) + +- #11880: Restore the correct sigmask in systhreads. + (Christiano Haesbaert, review by Guillaume Munch-Maccagnoni and + Sébastien Hinderer) + +- #11881: Fix thread-unsafety of registration of operations for "custom" + values. + (Guillaume Munch-Maccagnoni, review by Gabriel Scherer and KC + Sivaramakrishnan) + +- #11980: fix quadratic behavior in natdynlink by using a STW section + for frame-descriptor updates. + (Gabriel Scherer, review by Sadiq Jaffer, report by André Maroneze + for Frama-C and Guillaume Melquiond for Coq) + +- #12121: unrooted implementations of caml_callback*_exn + (Gabriel Scherer, review by KC Sivaramakrishnan and Xavier Leroy) + +- #3921, #12039, #12128: poll for signals in long-running polymorphic + comparisons. + (B. Szilvasy, Gabriel Scherer and Xavier Leroy, review by + Stefan Muenzel, Guillaume Munch-Maccagnoni and Damien Doligez) + +- #12231: Support MinGW-w64 11.0 winpthreads library, where the macro + to set up to get flexdll working changed + (David Allsopp and Samuel Hym, light review by Xavier Leroy) + +* #12512: Add volatile casts to FFI macros to enforce memory model (technically + a breaking change although no opam package seemed broken by it.) + (Olivier Nicole, suggested by Guillaume Munch-Maccagnoni, review by Gabriel + Scherer and Xavier Leroy) + +### Language features: + +* #11694: Add short syntax for generative functor types `() -> ...` + (Jeremy Yallop, review by Gabriel Scherer, Nicolás Ojeda Bär, + Jacques Garrigue) + + +* #11457: Remove old polymorphic variant syntax. + With ``type t = [ `A | `B ]``, one could use the syntax `#t` in types, + where it means the same thing as `[< t]`, and in patterns, where it means + ``(`A | `B)``. The use of `#t` in types for polymorphic variants + was deprecated since 2001, and is now removed. The syntax remains available + in patterns, or for objects -- when `t` is a class type. + (Stefan Muenzel, review by Gabriel Scherer and Jacques Garrigue) + +* #11984: Add dedicated syntax for generative functor application. + Previously, OCaml did not distinguish between `F ()` and + `F (struct end)`, even though the latter looks applicative. Instead, + the decision between generative and applicative functor application + was made based on the type of `F`. With this patch, we now distinguish + these two application forms; writing `F (struct end)` for a generative + functor leads to new warning 73. + (Frédéric Bour and Richard Eisenberg, review by Florian Angeletti) + + +- #9975, #11365: Make empty types (`type t = |`) immediate. + (Antal Spector-Zabusky, review by Gabriel Scherer) + +### Type system: + +* #6941, #11187, #12483: prohibit using classes through recursive modules + inheriting or including a class belonging to a mutually-recursive module + would previous behave incorrectly, and now results in a clean error. + (Leo White, review by Gabriel Scherer and Florian Angeletti) + +* #12189, #12211: anonymous row variables in explicitly polymorphic type + annotation, e.g. `'a. [< X of 'a ] -> 'a`, are now implicitly + universally quantified (in other words, the example above is now read + as `'a 'r. ([< X of 'a ] as 'r) -> 'a`). + (Florian Angeletti and Gabriel Scherer, review by Jacques Garrigue) + +### Code generation and optimizations: + +- #11967: Remove traces of Obj.truncate, which allows some mutable + loads to become immutable. + (Nick Barnes, review by Vincent Laviron and KC Sivaramakrishnan) + +- #9945, #10883: Turn boolean-result float comparisons into primitive operations + Uses the architecture's elementary operations for float comparisons, + when available, rather than branching and then setting the return value. + (Stefan Muenzel, review by Stephen Dolan, Alain Frisch and Vincent Laviron) + +- #8998, #11321, #11430: change mangling of OCaml long identifiers + from `camlModule__name_NNN` to `camlModule.name_NNN`. The previous + mangling schema, using `__`, was ambiguous. + (Xavier Leroy, report by sliquister and Michael Bacarella, + review by Gabriel Scherer) + +- #10834: The -safer-matching option disables type-based optimizations of + pattern-matching compilation. This allows to produce a match failure if + a pattern-matching was wrongly assumed to be exhaustive. Since the + exhaustiveness check for GADTs has had bugs in the past, it may be + useful if you need extra security with GADTs. + (Jacques Garrigue, review by Gabriel Scherer) + +- #11102: Speed up register allocation by permanently spilling registers + (Stephen Dolan, review by Xavier Leroy) + +- #11383: Restrict the local function optimisation to forbid moving code + inside a sub-function + (Vincent Laviron, review by Gabriel Scherer) + +- #11686: Better spilling heuristic for the Linear Scan allocator for more + efficient stack usage. + (Nicolás Ojeda Bär, Gabriel Scherer, Alain Frisch, review by Gabriel Scherer, + Alain Frisch and Nathanaëlle Courant) + +- #11904: Remove arm, i386 native-code backends that were already + disabled at configuration time. + (Nicolás Ojeda Bär, review by Stephen Dolan, Anil Madhavapeddy, and Xavier + Leroy) + +- #11134: Optimise 'include struct' in more cases + (Stephen Dolan, review by Leo White and Vincent Laviron) + +### Other libraries: + +- #11374: Remove pointer cast to a type with stricter alignment requirements + in Windows implementation of Unix.gettimeofday. Windows implementations of + caml_unix_map_file, caml_unix_lseek and caml_unix_lseek_64 now release the + runtime lock. Windows implementation of caml_unix_lockf modernised and + simplified. Where possible, 64 bit integers are used instead of LARGE_INTEGER + structs. + (David Allsopp, review by Jonah Beckford and Xavier Leroy) + +- #11475: Make Unix terminal interface bindings domain-safe + (Olivier Nicole and Xavier Leroy, review by Xavier Leroy) + +- #11775: Unix.write on a non-blocking socket under Windows will return normally + if the write blocks after some data has already been written (as otherwise + there is no way of knowing how much data has been written before + blocking). The same behaviour was already present under Unix. + (Nicolás Ojeda Bär, review by David Allsopp) + +* #11991: Unix on Windows: map ERROR_TOO_MANY_LINKS to EMLINK. + (Nicolás Ojeda Bär) + +- #12067: Document Windows specific meanings of `Unix.process_status` + type + (Samuel Hym, review by David Allsopp) + +- #12072: Document and test that Sys.rename works over directories too + (Jan Midtgaard, review by Anil Madhavapeddy and Xavier Leroy) + +### Tools: + +- #11889, #11978: ocamldoc: handle injectivity annotations and wildcards in type + parameters. + (Florian Angeletti, report by Wiktor Kuchta, review by Jules Aguillon) + +- #11787: Fix GDB scripts to work with OCaml 5's heap layout. (Nick + Barnes) + +- #11772: fix ocamlyacc's handling of raw string literals + (Demi Marie Obenour) + +- #9290: Add a directive to switch off debugging in toplevel. + This allows to see optimized bytecode with -dlambda. + (Jacques Garrigue, review by Gabriel Scherer) + +- #11166: ocamllex: the union of two character sets "cset1 | cset2" can now be + used in any context where a character set is expected. + (Nicolás Ojeda Bär, Martin Jambon, review by Sébastien Hinderer) + +- #11718: ocamlyacc: OCaml-style comments are now supported, in addition to + the C-style comments already supported. The syntax is the same as that used + in OCaml code. + (Demi Marie Obenour, review by Damien Doligez) + +- #11728: ocamlyacc: generate line directives for %type declarations + (Demi Marie Obenour, review by Damien Doligez) + +- #11773: ocamlyacc: Do not allow quoted literals (such as 'a' or "bc") + in a token name or %type declaration. Previously such literals were + accepted by ocamlyacc, but produced malformed OCaml that was rejected + by the compiler. + (Demi Marie Obenour, review by Gabriel Scherer) + +- #11774: ocamlyacc: fail if there is an I/O error + (Demi Marie Obenour, review by Gabriel Scherer) + +- #11973: Add support for postfixed mingw host triplets + (Romain Beauxis) + +- #12165: ocamldoc, use standard doctype to avoid quirk mode. + (Florian Angeletti, review by Gabriel Scherer) + +### Manual and documentation: + +- #11476: Add examples in documentation of Hashtbl, Queue, Atomic, Format + (Simon Cruanes, review by Yotam Barnoy, Gabriel Scherer, Daniel Bünzli, + Ulugbek Abdullaev, and Nicolás Ojeda Bär) + +- #11883, #11884: Update documentation for In_channel and Out_channel + with examples and sections to group related functions. + (Kiran Gopinathan, review by Daniel Bünzli and Xavier Leroy) + + +- #12095, #12097: Put the sample code of the user's manual and reference + documentation of the standard library under the CC0 1.0 Universal + (CC0 1.0) Public Domain Dedication license. + +- #11892: Document the semantic differences of Unix.exec* between Unix and + Windows. + (Boris Yakobowski, review by Daniel Bünzli, Gabriel Scherer and Nicolás Ojeda + Bär) + +- #9430, #11291: Document the general desugaring rules for binding operators. + (Gabriel Scherer, review by Nicolás Ojeda Bär) + +- #11481: Fix the type of Unix.umask to Unix.file_perm -> Unix.file_perm + (Favonia, review by Sébastien Hinderer) + +- #11514: Document ocamltest builtin variables and actions + (Olivier Nicole, review by Sébastien Hinderer) + +- #11676: Fix missing since annotation in the `Sys` and `Format` modules + (Github user Bukolab99, review by Florian Angeletti) + +- #12028: Update format documentation to make it clearer that + `pp_print_newline` flushes its newline + (Florian Angeletti, review by Gabriel Scherer) + +- #12201: in the tutorial on modules, replace priority queue example by + a simpler example based on FIFO queues. + (Xavier Leroy, review by Anil Madhavapeddy and Nicolás Ojeda Bär). + +- #12352: Fix a typo in the documentation of Arg.write_arg + (Christophe Raffalli, review by Florian Angeletti) + +- #7179, #11894: correct the description of CAMLreturn and CAMLreturn0 in + the Interfacing C page and memory.h file. + (Dong An, review by Guillaume Munch-Maccagnoni and Olivier Nicole ) + +### Compiler user-interface and warnings: + +- #10647: Show hints for the "undefined global" error in the toplevel + (Wiktor Kuchta, review by Gabriel Scherer) + +- #12116: Don't suggest to insert a semicolon when the type is not unit + (Jules Aguillon, review by Florian Angeletti) + +- #11679: Improve the error message about too many arguments to a function + (Jules Aguillon, review by Gabriel Scherer and Florian Angeletti) + +- #10009: Improve the error reported by mismatched struct/sig and =/: in module + and module type bindings. + (Jules Aguillon, review by Gabriel Scherer) + +- #11530: Include kinds in kind mismatch error message. + "Error: This variant or record definition does not match that of type M.t + The original is abstract, but this is a record". + (Leonhard Markert, review by Gabriel Scherer and Florian Angeletti) + +- #11646: Add colors to error message hints. + (Christiana Anthony, review by Florian Angeletti) + +- #11235, #11864: usage warnings for constructors and fields can now be disabled + on field-by-field or constructor-by-constructor basis + (Florian Angeletti, review by Gabriel Scherer) + +- #11888: Improve the error message when type variables cannot be deduced from + the type parameters: + Before: + "Error: In this definition, a type variable cannot be deduced + from the type parameters." + After: + "Error: In the GADT constructor + T : 'a -> 'a s t + the type variable 'a cannot be deduced from the type parameters." + (Stefan Muenzel, review by Florian Angeletti and Gabriel Scherer) + + +- #10818: Preserve integer literal formatting in type hint. + (Leonhard Markert, review by Gabriel Scherer and Florian Angeletti) + +- #11338: Turn some partial application warnings into hints. + (Leo White, review by Stephen Dolan) + +- #10931: Improve warning 14 (illegal backslash) with a better explanation + of the causes and how to fix it. + (David Allsopp, Florian Angeletti, Lucas De Angelis, Gabriel Scherer, + review by Nicolás Ojeda Bär, Florian Angeletti, David Allsopp and + Gabriel Scherer) + +- #10911: Improve the location reported by parenthesized assert expressions + (Fabian Hemmer, review by Gabriel Scherer) + +- #1391, #7645, #3922: Add an early error when compiling different + modules with mismatching -for-pack + (Pierre Chambart and Vincent Laviron, review by Mark Shinwell) + +- #11297: Report "unclosed" error when "done" is missing in a "do .. done" + construct. + (Nicolás Ojeda Bär, review by Gabriel Scherer) + +- #11635, #5461, #10564: turn warning 31 (Module_linked_twice) into a hard error + for ocamlc — this was already an error with ocamlopt. + (Hugo Heuzard, review by Valentin Gatien-Baron and Gabriel Scherer) + +- #11653: Add the -no-absname option to ocamlc, ocamlopt and ocamldep. + (Abiola Abdulsalam, review by Sébastien Hinderer and Florian Angeletti) + +- #11696: Add the -no-g option to ocamlc and ocamlopt. + (Abiola Abdulsalam, review by Sébastien Hinderer, Nicolás Ojeda Bär and + Florian Angeletti) + +- #11722: clearer error messages on non-well-founded type definitions + (Gabriel Scherer, review by Jacques Garrigue) + +- #11819: make the `native_compiler` and `native_dynlink` configuration + variables available through ocamlc -config. + (Sébastien Hinderer, review by Gabriel Scherer and David Allsopp) + +- #8602, #11863: Add -stop-after lambda flag option + (Douglas Smith and Dmitrii Kosarev, review by Gabriel Scherer) + +- #11910: Simplify naming convention for shadowed or ephemeral identifiers in + error messages (eg: `Illegal shadowing of included type t/2 by t`) + (Florian Angeletti, review by Jules Aguillon) + +- #12024: insert a blank line between separate compiler messages + (Gabriel Scherer, review by Florian Angeletti, report by David Wong) + +- #12088, #9265, #11949: ocamldebug: fix confusing repeating behavior + on blank lines within source scripts + (Damien Doligez, review by Gabriel Scherer, report by Gaëtan Gilbert) + +- #12107: use aliases to mark weak row variables: `_[< ... ]`, `< _..>`, `_#ct` + are now rendered as `[< ...] as '_weak1`, `< .. > as '_weak1`, + and `#ct as '_weak1`. + (Florian Angeletti, suggestion by Stefan Muenzel, review by Gabriel Scherer) + +- #12051: Improve the error messages when type variables cannot be generalized + (Stefan Muenzel, review by Florian Angeletti) + +* #12094: Trigger warning 5 (ignored-partial-application) when the scrutinee of + a pattern matching is of arrow type and all cases match wildcard or exception + patterns. + (Nicolás Ojeda Bär, review by Gabriel Scherer) + +### Internal/compiler-libs changes: + +- #11018, #11869: Clean up Types.Variance, adding a description of + the lattice used, and defining explicitly composition. + (Jacques Garrigue, review by Gabriel Scherer and Jeremy Yallop) + +- #11536: Introduce wrapper functions for level management + ([Ctype.with_level], etc) and for type variable scoping + ([Typetexp.with_local_type_variable_scope]). + The older API ([Ctype.(begin_def,end_def)], [Typetexp.(narrow,widen)], etc.) + is now removed. + (Jacques Garrigue and Takafumi Saikawa, review by Gabriel Scherer) + +- #11601, #11612, #11628, #11613, #11623, #12120 : Clean up some + global state handling in emitcode, bytepackager, bytegen, + bytesections, spill. + (Hugo Heuzard, Stefan Muenzel, review by Vincent Laviron, Gabriel Scherer + and Nathanaëlle Courant) + +- #12119, #12188, #12191: mirror type constraints on value binding in the + parsetree: + the constraint `typ` in `let pat : typ = exp` is now directly stored + in the value binding node in the parsetree. + (Florian Angeletti, review by Richard Eisenberg) + +- #11912: Refactoring handling of scoped type variables + (Richard Eisenberg, review by Gabriel Scherer and Florian Angeletti) + + +- #11691, #11706: use __asm__ instead of asm for strict ISO C conformance + (Xavier Leroy, report by Gregg Reynolds , review by Sadiq Jaffer) + +- #11693: Remove use of C99 Variable Length Arrays (VLAs) in the runtime. + (David Allsopp, review by Xavier Leroy, Guillaume Munch-Maccagnoni, + Stefan Muenzel and Gabriel Scherer) + +- #12138: Generalise interface for BUILD_PATH_PREFIX_MAP mapping. + Absolute paths are now rewritten too. + (Richard L Ford, suggestions and review by Gabriel Scherer) + +- #10512: explain the compilation strategy for switches on constructors + (Gabriel Scherer, review by Vincent Laviron) + +- #11990: Improve comments and macros around frame descriptors. + (Nick Barnes, review by Gabriel Scherer) + +- #11847, #11849, #11851, #11898: small refactorings in the type checker + (Gabriel Scherer, review by Nicolás Ojeda Bär) + +- #11027: Separate typing counter-examples from type_pat into retype_pat; + type_pat is no longer in CPS. + (Jacques Garrigue and Takafumi Saikawa, review by Gabriel Scherer) + +- #11286, #11515: disambiguate identifiers by using how recently they have + been bound in the current environment + (Florian Angeletti, review by Gabriel Scherer) + +- #11364: Allow `make -C testsuite promote` to take `TEST` and `LIST` variables + (Antal Spector-Zabusky, review by Gabriel Scherer and David Allsopp) + +- #11446: document switch compilation (lambda/switch.ml) + (Gabriel Scherer, review by Luc Maranget and Vincent Laviron) + +- #11568: Encode inline record types in Path.t + (Leo White and Hyunggyu Jang, review by Gabriel Scherer) + +- #11569: Remove hash type encoding + (Hyunggyu Jang, review by Gabriel Scherer and Florian Angeletti) + +- #11627: use return values instead of globals for linear scan intervals + (Stefan Muenzel, review by Nicolás Ojeda Bär) + +- #11634: Dll.open_dll now properly handles opening for execution while already + opened for checking + (Hugo Heuzard, review by Nicolás Ojeda Bär) + +* #11745, #12358: Debugger and toplevels: embed printer types rather than + reading their representations from topdirs.cmi at runtime. + This change also removes the ocamlmktop initialization module introduced + in #11382 which was no longer useful. + This change breaks toplevel scripts relying on the visibility of `Topdirs` + in the initial toplevel environment without loading `topfind`. + Since the opam default `.ocamlinit` file loads `topfind`, it is expected + that only scripts run with `ocaml -noinit` are affected. + For those scripts, accessing `Topdirs` now requires the `compiler-libs` + directory to be added to the toplevel search path with + ``` + #directory "+compiler-libs";; + ```` + as was already the case for the other modules in the toplevel interface + library. + (Sébastien Hinderer, review by Florian Angeletti, Nicolás Ojeda Bär and + Gabriel Scherer) + +- #11615: remove global variables form asmcomp/linearize.ml + (Stefan Muenzel, review by Nicolás Ojeda Bär + +- #10856: Add location, attribute(s) visitors to Tast_mapper/Tast_iterator + (Yan Dong, review by Nicolás Ojeda Bär and Gabriel Scherer) + +- #11933: Use the correct machtype when reading the code pointer from closures + (Nathanaëlle Courant, review by Gabriel Scherer and Vincent Laviron) + +- #11972: refactor runtime/frame_descriptors.c + in preparation for quadratic-time fix + (Gabriel Scherer, review by Enguerrand Decorne) + +- #11997: translate structured constants into their Obj.t representation + at compile time rather than link time. Changes the way dumpobj prints + these constants because their representation becomes untyped. + (Sébastien Hinderer, review by Xavier Leroy, Nicolás Ojeda Bär and + Hugo Heuzard) + +- #12011: remove Ctype.reified_var_counter + (Takafumi Saikawa and Jacques Garrigue, review by Gabriel Scherer) + +- #12012: move calls to Typetexp.TyVarEnv.reset inside with_local_level etc. + (Jacques Garrigue and Takafumi Saikawa, review by Gabriel Scherer) + +- #12034: a logarithmic algorithm to find the next free variable + (Gabriel Scherer, review by Stefan Muenzel) + +- #12092: remove Lev_module_definition from lambda + (Nick Roberts, review by Gabriel Scherer) + +- #12117: Remove arity-interrupting elaboration of module unpacks + (Nick Roberts, review by Richard Eisenberg and Jacques Garrigue) + +- #12118: stop storing names of predefined exceptions in the + cu_required_globals field of compilation unit descriptors. + (Sébastien Hinderer, review by Vincent Laviron) + +- #12125: Add Misc.print_see_manual and modify [@manual_ref] to accept + lists for simpler printing of manual references + (Stefan Muenzel, review by Florian Angeletti) + +### Build system: + +- #11844: Reduce verbosity of `make` logs by printing program invocations in + shorthand (eg `OCAMLC foo.cmo`). Setting `V=1` recovers the old style (with + full command-lines). + (Xavier Leroy, Nicolás Ojeda Bär, review by Sébastien Hinderer) + + +- #11243, #11248, #11268, #11420, #11675: merge the sub-makefiles into + the root Makefile. + (Sébastien Hinderer, review by David Allsopp and Florian Angeletti) + +- #11828: Compile otherlibs/ C stubs in two version for native and bytecode + (Olivier Nicole, review by Sébastien Hinderer and Xavier Leroy) + +- #12265: Stop adding -lexecinfo to cclibs (leftover debugging code from the + multicore project). Harden the feature probe for -lm in configure so -lm is + only added if strictly necessary. configure.ac now correctly propagates + library flags for the Windows ports, allowing Windows OCaml to be configured + with ZSTD support. + (David Allsopp, review by Sébastien Hinderer) + +### Bug fixes: + +- #8813, #12029: In the toplevel, let the user type several phrases in one line + (Damien Doligez, report by Daniel Bünzli, review by Gabriel Scherer and + Wiktor Kuchta) + +- #12062: fix runtime events consumer: when events are dropped they shouldn't be + parsed. (Lucas Pluvinage) + +- #12132: Fix overcounting of minor collections in GC stats. + (Damien Doligez, review by Gabriel Scherer) + +- #12017: Re-register finaliser only after calling user alarm in Gc.create_alarm + (Fabrice Buoro, report by Sam Goldman, review by Guillaume Munch-Maccagnoni) + +- #11887, #11893: Code duplication in pattern-matching compilation + (Vincent Laviron, report par Greta Yorsh, review by Luc Maranget and + Gabriel Scherer) + +- #10664, #11600: Unsoundness in the typing of polymorphic methods + involving polymorphic variants + (Jacques Garrigue, report by Mike Shulman, review by Gabriel Scherer) + +- #11302, #11412: `ocamlc` and `ocamlopt` should not remove generated files + when they are not regular files. + (Xavier Leroy, report by Thierry Martinez, review by + Anil Madhavapeddy, Nicolás Ojeda Bär, David Allsopp) + +- #10348, #10560, #11561: Expand GADT equations lazily during unification to + avoid ambiguity + (Jacques Garrigue, review by Leo White) + +- #11436: Fix wrong stack backtrace for out-of-bound exceptions raised + by leaf functions. + (Tom Kelly and Xavier Leroy, review by Mark Shinwell) + +- #11450, #12018: Fix erroneous functor error messages that were too eager to + cast `struct end` functor arguments as unit modules in `F(struct end)`. + (Florian Angeletti, review by Gabriel Scherer) + +- #11643: Add missing test declaration to float_compare test, so that it will + run. + (Stefan Muenzel, review by David Allsopp) + +- #11630: Use correct location when reporting record labels with non-existent + paths. + (Nicolás Ojeda Bär, report by Jason Gross, review by Gabriel Scherer) + +- #11727: Ensure push_defaults can push past module patterns, fixing an + currying optimisation accidentally disabled by #10340. + (Stephen Dolan, review by Gabriel Scherer) + +- #11771: Use a more relaxed mode for unification in Ctype.subst + (Leo White, review by Jacques Garrigue and Gabriel Scherer) + +- #11803, #11808: on x86, the destination of an integer comparison must be + a register, it cannot be a stack slot. + (Vincent Laviron, review by Xavier Leroy, report by + Emilio Jesús Gallego Arias) + +- #11809: Protect Parmatch.pats_of_type from missing cmis + (Jacques Garrigue, review by Stephen Dolan and Gabriel Scherer) + +- #11824: Fix a crash when calling `ocamlrun -b` + (Florian Angeletti, review by Sébastien Hinderer) + +- #11815: Marshalling continuations raises invalid argument exception. + (Jérôme Vouillon, review by Nicolás Ojeda Bär, Stephen Dolan and + Hugo Heuzard) + +- #11846: Mark rbx as destroyed at C call for Win64 (mingw-w64 and Cygwin64). + Reserve the shadow store for the ABI in the c_stack_link struct instead of + explicitly when calling C functions. This simultaneously reduces the number of + stack pointer manipulations and also fixes a bug when calling noalloc + functions where the shadow store was not being reserved. + (David Allsopp, report by Vesa Karvonen, review by Xavier Leroy and + KC Sivaramakrishnan) + +- #11850: When stopping before the `emit` phase (using `-stop-after`), an empty + temporary assembly file is no longer left in the file system. + (Nicolás Ojeda Bär, review by Gabriel Scherer and Xavier Leroy) + +- #11866: Fix the result of `caml_read_directory()` on non-existent paths. + (Andrei Paskevich and Charlène Gros, review by David Allsopp and + Nicolás Ojeda Bär) + +- #11879: Bugfix for Ctype.nondep_type + (Stephen Dolan, review by Gabriel Scherer) + +- #12004: Don't ignore function attributes on lambdas with locally abstract + types. + (Chris Casinghino, review by Gabriel Scherer) + +- #12037: Fix some data races by using volatile when necessary + (Fabrice Buoro and Olivier Nicole, review by Guillaume Munch-Maccagnoni, + Gabriel Scherer and Luc Maranget) + +- #12046: Flush stderr when tracing the parser + (Hugo Heuzard, review by David Allsopp and Nicolás Ojeda Bär) + +- #12061, #12063: don't add inconsistent equalities when computing + high-level error messages for functor applications and inclusions. + (Florian Angeletti, review by Gabriel Scherer) + +- #12075: auto-detect whether `ar` support @FILE arguments at + configure-time to avoid using this feature with toolchains + that do not support it (eg FreeBSD/Darwin). + (Nicolás Ojeda Bär, review by Xavier Leroy, David Allsopp, Javier + Chávarri, Anil Madhavapeddy) + +- #12103, 12104: fix a concurrency memory-safety bug in Buffer + (Gabriel Scherer, review by Florian Angeletti, report by Samuel Hym) + +- #12112: Fix caml_callback{2,3}_exn when used with effect handlers. + (Lucas Pluvinage, review by Gabriel Scherer, David Allsopp and Xavier Leroy) + +- #12134: Use ghost location for nodes created when handling defaults in + optional arguments. + (Paul-Elliot Anglès d'Auriac, review by Gabriel Scherer) + +- #12153: Fix segfault in bytecode programs involving recursive value + definitions of values of size 0 + (Vincent Laviron, Xavier Leroy, Gabriel Scherer, + review by Xavier Leroy, report by Nick Roberts) + +- #12162: Fix miscompilation on amd64 backends involving integer overflows + (Vincent Laviron and Greta Yorsh, review by Stefan Muenzel) + +- #12170: fix pthread_geaffinity_np configure check for android + (David Allsopp, review by Sébastien Hinderer) + +- #12178: Fix runtime events consumer poll function returning an invalid value + instead of an OCaml integer value. (Lucas Pluvinage) + +- #12252: Fix shared library build error on RISC-V. + (Edwin Török, review by Nicolás Ojeda Bär and Xavier Leroy) + +- #12255, #12256: Handle large signal numbers correctly (Nick Barnes, + review by David Allsopp). + +- #12277: ARM64, fix a potential assembler error for very large functions by + emitting stack reallocation code before the body of the function. + (Xavier Leroy, review by KC Sivaramakrishnan) + +- #12253, #12342: Fix infinite loop in signal handling. + (Guillaume Munch-Maccagnoni, report by Thomas Leonard, review by + KC Sivaramakrishnan and Sadiq Jaffer) + +- #12445: missing GC root registrations in runtime/io.c + (Gabriel Scherer, review by Xavier Leroy and Jeremy Yallop) + +- #12481, #12505: Fix incorrect initialization of array expressions + `[|e1;...;eN|]` when `N` is large enough to require major heap allocation. + (Xavier Leroy, report by Andrey Popp, analysis by KC Sivaramakrishnan + and Vincent Laviron, review by Gabriel Scherer) + +- #11150, #11207, #11936: Avoid recomputation in Typedecl.check_wellfounded + (Jacques Garrigue, report by Boris Yakobowski, review by Gabriel Scherer) + +- #11186, #11188: Fix composition of coercions with aliases + (Vincent Laviron, report and review by Leo White) + +- #12486: Fix delivery of unhandled effect exceptions on s390x + (Miod Vallat, report by Jan Midtgaard, review by Vincent Laviron and Xavier + Leroy) + +OCaml 5.0.0 (15 December 2022) +------------------------------ + +- #10831: Multicore OCaml + (Enguerrand Decorne, Stephen Dolan, Tom Kelly, Sadiq Jaffer, + Anil Madhavapeddy, Sudha Parimala, KC Sivaramakrishnan, + Leo White, the Tarides multicore team, + review by Florian Angeletti, Damien Doligez, Xavier Leroy, + Guillaume Munch-Maccagnoni, Olivier Nicole, Nicolás Ojeda Bär, + Gabriel Scherer, the OCaml core development team, and many + other valued reviewers.) + +### Language features: + +### Runtime system: + +- #11400: Runtime events counters fixes + Fixes mismatch between OCaml and C APIs, removes events from 4.x that + are not present in the 5.0 GC and adds some missing probes. + (Sadiq Jaffer, review by Gabriel Scherer, Florian Angeletti) + +- #11368: Runtime events buffer size OCAMLRUNPARAMS fix + The runtime events buffer size can now be set via the 'e' OCAMLRUNPARAM. + This is previously mistakenly enabled/disabled tracing instead. + (Sadiq Jaffer, review by KC Sivaramakrishnan, David Allsopp, Damien Doligez) + +- #11308: Add environment variable to preserve runtime_events after exit + If the environment variable OCAML_RUNTIME_EVENTS_PRESERVE exists then the + runtime will not remove the runtime events ring buffers at exit. This + makes tracing very short running programs more reliable. + (Sadiq Jaffer, review by KC Sivaramakrishnan) + +- #10964: Ring-buffer based runtime tracing (runtime_events) + Runtime_events is a very low overhead runtime tracing system designed for + continuous monitoring of OCaml applications. + (Sadiq Jaffer, review by Anil Madhavapeddy, Enguerrand Decorne, + Richard Warburton, Gabriel Scherer, Sabine Schmaltz, Florian Angeletti, + Patrick Ferris, Tom Kelly) + +* #10723: do not use `-flat-namespace` linking for macOS. + (Carlo Cabrera, review by Damien Doligez) + +* #10863, #10933: Remove support for old, unprefixed C runtime function names + such as `alloc`. The new names prefixed with `caml_` must be used instead, + such as `caml_alloc`. Consequently, it is no longer needed to define + `CAML_NAME_SPACE` to avoid bringing unprefixed names into scope: this is now + the default behavior. + (Nicolás Ojeda Bär, review by Xavier Leroy) + +- #10902: Do not register empty code fragments in natdynlink. + (David Allsopp, review by Xavier Leroy and Damien Doligez) + +- #10965: `caml_fatal_error_hook`, GC timing hooks, and + `caml_scan_roots_hook` are now atomic variables. Restore GC timing + hooks in multicore. + (Guillaume Munch-Maccagnoni, review by Enguerrand Decorne, Xavier + Leroy, Gabriel Scherer, and KC Sivaramakrishnan) + +- #11209: Add a public and thread-safe timing hook running at domain + termination, after this domain has stopped running any OCaml code: + `caml_domain_terminated_hook`. This can be useful for implementing + domain-local state in C. + (Guillaume Munch-Maccagnoni, review by Xavier Leroy and Gabriel + Scherer) + +- #10875, #11731: Add option to allocate fiber stacks and sigaltstacks with + mmap(MAP_STACK) instead of malloc. This is exposed via a configure + --enable-mmap-map-stack option, and is enabled by default on OpenBSD where + it is mandatory. + (Anil Madhavapeddy, review by Gabriel Scherer, Tom Kelly, + Michael Hendricks and KC Sivaramakrishnan). + +- #10950: Do not use mmap to allocate Caml_state. + In order to reduce virtual memory usage, we dynamically allocate + the domain_state structure. + (Enguerrand Decorne, KC Sivaramakrishnan and Tom Kelly, + review by Anil Madhavapeddy and Gabriel Scherer) + +- #11010: Use strerror_r for reentrant error string conversion. + (Anil Madhavapeddy and Xavier Leroy, review by same and Edwin Török) + +- #11002, #11066, #11086: Do not use Begin_roots/End_roots macros in + the runtime system. Also fix a missing root registration in the + implementation of Unix.write on Windows. + (Nicolás Ojeda Bär, Daniel Bünzli and Antonin Décimo, + review by Xavier Leroy and David Allsopp) + +- #11022: Track GC work for all managed bigarray allocations + (Stephen Dolan, report by Andrew Hunter, review by Damien Doligez) + +- #10802: Use 4.12 value macros and helpers in C code + (Antonin Décimo, review by Gabriel Scherer) + +- #11105: Fix handling of fiber stack cache with multiple domains + (Jon Ludlam, KC Sivaramakrishnan and Tom Kelly) + +- #11054: Respect user provided maximum stack space + Make sure the stack we initially request is sized accordingly to + the user provided settings. tmc/stack_space is also updated by + this PR in order to account for this change. + (Enguerrand Decorne, report by Jon Ludlam, + review by Tom Kelly, KC Sivaramakrishnan and Gabriel Scherer) + +- #11238: Increase the default limit for the stack size to 128 Mi words, + i.e. 1 Gib for 64-bit platforms and 512 Mib for 32-bit platforms. + (Xavier Leroy, review by Sébastien Hinderer) + +* #11295: An ISO C 2011 compliant compiler, including full support for atomic + types, is now required to build the OCaml runtime system. + (Xavier Leroy, review by David Allsopp and Sébastien Hinderer) + +- #10915, #11039, #11057, #11095, #11190: Implement quality treatment for + asynchronous actions in multicore. Reimplement the old behaviour of + `caml_process_pending*` for multicore. + (Guillaume Munch-Maccagnoni, review by Sadiq Jaffer and Gabriel Scherer) + +- #11303: Ensure that GC is not invoked from bounds check failures + (Stephen Dolan, review by Sadiq Jaffer and Xavier Leroy) + +- #11304: Fix data race on Windows file descriptors + (Olivier Nicole and Xavier Leroy, review by Xavier Leroy, David Allsopp, + and Sadiq Jaffer) + +* #11337: pass 'flags' metadata to root scanners, to optimize stack + scanning in the bytecode interpreter. + Changes the interface of user-provided root-scanning hooks. + (Gabriel Scherer, review by Xavier Leroy, + Guillaume Munch-Maccagnoni, Sadiq Jaffer and Tom Kelly) + +* #11255: in the C interface, `&Field(v, i)` now has type `volatile value *` + instead of `value *` in OCaml 4. This makes the memory model + for mixed OCaml/C code better defined, but can cause warnings or type + errors in user C code. + (KC Sivaramakrishnan, review by Xavier Leroy, Gabriel Scherer and + Guillaume Munch-Maccagnoni, additional discussions with Stephen + Dolan and Luc Maranget) + +- #5299, #4787, #11138, #11272, #11506: To help debugging, `Caml_state` + now dynamically checks that the domain lock is held, and fails + otherwise (with a fatal error at most entry points of the C API, or + systematically in debug mode). A new variable `Caml_state_opt` is + introduced, and is `NULL` when the domain lock is not held. This + allows to test from C code if the current thread holds the lock of + its domain. + (Guillaume Munch-Maccagnoni, review by Florian Angeletti, Damien + Doligez, Sadiq Jaffer, Xavier Leroy, and Gabriel Scherer) + +- #11223: The serialization format of custom blocks changed in 4.08, + but the deserializer would still support the pre-4.08 format. OCaml + 5.x removed support for this old format; provide a clear error message + in this case. + (Hugo Heuzard, review by Gabriel Scherer) + +- #11504, #11522: Use static allocation in `caml_make_float_vect` in + no-flat-float-array mode, it's more efficient and avoids a a race condition + (Xavier Leroy, report by Guillaume Munch-Maccagnoni, review by David Allsopp) + +- #11652: Fix benign off-by-one error in Windows implementation of caml_mem_map. + (David Allsopp, review by Gabriel Scherer) + +- #11669, #11704: Fix construction of Effect.Unhandled exceptions in the + bytecode interpreter. + (David Allsopp and Xavier Leroy, report by Samuel Hym, review by Xavier Leroy + and Gabriel Scherer) + +### Code generation and optimizations: + +- #10972: ARM64 multicore support: OCaml & C stack separation; + dynamic stack size checks; fiber and effects support. + (Tom Kelly and Xavier Leroy, review by KC Sivaramakrishnan, Xavier Leroy, + Guillaume Munch-Maccagnoni, Eduardo Rafael, Stephen Dolan and + Gabriel Scherer) + +### Standard library: + +- #10742: Use LXM as the pseudo-random number generator for module Random. + Add `Random.State.split` and `Random.split` to "split" a PRNG off + another PRNG. + (Xavier Leroy, review by Gabriel Scherer and Hugo Heuzard) + +* #10867, #11345: Remove deprecated values: Array.create, Array.make_float, + Array.create_matrix, Bytes.uppercase, Bytes.lowercase, Bytes.capitalize, + Bytes.uncapitalize, Char.lowercase, Char.uppercase, Filename.temp_dir_name, + Int32.format, Int64.format, Nativeint.format, Format.bprintf, Format.kprintf, + Format.set_all_formatter_output_functions, + Format.get_all_formatter_output_functions, + Format.pp_set_all_formatter_output_functions, + Format.pp_get_all_formatter_output_functions, Format.pp_open_tag, + Format.pp_close_tag, Format.open_tag, Format.close_tag, + Format.formatter_tag_functions, Format.pp_set_formatter_tag_functions, + Format.pp_get_formatter_tag_functions, Format.set_formatter_tag_functions, + Format.get_formatter_tag_functions, Gc (mutability of the fields of type + Gc.control), Lazy.lazy_from_fun, Lazy.lazy_from_val, Lazy.lazy_is_val, + Obj.set_tag, Obj.truncate, Obj.final_tag, Obj.extension_constructor, + Obj.extension_name, Obj.extension_id, Scanf.stdib, Scanf.fscanf, + Scanf.kfscanf, Stdlib.( & ), Stdlib.( or ), String.set, String.copy, + String.fill, String.unsafe_set, String.unsafe_fill, String.uppercase, + String.lowercase, String.capitalize, String.uncapitalize, Thread.kill, + Thread.wait_write, Thread.wait_read, the whole ThreadUnix module, the + infix operator (.[]<-). + (Nicolás Ojeda Bär, review by Damien Doligez) + +* #10896: Remove Stream, Genlex and Pervasives. Also remove legacy standalone + bigarray library (the Bigarray module is now part of the standard library). + (Nicolás Ojeda Bär, review by Kate Deplaix and Anil Madhavapeddy) + +- #10921: Use getentropy, when available, to seed the generator during + `Random.self_init` + (Michael Hendricks, review by Gabriel Scherer, Xavier Leroy, and + Anil Madhavapeddy) + +* #10924: Add deprecated attribute to Printexc.catch, Printf.kprintf and + Unix.SO_ERROR. + (Nicolás Ojeda Bär, review by Damien Doligez) + +- #10986: Add Scanf.sscanf_opt, Scanf.bscanf_opt and Scanf.scanf_opt. + (Nicolás Ojeda Bär, review by Florian Angeletti and Gabriel Scherer) + +* #11157: Rename "hash" in the "Hashtbl.SeededHashedType" signature to + "seeded_hash". This allows defining both seeded and unseeded hash functions in + the same module. + (Nicolás Ojeda Bär, review by Gabriel Scherer and Xavier Leroy) + +- #8878: Add String.hash and String.seeded_hash. + (Tom Kelly, review by Alain Frisch and Nicolás Ojeda Bär) + +- #11279, #11585, #11742: ensure that the unsafe Buffer code + remains memory-safe in concurrent settings. + Unsynchronized access to Buffer is a programming error and may + result in wrong behavior, but it should preserve memory-safety. + (Florian Angeletti and Gabriel Scherer, review by Gabriel Scherer + and Vincent Laviron, report by David Allsopp) + + +### Other libraries: + +* #9071, #9100, #10935: Reimplement `Thread.exit()` as raising the + exception `Thread.Exit`, and mark `Thread.exit` as deprecated. + The new implementation changes the behavior compared with + the OCaml 4 implementation. For example, the new implementation + causes `Fun.finally` finalizers to be run and catch-all exception + handlers to prevent termination. + (Jacques-Henri Jourdan and Xavier Leroy, review by Damien Doligez, + Guillaume Munch-Maccagnoni, Gabriel Scherer, and Enguerrand Decorne) + +- #11034: Dynlink library, add a global lock to make dynlinking + thread-safe. + (Florian Angeletti, review by Gabriel Scherer) + +- #11087: deprecate Thread.wait_timed_read, Thread.wait_timed_write, + Thread.select, Thread.wait_pid. The same functionality is available in the + Unix module. + (Nicolás Ojeda Bär, review by Anil Madhavapeddy) + +- #11309, #11424, #11427, #11545: Add Domain.recommended_domain_count. + (Christiano Haesbaert, Konstantin Belousov, review by David Allsopp, + KC Sivaramakrishnan, Gabriel Scherer, Nicolás Ojeda Bär) + +- #11461, #11466: Fix gethostbyaddr for IPv6 arguments and make it domain-safe + (Olivier Nicole, Nicolás Ojeda Bär, David Allsopp and Xavier Leroy, + review by the same) + +- #11479: Make Unix.symlink domain-safe on Windows + (Olivier Nicole, review by Xavier Leroy and David Allsopp) + +### Tools: + +* #11004: Litmus tests for checking the implementation of the + memory model. + (Luc Maranget, review by Gabriel Scherer and Xavier Leroy) + +- #11024: Handle alerts in ocamldoc. + The alert `[@@alert deprecated]` is handled specifically and it's no longer + needed to duplicate the deprecated annotation (the alert for the compiler and + the tag for the documentation). Every other alerts also appear in the + documentation. + (Jules Aguillon, review by Florian Angeletti) + +- #11065: Port the bytecode debugger to 5.0, adding support for effect handlers. + (Damien Doligez and @fabbing, review by @fabbing and Xavier Leroy) + +- #11079: Add the -nobanners option to dumpobj. + (Sébastien Hinderer, review by Gabriel Scherer and Vincent Laviron) + +- #11100: Fix ocamltest to make sure failed tests are not counted as + "unexpected error". + (Damien Doligez, review by Sébastien Hinderer) + +- #11245: Merge the common code of ocamlcp and ocamloptp into a single module. + (David Allsopp, review by Sébastien Hinderer) + +- #11382: OCamlmktop use a new initialization module "OCamlmktop_init" to + preserve backward-compatibility with user-module provided modules that install + toplevel printers. + (Florian Angeletti, review by Gabriel Scherer and David Allsopp) + +### Manual and documentation: + +- #11058: runtime/HACKING.adoc tips on debugging the runtime + (Gabriel Scherer, review by Enguerrand Decorne and Nicolás Ojeda Bär) + +- #11093: Add an effect handlers tutorial + (KC Sivaramakrishnan, review by François Pottier, Gabriel Scherer, François + Bobot and Wiktor Kuchta) + +- #11192: Better documentation for condition variables. + (François Pottier, review by Luc Maranget, Xavier Leroy, and Wiktor Kuchta) + +- #11093: Add tutorials on parallelism features and the relaxed memory model + (KC Sivaramakrishnan, review by Damien Doligez, Anil Madhavapeddy, Gabriel + Scherer, Thomas Leonard, Tom Ridge, Xavier Leroy, Luc Maranget, Fabrice + Buoro, Olivier Nicole, Guillaume Munch-Maccagnoni, Jacques-Henri Jourdan) + +- #11640, #11647: Add missing options to the man pages: + flambda commonly-used options, and negative options (`-no-rectypes`, ... ). + (Amandine Nangah, review by David Allsopp, Florian Angeletti, + Sébastien Hinderer, and Vincent Laviron) + +- #11676: Fix missing since annotation in the `Sys` and `Format` modules + (Github user Bukolab99, review by Florian Angeletti) + +- #11813: Make new multicore chapters easier to discover, and emphasize impact + on C bindings. + (Edwin Török, review by KC Sivaramakrishnan, and Florian Angeletti) + +### Compiler user-interface and warnings: + +- #9140, #11131: New command-line flag -nocwd to not include implicit + the current directory to the load path. + (Thomas Roglin, review by Gabriel Scherer and Nicolás Ojeda Bär) + +- #11089: Add 'since ' information to compiler warnings. + (André Maroneze, review by Florian Angeletti and Gabriel Scherer) + +- #10909: Disable warning 59 (assignment to immutable blocks) unless flambda + invariant checks are enabled. + (Vincent Laviron, review by Gabriel Scherer) + +- #10981, #11276: Implement a -cmi-file option for ocamlc and ocamlopt. + (Sébastien Hinderer, review by Damien Doligez, Daniel Bünzli and + Florian Angeletti) + +* #11049: Stop padding 1-digit compiler minor version numbers. + (So for instance OCaml 5.0 rather than 5.00) + (Sébastien Hinderer, review by David Allsopp, Florian Angeletti and + Xavier Leroy) + +- #11253: Deprecate `ocaml script` and `ocamlnat` script where `script` has no + extension and is an implicit basename. + (David Allsopp, review by Florian Angeletti and Sébastien Hinderer) + +### Internal/compiler-libs changes: + +- #10878, #10909: restore flambda after the Multicore merge. + (Vincent Laviron, review by Gabriel Scherer and Xavier Leroy) + +- #10864, #10888: restore afl-fuzz mode for sequential programs. + (Jan Midtgaard, review by Xavier Leroy and Gabriel Scherer) + +- #11008, #11047: rework GC statistics in the Multicore runtime + (Gabriel Scherer, review by Enguerrand Decorne) + +- #11058: basic debugging documentation in runtime/HACKING.adoc + (Gabriel Scherer, review by Enguerrand Decorne and Nicolás Ojeda Bär) + +- #11199: Stop installing topdirs.cmi twice. The toplevel now reads topdirs.cmi + from +compiler-libs, as the debugger does. + (David Allsopp, review by Sébastien Hinderer) + +- #11007, #11399: META files for the stdlib, compiler-libs and other libraries + (unix, dynlink, str, runtime_events, threads, ocamldoc) are now installed + along with the compiler. + (David Allsopp, Florian Angeletti, Nicolás Ojeda Bär and Sébastien Hinderer, + review by Daniel Bünzli, Kate Deplaix, Anil Madhavapeddy and Gabriel Scherer) + +### Build system: + +* #10893: Remove configuration options --disable-force-safe-string and + DEFAULT_STRING=unsafe as well as --enable-force-safe-string and + DEFAULT_STRING=safe which are now the default unconditionally. + (Kate Deplaix, review by Gabriel Scherer and David Allsopp) + +- #11092: Build native-code compilers on OpenBSD/aarch64. + (Christopher Zimmermann, review by Anil Madhavapeddy) + +- #11126: Build system: make it possible to choose which ocamldep + (and flags) to use when computing dependencies for the compiler. + Add a -no-slash option to ocamldep to let users override -slash. + (Sébastien Hinderer, review by David Allsopp) + +- #11147: Factorize the stdlib-related compilation flags. Make it + possible to control them consistently through the STDLIBFLAGS + build variable. Make sure ocamldoc and ocamllex get compiled and + linked with debugging information (-g). + (Sébastien Hinderer, review by Gabriel Scherer) + +- #11149: Make the bootstrap process reproducible on systems with non-big-endian + floating point. If the boot/ artefacts are up-to-date, this means that running + make bootstrap on any platform should not change the images in boot/ and paves + the way for automated testing that the bootstrap is repeatable. + (David Allsopp, review by Damien Doligez and Sébastien Hinderer) + +- #11160: otherlibs: merge win32unix into unix. + (Sébastien Hinderer, review by David Allsopp, Nicolás Ojeda Bär, + Xavier Leroy, Vincent Laviron and Antonin Décimo) + +* #11198, #11298: Install the Dynlink, Str and Unix libraries to individual + subdirectories of LIBDIR. The compiler, debugger and toplevel automatically + add `-I +lib` if required, but display an alert. + (David Allsopp, review by Florian Angeletti, Nicolás Ojeda Bär, + Valentin Gatien-Baron and Sébastien Hinderer) + +- #11200: Install ocamlprof's Profiling runtime module to a +profiling, + removing it from the default namespace. + (David Allsopp, review by Sébastien Hinderer) + +- #11294: Switch minimum required autoconf to 2.71. + (David Allsopp, review by Xavier Leroy) + +- #11097: Build native-code compilers on NetBSD/aarch64 + (Kate Deplaix, review by Anil Madhavapeddy) + +### Bug fixes: + +- #10790: don't drop variance and injectivity annotations when pretty printing + `with` constraints (for example, `with type +!'a t = ...`). + (Florian Angeletti, report by Luke Maurer, review by Matthew Ryan and + Gabriel Scherer) + +- #11167: Fix memory leak from signal stack. + (Antoni Å»ewierżejew, review by Gabriel Scherer and Enguerrand Decorne) + +- #11112: harden -use-runtime against spaces or quotes in the provided path + (Gabriel Scherer, report by Brahima Dibassi, review by David Allsopp) + +- #11068, #11070: Fix typo in function name given in Unix_error exception for + Unix.readlink on Windows. + (David Allsopp, report by Xia Li-yao) + +- #10807: Don't duplicate standard handles in the child process + spawned by win32unix Unix.create_process if the handles were already + inheritable. Fix broken signalling of EOF on standard handles if + they were already inheritable. + (Antonin Décimo, review by Xavier Leroy and Nicolás Ojeda Bär) + +- #10868: Fix off-by-1 bug when initializing frame hashtables + (Jonah Beckford, review by Tom Kelly, Nicolás Ojeda Bär and + KC Sivaramakrishnan) + +- #11077: Make dumpobj compatible with absence of naked pointer support + (Olivier Nicole and Jan Midtgaard, review by Gabriel Scherer) + +- #11111: fix fork() usage in ocamltest C code. + When calling fork() from C code with the Multicore runtime active, + one needs to call caml_atfork_hook() on the forked child before it + can use the OCaml runtime. + (Gabriel Scherer, review by Xavier Leroy, report by Brahima Dibassi) + +- #10809: Use the WSA_FLAG_NO_HANDLE_INHERIT on Windows when creating + sockets with WSASocket if the cloexec (non-inheritable) parameter is + true. Fixes a race condition where a child process could inherit the + socket and deadlock the parent. + (Antonin Décimo, review by Xavier Leroy) + +- #11289, #11405: fix some leaks on systhread termination + (Fabrice Buoro, Enguerrand Decorne, Gabriel Scherer, + review by Xavier Leroy and Florian Angeletti, report by Romain Beauxis) + +- #11314, #11416: fix non-informative error message for module inclusion + (Florian Angeletti, report by Thierry Martinez, review by Gabriel Scherer) + +- #11358, #11379: Refactor the initialization of bytecode threading, + This avoids a "dangling pointer" warning of GCC 12.1. + (Xavier Leroy, report by Armaël Guéneau, review by Gabriel Scherer) + +- #11387, module type with constraints no longer crash the compiler in presence + of both shadowing warnings and the `-bin-annot` compiler flag. + (Florian Angeletti, report by Christophe Raffalli, review by Gabriel Scherer) + +- #11482, #11542: Fix random crash in large closure allocation + (Damien Doligez, report by Thierry Martinez and Vincent Laviron, review by + Xavier Leroy) + +- #11508, #11509: make Bytes.escaped domain-safe + (Christiano Haesbaert and Gabriel Scherer, + review by Xavier Leroy, + report by Jan Midtgaard and Tom Kelly) + +- #11576: Fix bug in Bigarray.Genarray.init in the the case of zero-dimensional + arrays. + (Nicolás Ojeda Bär, Jeremy Yallop, report by Masayuki Takeda, review by Jeremy + Yallop and Florian Angeletti) + +- #11587: Prevent integer comparison from being used on pointers + (Vincent Laviron, review by Gabriel Scherer) + +- #11662, #11673: fix a memory leak when using Dynlink, + the bug was only present in development version of OCaml 5. + (Stephen Dolan, report by Andre Maroneze, review by Gabriel Scherer) + + +OCaml 4.14 maintenance version +------------------------------ + +### Runtime system: + +- #11764, #12577: Add prototypes to old-style C function definitions + and declarations. + (Antonin Décimo, review by Xavier Leroy and Nick Barnes) + +- #11763, #11759, #11861, #12509, #12577: Use strict prototypes on primitives. + (Antonin Décimo, review by Xavier Leroy, David Allsopp, Sébastien + Hinderer and Nick Barnes) + +### Build system: + +- #11590: Allow installing to a destination path containing spaces. + (Élie Brami, review by Sébastien Hinderer and David Allsopp) + +- #12372: Pass option -no-execute-only to the linker for OpenBSD >= 7.3 + so that code sections remain readable, as needed for closure marshaling. + (Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and + Sébastien Hinderer) + +- #12903: Disable control flow integrity on OpenBSD >= 7.4 to avoid + illegal instruction errors on certain CPUs. + (Michael Hendricks, review by Miod Vallat) + +### Bug fixes: + +- #12878: fix incorrect treatment of injectivity for private recursive types. + (Jeremy Yallop, review by Gabriel Scherer and Jacques Garrigue) + +- #12971, #12974: fix an uncaught Ctype.Escape exception on some + invalid programs forming recursive types. + (Gabriel Scherer, review by Florian Angeletti, report by Neven Villani) + +- #12264, #12289: Fix compact_allocate to avoid a pathological case + that causes very slow compaction. + (Damien Doligez, report by Arseniy Alekseyev, review by Sadiq Jaffer) + +* #10845 Emit frametable size on amd64 BSD (OpenBSD, FreeBSD, NetBSD) systems + (emitted for Linux in #8805) + (Hannes Mehnert, review by Nicolás Ojeda Bär) + +- #13448, #13449: fix a code-generation bug on unsafe array accesses + at type int32, int64, nativeint, which has been introduced in OCaml 4.04. + (Gabriel Scherer, review by Nicolás Ojeda Bär and Vincent Laviron, + report by Raphaël Bocquet and Simon Cruanes) + +OCaml 4.14.1 (20 December 2022) +------------------------------ + +### Compiler user-interface and warnings: + +- #11184, #11670: Stop calling ranlib on created / installed libraries + (Sébastien Hinderer and Xavier Leroy, review by the same) + +### Build system: + +- #11370, #11373: Don't pass CFLAGS to flexlink during configure. + (David Allsopp, report by William Hu, review by Xavier Leroy and + Sébastien Hinderer) + +- #11487: Thwart FMA test optimization during configure + (William Hu, review by David Allsopp and Sébastien Hinderer) + +### Bug fixes: + +- #10768, #11340: Fix typechecking regression when combining first class + modules and GADTs. + (Jacques Garrigue, report by François Thiré, review by Matthew Ryan) + +- #11204: Fix regression introduced in 4.14.0 that would trigger Warning 17 when + calling virtual methods introduced by constraining the self type from within + the class definition. + (Nicolás Ojeda Bär, review by Leo White) + +- #11263, #11267: caml/{memory,misc}.h: check whether `_MSC_VER` is defined + before using it to ensure that the headers can always be used in code which + turns on -Wundef (or equivalent). + (David Allsopp and Nicolás Ojeda Bär, review by Nicolás Ojeda Bär and + Sébastien Hinderer) + +- #11392, #11392: assertion failure with -rectypes and external definitions + (Gabriel Scherer, review by Florian Angeletti, report by Dmitrii Kosarev) + +- #11417: Fix regression allowing virtual methods in non-virtual classes. + (Leo White, review by Florian Angeletti) + +- #11468: Fix regression from #10186 (OCaml 4.13) detecting IPv6 on Windows for + mingw-w64 i686 port. + (David Allsopp, review by Xavier Leroy and Sébastien Hinderer) + +- #11489, #11496: More prudent deallocation of alternate signal stack + (Xavier Leroy, report by @rajdakin, review by Florian Angeletti) + +- #11516, #11524: Fix the `deprecated_mutable` attribute. + (Chris Casinghino, review by Nicolás Ojeda Bär and Florian Angeletti) + +- #11194, #11609: Fix inconsistent type variable names in "unbound type var" + messages + (Ulysse Gérard and Florian Angeletti, review Florian Angeletti and + Gabriel Scherer) + +- #11622: Prevent stack overflow when printing a constructor or record + mismatch error involving recursive types. + (Florian Angeletti, review by Gabriel Scherer) + +- #11732: Ensure that types from packed modules are always generalised + (Stephen Dolan and Leo White, review by Jacques Garrigue) + +- #11737: Fix segfault condition in Unix.stat under Windows in the presence of + multiple threads. + (Marc Lasson, Nicolás Ojeda Bär, review by Gabriel Scherer and David Allsopp) + +- #11776: Extend environment with functor parameters in `strengthen_lazy`. + (Chris Casinghino and Luke Maurer, review by Gabriel Scherer) + +- #11533, #11534: follow synonyms again in #show_module_type + (this had stopped working in 4.14.0) + (Gabriel Scherer, review by Jacques Garrigue and Florian Angeletti, + report by Yaron Minsky) + +- #11768, #11788: Fix crash at start-up of bytecode programs in + no-naked-pointers mode caused by wrong initialization of caml_global_data + (Xavier Leroy, report by Etienne Millon, review by Gabriel Scherer) + +- #11803, #11808: on x86, the destination of an integer comparison must be + a register, it cannot be a stack slot. + (Vincent Laviron, review by Xavier Leroy, report by + Emilio Jesús Gallego Arias) + +OCaml 4.14.0 (28 March 2022) +---------------------------- + +### Language features: + +- #10462: Add attribute to produce a compiler error for polls. + (Sadiq Jaffer, review by Mark Shinwell, Stephen Dolan + and Guillaume Munch-Maccagnoni) + +- #10437: Allow explicit binders for type variables. + (Stephen Dolan, review by Leo White) + +- #10441: Remove unnecessary parentheses surrounding immediate objects. + Allow 'object ... end # f', 'f object ... end', etc. + (Yan Dong, review by Nicolás Ojeda Bär, Florian Angeletti and Gabriel Scherer) + +- #181, #9760, #10740: opt-in tail-modulo-cons (TMC) transformation + let[@tail_mod_cons] rec map f li = ... + (Frédéric Bour, Gabriel Scherer, Basile Clément, + review by Basile Clément and Pierre Chambart, + tested by Konstantin Romanov) + +### Runtime system: + +* #9391, #9424: Fix failed assertion in runtime due to ephemerons *set_* and + *blit_* function during Mark phase + (François Bobot, reported by Stephen Dolan, reviewed by Damien Doligez) + +- #10195, #10680: Speed up GC by prefetching during marking + (Stephen Dolan, review by Xavier Leroy, Guillaume Munch-Maccagnoni, + Jacques-Henri Jourdan, Damien Doligez and Leo White) + +- #10549: Stack overflow detection and naked pointers checking for ARM64 + (Xavier Leroy, review by Stephen Dolan) + +* #10675: Emit deprecation warnings when old C runtime function names + are used. This will break C stub code that uses these old names and + treats warnings as errors. The workaround is to use the new names. + (Xavier Leroy and David Allsopp, review by Sébastien Hinderer and + Damien Doligez) + +- #10698, #10726: Free the alternate signal stack when the main OCaml + code or an OCaml thread stops + (Xavier Leroy, review by David Allsopp and Damien Doligez) + +- #10730, 10731: Fix bug in `Obj.reachable_words` causing a slowdown when called + multiple time (Alain Frisch, report by ygrek, review by Xavier Leroy) + +- #10926: Rename the two internal Windows Unicode functions with `caml_` prefix + instead of `win_`. + (David Allsopp, review by Kate Deplaix, Damien Doligez and Xavier Leroy) + +### Code generation and optimizations: + +- #10578: Increase the number of integer registers used for + parameter passing on PowerPC (16 registers) and on s390x (8 registers). + (Xavier Leroy, review by Mark Shinwell) + +- #10591, #10615: Tune the heuristic for CSE of integer constants + so as to avoid excessive CSE on compiler-generated constants + and long register allocation times. + (Xavier Leroy, report by Edwin Török, review by Nicolás Ojeda Bär) + +- #10595: Tail calls with up to 64 arguments are guaranteed to be compiled + as tail calls. To this end, memory locations in the domain state + are used for passing arguments that do not fit in registers. + (Xavier Leroy, review by Vincent Laviron) + +- #10681: Enforce boolean conditions for the native backend + (Vincent Laviron, review by Gabriel Scherer) + +- #10719: Ensure that build_apply respects Lambda.max_arity + (Stephen Dolan, review by Xavier Leroy) + +- #10728: Ensure that functions are evaluated after their arguments + (Stephen Dolan, review by Mark Shinwell) + +- #10732: Ensure right-to-left evaluation of arguments in cmm_helpers + (Greta Yorsh, review by Xavier Leroy) + +### Standard library: + +* #10710: Add UTF tools, codecs and validations to the Uchar, Bytes and + String modules. + (Daniel Bünzli, review by Florian Angeletti, Nicolás Ojeda Bär, Alain + Frisch and Gabriel Scherer) + +* #10622: Annotate `Uchar.t` with immediate attribute + (Hongbo Zhang, reivew by Gabriel Scherer and Nicolás Ojeda Bär) + +* #7812, #10475: `Filename.chop_suffix name suff` now checks that `suff` + is actually a suffix of `name` and raises Invalid_argument otherwise. + (Xavier Leroy, report by whitequark, review by David Allsopp) + +* #10482: mark the Stream and Genlex modules as deprecated, in preparation + for a future removal. These modules (without deprecation alert) + are now provided by the camlp-streams library. + (Xavier Leroy, review by Nicolás Ojeda Bär) + +- #10526: add Random.bits32, Random.bits64, Random.nativebits + (Xavier Leroy, review by Gabriel Scherer and François Bobot) + +* #10568: remove Obj.marshal and Obj.unmarshal + (these functions have been deprecated for a while and are superseded + by the functions from module Marshal) + (François Pottier, review by Gabriel Scherer and Kate Deplaix) + +- #10545: Add In_channel and Out_channel modules. + (Nicolás Ojeda Bär, review by Daniel Bünzli, Simon Cruanes, Gabriel Scherer, + Guillaume Munch-Maccagnoni, Alain Frisch and Xavier Leroy) + +- #10538: add Out_channel.set_buffered and Out_channel.is_buffered to control + the buffering mode of output channels. + (Nicolás Ojeda Bär, review by John Whitington, Daniel Bünzli, David Allsopp + and Xavier Leroy) + +* #10583, #10998: Add over 40 new functions in Seq. + (François Pottier and Simon Cruanes, review by Nicolás Ojeda Bär, + Daniel Bünzli, Nathanaëlle Courant, Craig Ferguson, Wiktor Kuchta, + Xavier Leroy, Guillaume Munch-Maccagnoni, Raphaël Proust, Gabriel Scherer + and Thierry Martinez) + +- #10596, #10978: Add with_open_bin, with_open_text and with_open_gen to + In_channel and Out_channel. Also, add In_channel.input_all. + (Nicolás Ojeda Bär, review by Daniel Bünzli, Jérémie Dimino, Damien Doligez + and Xavier Leroy) + +- #10658: add detailed information about the current version of OCaml + to the Sys module of the standard library. + (Sébastien Hinderer, review by Damien Doligez, Gabriel Scherer, David + Allsopp, Nicolás Ojeda Bär, Vincent Laviron) + +- #10642: On Windows, Sys.remove and Unix.unlink now remove symlinks + to directories instead of raising EACCES. Introduce + caml/winsupport.h to hold more common code between the runtime, + lib-sys, and win32unix. + (Antonin Décimo, review by David Allsopp and Xavier Leroy) + +- #10737: add new ephemeron API for forward compatibility with Multicore + OCaml. + (Damien Doligez, review by Stephen Dolan) + +- #10786: The implementation of Complex.norm now uses Float.hypot. + (Christophe Troestler, review by David Allsopp and Xavier Leroy) + +### Other libraries: + +- #10192: Add support for Unix domain sockets on Windows and use them + to emulate Unix.socketpair (only available on Windows 1803+) + (Antonin Décimo, review by David Allsopp) + +- #10469: Add Thread.set_uncaught_exception_handler and + Thread.default_uncaught_exception_handler. + (Enguerrand Decorne, review by David Allsopp) + +- #10697: Bindings of dup and dup2 in win32unix now correctly call + WSADuplicateSocket on sockets instead of DuplicateHandle. + (Antonin Décimo, review by Xavier Leroy and Nicolás Ojeda Bär) + +* #10926, #11336: Ensure all C functions in the Unix library are prefixed with + `caml_`. + (David Allsopp, review by Kate Deplaix, Damien Doligez and Xavier Leroy) + +- #10951: Introduce the Thread.Exit exception as an alternative way to + terminate threads prematurely. This alternative way will become + the standard way in 5.0. + (Xavier Leroy, review by Florian Angeletti) + +### Tools: + +- #9701: Release bytecode only after collecting backtrace information + for exceptions, same for dynamic loaded code compiled from toplevel on + ocamlnat. + (Renato Alencar, reported by Krzysztof LeÅ›niak, reviewed by Gabriel Scherer) + +- #10839: Fix regression of #show when printing class type + (Élie Brami, review by Florian Angeletti) + +- #3959, #7202, #10476: ocaml, in script mode, directive errors + (`#use "missing_file";;`) use stderr and exit with an error. + (Florian Angeletti, review by Gabriel Scherer) + +- #10438: add a new toplevel cli argument `-e