8b0a122dfc 
					 
					
						
						
							
							cl-interpret: Environment/stack overhaul + Ref patterns  
						
						
						
						
					 
					
						2025-07-18 05:29:10 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ae026420f1 
					 
					
						
						
							
							conlang: Fix rustdoc warnings  
						
						
						
						
					 
					
						2025-06-17 00:43:21 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						47608668fa 
					 
					
						
						
							
							cl-embed: Add an example, and a new sample-code (same file)  
						
						
						
						
					 
					
						2025-05-18 11:50:33 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f95c6ee239 
					 
					
						
						
							
							cl-interpret: Add convenience function for binding variables  
						
						
						
						
					 
					
						2025-05-18 11:48:04 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						964917d2f0 
					 
					
						
						
							
							cl-interpret: let now returns bool  
						
						... 
						
						
						
						This makes debugging monumentally harder, but it's SO NEAT and instantly adds `if let`/`while let` and `let chaining` 
						
						
					 
					
						2025-05-18 11:47:13 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						124bb2f680 
					 
					
						
						
							
							cl-interpret: Builtins! builtins(), chars(str), and panic(msg)  
						
						
						
						
					 
					
						2025-05-18 11:42:33 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ccfa4c7723 
					 
					
						
						
							
							cl-interpret: copy-capture closures  
						
						
						
						
					 
					
						2025-05-18 11:30:17 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d3e20e53d0 
					 
					
						
						
							
							cl-interpret: Unit tests for while-else control flow  
						
						
						
						
					 
					
						2025-05-18 04:01:50 -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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a4176c710e 
					 
					
						
						
							
							cl-ast: Add filename to File  
						
						... 
						
						
						
						- Better error reporting
- Better pizza
- Papa Cow's 
						
						
					 
					
						2025-03-14 04:11:22 -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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7d3f189100 
					 
					
						
						
							
							conlang: Introduce ..rest Patterns, refactor Ranges  
						
						
						
						
					 
					
						2025-02-23 02:41:41 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						cc6168b55e 
					 
					
						
						
							
							cl-ast: Remove Param, replace with flat Pattern  
						
						
						
						
					 
					
						2025-02-23 02:01:38 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						e3d94d8949 
					 
					
						
						
							
							conlang: Unify binding operations!  
						
						... 
						
						
						
						This breaks out the pattern matching/unification algorithm from cl-interpret/interpret.rs to cl-interpret/pattern.rs
TODO: pattern destructuring in const, static :^) 
						
						
					 
					
						2025-02-22 05:16:37 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7a8da33de9 
					 
					
						
						
							
							cl-interpret: Tuple structs + fix tuple member access  
						
						
						
						
					 
					
						2025-02-22 03:31:27 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						697d139cfd 
					 
					
						
						
							
							conlang: Add Tuple-Struct Patterns  
						
						... 
						
						
						
						- Patterns are no longer parsed with the highest precedence
- Function calls with just a path and a tuple of args can now be transformed into a Pattern 
						
						
					 
					
						2025-02-22 01:37:08 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						5d2c714bc1 
					 
					
						
						
							
							conlang: Patterns...2!  
						
						... 
						
						
						
						- Deny arbitrary paths in patterns (only one non-keyword identifier allowed!)
- Allow patterns in for-loop binders (literally useless atm, but it's a step toward making patterns the only way to bind names.)
Next: Functions, Tuple Struct Patterns... And solving the stupid syntactic ambiguity of structors. 
						
						
					 
					
						2025-02-22 01:00:29 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b115fea71b 
					 
					
						
						
							
							cl-interpret: fix import in builtin! doctest  
						
						
						
						
					 
					
						2025-02-21 22:49:14 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						088cd4d1e4 
					 
					
						
						
							
							cl-interpret: Change format of todo for Impl  
						
						
						
						
					 
					
						2025-02-20 22:05:23 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0fd9c002fc 
					 
					
						
						
							
							cl-interpret: Interpret items in a file in a particular order  
						
						... 
						
						
						
						1) mod
2) use
3) enum, struct, type
4) fn
5) impl
6) const | static
This is a stopgap until names are statically resolved 
						
						
					 
					
						2025-02-20 22:04:27 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						772286eefa 
					 
					
						
						
							
							conlang: Single-expression functions  
						
						
						
						
					 
					
						2025-02-20 21:59:42 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a6ad20911d 
					 
					
						
						
							
							builtins: Add temp builtin for dumping the global string pool  
						
						
						
						
					 
					
						2025-02-18 21:49:59 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						edabbe1655 
					 
					
						
						
							
							cl-interpret: process use items and imports in the interpreter  
						
						
						
						
					 
					
						2025-02-18 21:44:52 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						af9c293907 
					 
					
						
						
							
							cl-interpret, cl-repl:  
						
						... 
						
						
						
						Move IO builtins into the CLI, so get_line can use repline keybinds. 
						
						
					 
					
						2025-02-06 21:35:17 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0e3ba342c4 
					 
					
						
						
							
							cl-interpret: make the error type smaller (at the cost of a heap allocation)  
						
						
						
						
					 
					
						2025-01-31 03:35:35 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d95d35268e 
					 
					
						
						
							
							cl-interpret: Builtin refactor  
						
						... 
						
						
						
						- Everything is different now
  - Builtins are now built on top of Rust functions, so they can be recursive!
  - TODO: allow macro-defined builtins to call each other?
- The builtins! macro is a lot nicer to work with
  - No redundant return value
  - Maps the result over Into::into, allowing for type inference!
  - Uses explicit pattern syntax instead of weird binding, where possible
  - Does not #[allow(unused)], so you'll get unused variable warnings now! 
						
						
					 
					
						2025-01-31 03:34:45 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0c2b0002ce 
					 
					
						
						
							
							conlang: Docs!  
						
						
						
						
					 
					
						2025-01-29 05:07:08 -06:00