package ocaml-base-compiler
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  Official release 5.0.0
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      5.0.0.tar.gz
    
    
        
    
  
  
  
    
  
        sha256=72fa3d0ba19b82fcb9e6c62e0090b9d22e5905c4be0f94faf56904a9377a9e5b
    
    
  doc/index.html
ocaml-base-compiler
API
Library compiler-libs.bytecomp
- Bytegen
- Bytelibrarian
- Bytelink
- Bytepackager
- CompileBytecode compilation for .ml and .mli files.
- Emitcode
- Errors
- Instruct
- Maindriver
- Printinstr
Library compiler-libs.common
- Annot
- Arg_helperDecipher command line arguments of the form <value> | <key>=<value>- ,...
- Ast_helperHelpers to produce Parsetree fragments
- Ast_invariantsCheck AST invariants
- Ast_iterator- Ast_iterator.iteratorenables 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_mapperThe interface of a -ppx rewriter
- AsttypesAuxiliary AST types used by parsetree and typedtree.
- Attr_helperHelpers for attributes
- Binutils
- 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
- Cmt2annot
- Cmt_formatcmt and cmti files format.
- Cmxs_format
- Compenv
- Compile_commonCommon compilation pipeline between bytecode and native.
- Compmisc
- ConfigSystem configuration
- Config_bootSystem configuration
- Config_mainSystem configuration
- ConsistblConsistency tables: for checking consistency of module CRCs
- Ctype
- Datarepr
- Debuginfo
- DependModule dependencies.
- DiffingParametric diffing
- Diffing_with_keysWhen 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
- DocstringsDocumentation comments
- Domainstate
- Env
- Envaux
- Errortrace
- Expunge
- Ident
- IdentifiableUniform interface for common data structures over various things.
- Includeclass
- Includecore
- Includemod
- Includemod_errorprinter
- Int_replace_polymorphic_compare
- Lambda
- Lazy_backtrack
- LexerThe lexical analyzer
- Load_pathManagement of include directories.
- Local_storeThis module provides some facilities for creating references (and hash tables) which can easily be snapshoted and restored to an arbitrary version.
- LocationSource code locations (ranges of positions), used in parsetree.
- 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
- Patterns
- 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
- Shape
- Signature_groupIterate on signature by syntactic group of items
- 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
- TmcTail-modulo-cons optimization.
- Translattribute
- Translclass
- Translcore
- Translmod
- Translobj
- Translprim
- Type_immediacyImmediacy status of a type
- Typeclass
- Typecore
- Typedecl
- Typedecl_immediacy
- Typedecl_properties
- Typedecl_separabilityThe 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_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 compiler-libs.optcomp
- 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.
- 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
- Cmm_invariantsCheck a number of continuation-related invariants
- Cmmgen
- Cmmgen_stateMutable state used by- Cmmgen.
- Cmx_format
- Coloring
- Comballoc
- Compilation_unit
- Compilenv
- Convert_primitives
- Dataflow
- Deadcode
- Effect_analysisSimple side effect analysis.
- Emit
- Emitaux
- Emitenv
- 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
- Linear_format
- Linearize
- Linkage_name
- Linscan
- Liveness
- Mach
- Mutable_variable
- OptcompileNative compilation for .ml and .mli files.
- Opterrors
- Optmaindriver
- Parameter- Parameter.tcarries a unique- Variable.tused as function parameter. It can also carry annotations about the usage of the variable.
- Pass_wrapper
- PollingAnalyses related to the insertion of- Ipolloperations.
- Printclambda
- Printclambda_primitives
- Printcmm
- Printlinear
- Printmach
- Proc
- ProjectionRepresentation of projections from closures and blocks.
- Ref_to_variablesTransform- let-bound references into variables.
- Reg
- 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
- 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 compiler-libs.toplevel
- Genprintval
- TopcommonThis module provides common implementations for internals of- Toploop, for bytecode and native code (see- Topevalfor the diverging parts of the implementation).
- Topdirs
- TopevalThis module provides two alternative implementations for internals of- Toploop, for bytecode and native code.
- Toploop
- Topmain
- Trace
Library dynlink
- DynlinkDynamic loading of .cmo, .cma and .cmxs files.
Library odoc_info
- Odoc_infoInterface to the information collected in source files.
Library runtime_events
- Runtime_eventsRuntime events - ring buffer-based runtime tracing
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.
Library str
- StrRegular expressions and high-level string processing
Library threads
Library unix
- UnixInterface to the Unix system.
- UnixLabelsInterface to the Unix system.
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page