b2733aa171 
					 
					
						
						
							
							cl-interpret/builtin: Add len builtin as a quick hack to write more interesting programs.  
						
						 
						
						... 
						
						
						
						This is temporary, I just want a way to get the length of a thing atm. 
						
						
					 
					
						2024-07-27 18:43:03 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a233bb18bc 
					 
					
						
						
							
							cl-lexer: Record the contents of comments  
						
						 
						
						
						
						
					 
					
						2024-07-27 18:41:50 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e06a27a5b1 
					 
					
						
						
							
							cl-lexer: Treat #!/ | #!\ as a comment  
						
						 
						
						
						
						
					 
					
						2024-07-27 18:41:18 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3f5c5480ae 
					 
					
						
						
							
							cl-interpret: [NOT FINAL] Add unicode-aware O(n) string indexing  
						
						 
						
						
						
						
					 
					
						2024-07-27 18:04:39 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						883c2677d9 
					 
					
						
						
							
							cl-parser: Index is NOT a low precedence operator!!!  
						
						 
						
						
						
						
					 
					
						2024-07-27 17:37:29 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						38a5d31b08 
					 
					
						
						
							
							cl-ast: Escape string and char literals when pretty-printing  
						
						 
						
						
						
						
					 
					
						2024-07-26 05:51:20 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e43847bbd4 
					 
					
						
						
							
							conlang: Introduce as casting  
						
						 
						
						... 
						
						
						
						Arbitrary primitive type conversion
Currently implemented as jankily as possible in the interpreter, but it works alright™️  
						
						
					 
					
						2024-07-26 05:26:08 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						695c812bf5 
					 
					
						
						
							
							cl-repl: increase jank: first positional arg is main file, remainder are imports  
						
						 
						
						
						
						
					 
					
						2024-07-26 05:13:06 -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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c9ddebb946 
					 
					
						
						
							
							cl-repl/menu: Revert extra newline in banner  
						
						 
						
						
						
						
					 
					
						2024-07-11 04:44:01 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						15c4b89bce 
					 
					
						
						
							
							cl-interpret: builtin.rs whitespace changes  
						
						 
						
						
						
						
					 
					
						2024-07-11 04:43:25 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						aa7612926e 
					 
					
						
						
							
							cl-interpret: Add format builtin  
						
						 
						
						... 
						
						
						
						Might as well add some new features to play around with until I rip 'em all out 
						
						
					 
					
						2024-07-11 04:42:36 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a646a9e521 
					 
					
						
						
							
							cl-interpret: VERY rudimentary support for Const and Static  
						
						 
						
						
						
						
					 
					
						2024-07-11 03:07:56 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5f57924f23 
					 
					
						
						
							
							cl-repl: Perform module inlining before submitting code to the interpreter  
						
						 
						
						
						
						
					 
					
						2024-07-11 02:50:15 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d692f6bb80 
					 
					
						
						
							
							cl-interpret: Complain, rather than panic, on outlined module  
						
						 
						
						
						
						
					 
					
						2024-07-11 02:48:35 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						58c5a01312 
					 
					
						
						
							
							cl-structures: Clean up IndexMap and fix doctests  
						
						 
						
						
						
						
					 
					
						2024-07-10 14:56:17 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3c4d31c473 
					 
					
						
						
							
							cl-repl: Run by default, break into menu  
						
						 
						
						
						
						
					 
					
						2024-07-09 06:15:15 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d723f7cece 
					 
					
						
						
							
							cl-interpret: String-building addition  
						
						 
						
						... 
						
						
						
						Note: This drastically increases the number of symbols. Yeowch. 
						
						
					 
					
						2024-07-09 06:14:44 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b446677eda 
					 
					
						
						
							
							cl-interpret: Enforce wrapping behavior  
						
						 
						
						
						
						
					 
					
						2024-07-09 06:13:55 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0beb121f32 
					 
					
						
						
							
							cl-interpret: Change print to print without newline, add new println builtin  
						
						 
						
						
						
						
					 
					
						2024-07-09 06:13:05 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6b16c55d97 
					 
					
						
						
							
							cl-typeck: Fix doc list breakage  
						
						 
						
						
						
						
					 
					
						2024-06-22 02:00:47 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c16dbca55c 
					 
					
						
						
							
							cl-structures: Remove #[feature(inline_const)], stabilized in Rust 1.79  
						
						 
						
						
						
						
					 
					
						2024-06-22 01:59:01 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						4c883d87a4 
					 
					
						
						
							
							cl-ast: Link to [Meta] in [Attrs]  
						
						 
						
						
						
						
					 
					
						2024-05-19 16:00:40 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1c3a56f5b5 
					 
					
						
						
							
							misc: Fix broken doc links, remove "pool" from index_map.rs  
						
						 
						
						
						
						
					 
					
						2024-05-19 15:32:57 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						406bfb8882 
					 
					
						
						
							
							cl-interpret: Stop kidding myself, I'll be replacing the interpreter before I get rid of this.  
						
						 
						
						
						
						
					 
					
						2024-05-19 15:16:22 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e0f54aea97 
					 
					
						
						
							
							cl-structures: Mention IndexMap and MapIndex in the top level doc comment  
						
						 
						
						
						
						
					 
					
						2024-05-19 15:12:54 -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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f330a7eaa5 
					 
					
						
						
							
							conlang: Split assignment into plain Assign and assign-with-Modify  
						
						 
						
						
						
						
					 
					
						2024-05-19 14:31:30 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8d8928b8a8 
					 
					
						
						
							
							conlang: Struct, tuple member accesses, member function call syntax  
						
						 
						
						... 
						
						
						
						Currently uses UFCS in the interpreter. This may change after type checking? 
						
						
					 
					
						2024-05-19 13:55:28 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						be81221895 
					 
					
						
						
							
							cl-typeck: Move type inference utils into own module  
						
						 
						
						
						
						
					 
					
						2024-05-16 15:06:59 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						33b7cd3971 
					 
					
						
						
							
							cl-structures: Do not #[derive(Eq)] for Interned<T>  
						
						 
						
						... 
						
						
						
						Derive places Eq bound on T, which is not true of Interned<T> 
						
						
					 
					
						2024-05-16 15:04:37 -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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d2eb165759 
					 
					
						
						
							
							cl-arena: Add iterator allocation to TypedArena  
						
						 
						
						... 
						
						
						
						This is copied almost verbatim from rustc-arena e82c861d7e/compiler/rustc_arena/src/lib.rs (L203) 
TODO: Add unit tests, run unit tests in Miri 
						
						
					 
					
						2024-05-04 22:17:34 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						edf175e53b 
					 
					
						
						
							
							cl-typeck: Add utilities for HM-style type inference via unification  
						
						 
						
						
						
						
					 
					
						2024-05-04 22:12:33 -05:00