-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[clr-interp] Setup fully interpreted functional test on iOS simulator #118889
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
[clr-interp] Setup fully interpreted functional test on iOS simulator #118889
Conversation
/azp run runtime-ioslikesimulator |
Azure Pipelines successfully started running 1 pipeline(s). |
Tagging subscribers to this area: @BrzVlad, @janvorli, @kg |
eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
Outdated
Show resolved
Hide resolved
...ctionalTests/iOS/Simulator/CoreCLR.Interpreter/iOS.Simulator.CoreCLR.Interpreter.Test.csproj
Outdated
Show resolved
Hide resolved
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
/azp run runtime-iossimulator |
No pipelines are associated with this pull request. |
/azp run runtime-ioslikesimulator |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-iossimulator |
No pipelines are associated with this pull request. |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-ioslikesimulator |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator |
Azure Pipelines successfully started running 1 pipeline(s). |
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 fully interpreted execution for CoreCLR on iOS simulator by configuring static linking and implementing required interpreter intrinsics. The changes simplify the functional test configuration and extend interpreter support for Interlocked.Exchange
operations.
- Configures CoreCLR for static linking on iOS platforms instead of dynamic linking
- Implements
Interlocked.Exchange
intrinsics in the interpreter for int32 and int64 types - Simplifies the functional test to use direct interpretation mode and removes async components
Reviewed Changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
iOS.Simulator.CoreCLR.Interpreter.Test.csproj | Updates environment variables to use simplified interpreter mode configuration |
Program.cs | Simplifies test program by removing async operations and external dependencies |
Xcode.cs | Modifies build system to use static libraries (.a files) instead of dynamic libraries (.dylib) for CoreCLR |
CMakeLists.txt files | Extends static library installation to iOS/tvOS/MacCatalyst platforms |
AppleBuild.targets | Adds copying of static CoreCLR library for static linking scenarios |
prestub.cpp | Updates interpreter call stub creation condition to exclude WASM targets |
interpexec.cpp | Implements execution logic for Exchange intrinsics and adds macro cleanup |
intrinsics.cpp | Adds recognition of Interlocked.Exchange method intrinsic |
intops.def | Defines new interpreter opcodes for Exchange operations |
compiler.cpp | Implements compilation logic for Exchange intrinsics |
coreclr/CMakeLists.txt | Extends static library linking configuration to iOS platforms |
clrfeatures.cmake | Updates feature flags to disable JIT and enable static linking for iOS platforms |
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.
LGTM, thank you!
Description
This PR updates the functional test to fully interpret the startup path and Main method. It statically links the runtime and interpreter, and implements the
Interlocked.Exchange
must-expand intrinsics.Contributes to #118647