Releases: mkeeter/fidget
Releases · mkeeter/fidget
0.2.2
- Added many transcendental functions:
sin
,cos
,tan
,asin
,acos
,atan
,exp
,ln
- Implemented more rigorous testing of evaluators, fixed a bunch of edge cases (mostly differences in
NAN
handling between platforms) - Tweaks to register allocator, for a small performance improvement
0.2.1
This release is mostly small tweaks, but enough performance improvements have piled up that it seems worthwhile!
- Changed
fidget::eval::Vars
to borrow instead of use anArc
- Properly pre-allocated
mmap
regions based on estimated size - Bump dependencies, fixing a Dependabot warning about
atty
being unmaintained - Fixed performance regressions in 3D rendering
- Added
wasm32-unknown-unknown
target to CI checks - Reordered load/store generation so that register allocation generates linear code ("linear" in the type-system sense).
- Small optimizations to register allocation
- Added unit tests for rendering correctness
0.2.0
This release includes a significant amount of reorganization and refactoring. There are two main sets of changes, along with some minor tweaks.
Completely revamped evaluation traits
Previously, evaluation was tightly coupled to the Tape
type, and individual evaluators were tightly bound to a specific tape. Upon reflection, both of these decisions were reconsidered:
- We may want to use Fidget's algorithms on implicit models that aren't defined as tapes, so the evaluation traits should be more generic
- The previous code put a great deal of effort into reusing evaluator workspaces, but it was hard; it turns out that it's much cleaner to have evaluators own their workspaces but not own their tapes
These changes can be seen in the new fidget::eval::Shape
trait, which replaces (but is not equivalent to) the previous fidget::eval::Family
trait.
Compiler reorganization
Compiler modules are reorganized to live under fidget::compiler
instead of being split between fidget::ssa
and fidget::vm
.
Other small changes
- Improve meshing quality (better vertex placement, etc)
- Add parallelism to meshing implementation, configured by the new
fidget::mesh::Settings
. - Added documentation to
fidget::mesh
modules