Commit Graph

15 Commits

Author SHA1 Message Date
9b72fb7827 Add some top-level documentation. 2023-04-23 20:08:13 -07:00
e648f3b31b Pull some of the REPL implementation out into the library, rather than the binary. 2023-04-16 21:02:21 -07:00
c660d29d3a Shift most of the meat of the compiler over into the library. 2023-04-16 20:38:27 -07:00
7ad28a9b23 🧪 Add evaluation tests to ensure that passes retain NGR semantics. (#2)
This change adds `Arbitrary` instances to the key IR data types (both as syntax and as native IR), as well as evaluator functions for both. This way, we can ensure that the evaluation of one version of the IR is observationally equivalent to another version of the IR, or even a later IR. It also adds a similar ability through both static file compilation and the JIT, to ensure that the translation through Cranelift and our runtime works as expected.

This actually found a couple issues in its creation, and I hope is helpful extensions into more interesting programs.
2023-04-16 16:07:45 -07:00
289997af5a Some cleanups. 2023-03-28 22:16:48 -05:00
4aa3a9419a Very weirdly organized, but it JITs! 2023-03-24 10:28:32 -05:00
ff8412acca Remove the old pass_result tree. 2023-01-27 21:44:08 -08:00
afcf3c65cd A fairly major refactor / simplification. 2023-01-16 20:11:43 -08:00
228f447a06 Switch fully to ArcIntern. 2023-01-12 09:14:28 -08:00
a797b43068 checkpoint 2022-12-23 19:48:50 -08:00
22aa29cb92 Start messing around with cranelift. 2022-11-25 21:30:23 -08:00
9d82c8ca2d Add variable resolution; the error behavior is pretty bad here. 2022-02-20 21:08:01 -08:00
0293eee2d0 Use codespan for *much* prettier error reporting. 2022-02-16 20:46:13 -08:00
2881c5104a Some basic parsing, with interned strings. 2020-08-02 17:58:51 -07:00
81f98cc2c9 Initial commit; a basic Logos lexer and some tests. 2020-08-01 20:45:33 -07:00