diff --git a/classes.html b/classes.html index 54796a317..fa369aeb9 100644 --- a/classes.html +++ b/classes.html @@ -1,4 +1,4 @@ -Classes - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
Back
Table of Contents
+Classes - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Classes

This chapter was written by Leo White and Jason Hickey.

diff --git a/command-line-parsing.html b/command-line-parsing.html index 3cb4576c8..68c73b54a 100644 --- a/command-line-parsing.html +++ b/command-line-parsing.html @@ -1,4 +1,4 @@ -Command-Line Parsing - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Command-Line Parsing - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Command-Line Parsing

Many of the OCaml programs that you’ll write will end up as binaries that need to be run from a command prompt. Any nontrivial command line diff --git a/compiler-backend.html b/compiler-backend.html index 1180931a5..4addcb3fc 100644 --- a/compiler-backend.html +++ b/compiler-backend.html @@ -1,4 +1,4 @@ -The Compiler Backend: Bytecode and Native code - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+The Compiler Backend: Bytecode and Native code - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

The Compiler Backend: Bytecode and Native code

Once OCaml has passed the type checking stage, it can stop emitting syntax and type errors and begin the process of compiling the diff --git a/compiler-frontend.html b/compiler-frontend.html index b53defc47..fbf21ffca 100644 --- a/compiler-frontend.html +++ b/compiler-frontend.html @@ -1,4 +1,4 @@ -The Compiler Frontend: Parsing and Type Checking - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+The Compiler Frontend: Parsing and Type Checking - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

The Compiler Frontend: Parsing and Type Checking

Compiling source code into executable programs involves a fairly complex set of libraries, linkers, and assemblers. While Dune mostly diff --git a/concurrent-programming.html b/concurrent-programming.html index 72279251c..6357e33da 100644 --- a/concurrent-programming.html +++ b/concurrent-programming.html @@ -1,4 +1,4 @@ -Concurrent Programming with Async - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Concurrent Programming with Async - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Concurrent Programming with Async

The logic of building programs that interact with the outside world is often dominated by waiting; waiting for the click of a mouse, or for diff --git a/data-serialization.html b/data-serialization.html index 97e9f574d..e6f475b82 100644 --- a/data-serialization.html +++ b/data-serialization.html @@ -1,4 +1,4 @@ -Data Serialization with S-Expressions - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Data Serialization with S-Expressions - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Data Serialization with S-Expressions

S-expressions are nested parenthetical expressions whose atomic values are strings. They were first popularized by the Lisp programming diff --git a/error-handling.html b/error-handling.html index 999ec1320..47c12989d 100644 --- a/error-handling.html +++ b/error-handling.html @@ -1,4 +1,4 @@ -Error Handling - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Error Handling - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Error Handling

Nobody likes dealing with errors. It’s tedious, it’s easy to get wrong, and it’s usually just not as fun as thinking about how your diff --git a/faqs.html b/faqs.html index a80940bcb..252a13e3d 100644 --- a/faqs.html +++ b/faqs.html @@ -1,4 +1,4 @@ -Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Why do I need to provide my Github login details to add comments?

diff --git a/files-modules-and-programs.html b/files-modules-and-programs.html index ba0cf59e6..a51e2c916 100644 --- a/files-modules-and-programs.html +++ b/files-modules-and-programs.html @@ -1,4 +1,4 @@ -Files, Modules, and Programs - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Files, Modules, and Programs - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Files, Modules, and Programs

We’ve so far experienced OCaml largely through the toplevel. As you move from exercises to real-world programs, you’ll need to leave the diff --git a/first-class-modules.html b/first-class-modules.html index 4d07bae5e..1c57ee6ac 100644 --- a/first-class-modules.html +++ b/first-class-modules.html @@ -1,4 +1,4 @@ -First-Class Modules - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+First-Class Modules - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

First-Class Modules

You can think of OCaml as being broken up into two parts: a core language that is concerned with values and types, and a module language diff --git a/foreign-function-interface.html b/foreign-function-interface.html index 9e8cc45eb..1c82bca00 100644 --- a/foreign-function-interface.html +++ b/foreign-function-interface.html @@ -1,4 +1,4 @@ -Foreign Function Interface - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Foreign Function Interface - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Foreign Function Interface

This chapter includes contributions from Jeremy Yallop.

diff --git a/functors.html b/functors.html index 7a736e573..6e598503c 100644 --- a/functors.html +++ b/functors.html @@ -1,4 +1,4 @@ -Functors - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Functors - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Functors

Up until now, we’ve seen OCaml’s modules play an important but limited role. In particular, we’ve used modules to organize code into diff --git a/gadts.html b/gadts.html index bc3794a3a..48153e17c 100644 --- a/gadts.html +++ b/gadts.html @@ -1,4 +1,4 @@ -GADTs - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+GADTs - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

GADTs

Generalized Algebraic Data Types, or GADTs for short, are an extension of the variants we saw in Chapter 6, Variants. GADTs are more expressive than regular diff --git a/garbage-collector.html b/garbage-collector.html index 14187f15f..a039f5270 100644 --- a/garbage-collector.html +++ b/garbage-collector.html @@ -1,4 +1,4 @@ -Understanding the Garbage Collector - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Understanding the Garbage Collector - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Understanding the Garbage Collector

This chapter includes contributions from Stephen Weeks and Sadiq diff --git a/guided-tour.html b/guided-tour.html index 3f1232bdd..eb3232c28 100644 --- a/guided-tour.html +++ b/guided-tour.html @@ -1,4 +1,4 @@ -A Guided Tour - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+A Guided Tour - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

A Guided Tour

This chapter gives an overview of OCaml by walking through a series of small examples that cover most of the major features of the language. diff --git a/imperative-programming.html b/imperative-programming.html index 3891adff2..fbe81da8c 100644 --- a/imperative-programming.html +++ b/imperative-programming.html @@ -1,4 +1,4 @@ -Imperative Programming - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Imperative Programming - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Imperative Programming

This chapter includes contributions from Jason Hickey.

diff --git a/index.html b/index.html index 38a7d2e8f..543f4eb2f 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Real World OCaml

Real World OCaml

Functional programming for the masses

2nd Edition (published in Q4 2021)
+Real World OCaml

Real World OCaml

Functional programming for the masses

2nd Edition (published in Q4 2022)
diff --git a/install.html b/install.html index 996925e4b..f5c42b542 100644 --- a/install.html +++ b/install.html @@ -1,4 +1,4 @@ -Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)

Installation Instructions

+Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Installation Instructions

These instructions are aimed at readers of Real World OCaml, though much of what you find here will be useful for anyone who diff --git a/json.html b/json.html index 6f2bb7075..d6fd01bfd 100644 --- a/json.html +++ b/json.html @@ -1,4 +1,4 @@ -Handling JSON Data - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Handling JSON Data - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Handling JSON Data

Data serialization, i.e., converting data to and from a sequence of bytes that’s suitable for writing to disk or sending across the network, diff --git a/lists-and-patterns.html b/lists-and-patterns.html index 03760e738..636a03895 100644 --- a/lists-and-patterns.html +++ b/lists-and-patterns.html @@ -1,4 +1,4 @@ -Lists and Patterns - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Lists and Patterns - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Lists and Patterns

This chapter will focus on two common elements of programming in OCaml: lists and pattern matching. Both of these were discussed in Chapter 1, A Guided diff --git a/maps-and-hashtables.html b/maps-and-hashtables.html index cddcdcfca..f67ae2d6f 100644 --- a/maps-and-hashtables.html +++ b/maps-and-hashtables.html @@ -1,4 +1,4 @@ -Maps and Hash Tables - Real World OCaml

+Maps and Hash Tables - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Maps and Hash Tables

Lots of programming problems require dealing with data organized as key/value pairs. Maybe the simplest way of representing such data in diff --git a/objects.html b/objects.html index 0797126cc..e91f27b13 100644 --- a/objects.html +++ b/objects.html @@ -1,4 +1,4 @@ -Objects - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Objects - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Objects

This chapter was written by Leo White and Jason Hickey.

diff --git a/parsing-with-ocamllex-and-menhir.html b/parsing-with-ocamllex-and-menhir.html index d6db1dd7a..015186f92 100644 --- a/parsing-with-ocamllex-and-menhir.html +++ b/parsing-with-ocamllex-and-menhir.html @@ -1,4 +1,4 @@ -Parsing with OCamllex and Menhir - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Parsing with OCamllex and Menhir - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Parsing with OCamllex and Menhir

This chapter includes contributions from Jason Hickey.

diff --git a/platform.html b/platform.html index dde276ab7..76ef4feec 100644 --- a/platform.html +++ b/platform.html @@ -1,4 +1,4 @@ -The OCaml Platform - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+The OCaml Platform - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

The OCaml Platform

So far in Part II, we’ve gone through a number of libraries and techniques you can use to build larger scale OCaml programs. We’ll now diff --git a/prologue.html b/prologue.html index 69536ef21..2664a71e3 100644 --- a/prologue.html +++ b/prologue.html @@ -1,4 +1,4 @@ -Prologue - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Prologue - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Prologue

Why OCaml?

diff --git a/records.html b/records.html index 33ad70d72..1a0af0ed9 100644 --- a/records.html +++ b/records.html @@ -1,4 +1,4 @@ -Records - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Records - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Records

One of OCaml’s best features is its concise and expressive system for declaring new data types. Records are a key element of that diff --git a/runtime-memory-layout.html b/runtime-memory-layout.html index a652be5a2..0feb7e008 100644 --- a/runtime-memory-layout.html +++ b/runtime-memory-layout.html @@ -1,4 +1,4 @@ -Memory Representation of Values - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Memory Representation of Values - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Memory Representation of Values

The FFI interface we described in Chapter 22, Foreign Function Interface hides the precise details of how values are exchanged across C libraries and the OCaml diff --git a/testing.html b/testing.html index 60c723957..47103ff0b 100644 --- a/testing.html +++ b/testing.html @@ -1,4 +1,4 @@ -Testing - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)
+Testing - Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2022)

Testing

The goal of this chapter is to teach you how to write effective tests in OCaml, and to show off some tools that can help. Tooling is diff --git a/toc.html b/toc.html index b02e6997d..9aec0ad97 100644 --- a/toc.html +++ b/toc.html @@ -1,4 +1,4 @@ -Real World OCaml

Real World OCaml

2nd Edition (published in Q4 2021)