* cargo update, etc
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Refactor execution/mod.rs (code motion)
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Refactor caching out of ExecutorContext plus some tidying up
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Move caching logic to inside execution
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Make all geometry KclValue variants into struct variants
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Add units to geometry types
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Use std deprecation for int rather than a hack in the parser
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Don't allow an epsilon when converting floats to ints for property access
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Fixup tests
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
Part of #4600
KCL functions can declare one special argument that doesn't require a label on its parameter when called.
This PR will default that arg to % (the current pipeline) if not given.
* redoing bool logic impl on latest main
* adding snapshot tests (removing .new)
* removing accidental change smh:(
* accepting client side scene snapshot
* accepting png snapshot and triggering ci
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* accepting png again?
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* accepting grid visibility snapshot
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* accepting png snapshot
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores)
* accepting png snapshot
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores)
* accepting png snapshot
* rerunning simtest creation to get ops.snap files
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Add operations tracking for the timeline
* Change to only track certain stdlib functions as operations
* Update gen files
* Add operations to simulation snapshot tests
* Add tracking of positional function calls
* Fix generated field names to be camel case in TS
* Fix generated TS field names to match and better docs
* Fix order of ops with patternTransform
* Fix sweep to be included
* Add new expected test outputs
* Add tracking for startSketchOn
* Update ops output to include startSketchOn
* Fix serde field name
* Fix output field name
* Add tracking of operations that fail
* Add snapshots of operations even when there's a KCL execution error
* Add ops output for error executions
* Add operations output to executor error
* Update op source ranges
* Remove tracking of circle() and polygon() since they're not needed
* Update output without circle and polygon
* Fix to track patternCircular3d and patternLinear3d
* Remove tracking for mirror2d
* Update ops output
* Fix to track the correct source range of function definitions
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Part of https://github.com/KittyCAD/modeling-app/issues/4600
You can now call a user-defined function via keyword args. E.g.
```
fn increment(@x) {
return x + 1
}
fn add(@x, delta) {
return x + delta
}
two = increment(1)
three = add(1, delta: 2)
```
* Add test with tag parameter
* Fix to not define TagIdentifiers pointing to nothing
* Add fixed test output
* Rename function to be clearer
* Remove optional param so that unparse works
* Fix to not allow redefining tags
* Fix to only ever define tags in memory when used with stdlib functions
* Fix to not define local variables when non-literal tag declarator is used
* Add removing mutability
* Change function signature since it isn't falliable
* Parse more import syntax
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Remove unnecessary Vec from VariableDeclaration
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Parse export import
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Factor out an execution module
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* imports: constants, globs, export import
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* test fixups
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>