6cd2b2148d
Add documentation around Locations.
2023-05-07 18:09:10 -07:00
5d0e34eb72
More fully document the IR.
2023-05-07 17:39:42 -07:00
88c6600d05
A little more documentation on PrimOpError.
2023-04-27 21:09:29 -07:00
c3b394d2c9
Add some documentation, and clean up EvalError a bit.
2023-04-27 21:06:03 -07:00
3615d19485
Document some of the IR; not much to say, actually.
2023-04-26 17:15:25 -07:00
d0a0fdacfe
so many error cases.
2023-04-26 17:15:25 -07:00
7596472c65
Small IR docs, and then some learning about rustdoc.
2023-04-23 21:02:15 -07:00
e79788bcd1
Backend documentation work.
2023-04-23 20:37:25 -07:00
9b72fb7827
Add some top-level documentation.
2023-04-23 20:08:13 -07:00
9e3cce5076
Cleanups and comments in src/eval
2023-04-17 17:41:55 -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
84321cb2de
Add a bunch of documentation, and somewhat cleanup, the code in src/backend/.
2023-04-16 18:41:48 -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
f701598e5d
🤖 Make Github Actions work ( #1 )
2023-04-07 10:37:43 -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
289997af5a
Some cleanups.
2023-03-28 22:16:48 -05:00
c3e1c90261
Clippy and warning clean-ups.
2023-03-24 11:09:55 -05:00
662e954720
Upstream cranelift now works fine. Yay!
2023-03-24 11:07:11 -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
228f447a06
Switch fully to ArcIntern.
2023-01-12 09:14:28 -08:00
cd3247ac9f
It lives! Thanks to the cranelift team.
2023-01-12 09:02:42 -08:00
a64983257c
Fix to use the default calling convention ... doesn't help.
2023-01-02 21:46:08 -08:00
f03e0bcb77
simplifying an example module, to try to diagnose the mac build error.
2023-01-02 21:30:42 -08:00
4a83412374
forgot about enumerate
2023-01-02 21:30:15 -08:00
c89950693d
Fix spelling in Cargo.toml.
2023-01-02 20:12:23 -08:00
a607101ca2
Start moving towards interned strings.
2022-12-29 15:36:16 -08:00
aa09a838b0
Fix compilation
2022-12-29 14:59:12 -08:00
a426a4754a
Clean up warnings and formatting.
2022-12-29 14:51:07 -08:00
e6a488012c
Start on a string table.
2022-12-29 14:44:51 -08:00
bb1cbf9962
something worked
2022-12-29 14:30:52 -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
a217e2633f
Fix broken test case.
2022-11-25 18:07:17 -08:00
dcc6562050
Add a conversion from our high-level IR to a lower-level one.
2022-02-24 21:18:30 -08:00
9d82c8ca2d
Add variable resolution; the error behavior is pretty bad here.
2022-02-20 21:08:01 -08:00
f45488b9af
Add a pretty printer.
2022-02-18 10:37:15 -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