Contents
- Part I An introduction to OCaml
- Chapter 1 The core language
- Chapter 2 The module system
-
Chapter 3 Objects in OCaml
- 3.1 Classes and objects
- 3.2 Immediate objects
- 3.3 Reference to self
- 3.4 Initializers
- 3.5 Virtual methods
- 3.6 Private methods
- 3.7 Class interfaces
- 3.8 Inheritance
- 3.9 Multiple inheritance
- 3.10 Parameterized classes
- 3.11 Polymorphic methods
- 3.12 Using coercions
- 3.13 Functional objects
- 3.14 Cloning objects
- 3.15 Recursive classes
- 3.16 Binary methods
- 3.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
-
Part II The OCaml language
- Chapter 9 The OCaml language
-
Chapter 10 Language extensions
- 10.1 Recursive definitions of values
- 10.2 Recursive modules
- 10.3 Private types
- 10.4 Locally abstract types
- 10.5 First-class modules
- 10.6 Recovering the type of a module
- 10.7 Substituting inside a signature
- 10.8 Type-level module aliases
- 10.9 Overriding in open statements
- 10.10 Generalized algebraic datatypes
- 10.11 Syntax for Bigarray access
- 10.12 Attributes
- 10.13 Extension nodes
- 10.14 Extensible variant types
- 10.15 Generative functors
- 10.16 Extension-only syntax
- 10.17 Inline records
- 10.18 Documentation comments
- 10.19 Extended indexing operators
- 10.20 Empty variant types
- 10.21 Alerts
- 10.22 Generalized open statements
- 10.23 Binding operators
-
Part III The OCaml tools
- Chapter 11 Batch compilation (ocamlc)
- Chapter 12 The toplevel system or REPL (ocaml)
- Chapter 13 The runtime system (ocamlrun)
- Chapter 14 Native-code compilation (ocamlopt)
- Chapter 15 Lexer and parser generators (ocamllex, ocamlyacc)
- Chapter 16 Dependency generator (ocamldep)
- Chapter 17 The documentation generator (ocamldoc)
-
Chapter 18 The debugger (ocamldebug)
- 18.1 Compiling for debugging
- 18.2 Invocation
- 18.3 Commands
- 18.4 Executing a program
- 18.5 Breakpoints
- 18.6 The call stack
- 18.7 Examining variable values
-
18.8 Controlling the debugger
- 18.8.1 Setting the program name and arguments
- 18.8.2 How programs are loaded
- 18.8.3 Search path for files
- 18.8.4 Working directory
- 18.8.5 Turning reverse execution on and off
- 18.8.6 Behavior of the debugger with respect to fork
- 18.8.7 Stopping execution when new code is loaded
- 18.8.8 Communication between the debugger and the program
- 18.8.9 Fine-tuning the debugger
- 18.8.10 User-defined printers
- 18.9 Miscellaneous commands
- 18.10 Running the debugger under Emacs
- Chapter 19 Profiling (ocamlprof)
-
Chapter 20 Interfacing C with OCaml
- 20.1 Overview and compilation information
- 20.2 The value type
- 20.3 Representation of OCaml data types
- 20.4 Operations on values
- 20.5 Living in harmony with the garbage collector
- 20.6 A complete example
- 20.7 Advanced topic: callbacks from C to OCaml
- 20.8 Advanced example with callbacks
- 20.9 Advanced topic: custom blocks
- 20.10 Advanced topic: Bigarrays and the OCaml-C interface
- 20.11 Advanced topic: cheaper C call
- 20.12 Advanced topic: multithreading
- 20.13 Advanced topic: interfacing with Windows Unicode APIs
- 20.14 Building mixed C/OCaml libraries: ocamlmklib
- 20.15 Cautionary words: the internal runtime API
-
Chapter 21 Optimisation with Flambda
- 21.1 Overview
- 21.2 Command-line flags
- 21.3 Inlining
- 21.4 Specialisation
- 21.5 Default settings of parameters
- 21.6 Manual control of inlining and specialisation
- 21.7 Simplification
- 21.8 Other code motion transformations
- 21.9 Unboxing transformations
- 21.10 Removal of unused code and values
- 21.11 Other code transformations
- 21.12 Treatment of effects
- 21.13 Compilation of statically-allocated modules
- 21.14 Inhibition of optimisation
- 21.15 Use of unsafe operations
- 21.16 Glossary
- Chapter 22 Fuzzing with afl-fuzz
- Chapter 23 Runtime tracing with the instrumented runtime
-
Part IV The OCaml library
- Chapter 24 The core library
- Chapter 25 The standard library
- Chapter 26 The compiler front-end
- Chapter 27 The unix library: Unix system calls
- Chapter 28 The str library: regular expressions and string processing
- Chapter 29 The threads library
- Chapter 30 The dynlink library: dynamic loading and linking of object files
- Chapter 31 Recently removed or moved libraries (Graphics, Bigarray, Num, LablTk)
- Part V Indexes
© 1995-2021 INRIA.
https://www.ocaml.org/releases/4.13/htmlman/manual001.html