From 24cae5b1a295b19bf9fde8ee9eafe6ee9bd6afd1 Mon Sep 17 00:00:00 2001 From: Bill Hails Date: Mon, 22 Jan 2024 18:25:18 +0000 Subject: [PATCH] README in docs as index --- README.md | 6 ++++-- docs/README.md | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 docs/README.md diff --git a/README.md b/README.md index 0593335..33ea41a 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,16 @@ variables local to a function are directly accessible on the stack, and closures and continuations are snapshots of stack frames. It additionally makes use of fast lexical addressing (an implementation of [De Bruijn Indexing](https://en.wikipedia.org/wiki/De_Bruijn_index)) for -added efficiency gains. It also sports an implementation of Hindley-Milner +added efficiency gains and an implementation of Hindley-Milner Algorithm W for strict implicit type checking. I'm hoping that I can reproduce [the F♮ language I once implemented in Python](https://github.com/billhails/PyScheme), but as a standalone binary with reasonable performance. -If you want to stick around, maybe start by reading [the wiki]([wiki](https://github.com/billhails/CEKF/wiki)), then maybe [the math](docs/MATH.md) +If you want to stick around, maybe start by reading +[the wiki]([wiki](https://github.com/billhails/CEKF/wiki)), +then maybe [the math](docs/MATH.md) and comparing that with its implementation in [`step.c`](src/step.c), or start at [`main.c`](src/main.c) where you can see it currently constructs some expressions manually, then gives them to the machine to evaluate. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..a9a1762 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,12 @@ +# Random bits of documentation + +* [ANF](ANF.md) A-Normalization +* [LEXICAL ADDRESSING](LEXICAL_ADDRESSING.md) De-Bruijn indexing for fast variable look up. +* [MACROS](MACROS.md) initial thoughts on a simple macro system. +* [MATCH](MATCH.md) initial notes on the `match` and `cond` internal (lambda) constructs. +* [MATH](MATH.md) description of the CEKF runtime. +* [PRINT](PRINT.md) notes on the print system. +* [TODO](TODO.md) TODO list. +* [TYPES](TYPES.md) extensive notes on Algorithm W. +* [V2](V2.md) description of the switch from tree-walker to bytecode interpreter. +* [lambda conversion](lambda-conversion.md) initial thoughts on what became the TPMC.