Avoid using revolve for now
When we moved to concurrent execution of KCL modules, we begun to see an
error we never fully understood, and because it was pretty hard to
trigger, we wound up never being able to fix it. Today we were able to
track it down to the `revolve` call here.
Specifically, the problem is triggered when we're doing a "Full Revolve"
(e.g., `angle = 359.999999` passes, but *not* `angle = 360` or the
default, as it is in `main`), and concurrently executing modules will
see something weird happen with `getNextAdjacentEdge`.
From all the smoke I believe this happens only when we are doing a *full
revolve*, *AND* we're executing other modules which are calling
`getNextAdjacentEdge`.
When the `revolve` is present, we can lose the race in *either*
`talk-button.kcl` OR `case.kcl`.
If I move back to single-threaded execution OR I add imports to sequence
things carefully, I can get the tests to pass. If the revolve is an
`extrude` or not a full revolve, it works fine.
My best guess is that it seems like the world got flipped upside down or
something, such that "next edge" has a different orentation for two
calls. My even further guess is that inside `revolve` we mutate
something connection-global such that it alters the intepretation of
calls made during the revolve implementation's "critical section".
* Give example info for failing std example tests
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Shard example tests into 10
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Change Fn to fn for function types
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Support args and return types in function types
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Use fancy function types in the docs
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
**Problem:**
KCL's xLine and yLine functions were telling users to supply either "end" or "endAbsolute" arguments. But "end" is not a valid argument for xLine/yLine, it's actually "length" instead.
**Cause:**
xLine/yLine were using a helper function designed for `line` KCL stdlib functions, which do use `end`.
**Solution**
Add a new param to the helper function, indicating what the label should be for relative lines. "end" for `line` calls, `length` for x/yline
* Move the leg functions to KCL
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Move array functions to KCL
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Move clone to KCL
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Add a function type
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Treat number as any rather than default
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Don't square root negative numbers
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Add sim test for any type
* Fix doc comments to match code
* Add array ascription tests
* Commit new test output
* Fix to not panic when type is undefined
* Fix to not panic on use of the any type
* Update test and generated output
* Fix error message after rebase
* Fix subtype of any
* Fix KCL to use new keyword args
* Fix to not nest MixedArray in HomArray
* Update output
* Remove all creation of MixedArray and use HomArray instead
* Rename MixedArray to Tuple
* Fix to coerce arrays the way tuples are done
* Restructure to appease the type signature extraction
* Fix TS unit test
* Update output after switch to HomArray
* Update docs
* Fix to remove edge case when creating points
* Update docs with broken point signature
* Fix display of tuples to not collide with arrays
* Change push to an array with type mismatch to be an error
* Add sim test for push type error
* Fix acription to more general array element type
* Fix to coerce point types
* Change array push to not error when item type differs
* Fix coercion tests
* Change to only flatten as a last resort and remove flattening tuples
* Contort code to appease doc generation
* Update docs
* Fix coerce axes
* Fix flattening test to test arrays instead of tuples
* Remove special subtype case for singleton coercion
* Document the units of PI
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Add links between lang and std references
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Change signature of conversion functions
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Split foreign imports out of modules docs
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* More docs for Plane
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Update docs/kcl-std/consts/std-math-PI.md
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Update rust/kcl-lib/std/math.kcl
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Add documentation to modules, and some constants and types
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Improve the language reference
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Remove unused `telemetryLoader`
* Remove onboarding redirect behavior
* Allow subRoute to be passed to navigateToProject
* Replace warning dialog routes with toasts
* Wire up new utilities and toasts to UI components
* Add home sidebar buttons for tutorial flow
* Rename menu item
* Add flex-1 so home-layout fills available space
* Remove onboarding avatar tests, they are becoming irrelevant
* Consolidate onboarding tests to one longer one
and update it to not use pixel color checks, and use fixtures.
* Shorten warning toast button text
* tsc, lint, and circular deps
* Update circular dep file
* Fix mistakes made in circular update tweaking
* One more dumb created circular dep
* Update src/routes/Onboarding/utils.tsx
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* Fix narrow screen home layout breaking
* fix: kevin, navigation routes fixed
* fix: filename parsing is correct now for onboarding with the last file sep
* Fix e2e test state checks that are diff on Linux
* Create onboarding project entirely through systemIOMachine
* Fix Windows path construction
* Make utility to verify a string is an onboarding value
* Little biome formatting suggestion fix
* Units onboarding step was not using OnboardingButtons
* Add type checking of next and previous status, fix useNextClick
* Update `OnboardingStatus` type on WASM side
* Make onboarding different on browser and web, placeholder component
* Show proof of concept with custom content per route
* Make text type args not insta dismiss when you click anywhere
* Make some utility hooks for the onboarding
* Update requestedProjectName along with requestedProjectName
* Build out a rough draft of desktop onboarding
* Remove unused onboarding route files
* Build out rough draft of browser onboarding content
* @jgomez720 browser flow feedback
* @jgomez420 desktop feedback
* tsc and lints
* Tweaks
* Import is dead, long live Add files
* What's up with my inability to type "highlight"?
* Codespell and String casting
* Update browser sample to be axial fan
* lint and tsc
* codespell again
* Remove unused nightmare function `useDemoCode`
* Add a few unit tests
* Update desktop to use bulk file creation from #6747
* Oops overwrote main.kcl on the modify with text-to-cad step
* Undo the dumb use of `sep` that I introduced
* Fix up project test
which was fragile to the number of steps in the onboarding smh
* Fix up onboarding flow test
* typo
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Kevin Nadro <kevin@zoo.dev>
* fix: how?
* fix: 0 byte thumbnail png loading bug
* fix: adding navigate to single file back
* fix: cargo fmt
* fix: sorting files to match manifest and unit test
* fix: restoring back to main
* fix: cargo fmt
* fix: ope, I forgot I deleted some code that renamed single files to the samples name to track easier within the file tree
* fix: ope
* Update src/lib/commandBarConfigs/applicationCommandConfig.ts
Co-authored-by: Frank Noirot <frank@zoo.dev>
* fix: unique name for project, ope
* fix: filtered samples for web and skeleton create a sample command
* fix: Create A Sample specifically desktop home page instead of overloading the add to file
* fix: hiding source
* fix: gotcha on add to file with existing project default args and assemblies
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
* Change array functions to call user function with keyword args
* Fix KCL to use keyword params
* Remove unneeded positional call code
* Update docs
* Update output
Breaking changes:
- Fully removed positional arguments from function calls. Keyword arguments are now the only way to call a function.
Added:
- Warn on usage of the unknown numeric suffix (#6690)
Fixed:
- Fix units bug with involuteCircular (#6711)
- Importing 3D files on Windows (#6697)
* Fix various docs errors around std module
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* remove KCL from lang docs titles and move settings docs
Signed-off-by: Nick Cameron <nrc@ncameron.org>
* Include functions declared in Rust in module docs
Signed-off-by: Nick Cameron <nrc@ncameron.org>
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>