Previously, `x = cos(x)` would just say "`x` is undefined". Now it says that `x` cannot be referenced in its own definition, try using a different variable instead. To do this, I've added a new `Option<String>` field to the mod-local executor context, tracking the current variable declaration. This means cloning some strings, implying a small performance hit. I think it's fine, for the better diagnostics. In the future we could refactor this to use a &str or store variable labels in stack-allocated strings like docs.rs/compact_str or something. Closes https://github.com/KittyCAD/modeling-app/issues/6072#issuecomment-2923227477
Rust Crates
Releasing
- Make sure your working directory is this directory.
- Bump the versions of the crates:
just bump-kcl-crate-versions - Commit the changes:
git add . git commit -m "Bump versions" - Push the changes and get your PR approved.
- Publish the crates:
just publish-kcl {version}- This will publish the relevant crates and push a new tag with the prefix
kcl-. DO NOT SET THE PREFIX TOkcl-when you run the command. Thejustcommand will do that for you. - The tag will then trigger the release of
kcl-python-bindingsandkcl-language-server.
- This will publish the relevant crates and push a new tag with the prefix