fix(decoder): element segment and SIMD instruction parsing (#150)#170
Merged
fix(decoder): element segment and SIMD instruction parsing (#150)#170
Conversation
…eftype Per WebAssembly spec, element segment flags 1 and 3 use elemkind encoding (0x00 = funcref), not reftype encoding (0x70 = funcref). The decoder was incorrectly matching against reftype bytes, causing modules with (elem declare func ...) to fail with "malformed reference type". Also adds 0x63/0x64 (ref null/ref) encoding support to flags 5, 6, 7 element segment reftype parsing for GC proposal compatibility. Fixes 429 WAST assertion failures (64,068 → 64,497 passing). Trace: skip Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The code body LEB128 validator treated v128.loadN_lane (84-87) and v128.storeN_lane (88-91) the same as plain v128.load ops, missing the trailing lane index byte. This caused the parser to go out of sync with the byte stream, cascading into Truncated LEB128 errors for entire SIMD-heavy modules. Fixes 616 additional WAST assertions (64,497 → 65,113 passing). Trace: skip Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
🔍 Build Diagnostics ReportSummary
🎯 Impact AnalysisIssues in Files You Modified
Cascading Issues (Your Changes Breaking Other Files)
✅ No Issues DetectedPerfect! Your changes don't introduce any new errors or warnings, and don't break any existing code. 📊 Full diagnostic data available in workflow artifacts 🔧 To reproduce locally: # Install cargo-kiln
cargo install --path cargo-kiln
# Analyze your changes
cargo-kiln build --output json --filter-severity error
cargo-kiln check --output json --filter-severity warning |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Impact
Baseline: 64,068 pass / 1,574 fail
After: 65,113 pass / 529 fail (+1,045 assertions fixed, -66% failures)
Test plan
cargo check -p kiln-decoder— clean compile🤖 Generated with Claude Code