c4b4273115
[fine] Compiler flows error descriptions on tree errors
...
Like, even when the tree is malformed lets try to talk about what we
found. This is still not right, but it's better maybe.
2024-03-24 07:45:34 -07:00
9ce5794c30
[fine] Panic embeds description, start match
2024-03-24 07:08:45 -07:00
548d9387d6
Don't let git get weird
2024-03-24 07:08:08 -07:00
7cc625dd01
Configuration updates for vendoring
2024-03-08 11:04:23 -08:00
977e3c17e5
Vendor things
2024-03-08 11:03:01 -08:00
5deceec006
chore: reorganize as a workspace
2024-03-08 10:16:54 -08:00
60e8f64c01
[fine] Imports maybe
...
Feels a little sketchy
2024-03-07 20:07:41 -08:00
1199646e29
[fine] File name in error messages
...
Going to need to normalize that name though, because right now it
really *really* sucks to have a big \\?\ kinda name. Probably
normalize it relative to the base directory.
2024-02-15 06:36:14 -08:00
a21f18da6e
[fine] export, dump source map, lookup fix
2024-02-15 06:29:56 -08:00
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
2093502031
[fine] Tests to drive import work
2024-02-11 18:45:01 -08:00
aac5c6257f
[fine] Generic garbage
2024-02-11 18:44:41 -08:00
692af9f93d
[fine] Bring back some test coverage
2024-02-11 09:39:49 -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
d5059dd450
[fine] List iteration... works?
...
A little hacky but it works!
2024-02-08 22:25:00 -08:00
13aaca36c8
[fine] Fix list variable binding
2024-02-08 06:34:02 -08:00
09a85596d8
[fine] Just some more tests
2024-02-07 10:09:36 -08:00
b43947b6f1
[fine] Conditionals produce alternates (yikes!)
2024-02-07 07:58:36 -08:00
8b9a69b898
[fine] Increasingly elaborate alternate types
2024-02-07 07:47:20 -08:00
5f67aa72d5
[fine] Remember to use this function
2024-02-07 06:11:25 -08:00
723b231b0d
[fine] Constant eval, use for loop type analysis
2024-02-07 02:57:53 -08:00
239e859eaf
[fine] Support assignment to member, loops with iterators
...
Hmm it's starting to look like something.
2024-02-07 01:57:41 -08:00
3415b1a3f6
[fine] Here are some tests
2024-02-05 06:13:32 -08:00
ac3c158a81
[fine] While loops, nothing
2024-02-05 06:11:37 -08:00
1cc5ce6ca9
[fine] Clean up warnings
2024-02-04 20:22:31 -08:00
a8ab907eee
[fine] A lot more typing/environmenting, doing better on example
...
Time to start actual tests
2024-02-04 20:19:08 -08:00
28ec6b5e85
[fine] Improve wildcard parsing, fix ephemera bug with peek_next
2024-02-04 20:04:55 -08:00
65ec2d4cca
[fine] Implement the wildcard pattern
2024-02-04 19:36:47 -08:00
e0721d09fc
[fine] Notes on patterns
2024-02-04 19:13:56 -08:00
deed9d9a45
[fine] Starting on pattern matching, make patterns explicit
2024-02-04 07:47:16 -08:00
f00b9e22e7
[fine] Bindings in if remain in scope!
2024-02-03 09:54:46 -08:00
198dc5bdb3
[fine] Evaluate is expressions, SO MANY BUG FIXES
2024-02-03 09:38:28 -08:00
b5b56b49a9
[fine] fix some bugs, semantics for is
2024-02-03 07:59:49 -08:00
ba5b37f5ff
[fine] Parse is expression, partially
2024-02-02 06:32:03 -08:00
afa4812074
[fine] Parse alternate types
2024-02-01 07:56:30 -08:00
f7acfd588d
[fine] Even more resilience, I can stop now
...
Also fix a bug, could not return from a method OOPS
2024-02-01 06:35:43 -08:00
7f30d0ccc3
[fine] More resilience
...
We don't lose function declarations and whatnot, although we get lost
with broken return types.
2024-01-31 07:46:20 -08:00
93c9dcd13b
[fine] Suggestion for improvement in match
...
No special keyword. Exhaustivity is harder.
2024-01-30 06:39:10 -08:00
f2e82942df
[fine] Some resilience, a design improvement for iterator
2024-01-29 10:04:47 -08:00
15548afc38
[fine] Split environment and type fully
...
Environment and type are now fully split, so that neither directly
depends on each other, to remove another class of circular dependency.
2024-01-29 06:42:51 -08:00
019d780f85
[fine] Design for "intersection" types
2024-01-28 22:15:13 -08:00
f634e4da18
[fine] Don't panic on this parse error
2024-01-28 22:15:01 -08:00
607847abc3
[fine] ICE sorts errors on reporting
2024-01-28 22:12:30 -08:00
36ed61b8bb
[fine] Name the type comparison method properly
2024-01-25 22:09:59 -08:00
e66ffbb5ae
[fine] Design notes, more garbage
2024-01-25 22:09:44 -08:00
19e57db724
[fine] Static methods I guess
2024-01-25 06:44:53 -08:00
bc57978dda
[fine] No methods assigned to variables!
2024-01-24 09:11:55 -08:00
0c69758b11
[fine] Methods!
2024-01-24 09:03:45 -08:00
2839b43f6d
[fine] Improvements to classes
...
- Classes are defined lazily
- Member access is via environment
- Member access is just a binary expression with a weird environment
- Slot loads look like variable loads now
- Associativity in the parser (ugh)
2024-01-22 23:17:02 -08:00