v0.3.0
Pre-release
Pre-release
- Major refactoring of core evaluation traits
- The lowest-level "thing that can be evaluated" trait has changed from
Shape(taking(x, y, z)inputs) toFunction(taking an arbitrary number of variables). Shapeis now a wrapper around aF: Functioninstead of a trait.- Shape evaluators are now wrappers around
E: BulkEvaluatororE: TracingEvaluator, which convert(x, y, z)arguments into list-of-variables arguments. - Using the
VmShapeorJitShapetypes should be mostly the same as before; changes are most noticeable if you're writing things that are generic acrossS: Shape.
- The lowest-level "thing that can be evaluated" trait has changed from
- Major refactoring of how variables are handled
- Removed
VarNode; the canonical variable type isVar, which is its own unique index. - Removed named variables, to make
VartriviallyCopy + Clone. - Added
vars()method toFunctiontrait, allowing users to look up the mapping from variable to evaluation index. AVarnow represents a persistent identity fromTreetoContexttoFunctionevaluation. - Move
VarandVarMapintofidget::varsmodule, because they're no longer specific to aContext. Op::Inputnow takes au32argument, instead of au8
- Removed
- Fixed a bug in the AArch64 JIT would which could corrupt certain registers during interval evaluation.