[vastly] Add fixture runner and speed up pipeline simulation#868
[vastly] Add fixture runner and speed up pipeline simulation#868
Conversation
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.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20cb062f32
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 27a0bc95b4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 642aee60d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
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:
reparsing elaborated source text
coverage metadata can skip rebuilding spanned expressions
during recursive expansion
borrowing when width/signedness already match
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.