Stabilize wavediff output for buffered file2-only changes#17
Merged
toddstrader merged 2 commits intoJun 9, 2026
Merged
Conversation
Collaborator
|
I'd propose changing to something like this in order to avoid the new string cloning: |
Contributor
Author
|
Thanks, agreed. I pushed Validation: |
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.
Fixes #16.
Summary
This makes
wavediffoutput deterministic for the file2-only rows that were buffered while reading ahead in file2.The comparison was already detecting the mismatch correctly, but that reporting path iterated
buffered2, aHashMap<(time, handle), OwnedSignalValue>. That meant the same logical diff could render in hash iteration order. The patch collects those buffered rows, renders their names, sorts by(time, name, value), and then writes them out.I also added a tiny VCD regression where file2 has three intermediate changes at time 10 and file1 has a later time-20 change. That forces the read-ahead buffer and checks the user-facing order:
Validation
The manual CLI check exits 1, as expected for a real waveform difference, and prints the three buffered file2-only rows in stable order.