Skip to content

Conversation

@BrzVlad
Copy link
Member

@BrzVlad BrzVlad commented Nov 20, 2025

Interpreter is enabled on targets needing it: wasm/ios.
Interpreter is enabled on debug desktop build.
Interpreter is disabled on release desktop build.

This commit makes it possible to enable it on desktop release build. Ex:

./build.sh -subset clr -c Release --clrinterpreter

Copilot AI review requested due to automatic review settings November 20, 2025 17:09
@dotnet-policy-service
Copy link
Contributor

Tagging subscribers to this area: @BrzVlad, @janvorli, @kg
See info in area-owners.md if you want to be subscribed.

@BrzVlad
Copy link
Member Author

BrzVlad commented Nov 20, 2025

Tested build on win-x64, osx-arm64 and ubuntu-arm64. This should make it easier to use when doing performance testing, which has to be done on release build. This could also facilitate adding release pipelines on desktop and also doing automated perf runs.

Copilot finished reviewing on behalf of BrzVlad November 20, 2025 17:13
Copy link
Contributor

Copilot AI left a 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 the CoreCLR interpreter to be built on Release configurations for desktop platforms where it was previously a Debug-only feature. The interpreter remains enabled by default on platforms that require it (WASM/iOS) and on Debug desktop builds, but can now be explicitly enabled on Release desktop builds using the new --clrinterp build flag.

Key Changes

  • Added a new --clrinterp build flag to enable the interpreter in Release configurations
  • Updated platform-specific assembly offsets to support interpreter in Release builds
  • Configured CMake to pass the FeatureInterpreter flag when the build option is specified

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
eng/build.sh Added -clrinterp command-line flag and help text for bash build script
eng/build.ps1 Added -clrinterp parameter and help text for PowerShell build script
src/coreclr/runtime.proj Added conditional CMake argument to enable FEATURE_INTERPRETER when requested
src/coreclr/vm/amd64/asmconstants.h Added Release-specific Thread offset for interpreter context on non-UNIX AMD64 platforms
src/coreclr/System.Private.CoreLib/src/System/Runtime/ExceptionServices/AsmOffsets.cs Added platform-specific StackFrameIterator offsets for interpreter in Release builds

Copy link
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo the nit

Interpreter is enabled on targets using it wasm/ios.
Interpreter is enabled on debug desktop build.
Interpreter is disabled on release desktop build.

This commit makes it possible to enable it on desktop release build. Ex:

./build.sh -subset clr -c Release --clrinterpreter
@BrzVlad BrzVlad force-pushed the feature-clr-interp-release branch from 8be7a07 to 4f8d4df Compare November 20, 2025 20:30
@BrzVlad BrzVlad merged commit 21db9c9 into dotnet:main Nov 21, 2025
153 of 155 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants