The OCaml system release 5.2
February, 2024
Contents
- Part I An introduction to OCaml
- Chapter 1 The core language
- Chapter 2 The module system
-
Chapter 3 Objects in OCaml
- 1 Classes and objects
- 2 Immediate objects
- 3 Reference to self
- 4 Initializers
- 5 Virtual methods
- 6 Private methods
- 7 Class interfaces
- 8 Inheritance
- 9 Multiple inheritance
- 10 Parameterized classes
- 11 Polymorphic methods
- 12 Using coercions
- 13 Functional objects
- 14 Cloning objects
- 15 Recursive classes
- 16 Binary methods
- 17 Friends
- Chapter 4 Labeled arguments
- Chapter 5 Polymorphic variants
- Chapter 6 Polymorphism and its limitations
- Chapter 7 Generalized algebraic datatypes
- Chapter 8 Advanced examples with classes and modules
- Chapter 9 Parallel programming
- Chapter 10 Memory model: The hard bits
-
Part II The OCaml language
- Chapter 11 The OCaml language
-
Chapter 12 Language extensions
- 1 Recursive definitions of values
- 2 Recursive modules
- 3 Private types
- 4 Locally abstract types
- 5 First-class modules
- 6 Recovering the type of a module
- 7 Substituting inside a signature
- 8 Type-level module aliases
- 9 Overriding in open statements
- 10 Generalized algebraic datatypes
- 11 Syntax for Bigarray access
- 12 Attributes
- 13 Extension nodes
- 14 Extensible variant types
- 15 Generative functors
- 16 Extension-only syntax
- 17 Inline records
- 18 Documentation comments
- 19 Extended indexing operators
- 20 Empty variant types
- 21 Alerts
- 22 Generalized open statements
- 23 Binding operators
- 24 Effect handlers
-
Part III The OCaml tools
- Chapter 13 Batch compilation (ocamlc)
- Chapter 14 The toplevel system or REPL (ocaml)
- Chapter 15 The runtime system (ocamlrun)
- Chapter 16 Native-code compilation (ocamlopt)
- Chapter 17 Lexer and parser generators (ocamllex, ocamlyacc)
- Chapter 18 Dependency generator (ocamldep)
- Chapter 19 The documentation generator (ocamldoc)
-
Chapter 20 The debugger (ocamldebug)
- 1 Compiling for debugging
- 2 Invocation
- 3 Commands
- 4 Executing a program
- 5 Breakpoints
- 6 The call stack
- 7 Examining variable values
-
8 Controlling the debugger
- 8.1 Setting the program name and arguments
- 8.2 How programs are loaded
- 8.3 Search path for files
- 8.4 Working directory
- 8.5 Turning reverse execution on and off
- 8.6 Behavior of the debugger with respect to fork
- 8.7 Stopping execution when new code is loaded
- 8.8 Communication between the debugger and the program
- 8.9 Fine-tuning the debugger
- 8.10 User-defined printers
- 9 Miscellaneous commands
- 10 Running the debugger under Emacs
- Chapter 21 Profiling (ocamlprof)
-
Chapter 22 Interfacing C with OCaml
- 1 Overview and compilation information
- 2 The value type
- 3 Representation of OCaml data types
- 4 Operations on values
- 5 Living in harmony with the garbage collector
- 6 A complete example
- 7 Advanced topic: callbacks from C to OCaml
- 8 Advanced example with callbacks
- 9 Advanced topic: custom blocks
- 10 Advanced topic: Bigarrays and the OCaml-C interface
- 11 Advanced topic: cheaper C call
- 12 Advanced topic: multithreading
- 13 Advanced topic: interfacing with Windows Unicode APIs
- 14 Building mixed C/OCaml libraries: ocamlmklib
- 15 Cautionary words: the internal runtime API
-
Chapter 23 Optimisation with Flambda
- 1 Overview
- 2 Command-line flags
- 3 Inlining
- 4 Specialisation
- 5 Default settings of parameters
- 6 Manual control of inlining and specialisation
- 7 Simplification
- 8 Other code motion transformations
- 9 Unboxing transformations
- 10 Removal of unused code and values
- 11 Other code transformations
- 12 Treatment of effects
- 13 Compilation of statically-allocated modules
- 14 Inhibition of optimisation
- 15 Use of unsafe operations
- 16 Glossary
- Chapter 24 Fuzzing with afl-fuzz
- Chapter 25 Runtime tracing with runtime events
- Chapter 26 The “Tail Modulo Constructor” program transformation
- Chapter 27 Runtime detection of data races with ThreadSanitizer
-
Part IV The OCaml library
- Chapter 28 The core library
- Chapter 29 The standard library
- Chapter 30 The compiler front-end
- Chapter 31 The unix library: Unix system calls
- Chapter 32 The str library: regular expressions and string processing
- Chapter 33 The runtime_events library
- Chapter 34 The threads library
- Chapter 35 The dynlink library: dynamic loading and linking of object files
- Chapter 36 Recently removed or moved libraries (Graphics, Bigarray, Num, LablTk)
- Part V Indexes
Copyright © 2024 Institut National de Recherche en Informatique et en Automatique
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/manual001.html