81cf05cc69 
					 
					
						
						
							
							cl-structures: Interning v3: ACTUALLY DO THE THING  
						
						 
						
						... 
						
						
						
						Here we have *real* interning, producing unique references if and only if the input is unique! Boy am I glad I invested time into this, because it's really fun to work with.
Hopefully my logic regarding Send-ness and Sync-ness aren't completely unsound. 
						
						
					 
					
						2024-04-27 20:16:36 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						83423f37be 
					 
					
						
						
							
							cl-arena: Make arena constructors const fn  
						
						 
						
						
						
						
					 
					
						2024-04-27 16:52:20 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ecf97801d6 
					 
					
						
						
							
							cl-typeck: Use helper functions on module to insert into the various namespaces  
						
						 
						
						
						
						
					 
					
						2024-04-27 16:10:22 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						71745161c4 
					 
					
						
						
							
							sample-code: Add example "module-hell.cl" demonstrating inter-module imports and path resolution  
						
						 
						
						
						
						
					 
					
						2024-04-27 16:08:26 -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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a877c0d726 
					 
					
						
						
							
							cl-arena: Add arena allocator implementation based HEAVILY on rustc-arena  
						
						 
						
						... 
						
						
						
						It seems to pass the most basic of tests in miri (shame it needs the unstable `strict_provenance` feature to do so, but eh.) 
						
						
					 
					
						2024-04-26 00:02:50 -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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d4432cda7a 
					 
					
						
						
							
							cl-structures: Give the StringArena a new home.  
						
						 
						
						
						
						
					 
					
						2024-04-24 19:52:56 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						40ec9b30e4 
					 
					
						
						
							
							conlang: Use interned strings (Sym) for all symbols  
						
						 
						
						
						
						
					 
					
						2024-04-24 19:34:29 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ede00c3c86 
					 
					
						
						
							
							cl-structures: Cleanup for GlobalSym  
						
						 
						
						
						
						
					 
					
						2024-04-24 18:11:21 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						be604b7b45 
					 
					
						
						
							
							cl-structures: Use hashbrown's hash table implementation for deduplication.  
						
						 
						
						
						
						
					 
					
						2024-04-24 17:43:02 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e70ffd1895 
					 
					
						
						
							
							cl-structures: Global (ew!) and local string interning!  
						
						 
						
						... 
						
						
						
						- StringArena provides an arena for immutable strings, inspired by other string interners, and keeps track of the ends of every allocated string. Strings inserted into the arena are assigned a Symbol.
- intern::Interner keeps track of the hashes of each inserted string, and provides deduplication for interned strings. This allows referential comparison between interned strings
- global_intern::GlobalSym provides metered access to a Global Interner, and has a Display implementation which queries the Interner.
The global interner is planned for use in cl-ast.
TODO: the unstable raw_entry API is about to be removed from Rust. Maybe switch to hashbrown, or write my own hash table? 
						
						
					 
					
						2024-04-24 17:11:41 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f24bd10c53 
					 
					
						
						
							
							cl-structures: intern_pool isn't unsafe  
						
						 
						
						... 
						
						
						
						Nor is it an intern pool, it's more of an unstable typed arena. Ah well. 
						
						
					 
					
						2024-04-24 17:00:58 -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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						45d75bb552 
					 
					
						
						
							
							cl-structures: Make Span and Loc functions const (now you can make a const Span!)  
						
						 
						
						
						
						
					 
					
						2024-04-22 21:44:12 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b74c4cd5bf 
					 
					
						
						
							
							cl-parser: Forego RAII scopeguard finalization pattern in impl Fold for ModuleInliner  
						
						 
						
						... 
						
						
						
						We have an outer function *right there* to do cleanup for us. 
						
						
					 
					
						2024-04-22 21:43:30 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0c518b47e6 
					 
					
						
						
							
							cl-ast: Give Path some inherent methods  
						
						 
						
						
						
						
					 
					
						2024-04-22 21:04:30 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						169f61144b 
					 
					
						
						
							
							cl-ast: Fix typo in ast_impl::convert impl From<AsRef<str>> for PathPart  
						
						 
						
						
						
						
					 
					
						2024-04-22 20:52:12 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a3a87e0b67 
					 
					
						
						
							
							test.cl: Fix moved i32 to module ::num  
						
						 
						
						
						
						
					 
					
						2024-04-22 15:47:37 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ed9b73a1a3 
					 
					
						
						
							
							repline: Remove default-features from crossterm, since we don't use the event API  
						
						 
						
						
						
						
					 
					
						2024-04-22 02:18:57 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9b11543396 
					 
					
						
						
							
							Update readme.md  
						
						 
						
						
						
						
					 
					
						2024-04-22 02:06:46 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2ed8481489 
					 
					
						
						
							
							cl-repl: Switch from argh to argwerk  
						
						 
						
						
						
						
					 
					
						2024-04-22 02:03:04 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a3bb1ef447 
					 
					
						
						
							
							stdlib: fix errant let in test.cl  
						
						 
						
						
						
						
					 
					
						2024-04-22 02:02:25 -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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2a5e965edf 
					 
					
						
						
							
							sample-code: Add hello.cl  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:07:16 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bf16338166 
					 
					
						
						
							
							cl-typeck: Outline all modules.  
						
						 
						
						
						
						
					 
					
						2024-04-21 23:05:06 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9449e5ba06 
					 
					
						
						
							
							cl-typeck: Sketch out a new path resolver algorithm, and reparent some unused cruft  
						
						 
						
						
						
						
					 
					
						2024-04-21 22:48:52 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b796411742 
					 
					
						
						
							
							cl-typeck: Module imports v0.1  
						
						 
						
						... 
						
						
						
						- NameCollects use items
- Preprocesses them
- Uses no fancy algorithms
- Doesn't respect item visibility at all
- *declaration-order-dependent* :(
- works, though! :)
- TODO: Lazy evaluation of literally any of this stuff. 
						
						
					 
					
						2024-04-21 22:43:25 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ef190f2d66 
					 
					
						
						
							
							cl-structures: Add get_many_mut implementation for Pool (currently delegates to unstable std)  
						
						 
						
						
						
						
					 
					
						2024-04-21 22:32:47 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9c3c2e8674 
					 
					
						
						
							
							cl-parser: Implement a module inlining pass  
						
						 
						
						
						
						
					 
					
						2024-04-21 22:31:01 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						02323ae6f2 
					 
					
						
						
							
							cl-parser: Sync error::Parsing with cl-ast  
						
						 
						
						
						
						
					 
					
						2024-04-21 21:20:55 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e36a684422 
					 
					
						
						
							
							grammar: Make UseTree less ultra-janky  
						
						 
						
						
						
						
					 
					
						2024-04-21 18:57:46 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5341631781 
					 
					
						
						
							
							conlang: Add constructor expression for structs!  
						
						 
						
						... 
						
						
						
						grammar:
- Add new rules `PathLike`, `Structor`, `Fielder`
- Replace Path with PathLike in Primary expressions
cl-ast:
- Add nodes for Structor and Fielder
cl-parser:
- Add branch to path-expression parsing
- Parse Structor bodies
interpret:
- Add TODO 
						
						
					 
					
						2024-04-20 15:02:16 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						efd442bbfa 
					 
					
						
						
							
							conlang: Import items into scope with use!  
						
						 
						
						... 
						
						
						
						grammar:
- Improve specification of `Path`
- Add `Use` and `UseTree` rules
- Add `Use` as a variant of ItemKind
cl-token:
- Add new keywords `use` and `as`
cl-ast:
- Add nodes for Use and UseTree
- Add new ItemKind for Use
- Implement traversal in Visit and Fold
cl-interpret:
- Mark ItemKind::Use with a todo
cl-parser:
- Update to match grammar
cl-typeck:
- Update to match changes in AST
- Mark UseTrees as NameCollectable and TypeResolvable, but leave as todos 
						
						
					 
					
						2024-04-20 14:51:54 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9dc0cc7841 
					 
					
						
						
							
							cl-interpret: Give the interpreter a little love  
						
						 
						
						... 
						
						
						
						And stop copying strings around. 
						
						
					 
					
						2024-04-19 10:49:25 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						90a3818ca0 
					 
					
						
						
							
							conlang: Move all cl-libs into the compiler directory  
						
						 
						
						
						
						
					 
					
						2024-04-19 07:39:23 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2a62a1c714 
					 
					
						
						
							
							repline: Promote to its own crate!  
						
						 
						
						... 
						
						
						
						cl-repl: Major refactor based on the design of typeck.rs 
						
						
					 
					
						2024-04-19 07:30:17 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						01ffdb67a6 
					 
					
						
						
							
							cl-ast: Add Fold and Visit traits, to more easily map or collect nodes in the AST  
						
						 
						
						... 
						
						
						
						typeck.rs: Since this is apparently my testbed now, add a new mode.
TODO: replace the main `conlang` binary with this, since it's so much better. 
						
						
					 
					
						2024-04-19 03:21:07 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						de024b6cb7 
					 
					
						
						
							
							cl-repl: Remove references to the old Resolver  
						
						 
						
						
						
						
					 
					
						2024-04-19 03:01:24 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2834e4a8ea 
					 
					
						
						
							
							cl-ast: Fix typo in format.rs  
						
						 
						
						
						
						
					 
					
						2024-04-19 02:47:55 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						4ff101f0ee 
					 
					
						
						
							
							yaml.rs: Fix extraneous pair in While  
						
						 
						
						
						
						
					 
					
						2024-04-18 23:58:44 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1fa027a0c2 
					 
					
						
						
							
							cl-ast: Move AST into its own module  
						
						 
						
						
						
						
					 
					
						2024-04-18 21:31:46 -05:00