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
|