Skip to content

Commit da565bf

Browse files
committed
Create README.md
1 parent 352a339 commit da565bf

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# OCaml behind the scenes: exceptions
2+
3+
Sources of the slides and examples of the tech talk given at Tarides, Paris, on 2022/11/18.
4+
5+
Rendered slides are available in the [releases](https://github.com/fabbing/obts_exn/releases/).
6+
7+
This talk is about understanding how OCaml exceptions are implemented in native code.
8+
What happens at the lowest level when an exception is raised and when it’s caught? OCaml exceptions are said to be particularly fast; how is it achieved?
9+
10+
# Outline
11+
12+
* Assembly
13+
* x86-64 asssembly
14+
* Catching exceptions
15+
* Exceptions are values
16+
* Exception handlers
17+
* Installing a trap
18+
* Removing a trap
19+
* Raise
20+
* Nested handlers
21+
* Multiple handlers, multiple traps
22+
* Raise and reraise
23+
* Bonus: Default handler
24+
* Runtime's default exception handler
25+
26+
# Building
27+
28+
## Commands
29+
```sh
30+
make ocaml
31+
make sources
32+
make presentation
33+
```
34+
35+
## Dependencies
36+
* pdflatex (packages: Beamer, Minted, TikZ, xstring, xint)
37+
* python pygments
38+
* rr, gdb
39+
* objdump
40+
* awk, sed
41+
* make
42+
43+
## Build graph
44+
![build graph diagram](buildgraph.svg)

0 commit comments

Comments
 (0)