-
Notifications
You must be signed in to change notification settings - Fork 5.6k
[wasm] Compute CoreCLR P/Invoke struct sizes with crossgen2's type system #131877
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
Merged
radekdoulik
merged 87 commits into
dotnet:main
from
radekdoulik:radekdoulik-wasm-struct-sizes-from-crossgen2
Sep 4, 2026
Merged
Changes from all commits
Commits
Show all changes
87 commits
Select commit
Hold shift + click to select a range
ed840e2
Compute wasm struct sizes with crossgen2's type system
radekdoulik 83792db
Ask the wasm lowering for whole method signatures
radekdoulik d296ca5
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik 5001fc7
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik 05b975a
Answer wasm ABI queries from crossgen2 instead of a separate tool
radekdoulik 6002c34
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik d4fa401
Acquire crossgen2 through the wasm-tools workload
radekdoulik 5ad6e50
Stage the host crossgen2 pack for wasm workload testing
radekdoulik 529567a
Fix two CI failures in the crossgen2 query path
radekdoulik 2a8921a
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik fa67c50
[wasm] Generate CoreCLR call helpers with crossgen2
radekdoulik 1d6a100
[wasm] Skip String constructors when collecting InternalCall signatures
radekdoulik 8337799
[wasm] Use ordinal sort for assembly attribution, refresh stale comments
radekdoulik 75881d4
[wasm] Declare by-reference struct parameters as void * in generated C
radekdoulik 544dedc
[wasm] Don't emit a valueless --wasm-ignored-pinvoke-module
radekdoulik 4bffa45
[wasm] Address review feedback on the generator
radekdoulik 1b4db48
Merge branch 'main' of github.com:dotnet/runtime into radekdoulik-was…
radekdoulik 08491ee
[wasm] Encode multi-segment types the way the compiler lowers them
radekdoulik 7689e35
[wasm] Don't reject the generator's inputs over duplicate simple names
radekdoulik 9b2bdcb
[wasm] Prefer the managed candidate when input file names collide
radekdoulik 912a9b2
[wasm] Fail the call-helper scan instead of warning past a bad signature
radekdoulik 31fb782
[wasm] Name the call-helper options after their NativeAOT counterparts
radekdoulik e7cac5e
Merge main into wasm struct sizes from crossgen2
radekdoulik cebef96
[wasm] Match versioned OS platform attributes in the call-helper scan
radekdoulik 0895e02
Merge main into radekdoulik-wasm-struct-sizes-from-crossgen2
radekdoulik 8fc74ee
Drop the WBT crossgen2 artifact copy made dead by #132478
radekdoulik be10766
Drop the WASM0066 unresolved-P/Invoke warning
radekdoulik d800611
Drop the --ignored-directpinvoke switch made dead by the WASM0066 rem…
radekdoulik d1317b9
Merge branch 'main' into radekdoulik-wasm-struct-sizes-from-crossgen2
radekdoulik 9780375
Fix build break from the main merge: GetClassAlignmentRequirementStat…
radekdoulik 3283972
Filter native files out of the interop generator input in MSBuild
radekdoulik 55da13d
Dedupe simple names in the filter, and apply it to wasi too
radekdoulik db17286
Merge origin/main
radekdoulik c6a087d
Read the P/Invoke module list from the shared props in the regen scripts
radekdoulik 55000a2
Drive the call-helper regeneration from an MSBuild project
radekdoulik 602cb97
Pass the generator arguments through a response file
radekdoulik 0b293a1
Fix review findings: skipped-module short circuit and Windows regen s…
radekdoulik 77b85d9
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik 7fabc25
Merge branch 'main' into radekdoulik-wasm-struct-sizes-from-crossgen2
radekdoulik 45d4cc2
Generate the test corerun call helpers with crossgen2
radekdoulik 6951c9e
Take wasm out of the portable call-helper generator's names
radekdoulik 0b7c4d3
Name the emitted call-helper symbols after portable, not wasm
radekdoulik 859bd17
Fix review findings: stale doc link and hardcoded target OS
radekdoulik 03596f7
Replace LINQ with loops where the generator reads better for it
radekdoulik 2a708a0
Merge origin/main
radekdoulik 7a23761
Name the right build script in the regen errors, default --directpinvoke
radekdoulik 24a92cd
Finish the "wasm interop generator" rename in prose and diagnostics
radekdoulik 0720ac3
Pass crossgen2 options as --name:value and drop the IL-only fallback
radekdoulik bde58bf
Diagnose a crossgen2.dll override, and correct the response-file comment
radekdoulik 90c5720
Describe the CoreCLR reverse-thunk mechanism, not Mono's
radekdoulik 17c2eed
Drop the unused callbackIndex from the reverse-thunk emitter
radekdoulik 77e1d0a
Clean up three more constructs inherited from the Mono generator
radekdoulik 2e8d211
Reject an exported callback whose name is ambiguous at run time
radekdoulik 9e89c56
Test that generation rejects an export it could not resolve by name
radekdoulik 6f02d77
Regenerate through the self-contained crossgen2, and drop the rsp com…
radekdoulik 5a505d8
Take crossgen2 from the same build that produced the scan path
radekdoulik ec5aeb7
Apply batched suggestions from code review
radekdoulik 5ad42e3
Drop the crossgen2 friends access from ILCompiler.ReadyToRun
radekdoulik eff8edc
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik fd2a683
Pass the lowering flags through instead of a bool
radekdoulik 8d3ecbe
Stop stamping generated interop files with the MIT header
radekdoulik c2cb84c
Name the method behind a signature the thunks cannot emit
radekdoulik 1be0694
Reject a generic InternalCall instead of skipping it
radekdoulik d772061
Warn on [MonoPInvokeCallback] instead of generating for it
radekdoulik 8c4c804
Cover the cross-assembly blittability check without the marker
radekdoulik ea1416d
Stamp the regenerated tables from the regeneration project
radekdoulik 38b7cda
Drop the test-only non-blittable marker
radekdoulik 9357b0a
Give DescribeSigChar a description for every character
radekdoulik 1ae2fc7
Reject an output directory and a generator path that cannot work
radekdoulik 2086b0b
Use the shared MarshalUtils.IsBlittableType
radekdoulik 911c258
Apply batched suggestions from code review
radekdoulik e031969
Name the empty generator path in the test corerun relink
radekdoulik fdb02c1
Drop the helpers the pointer simplification left behind
radekdoulik 53541c1
Update src/mono/browser/build/BrowserWasmApp.CoreCLR.targets
radekdoulik 03bd9d1
Say what blittable means, and what this check cannot see
radekdoulik 7e9b317
Apply batched suggestions from code review
radekdoulik 6dc630d
Finish the callback-collection cleanup
radekdoulik 0807e24
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik 8df4712
Validate the generator path and target OS, tighten comments
radekdoulik d11533b
Drop the MonoPInvokeCallback build warning
radekdoulik b8046d8
Report modules that P/Invoke without disabling runtime marshalling
radekdoulik 23c2f38
Give the interpreter the bits of a floating point callback argument
radekdoulik 76324b6
Drop generator tests that only match generated source
radekdoulik 9740d11
Track the marshalling-aware check with an issue
radekdoulik 1724b72
Update src/coreclr/tools/aot/ILCompiler.ReadyToRun.Tests/WasmArgument…
radekdoulik 2d7aa46
Update src/coreclr/tools/aot/ILCompiler.ReadyToRun.Tests/WasmArgument…
radekdoulik cc937da
Merge remote-tracking branch 'origin/main' into radekdoulik-wasm-stru…
radekdoulik 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
Some comments aren't visible on the classic Files Changed page.
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
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
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
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.