Skip to content

Releases: mkeeter/fidget

0.2.2

21 Mar 22:15
Compare
Choose a tag to compare
0.2.2 Pre-release
Pre-release
  • 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

23 Feb 02:51
8e1a79b
Compare
Choose a tag to compare
0.2.1 Pre-release
Pre-release

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 an Arc
  • 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

18 Feb 17:10
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release

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

0.1.4

18 Feb 17:08
Compare
Choose a tag to compare
0.1.4 Pre-release
Pre-release
  • Added initial meshing support in the fidget::mesh module, gated by the mesh feature (enabled by default).
  • Added support for aarch64-unknown-linux-* to the JIT compiler; previously, aarch64 was only supported on macOS.

0.1.3

18 Feb 17:08
Compare
Choose a tag to compare
0.1.3 Pre-release
Pre-release

This release adds an x86_64 backend to the JIT compiler

0.1.2

18 Feb 17:07
Compare
Choose a tag to compare
0.1.2 Pre-release
Pre-release

Second point release; at this point, docs.rs is working.

0.1.1

18 Feb 17:06
Compare
Choose a tag to compare
0.1.1 Pre-release
Pre-release

Point release which attempted to fix documentation rendering (and failed)

0.1.0

18 Feb 17:05
1d0bb03
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

Initial release to crates.io