* benchmark retry Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix times Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix times Signed-off-by: Jess Frazelle <github@jessfraz.com> * dont use a custom iter Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * just parse Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * use runs on Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
kcl-lib
Our language for defining geometry and working with our Geometry Engine efficiently. Short for KittyCAD Language, named after our Design API.
Contributing a standard library function
We've built a lot of tooling to make contributing to KCL easier. If you are interested in contributing a new standard library function to KCL, here is the rough process:
- Open just the folder in your editor of choice. VS Code, for example, struggles to run rust-analyzer on the entire modeling-app directory because it's such a turducken of TS and Rust code.
 - Find the definition for similar standard library functions in 
./kcl/src/stdand place your new one near it or in the same category file. - Add your new code. A new standard library function consists of:
 - A 
pub asyncof the actual standard library function in Rust - A doc comment block containing at least one example using your new standard library function (the Rust compiler will error if you don't provide an example our teammates are dope)
 - A 
stdlibmacro providing the name that will need to be written by KCL users to use the function (this is usually a camelCase version of your Rust implementation, which is named with snake_case) - An inner function that is published only to the crate
 - Add your new standard library function to the long list of CORE_FNS in mod.rs
 - Get a production Zoo dev token and run 
export KITTYCAD_API_TOKEN=your-token-herein a terminal - Run 
TWENTY_TWENTY=overwrite cargo nextest run --workspace --no-fail-fastto take snapshot tests of your example code running in the engine - Run 
just redo-kcl-stdlib-docsto generate new Markdown documentation for your function that will be used to generate docs on our website. - Create a PR in GitHub.
 
Bumping the version
If you bump the version of kcl-lib and push it to crates, be sure to update the repos we own that use it as well. These are: