d3e20e53d0
cl-interpret: Unit tests for while-else control flow
2025-05-18 04:01:50 -04:00
e08bf57dc1
cl-typeck: Give inference its own result type
2025-05-18 04:01:13 -04:00
a5590168ee
cl-parser: Misc cleanup
2025-05-18 04:00:43 -04:00
3e2063835b
cl-parser: Dedicated parsing logic for patterns!
2025-05-18 04:00:00 -04:00
e6156343c3
cl-ast: Add inline closure expressions
2025-05-18 03:57:20 -04:00
6c6d2d04a7
cl-ast: Remove variantkind, as it was redundant
2025-05-17 21:28:12 -04:00
c5e817f1e5
cl-ast: Rearrange
2025-05-05 05:26:43 -04:00
09fdb14d79
cl-typeck: Progress population and categorization
2025-05-05 04:54:33 -04:00
4228324ab3
cl-typeck: With super
semantics redone, search within self for items
2025-05-05 04:20:40 -04:00
f5f905cd70
cl-ast: more generic impls for weight_of
...
TODO: get rid of weight_of
2025-05-05 04:19:23 -04:00
883387aaf1
yaml: formatting
2025-05-05 04:18:49 -04:00
2d706ff582
desugar: Add primitive constant folding
2025-05-05 04:18:16 -04:00
cd2e3c3e32
cl-parser: change match parse slightly
2025-05-05 04:16:37 -04:00
8c23aea4af
to_c: oops
2025-05-05 04:14:30 -04:00
d6c0a6cf1b
cl-ast: Allow c-like enums to take an expr
2025-05-05 02:22:50 -04:00
fc80be5fcc
conlang: Remove "self" keyword
2025-05-05 02:20:47 -04:00
7c2dd1468b
cl-ast: Finally figure out how visit
and walk
are supposed to work
2025-05-05 00:24:52 -04:00
8ff17fd475
cl-ast: Add syntax support for generics
2025-04-22 07:22:44 -04:00
681fbc88d3
cl-typeck: More type inference
...
- Renamed "intrinsic" -> "primitive"
- I thought it was funny, but it's just annoying.
- Rename "Uninferred" -> "Inferred"
- It's a concrete type, but an inferred one.
- Add lifetimes to the Entry API
- Categorize does not care about recursive types. You can't have a recursive AST.
- Added helpful constructors to the inference engine
- Added some overloadable operators to the inference engine
- These are a MAJOR work in progress
- Reorganized the Inference implementation file by functionality.
stdlib:
- Updated standard library.
2025-04-22 06:33:57 -04:00
7cf485fade
cl-typeck/infer: Fix some inference errors
...
yay yippee type checking and inference woohoo
i am very tired
2025-04-21 05:37:34 -04:00
3b96833fcb
cl-typeck: Early type inference for let
2025-04-21 04:52:59 -04:00
65b75f95ce
cl-repl: Oops, add dependencies.
2025-04-21 04:27:17 -04:00
4c4b49ce00
cl-typeck: Implement a framework for type inference
...
...And also implement a bunch of the inference rules, too.
2025-04-21 04:26:07 -04:00
7ba808594c
cl-ast: Cleanup
...
- Function bind is now one Pattern
- TyRef now allows &Ty (i.e. &[i32], &(char, bool)
- Range patterns (they cannot bind, only check whether a value is in range
- ArrayRep repeat has been reverted to usize, for now, until early consteval is implemented.
2025-04-21 04:17:45 -04:00
ef92d8b798
examples: Adapt examples/yaml to a broken C generator! woo!
2025-04-16 04:13:39 -04:00
8c8f1254e0
examples/yaml: Remove unnecessary uses of todo!()
2025-04-16 04:13:04 -04:00
82e62ab4ac
cl-parser: Dereference first(?)
2025-04-15 23:44:56 -04:00
b09a610c6c
interpreter: Include location in error type
2025-04-15 23:42:21 -04:00
fa5244dcf9
cl-interpret: References, part 3
...
MODS ARE ASLEEP
POST FAT BEAGLE
2025-03-14 08:33:46 -05:00
9b460afed4
cl-interpret/pattern: Fail on mismatch again
2025-03-14 07:00:10 -05:00
27d1d07ed8
conlang: Update to Rust Edition 2024
2025-03-14 06:09:39 -05:00
c988193049
cl-structures/stack: constify all (most of) the things!
2025-03-14 06:07:48 -05:00
2ecb2efc09
cl-structures: IndexMap::get_disjoint_mut to match Rust 1.86 🎉
2025-03-14 04:35:47 -05:00
a4176c710e
cl-ast: Add filename to File
...
- Better error reporting
- Better pizza
- Papa Cow's
2025-03-14 04:11:22 -05:00
cdb9ec49fe
cl-ast: Estimate the "weight" of an AST, for debugging?
2025-03-14 04:02:14 -05:00
6d33c4baa9
cl-ast: Break ast-impl into submodules
2025-03-14 03:58:40 -05:00
33e13425a9
cl-ast: Clean up "to", "extents", Module."kind"
2025-03-14 00:52:43 -05:00
11c8daaed0
cl-ast: Re-add(?) the Infer type-pattern
2025-03-12 01:20:58 -05:00
584207fc8c
cl-structures::Interned: Change to_ref() from assoc. function to member function
...
(it's so much nicer)
2025-03-12 01:16:51 -05:00
dcdb100a8a
cl-interpret: Try having separate globals again?
2025-03-11 23:33:49 -05:00
fdf076c272
cl-ast: Remove Option-like "*Kind"s
2025-03-11 23:32:58 -05:00
4bc088f277
cl-interpret: Pure value stack v1, references v2
...
References actually work! :D
They can also be stale :(
2025-03-11 05:01:49 -05:00
06bcb6b7c6
interpret: try out Ref == RcRefCell. Subject to change!
2025-03-11 01:31:02 -05:00
7e311cb0ef
conlang: RIP THE EXPRKIND BANDAGE OFF
...
cl-ast: No more bare ExprKind: every Expr has a Span
cl-interpret: Give errors a span
cl-repl: Print eval errors in load_file, instead of returning them. These changes are relevant.
2025-03-11 00:36:42 -05:00
c0ad544486
cl-interpret/convalue: Destructure with (Rust) pattern matching
2025-02-28 20:36:24 -06:00
fd54b513be
cl-interpret/pattern: Doc changes, minor format
2025-02-28 20:35:20 -06:00
adbabc66c5
cl-interpret: impls v1
2025-02-23 04:06:14 -06:00
4d9b13f7a1
cl-interpret: Enums, pt 1: C was right the whole time!!1
2025-02-23 03:22:48 -06:00
d9ac9e628d
cl-interpret: Stage items within a file in resolution order.
...
TODO: Does this even help???
2025-02-23 03:21:34 -06:00
632ddf0eab
cl-interpret: cleanup
2025-02-23 03:00:00 -06:00