* Start Grackle (KCL-to-EP compiler) This begins work on a second, different executor. The old executor is a tree-walk interpreter, this executor compiles the KCL programs into the Execution Plan virtual machine defined in its [own crate](https://github.com/KittyCAD/modeling-api/tree/main/execution-plan). This executor is called "Grackle", after an Austin bird, and it's got its own module in wasm-lib so that I can keep merging small PRs and developing incrementally, rather than building a complete executor which replaces the old executor in one PR. Grackle's "Planner" walks the AST, like the tree-walk executor. But it doesn't actually execute code. Instead, as it walks each AST node, it outputs a sequence of Execution Plan instructions which, when run, can compute that node's value. It also notes which Execution Plan virtual machine address will eventually contain each KCL variable. Done: - Storing KCL variables - Computing primitives, literals, binary expressions - Calling native (i.e. Rust) functions from KCL - Storing arrays Todo: - KCL functions (i.e. user-defined functions) - Member expressions - Port over existing executor's native funtions (e.g. `lineTo`, `extrude` and `startSketchAt`)
		
			
				
	
	
		
			4 lines
		
	
	
		
			96 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			4 lines
		
	
	
		
			96 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
[codespell]
 | 
						|
ignore-words-list: crate,everytime
 | 
						|
skip: **/target,node_modules,build,**/Cargo.lock
 |