Skip to content

[clr-interp] Enable building clr-interp on Release, via build flag - #121850

Merged
BrzVlad merged 2 commits into
dotnet:mainfrom
BrzVlad:feature-clr-interp-release
Nov 21, 2025
Merged

[clr-interp] Enable building clr-interp on Release, via build flag#121850
BrzVlad merged 2 commits into
dotnet:mainfrom
BrzVlad:feature-clr-interp-release

Conversation

@BrzVlad

@BrzVladBrzVlad commented Nov 20, 2025

Copy link
Copy Markdown
Member

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

CopilotAI review requested due to automatic review settings November 20, 2025 17:09
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@BrzVlad

Copy link
Copy Markdown
MemberAuthor

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.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

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
FileDescription
eng/build.shAdded -clrinterp command-line flag and help text for bash build script
eng/build.ps1Added -clrinterp parameter and help text for PowerShell build script
src/coreclr/runtime.projAdded conditional CMake argument to enable FEATURE_INTERPRETER when requested
src/coreclr/vm/amd64/asmconstants.hAdded Release-specific Thread offset for interpreter context on non-UNIX AMD64 platforms
src/coreclr/System.Private.CoreLib/src/System/Runtime/ExceptionServices/AsmOffsets.csAdded platform-specific StackFrameIterator offsets for interpreter in Release builds

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM modulo the nit

Comment threadeng/build.sh Outdated
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
BrzVladforce-pushed the feature-clr-interp-release branch from 8be7a07 to 4f8d4dfCompareNovember 20, 2025 20:30
@BrzVlad
BrzVlad merged commit 21db9c9 into dotnet:mainNov 21, 2025
153 of 155 checks passed
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 22, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@BrzVlad@janvorli