package ocaml-base-compiler
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  Official release 4.10.2
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      4.10.2.tar.gz
    
    
        
    
  
  
  
    
  
        sha256=7aa26e0d70f36f0338df92cf5aaeb2704f3443bfe910a3d02a5dca9162f1d866
    
    
  doc/index.html
ocaml-base-compiler
API
Library bigarray
- BigarrayLarge, multi-dimensional, numerical arrays.
Library dynlink
- DynlinkDynamic loading of .cmo, .cma and .cmxs files.
Library ocamlbytecomp
- Bytegen
- Bytelibrarian
- Bytelink
- Bytepackager
- CompileBytecode compilation for .ml and .mli files.
- Emitcode
- Errors
- Instruct
- Printinstr
Library ocamlcommon
- Annot
- Arg_helperDecipher command line arguments of the form <value> | <key>=<value>- ,...
- Ast_helperHelpers to produce Parsetree fragments
- Ast_invariantsCheck AST invariants
- Ast_iterator- iteratorenables AST inspection using open recursion. A typical mapper would be based on- default_iterator, a trivial iterator, and will fall back on it for handling the syntax it does not modify.
- Ast_mapperThe interface of a -ppx rewriter
- AsttypesAuxiliary AST types used by parsetree and typedtree.
- Attr_helperHelpers for attributes
- Btype
- Build_path_prefix_mapRewrite paths for reproducible builds
- Builtin_attributesSupport for some of the builtin attributes
- BytesectionsRecording sections written to a bytecode executable file
- CamlinternalMenhirLib
- CcompCompiling C files and building C libraries
- ClflagsCommand line flags
- Cmi_format
- Cmo_format
- Cmt_formatcmt and cmti files format.
- Cmxs_format
- Compenv
- Compile_commonCommon compilation pipeline between bytecode and native.
- Compmisc
- ConfigSystem configuration
- ConsistblConsistency tables: for checking consistency of module CRCs
- Ctype
- Datarepr
- Debuginfo
- DependModule dependencies.
- Dll
- DocstringsDocumentation comments
- Domainstate
- Env
- Envaux
- Expunge
- Ident
- IdentifiableUniform interface for common data structures over various things.
- Includeclass
- Includecore
- Includemod
- Int_replace_polymorphic_compare
- Lambda
- LexerThe lexical analyzer
- Load_pathManagement of include directories.
- Location
- LongidentLong identifiers, used in parsetree.
- Main_args
- Makedepend
- Matching
- Meta
- MiscMiscellaneous useful types and functions
- Mtype
- NumbersModules about numbers, some of which satisfy- Identifiable.S.
- Opcodes
- Oprint
- Outcometree
- ParmatchDetection of partial matches and unused match cases.
- ParseEntry points in the parser
- Parser
- ParsetreeAbstract syntax tree produced by parsing
- Path
- Persistent_env
- PparseDriver for the parser and external preprocessors.
- PprintastPretty-printers for- Parsetree
- Predef
- Primitive
- PrintastRaw printer for- Parsetree
- Printlambda
- Printpat
- Printtyp
- Printtyped
- ProfileCompiler performance recording
- Rec_check
- Runtimedef
- SimplifLambda simplification.
- Strongly_connected_componentsKosaraju's algorithm for strongly connected components.
- Stypes
- Subst
- Switch
- Symtable
- SyntaxerrAuxiliary type for reporting syntax errors
- TargetintTarget processor-native integers.
- Tast_iteratorAllows the implementation of typed tree inspection using open recursion
- Tast_mapper
- TerminfoBasic interface to the terminfo database
- Translattribute
- Translclass
- Translcore
- Translmod
- Translobj
- Translprim
- Type_immediacyImmediacy status of a type
- Typeclass
- Typecore
- Typedecl
- Typedecl_immediacy
- Typedecl_properties
- Typedecl_unboxed
- Typedecl_variance
- TypedtreeAbstract syntax tree after typing
- TypemodType-checking of the module language and typed ast hooks
- Typeopt
- Types
- Typetexp
- Untypeast
- WarningsWarning definitions
Library ocamlmiddleend
- Alias_analysis
- Allocated_constConstants that are always allocated (possibly statically). Blocks are not included here since they are always encoded using- Prim (Pmakeblock, ...).
- Augment_specialised_argsHelper module for adding specialised arguments to sets of closures.
- Backend_varVariables used in the backend, optionally equipped with "provenance" information, used for the emission of debugging information.
- Build_export_infoConstruct export information, for emission into .cmx files, from an Flambda program.
- Clambda
- Clambda_primitives
- Closure
- Closure_conversion
- Closure_conversion_auxEnvironments and auxiliary structures used during closure conversion.
- Closure_element
- Closure_idCR-someday lwhite: "Closure_id" is quite a generic name. I wonder whether something like "Closure_label" would better capture that it is the label of a projection.
- Closure_middle_end
- Closure_offsetsAssign numerical offsets, within closure blocks, for code pointers and environment entries.
- Closure_origin
- Compilation_unit
- Compilenv
- Convert_primitives
- Effect_analysisSimple side effect analysis.
- Export_id
- Export_infoExported information (that is to say, information written into a .cmx file) about a compilation unit.
- Export_info_for_packTransformations on export information that are only used for the building of packs.
- Extract_projectionsIdentify projections from variables used in function bodies (free variables or specialised args, for example, according to- which_variablesbelow). Projections from variables that are also used boxed are not returned.
- Find_recursive_functions"Recursive functions" are those functions- fthat might call either:
- FlambdaIntermediate language used for tree-based analysis and optimization.
- Flambda_invariants
- Flambda_iterators
- Flambda_middle_endTranslate Lambda code to Flambda code, optimize it, and produce Clambda.
- Flambda_to_clambda
- Flambda_utilsUtility functions for the Flambda intermediate language.
- FresheningFreshening of various identifiers.
- Id_types
- Import_approxCreate simple value approximations from the export information in .cmx files.
- Inconstant_idents
- Initialize_symbol_to_let_symbol
- Inline_and_simplify
- Inline_and_simplify_auxEnvironments and result structures used during inlining and simplification. (See inline_and_simplify.ml.)
- Inlining_costMeasurement of the cost (including cost in space) of Flambda terms in the context of inlining.
- Inlining_decisionSee the Flambda manual chapter for an explanation in prose of the inlining decision procedure.
- Inlining_stats
- Inlining_stats_types
- Inlining_transformsSource code transformations used during inlining.
- Internal_variable_names
- Invariant_params
- Lift_code
- Lift_constantsThe aim of this pass is to assign symbols to values known to be constant (in other words, whose values we know at compile time), with appropriate sharing of constants, and replace the occurrences of the constants with their corresponding symbols.
- Lift_let_to_initialize_symbol
- Linkage_name
- Mutable_variable
- Parameter- Parameter.tcarries a unique- Variable.tused as function parameter. It can also carry annotations about the usage of the variable.
- Pass_wrapper
- Printclambda
- Printclambda_primitives
- ProjectionRepresentation of projections from closures and blocks.
- Ref_to_variablesTransform- let-bound references into variables.
- Remove_free_vars_equal_to_argsReplace free variables in closures known to be equal to specialised arguments of such closures with those specialised arguments.
- Remove_unused_arguments
- Remove_unused_closure_vars
- Remove_unused_program_constructs
- Semantics_of_primitivesDescription of the semantics of primitives, to be used for optimization purposes.
- Set_of_closures_idAn identifier, unique across the whole program, that identifies a set of closures (viz.- Set_of_closures).
- Set_of_closures_origin
- Share_constantsShare lifted constants that are eligible for sharing (e.g. not strings) and have equal definitions.
- Simple_value_approxSimple approximations to the runtime results of computations. This pass is designed for speed rather than accuracy; the performance is important since it is used heavily during inlining.
- Simplify_boxed_integer_ops
- Simplify_common- const_*_expr expr v annot, where the expression- expris known to evaluate to the value- v, attempt to produce a more simple expression together with its approximation and the benefit gained by replacing- exprwith this new expression. This simplification is only performed if- expris known to have no side effects. Otherwise,- expritself is returned, with an appropriate approximation but zero benefit.
- Simplify_primitives
- Static_exceptionAn identifier that is used to label static exceptions. Its uniqueness properties are unspecified.
- SymbolA symbol identifies a constant provided by either:
- TagTags on runtime boxed values.
- Traverse_for_exported_symbols
- Un_anf
- Unbox_closuresTurn free variables of closures into specialised arguments. The aim is to cause the closure to become closed.
- Unbox_free_vars_of_closuresWhen approximations of free variables of closures indicate that they are closures or blocks, rewrite projections from such blocks to new variables (which become free in the closures), with the defining expressions of the projections lifted out of the corresponding sets of closures.
- Unbox_specialised_argsWhen approximations of specialised arguments indicate that they are closures or blocks, add more specialised arguments corresponding to the projections from such blocks (with definitions of such projections lifted out), such that the original specialised arguments may later be eliminated.
- Var_within_closureAn identifier, unique across the whole program, that identifies a particular variable within a particular closure. Only- Project_var, and not- Var, nodes are tagged with these identifiers.
- Variable- Variable.tis the equivalent of a non-persistent- Ident.tin the- Flambdatree. It wraps an- Ident.ttogether with its source- compilation_unit. As such, it is unique within a whole program, not just one compilation unit.
Library ocamloptcomp
- Afl_instrumentInstrumentation for afl-fuzz.
- Alias_analysis
- Allocated_constConstants that are always allocated (possibly statically). Blocks are not included here since they are always encoded using- Prim (Pmakeblock, ...).
- Arch
- AsmgenFrom Lambda to assembly code
- Asmlibrarian
- Asmlink
- Asmpackager
- Augment_specialised_argsHelper module for adding specialised arguments to sets of closures.
- Available_regsAvailable registers analysis used to determine which variables may be shown in the debugger.
- Backend_intfKnowledge that the middle end needs about the backend.
- Backend_varVariables used in the backend, optionally equipped with "provenance" information, used for the emission of debugging information.
- Branch_relaxation
- Branch_relaxation_intf
- Build_export_infoConstruct export information, for emission into .cmx files, from an Flambda program.
- CSE
- CSEgen
- Clambda
- Clambda_primitives
- Closure
- Closure_conversion
- Closure_conversion_auxEnvironments and auxiliary structures used during closure conversion.
- Closure_element
- Closure_idCR-someday lwhite: "Closure_id" is quite a generic name. I wonder whether something like "Closure_label" would better capture that it is the label of a projection.
- Closure_middle_end
- Closure_offsetsAssign numerical offsets, within closure blocks, for code pointers and environment entries.
- Closure_origin
- Cmm
- Cmm_helpers
- Cmmgen
- Cmmgen_stateMutable state used by- Cmmgen.
- Cmx_format
- Coloring
- Comballoc
- Compilation_unit
- Compilenv
- Compute_rangesCoalescing 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_intfThis file defines types that are used to specify the interface of- Compute_ranges. The description of- Compute_rangesis:
- Convert_primitives
- Deadcode
- Effect_analysisSimple side effect analysis.
- Emit
- Emitaux
- Export_id
- Export_infoExported information (that is to say, information written into a .cmx file) about a compilation unit.
- Export_info_for_packTransformations on export information that are only used for the building of packs.
- Extract_projectionsIdentify projections from variables used in function bodies (free variables or specialised args, for example, according to- which_variablesbelow). Projections from variables that are also used boxed are not returned.
- Find_recursive_functions"Recursive functions" are those functions- fthat might call either:
- FlambdaIntermediate language used for tree-based analysis and optimization.
- Flambda_invariants
- Flambda_iterators
- Flambda_middle_endTranslate Lambda code to Flambda code, optimize it, and produce Clambda.
- Flambda_to_clambda
- Flambda_utilsUtility functions for the Flambda intermediate language.
- FresheningFreshening of various identifiers.
- Id_types
- Import_approxCreate simple value approximations from the export information in .cmx files.
- Inconstant_idents
- Initialize_symbol_to_let_symbol
- Inline_and_simplify
- Inline_and_simplify_auxEnvironments and result structures used during inlining and simplification. (See inline_and_simplify.ml.)
- Inlining_costMeasurement of the cost (including cost in space) of Flambda terms in the context of inlining.
- Inlining_decisionSee the Flambda manual chapter for an explanation in prose of the inlining decision procedure.
- Inlining_decision_intf
- Inlining_stats
- Inlining_stats_types
- Inlining_transformsSource code transformations used during inlining.
- Interf
- Internal_variable_names
- Interval
- Invariant_params
- Lift_code
- Lift_constantsThe aim of this pass is to assign symbols to values known to be constant (in other words, whose values we know at compile time), with appropriate sharing of constants, and replace the occurrences of the constants with their corresponding symbols.
- Lift_let_to_initialize_symbol
- Linear
- Linearize
- Linkage_name
- Linscan
- Liveness
- Mach
- Mutable_variable
- OptcompileNative compilation for .ml and .mli files.
- Opterrors
- Parameter- Parameter.tcarries a unique- Variable.tused as function parameter. It can also carry annotations about the usage of the variable.
- Pass_wrapper
- Printclambda
- Printclambda_primitives
- Printcmm
- Printlinear
- Printmach
- Proc
- ProjectionRepresentation of projections from closures and blocks.
- Ref_to_variablesTransform- let-bound references into variables.
- Reg
- Reg_availability_setRegister availability sets.
- Reg_with_debug_infoRegisters equipped with information used for generating debugging information.
- Reload
- Reloadgen
- Remove_free_vars_equal_to_argsReplace free variables in closures known to be equal to specialised arguments of such closures with those specialised arguments.
- Remove_unused_arguments
- Remove_unused_closure_vars
- Remove_unused_program_constructs
- Schedgen
- Scheduling
- Selectgen
- Selection
- Semantics_of_primitivesDescription of the semantics of primitives, to be used for optimization purposes.
- Set_of_closures_idAn identifier, unique across the whole program, that identifies a set of closures (viz.- Set_of_closures).
- Set_of_closures_origin
- Share_constantsShare lifted constants that are eligible for sharing (e.g. not strings) and have equal definitions.
- Simple_value_approxSimple approximations to the runtime results of computations. This pass is designed for speed rather than accuracy; the performance is important since it is used heavily during inlining.
- Simplify_boxed_integer_ops
- Simplify_boxed_integer_ops_intf
- Simplify_common- const_*_expr expr v annot, where the expression- expris known to evaluate to the value- v, attempt to produce a more simple expression together with its approximation and the benefit gained by replacing- exprwith this new expression. This simplification is only performed if- expris known to have no side effects. Otherwise,- expritself is returned, with an appropriate approximation but zero benefit.
- Simplify_primitives
- Spacetime_profilingInsertion of instrumentation code for Spacetime profiling.
- Spill
- Split
- Static_exceptionAn identifier that is used to label static exceptions. Its uniqueness properties are unspecified.
- Strmatch
- SymbolA symbol identifies a constant provided by either:
- TagTags on runtime boxed values.
- Traverse_for_exported_symbols
- Un_anf
- Unbox_closuresTurn free variables of closures into specialised arguments. The aim is to cause the closure to become closed.
- Unbox_free_vars_of_closuresWhen approximations of free variables of closures indicate that they are closures or blocks, rewrite projections from such blocks to new variables (which become free in the closures), with the defining expressions of the projections lifted out of the corresponding sets of closures.
- Unbox_specialised_argsWhen approximations of specialised arguments indicate that they are closures or blocks, add more specialised arguments corresponding to the projections from such blocks (with definitions of such projections lifted out), such that the original specialised arguments may later be eliminated.
- Var_within_closureAn identifier, unique across the whole program, that identifies a particular variable within a particular closure. Only- Project_var, and not- Var, nodes are tagged with these identifiers.
- Variable- Variable.tis the equivalent of a non-persistent- Ident.tin the- Flambdatree. It wraps an- Ident.ttogether with its source- compilation_unit. As such, it is unique within a whole program, not just one compilation unit.
- X86_astStructured representation of Intel assembly language (32 and 64 bit).
- X86_dslHelpers for Intel code generators
- X86_gasEmit assembly instructions for gas.
- X86_masmEmit assembly instructions for MASM (Intel syntax).
- X86_procDefinitions shared between the 32 and 64 bit Intel backends.
Library ocamltoplevel
Library odoc_info
- Odoc_infoInterface to the information collected in source files.
Library raw_spacetime_lib
- Raw_spacetime_libAccess to the information recorded by the- Spacetimemodule. (It is intended that this module will be used by post-processors rather than users wishing to understand their programs.) For 64-bit targets only. This module may be used from any program, not just one compiled with a compiler configured for Spacetime.
Library stdlib
- CamlinternalFormat
- CamlinternalFormatBasics
- CamlinternalLazyRun-time support for lazy values. All functions in this module are for system use only, not for the casual user.
- CamlinternalModRun-time support for recursive modules. All functions in this module are for system use only, not for the casual user.
- CamlinternalOORun-time support for objects and classes. All functions in this module are for system use only, not for the casual user.
- StdlibThe OCaml Standard library.
- Topdirs
Library str
- StrRegular expressions and high-level string processing
Library threads
- ConditionCondition variables to synchronize between threads.
- EventFirst-class synchronous communication.
- MutexLocks for mutual exclusion.
- ThreadLightweight threads for Posix- 1003.1cand Win32.
- ThreadUnixThread-compatible system calls.
Library unix
- UnixInterface to the Unix system.
- UnixLabelsInterface to the Unix system. To use as replacement to default- Unixmodule, add- module Unix = UnixLabelsin your implementation.
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page