aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: 3d4349fcbdaa5f161c40a9b1607de9651f6247cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# calm

> **c**alm **a**bstract **l**ambda **m**achine

- aggressive reduction of lambda calculus expressions
- small memory footprint without leaks
- uses [hash-based shared
  λ-graphs](https://text.marvinborner.de/2023-05-30-16.html)
- reducer of [larsux](https://github.com/marvinborner/larsux)

## Note

The used reduction strategy works best if the reducer and scheduler
support parallel execution using multi-threading. While planned for the
future, this is currently not implemented due to quite a lot additional
complexity.

This repository also contains an implementation of the RKNL abstract
machine. You can find it in the `rknl` branch.

## Libraries

- [hashmap.c](https://github.com/tidwall/hashmap.c) \[MIT\]: Simple but
  efficient hashmap
- [pqueue](https://github.com/vy/libpqueue/) \[BSD 2-Clause\]: Simple
  priority queue implementation
- [xxHash](https://github.com/Cyan4973/xxHash/) \[BSD 2-Clause\]:
  Extremely fast hash algorithm