7cc625dd01
Configuration updates for vendoring
2024-03-08 11:04:23 -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
0d48bfb113
[fine] starting to work on methods
2024-01-22 06:04:13 -08:00
fde5579479
[fine] Some design notes
...
Just like... write some stuff down.
2024-01-21 09:23:45 -08:00
741a729f8d
[fine] Working on parser resilience
2024-01-21 09:23:20 -08:00
11cb7199e9
[fine] Fix a problem with a stuck parser
...
Whoops
2024-01-21 09:02:48 -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