Skip to content

v0.37.0

@meheff meheff tagged this 12 Mar 20:24
Add a reusable fixture runner API for compiled pipeline modules,
including
port binding handles plus drive/observe contexts for cycle fixtures.
This
makes it easier to build higher-level simulation harnesses on top of
vastly
without reimplementing per-cycle plumbing.

Also reduce pipeline compile/eval overhead in the hot paths:
- keep assign/function expressions AST-backed through lowering instead
of
  reparsing elaborated source text
- add compile_pipeline_module_fast() so callers that do not need
span-rich
  coverage metadata can skip rebuilding spanned expressions
- reduce generate elaboration cloning by reusing env/substitution state
  during recursive expansion
- cut Value4 allocation churn by normalizing owned values in place and
  borrowing when width/signedness already match
- add fast paths for fully-known multiplies, including common constants
and
  widths up to 128 bits

Keep the existing span-preserving path for coverage-oriented callers,
and
add regression tests for fixture driving, generate-loop scope
restoration,
and the new Value4 multiply behavior.
Assets 2
Loading