Skip to content

Merge next to prepare main branch for a release - #1380

Merged
greenhat merged 35 commits into
mainfrom
next
Sep 8, 2026
Merged

greenhat merged 35 commits into
mainfrom
next

Conversation

@greenhat

@greenhat greenhat commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

No description provided.

FileCheck is used only by parser unit tests. Declare it as a dev dependency so ordinary compiler builds do not pull in its parser and diagnostics dependency graph.
Define the example selection once using the current end_to_end namespace and derive complementary integration shards from it. Let nextest reject empty selections so future module renames cannot silently pass an empty shard.
Align each returned address and reserve the complete allocation including padding using checked integer arithmetic. Preserve heap pointer provenance and reject exhausted or uninitialized ranges. Mixed alignments no longer overlap live allocations.
Represent ownership of the lazily allocated value and require Send plus Sync before sharing the lock. Compile the fallback implementation in host unit tests and reject non-thread-safe value types through negative trait-bound checks.
Remove the internal book build, serve, and mdbook plugin installation tasks until the internal documentation has a maintained publication workflow. Keep the Markdown source and the independent Docusaurus tasks.
Release the taken stdin pipe so the parser receives EOF, and reap failed children. Use the active Rust toolchain for fallback input detection. A bounded subprocess regression prevents an open pipe from hanging the test suite.
Replace removed midenc run/debug and objtool decorators commands with the separate miden-debug workflow and dump debug-info. Explain matching debugger versions, command scripts, and the current test entry point.
Share coercion evaluation between folding entry points and allocate a new immediate attribute for each result. Original constants keep their value and type when used elsewhere, and result attributes consistently reflect the target type.
Store passes and nested pipelines in a single ordered sequence so parsing, printing and execution preserve the order specified by the caller.
Forward test arguments from the original token stream so Cargo options and the test harness delimiter retain their meaning. Keep wrapper help handling local to cargo miden.
Separate logical page counts from lazily materialized memory. Growth adds pages and reports failure without changing state, while reset restores the initial empty heap.
Check every input in the bounded Fibonacci and primality domains once. This gives deterministic coverage without repeatedly executing duplicate random inputs or printing per-case debug output.
Resolve operation anchors before constructing pass managers and return diagnostics for unknown dialects or operations at every nesting level instead of panicking.
Map local definitions and block destinations when comparing regions, preserving captures, successor keys and operand partitions. Match commutative operands as multisets under the chosen value strategy. Erase nested operations in reverse order so replacing equivalent region operations removes users before definitions.
Dispatch sparse meet updates to the lattice meet operation so intersections retain the correct state and notify dependents only when that state changes.
Replace obsolete stage and pipeline narratives with current ownership and caller contracts. Remove commented dependency patches and abandoned build code that no longer explain the implementation.
Document byte and element addressing, field carriers, heap limits and component layout, along with frontend routes, HIR ownership and the shared lowering and assembly stages.
Branch on the normalized high limb of the candidate heap address rather than its low limb. Preserve the fixed heap model, return the previous page count on success, and keep metadata unchanged on every failed growth path.
Represent Wasm i64.rem_s explicitly and lower it using unsigned magnitudes with the dividend sign restored. This preserves the Wasm zero result for MIN remainder -1 while trapping on a zero divisor, and supports the same semantics in HIR evaluation.
Remove the unreferenced single-word and double-word memset procedures. Memory fill lowering uses the maintained memory operations, so these unused public assembly helpers add implementation and stack-contract maintenance without a consumer.
Intern lattice anchors in hash buckets and compare canonical anchor values before sharing state. Preserve the same anchor identity across typed and erased IR references while keeping unequal colliding anchors independent.
Combine repeated global and field annotations into one implementation per effect kind. Validate all declarations before emitting code, preserve value-targeted effects, and report empty declarations as effect-free.
Package-only compilations no longer render unused HIR and MASM or retain the HIR arena. Intermediate accessors request their checkpoint before the single compilation and reuse the resulting package, with an explicit diagnostic for a late capture request.
Use Heck consistently for generated names and request full syntax support only in consumers that need it. Keep extra-traits explicit for HIR macros, where darling also requires it, while allowing field-repr derives to build with syn defaults. Record the dependency experiments and Unicode naming behavior.
Add opt-in checkpoint and nested Cargo timing without retaining artifacts, preserve per-test JUnit durations in CI, and provide a command timing recorder. Record representative warm and isolated fixture-cache measurements with their scope and limitations.
Enable the pinned and randomized switch and signed-widening cases and preserve the older wide-product Wasm shape against an independent Wasmi oracle. Record evidence that the older Rust producer already omitted part of the native computation, while the switch fix is present in the compiler baseline.
Compile and serialize the wallet and note once per nextest invocation under an exclusive process lock. Publish the complete pair atomically, preserve debug sections when loading it, and retain independent behavioral tests and the in-process fallback.
Compare explicit workspace codegen-unit settings with dependency profiles held fixed, preserving raw measurements and the configuration caveats. Retain the conservative development default because the measurements do not establish a repeatable benefit from increasing it or justify a platform-wide policy change.
The debug dump includes compiler intrinsics. Adding signed remainder while removing the two unused wide memset intrinsics reduces the function total by one; update the exact total and source-less count to match.
bitwalker and others added 5 commits September 5, 2026 01:43
The baseline compiler was driven over candidate sources, so SDK changes such as allocator fixes were included on both sides and their size differences disappeared. Use the baseline checkout for its examples, SDK, and inputs while retaining a common benchmark runner and VM executor. Read result revisions from their source checkouts and fail on either side’s build errors instead of publishing a partial baseline.
review/audit of the compiler code w/ fixes for various issues/defects identified
Add `shr_unsigned_checked` to `NumericStrategy` and use it for `i32.shr_u`, which was exercised with signed inputs before. Out-of-range shift counts are covered by the bit width and `T::MAX`, since unsigned types have no negative counts.

Also replace the `as` casts in the harness with explicit `I32Operand` conversions.
@greenhat
greenhat requested a review from mooori September 8, 2026 10:01
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Miden examples benchmark

Candidate ff072248ce7f compared with next 17d7d8585683. Lower is better.

example VM cycles (vs next) MAST size (vs next)
auth-component-no-auth n/a 6,823B (~0%)
auth-component-rpo-falcon512 n/a 13,177B (~0%)
basic-wallet n/a 8,505B (~0%)
basic-wallet-tx-script n/a 13,784B (~0%)
collatz 5,264 (~0%) 2,385B (~0%)
counter-contract n/a 13,562B (~0%)
counter-note n/a 3,685B (~0%)
fibonacci 870 (~0%) 3,203B (~0%)
is-prime 2,332,732 (~0%) 5,848B (~0%)
p2id-note n/a 21,763B (~0%)
p2id-tx-script n/a 12,468B (~0%)
p2ide-note n/a 16,402B (~0%)
storage-example n/a 15,677B (~0%)

SVG flamegraphs and compiled packages are attached to the workflow run.

@greenhat
greenhat merged commit 0bdf240 into main Sep 8, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants