Commit Graph

18 Commits

Author SHA1 Message Date
7596472c65 Small IR docs, and then some learning about rustdoc. 2023-04-23 21:02:15 -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
7a1d22da2d Proptest testing! 2023-04-07 10:04:57 -07:00
1d7ca05d73 Move pretty-printing to its own module. 2023-03-28 22:30:04 -05:00
c3e1c90261 Clippy and warning clean-ups. 2023-03-24 11:09:55 -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
3333dffa1e Add a validation step back. 2023-01-27 21:41:06 -08:00
afcf3c65cd A fairly major refactor / simplification. 2023-01-16 20:11:43 -08:00
2e82fcf343 Clean up location handling, which wsa kind of a pain. 2023-01-12 18:06:06 -08:00
a217e2633f Fix broken test case. 2022-11-25 18:07:17 -08:00
9d82c8ca2d Add variable resolution; the error behavior is pretty bad here. 2022-02-20 21:08:01 -08:00
6c5ca6b782 Add parser (and etc.) support for print statements. 2022-02-16 20:52:23 -08:00
0293eee2d0 Use codespan for *much* prettier error reporting. 2022-02-16 20:46:13 -08:00
60e7d9a41d Pick this up again, dust it off, get some stuff connected. 2022-02-13 21:30:06 -08:00
91d5d1b4fd Some basic parsing works (fixing order of operations), and one test case. 2020-08-13 10:15:32 -07: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