-
Notifications
You must be signed in to change notification settings - Fork 170
Support splitting up struct method parameters into multiple input ports #729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
krame505
wants to merge
86
commits into
B-Lang-org:main
Choose a base branch
from
krame505:genwrap
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 80 commits
Commits
Show all changes
86 commits
Select commit
Hold shift + click to select a range
2c27a5d
Initial, hacky work on computing wrapper interface method types using…
krame505 5dd5a7f
Attempt at attachting port names with a primative on every input. Do…
krame505 dc8fa7f
Pass the input port names by tagging methods with a new primative
krame505 4130371
Refactor WrapMethod type class
krame505 fbee672
Input port splitting works end-to-end, modulo sanity checks and savin…
krame505 4615c55
Handle prefix for input port names via wrap typeclasses
krame505 aaf9e9a
Saving port types using WrapField type class method
krame505 0cad646
Bug fixes
krame505 ded14c2
Use WrapField to determine noinline foreign function types
krame505 3fbc8f2
Cleanup, add DeepSplitPorts type class
krame505 8cb4473
Add primMethod wrapper prim calls in vMkRWire1
krame505 7f2e12e
Update expected test output
krame505 d095b93
Re-add module arg port type saving, still need to do port name confli…
krame505 3b8b9b5
Fix saving Inout port types
krame505 2c26339
Update test expected output
krame505 7fc11e9
Update expected test output
krame505 46fd375
Fix prefix computation in genwrap 'to' function and port saving state…
krame505 9ad861d
Fix inadvertantly disabled type check for foreign functions
krame505 46bfafe
Add interface port name sanity checking after elaboration
krame505 6b93528
Fix bug introduced in computing split vector interface prefixes
krame505 8dd9823
Add sketch of splitting tuples
krame505 cb79bd6
Check for clash with default clock/reset ports
krame505 d1c5c58
Better error message for synthesizing an interface with a non-Bits me…
krame505 230e32f
Cleanup trailing whitespace
krame505 7f75867
Update expected results, testsuite passing
krame505 ec8d4b0
Reorganize port splitting utilites into a seperate library, add Shall…
krame505 200f6f7
More efficient implementation of splitting vectors
krame505 d78f6e4
Avoid extra _1 suffix for DeepSplitPorts on Int/UInt
krame505 2522a87
Add test cases for port splitting
krame505 a92ccb8
Add test of DeepSplitPorts with an explicit non-recursive instance
krame505 dfdfd18
Fix NoSplit instance
krame505 8524579
Add a comment
krame505 5543a7a
Stuff the field name in the WrapField type class as a type parameter …
krame505 8fbca9f
Fix trailing whitespace
krame505 84e9697
Addressing Ravi's comments
krame505 5e04b7d
Fix more comments
krame505 57c5824
Fix testsuite failure after error message tweak
krame505 35fd767
Record the full field name path in WrapField context, for better erro…
krame505 a4873ac
Don't surface implicit conditions from inside ICMethod
krame505 4f585a0
FIx trailing whitespace
krame505 ad67afd
Slightly less gross list deconstruction in IExpand
krame505 a7da176
Add more tests
krame505 244c703
Updated expected output for tests
nanavati 364ce69
Stop including explicit indices in the string type argument to the Wr…
nanavati ede3091
Update position in expected error output.
nanavati b94b991
Clean up exports
krame505 6d23a48
Update expected test result
krame505 d971a02
Better position for error when wrong number of ports are returned by …
krame505 addfcbf
Include nolinline pragma in pPrint of Cforeign
krame505 008eb53
Make mkList take a Position argument
krame505 3987cac
Remove idPreludeCons, qualify idCons and idNil
krame505 9a05841
Add missing newline
krame505 e4d82ad
Avoid treating (a, ()) as a tuple of size 1
krame505 7cac8f4
Remove unused fsConcat
krame505 734e740
Remove outdated comment
krame505 db02f57
mkProxy -> mkTypeProxyExpr
krame505 b6d066b
Add util to unwrap a Port value
krame505 1448c16
Avoid stringHead of an empty string
krame505 c13b8b2
Fix error in NFData CDefn instance from rebasing
krame505 48f8f4b
Fix to avoid extra _ in deepSplitPortNames/shallowSplitPortNames when…
krame505 63fdebf
Update expected heap number in test
quark17 2bb6215
Tweak to TupleSize instance
krame505 ff61190
Add comments about DeepSplitPorts Int/UInt instances
krame505 2bcf7d4
Change pPrint for Cforeign to match pvPrint
krame505 f4fb885
Renaming PreIds ids
krame505 bfd96ce
Add missing final newline
krame505 7fc664d
Add comment on test for vector interface instance dicts combining
krame505 589f806
Revert error code being checked for noinline type-not-in-bits tests
krame505 e9dbbce
Eliminate EStringListNF
krame505 c4246ad
Check for too many arg_names supplied for a method
krame505 0dbb7fa
Add comments in GenWrap
krame505 ca5c308
Improve error message when a synthesized method or noinline function …
krame505 06d3552
Add docs for new tuple utilites (mostly written by Claude)
krame505 bbcfc56
Add test cases for tuple utilites (generated by Claude)
krame505 0864b75
Pass the current module name into handleContextReduction for better e…
krame505 194544d
Simplify vMkRWire1, rename to __mkRWireSubmodule, expand the comment
quark17 60df15d
Testsuite: Update expected PreludeBSV positions
quark17 fba6a10
Revert id_to_vName change
quark17 e336086
Clean up documentation
krame505 8418a29
Tests and docs for the Curry type class
krame505 fdbb48e
Misc cleanup
krame505 41ee7fc
Clean up tests
krame505 35c3713
Clean up uncurryN examples
krame505 fb52a66
Fix expected output
krame505 2de7074
Update order of defs in mkDesign.v.expected
krame505 3c855eb
Update location in ClockCheckCond error expected output, add a check …
krame505 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.