772286eefa 
					 
					
						
						
							
							conlang: Single-expression functions  
						
						 
						
						
						
						
					 
					
						2025-02-20 21:59:42 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6ee9bbd72e 
					 
					
						
						
							
							conlang: PATTERN MATCHING AND DESTRUCTURED BINDINGS WOOOOO  
						
						 
						
						... 
						
						
						
						- Integrate the Match and Pattern nodes into the AST
  - TODO: `let x: T` is ambiguous with `let x: {}`. Currently the latter takes precedence in the parser.
- Implement pattern matching through unification in the interpreter.
  - It's not fast, but it works!
- Refactor destructuring assignments to use the new pattern functionality 
						
						
					 
					
						2025-01-29 04:15:33 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3cda3d83d9 
					 
					
						
						
							
							typeck: Replace unsafe static mut with tree interning,  
						
						 
						
						... 
						
						
						
						I used tree interning here, because the interner already contains the necessary locks to make it Sync, and I was lazy. Be my guest if you want to do something else.
The computational overhead of interning the ASTs here is negligible, since this is all CLI code anyway. 
						
						
					 
					
						2025-01-16 21:16:46 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						883fd31d38 
					 
					
						
						
							
							conlang: Elide lifetimes (fixes clippy lint)  
						
						 
						
						
						
						
					 
					
						2025-01-16 20:57:33 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8675f91aca 
					 
					
						
						
							
							cl-ast: Remove tail from let (it caused more problems that it could've solved)  
						
						 
						
						
						
						
					 
					
						2024-07-31 03:19:20 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						97808fd855 
					 
					
						
						
							
							cl-parser: Transliterate to a trait-based parsing implementation  
						
						 
						
						... 
						
						
						
						Bump version number. 
						
						
					 
					
						2024-07-31 01:39:00 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b0341f06fd 
					 
					
						
						
							
							cl-ast: Move let into Expr  
						
						 
						
						
						
						
					 
					
						2024-07-30 18:02:09 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1b217b2e75 
					 
					
						
						
							
							typeck: Add a query for all strings  
						
						 
						
						
						
						
					 
					
						2024-07-29 15:55:53 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						28f9048087 
					 
					
						
						
							
							cl-typeck: Fix infer.rs doctests  
						
						 
						
						
						
						
					 
					
						2024-07-29 15:42:35 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						524c84be9e 
					 
					
						
						
							
							cl_typeck: Add new primitive types (including joking-point numbers)  
						
						 
						
						
						
						
					 
					
						2024-07-26 03:24:34 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						4096442f75 
					 
					
						
						
							
							cl-typeck: Turn ref into a linked list.  
						
						 
						
						... 
						
						
						
						This should be fine, since the only thing you can do with a ref is dereference it. 
						
						
					 
					
						2024-07-26 02:14:41 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						03a4e76292 
					 
					
						
						
							
							cl-typeck: rustfmt implement.rs  
						
						 
						
						
						
						
					 
					
						2024-07-26 00:15:00 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5ea8039a8a 
					 
					
						
						
							
							typeck.rs: Update for new stdlib layout; don't hardcode the root stdlib module.  
						
						 
						
						
						
						
					 
					
						2024-07-25 07:09:12 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						479efbad73 
					 
					
						
						
							
							typeck.rs: Add file-loading mode  
						
						 
						
						
						
						
					 
					
						2024-07-25 07:08:07 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						fe2b816f27 
					 
					
						
						
							
							cl-typeck: Crate-spanning refactor part 2  
						
						 
						
						... 
						
						
						
						- Removed all unreferenced files
- Reimplemented missing/nonfunctional behavior
- Added module documentation for most things
  - TODO: item-level docs on Entry(Mut)
- Reparented the stages of Table population into the `stage` module.
  - TODO: rewrite type inference to use only the tools provided by Table. 
						
						
					 
					
						2024-07-25 05:55:11 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e19127facc 
					 
					
						
						
							
							cl-typeck: Crate-spanning refactor  
						
						 
						
						... 
						
						
						
						TODO: remove all unreferenced files
TODO: Finish resolving statically known types of values
TODO: Type inference 
						
						
					 
					
						2024-07-24 18:22:42 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b7ad285a11 
					 
					
						
						
							
							cl-typeck: give Handle accessors for useful attributes  
						
						 
						
						
						
						
					 
					
						2024-07-24 14:29:27 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						70872d86f9 
					 
					
						
						
							
							cl-typeck: Improve path resolution semantics, and DON'T REPARENT IMPLs  
						
						 
						
						... 
						
						
						
						- Perform heirarchical resolution through "transparent" nodes
- Reparenting impls broke relative path traversal entirely. To impl something, it must already be in scope anyway.
- TODO: well-formedness checks? 
						
						
					 
					
						2024-07-21 06:01:54 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6bf34fdff6 
					 
					
						
						
							
							cl-typeck: Add path-resolution relative to an ID  
						
						 
						
						... 
						
						
						
						Great for interactive debugging 
						
						
					 
					
						2024-07-21 05:57:15 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9d7ab77999 
					 
					
						
						
							
							cl-typeck: Add Handle type  
						
						 
						
						... 
						
						
						
						- Holds a DefID and a reference to the Project
- Pretty-prints def signatures
- Use handles when printing types (WIP)
Known issues:
- Printing recursive types recurses forever
- There's some unrelated name resolution stuff going on that needs investigating.
TODO:
- Better name
- HandleMut?
- More interfaces!
- Migrate everything to use handles when oop semantics are easiest
- Reject plain recursive types, and don't recurse through reference types when printing 
						
						
					 
					
						2024-07-21 05:45:40 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						82b71e2517 
					 
					
						
						
							
							cl-typeck: Refactor display for Def.  
						
						 
						
						... 
						
						
						
						- Use the FmtAdapter from cl-ast
  - Add a new delimiter-constructing delimit_with function. 
						
						
					 
					
						2024-07-21 01:46:20 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						46bd44bd99 
					 
					
						
						
							
							cl-typeck: Re-name mod key to mod handle, in preparation for future handlization  
						
						 
						
						
						
						
					 
					
						2024-07-20 18:30:05 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3511575669 
					 
					
						
						
							
							conlang: Add array and slice type syntax  
						
						 
						
						
						
						
					 
					
						2024-07-20 18:22:50 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b3d62c09aa 
					 
					
						
						
							
							conlang: Self is not a type, it's a path to a type  
						
						 
						
						
						
						
					 
					
						2024-07-17 15:05:52 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						58c5a01312 
					 
					
						
						
							
							cl-structures: Clean up IndexMap and fix doctests  
						
						 
						
						
						
						
					 
					
						2024-07-10 14:56:17 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6b16c55d97 
					 
					
						
						
							
							cl-typeck: Fix doc list breakage  
						
						 
						
						
						
						
					 
					
						2024-06-22 02:00:47 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						fa8a71addc 
					 
					
						
						
							
							cl_structures: Rename deprecated_intern_pool to the more correct name "IndexMap"  
						
						 
						
						... 
						
						
						
						Also, reverse the order of generic args, to make them consistent with other map collections 
						
						
					 
					
						2024-05-19 14:51:14 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0cc0cb5cfb 
					 
					
						
						
							
							conlang: Remove "Identifier" node  
						
						 
						
						... 
						
						
						
						It never carried any extra information, and got in the way everywhere it was used. 
						
						
					 
					
						2024-05-19 14:41:31 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						be81221895 
					 
					
						
						
							
							cl-typeck: Move type inference utils into own module  
						
						 
						
						
						
						
					 
					
						2024-05-16 15:06:59 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c9266d971f 
					 
					
						
						
							
							cl-typeck: Insert impls into target type's namespace  
						
						 
						
						... 
						
						
						
						TODO: Process imports like this lazily 
						
						
					 
					
						2024-05-07 13:59:45 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a89f45aa58 
					 
					
						
						
							
							cl-typeck: Add isize/usize primitives  
						
						 
						
						
						
						
					 
					
						2024-05-04 23:07:57 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						edf175e53b 
					 
					
						
						
							
							cl-typeck: Add utilities for HM-style type inference via unification  
						
						 
						
						
						
						
					 
					
						2024-05-04 22:12:33 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6aea23c8ba 
					 
					
						
						
							
							cl-ast/desugar: Turn all paths into absolute paths  
						
						 
						
						
						
						
					 
					
						2024-04-29 16:25:30 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7c73fd335c 
					 
					
						
						
							
							cl-typeck: Store def metadata in a Node  
						
						 
						
						... 
						
						
						
						I'm not overly proud of this code, but it currently works. Will refactor later. 
						
						
					 
					
						2024-04-29 15:40:30 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3fe5916a4f 
					 
					
						
						
							
							cl-ast: Switch from old string interner to new string interner  
						
						 
						
						... 
						
						
						
						Update cl-parser, et. al. to match. 
						
						
					 
					
						2024-04-27 20:24:11 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ecf97801d6 
					 
					
						
						
							
							cl-typeck: Use helper functions on module to insert into the various namespaces  
						
						 
						
						
						
						
					 
					
						2024-04-27 16:10:22 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9566f098ac 
					 
					
						
						
							
							cl-typeck: Remove NameCollectable trait, use NameCollector instead :D  
						
						 
						
						
						
						
					 
					
						2024-04-27 16:05:40 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b9085551e1 
					 
					
						
						
							
							cl-typeck: Reimplement NameCollectable in terms of an AST visitor  
						
						 
						
						
						
						
					 
					
						2024-04-27 15:51:37 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						893b716c86 
					 
					
						
						
							
							cl-structures: Rename the deprecated "intern pool" (lmao)  
						
						 
						
						... 
						
						
						
						Don't deprecate it yet, though, we've got more stuff yet. 
						
						
					 
					
						2024-04-25 23:53:44 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e49b171bea 
					 
					
						
						
							
							Rename DefItem/DefSource/DefSorcerer to better reflect their meaning  
						
						 
						
						
						
						
					 
					
						2024-04-25 16:07:26 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						901e9d1d5b 
					 
					
						
						
							
							cl-typeck: Remove nightly-only debug_closure_helpers  
						
						 
						
						
						
						
					 
					
						2024-04-25 15:55:32 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						aa3f357fca 
					 
					
						
						
							
							conlang: Misc. doc fixes  
						
						 
						
						
						
						
					 
					
						2024-04-24 20:05:55 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						40ec9b30e4 
					 
					
						
						
							
							conlang: Use interned strings (Sym) for all symbols  
						
						 
						
						
						
						
					 
					
						2024-04-24 19:34:29 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8453b092f1 
					 
					
						
						
							
							cl-typeck: Fix list in doc comment getting mistaken for a doctest  
						
						 
						
						
						
						
					 
					
						2024-04-24 16:50:30 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						42307d2ab4 
					 
					
						
						
							
							cl-typeck: Sketch out a new way to store definition metadata  
						
						 
						
						
						
						
					 
					
						2024-04-22 23:17:50 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f483d690e2 
					 
					
						
						
							
							Revert "Cargo.toml: Add documentation key"  
						
						 
						
						... 
						
						
						
						This reverts commit 087969e117 . 
						
						
					 
					
						2024-04-22 00:07:44 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						087969e117 
					 
					
						
						
							
							Cargo.toml: Add documentation key  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:49:24 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						116d98437c 
					 
					
						
						
							
							cl-typeck: Promote some top-module notes to doc comments  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:42:45 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8121c1c8bb 
					 
					
						
						
							
							Move typeck.rs from cl-repl to cl-typeck  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:41:38 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bf16338166 
					 
					
						
						
							
							cl-typeck: Outline all modules.  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:05:06 -05:00