-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[browser] build more subsets + runtime interp test #120359
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
base: main
Are you sure you want to change the base?
Conversation
/azp run runtime |
Azure Pipelines failed to run 1 pipeline(s). |
/azp run runtime |
Azure Pipelines failed to run 1 pipeline(s). |
/azp run runtime |
Azure Pipelines failed to run 1 pipeline(s). |
Co-authored-by: SingleAccretion <[email protected]>
1bfc7c8
to
90eb1c6
Compare
3c8b4fd
to
af94529
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR enables building more subsets for the browser target and adds runtime interpreter tests for WebAssembly. The main goal is to expand CI capabilities for browser builds by switching from clr.runtime+libs
to the full clr+libs
subset and building JIT interpreter tests specifically for WASM.
Key changes:
- Switch browser builds to use the full
clr+libs
subset in Release configuration - Enable native test building for browser targets by parameterizing library types
- Add conditional compilation for WASM interpreter tests with fallback behavior
Reviewed Changes
Copilot reviewed 122 out of 122 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
eng/pipelines/runtime.yml | Updates browser build to use clr+libs subset and adds interpreter test build step |
src/tests/CMakeLists.txt | Adds WASM-specific configuration with static library type and compiler flags |
src/tests/JIT/interpreter/Interpreter.cs | Adds WASM-specific early return and P/Invoke conditionals |
Multiple CMakeLists.txt files | Replaces hardcoded SHARED with ${TEST_LIB_TYPE} variable |
Various configuration files | Updates build configurations and dependency handling for browser/WASM targets |
|
||
# add the executable | ||
add_library (pinvoke SHARED ${SOURCES}) | ||
add_library (pinvoke ${TEST_LIB_TYPE} ${SOURCES}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The whole shared -> static lib change is "for the future" currently, since we don't have the code for linking into the (in-tree) host, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
right, we don't have generated pinvoke for coreCLR (but @radekdoulik has on his shortlist) and we are not considering on dynamic linking at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did consistent change for all those 120 files. But I need just 1 right now.
Co-authored-by: SingleAccretion <[email protected]>
postBuildSteps: | ||
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml | ||
parameters: | ||
testBuildArgs: test JIT/interpreter/Interpreter.csproj |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<FeatureInterpreter>
is currently conditional on ('$(Platform)' == 'x64' OR '$(Platform)' == 'arm64') AND ('$(Configuration)' == 'debug' OR '$(Configuration)' == 'checked')
in clr.featuredefines.props
. How will the interpreter tests pass in release configuration?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
goal of this PR is only to build it, not to make it run. It's indeed not working in Release yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add a comment to that effect so anyone investigating knows, but sounds fine then
clr+libs
on CIRelease
because that's whatsrc/tests
needjitinterface_wasm.dll
dependencyclr.nativecorelib
subset from browsereng/liveBuilds.targets
mono specific, disable part temporarilyhost.native
subset temporarilysrc/tests/JIT/interpreter/
on CIset(TEST_LIB_TYPE STATIC)
for WASM andset(TEST_LIB_TYPE SHARED)
for otherssrc/mono/llvm/llvm-init.proj
for windows debug