Commit graph

27 commits

Author SHA1 Message Date
a3ae4339cf [fine] Many more import-related shuffles 2024-02-15 06:12:18 -08:00
994268abb6 [fine] Oh no a runtime and module loading and stuff
Lots of test work to use the new mechanism. I'm not sure I like it.
2024-02-12 22:49:34 -08:00
2dbdbb3957 [fine] Lifetime garbage, big refactor
So it turns out that I can't hold `&str` in token because it makes it
impossible to encapsulate a source file in the larger context- self
referential structure problems again. Everything gets rebuilt so that
the source can be passed through. While we're at it, more things
become Rc<> because, man..... life it too short.

Semantics in particular has become a giant hub of the module state: we
can basically just hold an Rc<Semantics> and have everything we could
possibly want to know about a source file, computed lazily if
necessary.
2024-02-11 09:31:51 -08:00
19e57db724 [fine] Static methods I guess 2024-01-25 06:44:53 -08:00
0c69758b11 [fine] Methods! 2024-01-24 09:03:45 -08:00
5f0a0b3268 [fine] Many test improvements, error improvements
- Check for more error conditions
- Move to more definitive error assertions
- Simpler error messages in some cases
- Test more conditions more thoroughly, revisit old tests
2024-01-21 08:14:42 -08:00
f20f5a5e03 [fine] Assignments!
And new error capabilities!
2024-01-19 19:08:17 -08:00
44bc072b04 [fine] Test for function return type mismatch 2024-01-15 07:52:49 -08:00
1eb7da77fc [fine] The VM lives! We can test it a little! 2024-01-14 16:06:14 -08:00
866830b485 [fine] A wild VM appears!
Untested though
2024-01-14 09:28:05 -08:00
65fef78c44 [fine] OK 2024-01-13 15:07:38 -08:00
d8988cb2cf [fine] test compilation, start removing print 2024-01-11 06:33:08 -08:00
d14c9a72df [fine] Fully untested compiler 2024-01-08 22:30:34 -08:00
2f71946d21 [fine] Environment cycles are internal compiler errors
Re-work the failure to add official ICE support, and extract the
reporting from the tests into the semantics, so everybody benefits.
2024-01-07 08:54:55 -08:00
308114f8cf [fine] Fixup let environment
Also handle circular references in types and environments without
exploding, and tweak test output a little bit.
2024-01-07 08:05:55 -08:00
f9c7591154 [fine] Let binding 2024-01-06 17:21:58 -08:00
56e4be9a5b [fine] Empty blocks generate nothing 2024-01-06 11:00:31 -08:00
758aef4db9 [fine] Get rid of "value required", it's not useful 2024-01-06 07:27:44 -08:00
a9c1b04920 [fine] Tests for type errors
WHEEEEEEE!
2024-01-05 19:29:45 -08:00
618e0028d3 [fine] Type testing with probes and reporting
I'm proud of the test harness here actually. Also fix a bug in
checking!
2024-01-05 17:10:15 -08:00
c0f40aa512 [fine] Type checking bones 2024-01-05 14:59:48 -08:00
5cc9ecc398 [fine] New parser usurps old parser 2024-01-05 11:22:45 -08:00
120bd43652 [fine] ConcreteTree -> SyntaxTree 2024-01-05 11:18:01 -08:00
7abb8eafc2 [fine] Parent pointers in trees 2024-01-05 11:10:38 -08:00
ec5e59aed3 [fine] Clean up comments a bit 2024-01-04 19:44:03 -08:00
26871aa9ae [fine] Automatic rebase support for CST 2024-01-04 19:42:51 -08:00
1f6d7ec131 [fine] Dump CSTs and an example zoo 2024-01-04 13:25:17 -08:00