oxcaml-compiler
API
Library compiler-libs.bytecomp
Library compiler-libs.common
Allowance Annot Arg_helper Decipher command line arguments of the form <value> | <key>=<value>,...Arrayset Set implemented as an array.Ast_helper Helpers to produce Parsetree fragmentsAst_invariants Check AST invariantsAst_iterator Ast_iterator.iterator enables AST inspection using open recursion. A typical mapper would be based on Ast_iterator.default_iterator, a trivial iterator, and will fall back on it for handling the syntax it does not modify.Ast_mapper The interface of a -ppx rewriterAsttypes Auxiliary AST types used by parsetree and typedtree.Attr_helper Helpers for attributesAxis_lattice Binutils Btype Build_path_prefix_map Rewrite paths for reproducible buildsBuiltin_attributes Support for the builtin attributes:Bytesections CamlinternalMenhirLib Ccomp Compiling C files and building C librariesClflags Command line flagsCmi_format Cmj_format Cmo_format Cms_format cms and cmsi files format.Cmt2annot Cmt_format cmt and cmti files format.Cmxs_format Compenv Compilation_unit Compile_common Common compilation pipeline between bytecode and native.Compmisc Config System configurationConsistbl Consistency tables: for checking consistency of module CRCsCtype Datarepr Debug Debug_event Debuginfo Depend Module dependencies.Diffing Parametric diffingDiffing_with_keys When diffing lists where each element has a distinct key, we can refine the diffing patch by introducing two composite edit moves: swaps and moves.Dll Docstrings Documentation commentsDomainstate Env Envaux Errortrace Expunge Flambda2_compare Flambda2_to_jsir Format_doc Composable document for the Format formatting engine.Global_module Ident Identifiable Uniform interface for common data structures over various things.Ikind Import_info Includeclass Includecore Includemod Includemod_errorprinter Instantiator Int_replace_polymorphic_compare Jkind Jkind_axis Jkind_intf Jkind_types You should use the types defined in Jkind (which redefines the types in this file) rather than using this file directly, unless you are in Types or Primitive.Lambda Language_extension Language extensions provided by the Jane Street version of the OCaml compiler.Language_extension_kernel Language extensions provided by the Jane Street version of the OCaml compiler. These are the parts of Language_extension that are required by Profile_counters_functions. Forward declaring these allow us to avoid a mutual dependency between files in utils/ and parsing/. Such a dependency prevents Merlin from compiling.Lazy_backtrack Ldd Ldd_intf Lexer The lexical analyzerLinkage_name Load_path Management of include directories.Local_store This module provides some facilities for creating references (and hash tables) which can easily be snapshoted and restored to an arbitrary version.Location Source code locations (ranges of positions), used in parsetree.Longident Long identifiers, used in parsetree.Main_args Makedepend Matching Meta Misc Miscellaneous useful types and functionsMixed_block_shape Mixed_product_bytes Counts the number of bytes belonging to values and flat (non-value) of a mixed block element, for the purpose of compiling block indicesMode Mode_hint Mode_intf Mtype Numbers Modules about numbers, some of which satisfy Identifiable.S.Opcodes Oprint Outcometree Parmatch Detection of partial matches and unused match cases.Parse Entry points in the parserParser Parser_types Parsetree Abstract syntax tree produced by parsingPath Patterns Persistent_env Pparse Driver for the parser and external preprocessors.Pprintast Pretty-printers for ParsetreePredef Primitive Printast Raw printer for ParsetreePrintlambda Printpat Printtyp Printtyped Priority_queue Max priority queueProfile Compiler performance recordingProfile_counters_functions Runtimedef Runtimetags Scalar This module defines: The scalar types intrinsic to the OCaml compiler, and all of the primitive operations defined on them.Shape Shapes are an abstract representation of modules' implementations which allow the tracking of definitions through functor applications and other module-level operations.Shape_reduce Signature_group Iterate on signature by syntactic group of itemsSignature_with_global_bindings Simplif Lambda simplification.Slambda Slambda_fracture Slambdaeval Slambdaident Solver Solver_intf Static_label Static exception labels used in Lambda intermediate representation.Strongly_connected_components Kosaraju's algorithm for strongly connected components.Structured_mangling Structured name mangling for OxCaml symbols.Stypes Subst SubstitutionsSwitch Symbol Symbols that identify statically-allocated code or data.Symtable Syntaxerr Auxiliary type for reporting syntax errorsTarget_system Targetint Target processor-native integers.Tast_iterator Allows the implementation of typed tree inspection using open recursionTast_mapper Terminfo Basic interface to the terminfo databaseTmc Tail-modulo-cons optimization.Transl_array_comprehension Translate array comprehensions; see the .ml file for more detailsTransl_comprehension_utils Code-generation utilities for use when generating Lambda for comprehensions.Transl_list_comprehension Translate list comprehensions; see the .ml file for more detailsTranslattribute Translclass Translcore Translmod Translmode Translobj Translprim Translquote Type_shape Typeclass Typecore Typedecl Typedecl_properties Typedecl_separability The OCaml runtime assumes for type-directed optimizations that all types are "separable". A type is "separable" if either all its inhabitants (the values of this type) are floating-point numbers, or none of them are.Typedecl_variance Typedtree Abstract syntax tree after typingTypemod Type-checking of the module language and typed ast hooksTypemode Typeopt Types Typetexp Uniqueness_analysis Unit_info This module centralize the handling of compilation files and their metadata.Untypeast Value_rec_check Value_rec_compiler Overview of the compilation schemeValue_rec_types Types related to the compilation of value let-recs (non-functional recursive definitions)Vicuna_traverse_typed_tree Vicuna_value_shapes This file defines a representation of the runtime shapes of OCaml values. These shapes are different from (and unrelated to) the shapes defined in typing/shape.mli.Warnings Warning definitionsZero_alloc Zero_alloc_annotations Zero_alloc_utils
Library compiler-libs.optcomp
Afl_instrument Instrumentation for afl-fuzz.Amd64_simd_defs Amd64_simd_instrs Arch Arm64_ast Arm64_binary_emitter Asm_targets Asmgen From Lambda to assembly codeAsmlink Available_ranges_vars Given a variable x and a function, an "available subrange" is in the normal case a contiguous subset of that function's code paired with a register r, such that at all times during the block's execution the value of x is available in r. (r may end up being a hard register or a location on the stack.)Backend_var Variables used in the backend, optionally equipped with "provenance" information, used for the emission of debugging information.Binary_emitter_helpers Hooks for connecting the x86 binary emitter to the emit process.Binary_emitter_intf Unified interface for binary emitters (x86 and arm64).Binary_emitter_verify Verification of binary emitter output against system assembler output.Branch_relaxation Build_igot_and_iplt Build intermediate GOT and PLT sections from extracted relocations.Build_linker_args Build linker arguments from dissector results.CSE Cfg Cfg_available_regs Cfg_colours Cfg_comballoc Cfg_cse Cfg_cse_target_intf Interface to be satisfied by target-specific code, for common subexpression elimination.Cfg_dataflow Cfg_deadcode Cfg_dominators Dominator-related utility functions.Cfg_edge Cfg_format Cfg_intf Control flow graph structure types that are shared between the internal (mutable) and external (immutable) views of Cfg.Cfg_invariants Invariants checking for Cfg.Cfg_liveness Cfg_loop_infos Cfg_merge_blocks Cfg_polling Analyses related to the insertion of Poll operations.Cfg_prologue Cfg_quick_hash Cfg_reducibility Cfg_selectgen Instruction selection, parameterised over the target machine.Cfg_selectgen_target_intf Interface to be satisfied by target-specific code, for instruction selection.Cfg_selection Cfg_simplify Cfg_stack_checks Cfg_to_linear Conversion from Cfg to Linear code.Cfg_to_linear_desc Cfg_with_infos Cfg_with_layout Cm_bundle Cmm Cmm_builtins Cmm_helpers Cmm_invariants Check a number of continuation-related invariantsCmm_peephole_engine This module provides an engine for performing peephole optimisations on Cmm terms. A peephole optimisation is given as a rewriting rule, with a pattern on the left-hand side and a rewriting function on the right-hand side. The rewriting function takes as parameter an environment from which the sub-expressions that were matched to pattern variables can be retrieved.Cmmgen_state Mutable state used by Cmmgen.Compilenv Compiler_hooks Complex_shape Compute_ranges Coalescing of per-instruction information into possibly-discontiguous regions of code delimited by labels. This is used for collating register availability and lexical block scoping information into a concise form.Compute_ranges_intf This file defines types that are used to specify the interface of Compute_ranges. The description of Compute_ranges is:Dissector Dissector pass for analyzing ELF object files.Dissector_log Logging utilities for the dissector.Dsl_helpers Dwarf Generation and emission of DWARF debugging information for OCaml compilation units.Dwarf_abstract_instances Management of DWARF "abstract instances" for functions.Dwarf_compilation_unit Construction of DWARF "compile_unit" DIEs and associated entities.Dwarf_concrete_instances Dwarf_flags Dwarf_high Dwarf_inlined_frames Generation of descriptions of inlined frames in DWARF.Dwarf_low Dwarf_name_laundry The name laundry: where names get (de)mangled. (This functionality is used by the debugger support library as well as the compiler.)Dwarf_reg_locations Construction of DWARF location descriptions for registers.Dwarf_state State that is shared amongst the various dwarf_* modules.Dwarf_type Conversion of type shape information into DWARF types.Dwarf_variables_and_parameters Handling of DWARF descriptions of variables and function parameters.Eh_frame_registration Generate EH frame registration code for manual runtime registration.Emit Emitaux Extra_debug Insertion of extra debugging information used to correlate between machine instructions, Linear and Cfg code.Extract_relocations Extract relocations from partially-linked object files.Fdo_info Flambda2 Flambda2_algorithms Flambda2_bound_identifiers Flambda2_classic_mode_types Flambda2_cmx Flambda2_datalog Flambda2_floats Flambda2_from_lambda Flambda2_identifiers Flambda2_import Flambda2_kinds Flambda2_lattices Flambda2_nominal Flambda2_numbers Flambda2_parser Flambda2_reaper Flambda2_simplify Flambda2_simplify_shared Flambda2_term_basics Flambda2_terms Flambda2_to_cmm Flambda2_types The interface to the Flambda type system. This is parameterised over the expression language via Code_id.Flambda2_ui Form_rewrite_plan Form a rewrite plan for ELF section rewriting.Generic_fns Igot Intermediate GOT (Global Offset Table) for the dissector.Inlined_frame_ranges InstructionId Internal_assembler Iplt Intermediate PLT (Procedure Linkage Table) for the dissector.Is_parameter Whether a variable is a local or a function parameter.Jit_backend JIT backend dispatch - architecture-independent interface for JIT. This module allows jit.ml to register a callback without knowing about architecture-specific emitters.Label Linear Linear_format Linear_utils Miscellaneous utility functions on Linear code.Linkenv Linker_script Generate linker scripts for the dissector.Llvm_ir Llvmize Location_tracker_formatter Measure_object_files Measuring allocated section sizes in object files.Operation Optcomp_intf Optcompile The batch compilerOpterrors Optlibrarian Optlink Optmaindriver Optpackager Oxcaml_args This module follows the structure of driver/main_args.ml and driver/main_args.mli. It provides a way to (a) share argument implementations between different installable tools and (b) override default implementations of arguments.Oxcaml_flags OxCaml specific command line flagsPartial_link Partial linking of object files.Partition Partition types for the dissector.Partition_object_files Partitioning object files into size-limited buckets.Peephole_optimize Peephole_rules Peephole_utils Printast_with_mappings Raw printer for ParsetreePrintcfg Printcmm Printlinear Printoperation Printreg Probe_emission Probe management for code emissionProc Reg Reg_availability_set Register availability sets.Reg_with_debug_info Registers equipped with information used for generating debugging information.Regalloc_affinity This module implements a basic variant of affinity: we compute the numbers of moves between temporaries and physical registers, and use this information in register allocators to try to assign a temporary to a physical register with high affinity.Regalloc_gi Regalloc_gi_state Regalloc_gi_utils Regalloc_interf_graph Interference graph for register allocation.Regalloc_invariants Regalloc_irc Regalloc_irc_state Regalloc_irc_utils Regalloc_ls Regalloc_ls_state Regalloc_ls_utils Regalloc_rewrite Regalloc_split Regalloc_split_state Regalloc_split_utils Regalloc_stack_operands Regalloc_stack_slots Regalloc_substitution Regalloc_utils Regalloc_validate Regs Regs_utils Relocation_entry Rewrite_sections Rewrite ELF sections for the dissector.Runtime_shape Section_table Construction of ELF section tables. *Select_utils Simd Simd_selection Simplify_terminator Merge successors that go to the same label and simplify their conditions. Modifies the terminators in place. Does not merge blocks.Stack_check Stack_class Stack_class_utils Stack_reg_offset String_table Sub_cfg Symbol_table Vectorize Vectorize_specific Vectorize_utils X86_ast_utils X86_binary_emitter X86_dsl Helpers for Intel code generatorsX86_gas Emit assembly instructions for gas.X86_masm Emit assembly instructions for MASM (Intel syntax).X86_peephole_optimize X86_peephole_rules X86_peephole_utils X86_proc Definitions shared between the 32 and 64 bit Intel backends.X86_section Zero_alloc_checker Check that functions do not allocate on the heap (local allocations are ignored).Zero_alloc_info Function summaries computed by zero_alloc analysis and encoded as integers for storing in .cmx files.
Library compiler-libs.toplevel
Library dynlink
Dynlink Dynamic loading of .cmo, .cma and .cmxs files.
Library runtime_events
Library stdlib
Library stdlib_alpha
Library stdlib_beta
Library stdlib_stable
Library stdlib_upstream_compatible
Library str
Str Regular expressions and high-level string processing
Library threads
Event First-class synchronous communication.Multicore Multicore allows spawning preemptively scheduled threads to run on domains running in parallel.Thread Lightweight threads for Posix 1003.1c and Win32.
Library unix
Unix Interface to the Unix system.UnixLabels Interface to the Unix system.