Skip to content

Update runtime.md for Preview 1#10229

Merged
jamesmontemagno merged 2 commits intodotnet-11-preview1from
dotnet-11-preview1-runtime
Feb 10, 2026
Merged

Update runtime.md for Preview 1#10229
jamesmontemagno merged 2 commits intodotnet-11-preview1from
dotnet-11-preview1-runtime

Conversation

@jamesmontemagno
Copy link
Member

Please update the release notes here as needed for Preview 1.

/cc @richlander

@hez2010
Copy link

hez2010 commented Feb 7, 2026

I experimented with GitHub Copilot to generate a release note by pulling all PRs manually using the GitHub GraphQL API and then delegating the filtering/summarization work to multiple subagents on each category (otherwise it always misses a lot of changes). Sharing the result here:

Details

.NET Runtime in .NET 11 Preview 1 - Release Notes

.NET 11 Preview 1 includes new .NET Runtime features & performance improvements.

Feature

This preview’s runtime work is centered around:

  • Runtime async: a new runtime-level async mechanism (including configuration, diagnostics, and AOT support).
  • CoreCLR on WebAssembly: CoreCLR support in the WebAssembly SDK plus new browser-host features (threading/timers/interop).
  • Interpreter expansion: more IL coverage, better integration (async/ReJIT/debugging), plus new ports.
  • Targeted performance work: JIT improvements, interpreter call and compilation performance improvements, and faster WASM allocation paths.

.NET Runtime updates in .NET 11:

Runtime async

Runtime async is a major runtime feature in .NET 11 that introduces new runtime-level infrastructure for async methods, including runtime-generated thunks/continuations and a runtime-visible “async method variant” concept. The goal is to enable new execution modes and improve performance characteristics of async-heavy codepaths, while keeping tooling and AOT scenarios working.

What changed in Preview 1

  • Enabled by default in CoreCLR configuration: the CoreCLR configuration default for RuntimeAsync is now enabled (RuntimeAsync=1 by default). This turns on runtime async support in the runtime without forcing the compiler feature across all library code. (dotnet/runtime#121732)
  • Behavior alignment for await/continuations: runtime-async callable thunks are made “transparent” so that they don’t accidentally re-introduce classic await posting behavior (captured SynchronizationContext / thread pool) in cases where the configured await semantics should be preserved. This reduces observable behavioral differences between runtime async and traditional async execution. (dotnet/runtime#120386)
  • Debugging & diagnostics support:
    • The runtime can now surface debug information for runtime async methods (state machine and continuation data) via a new JIT↔EE reporting API and a refactored debug-info blob format. This improves stepping/inspection experiences for runtime-async frames. (dotnet/runtime#120303)
    • Cordb can read runtime-async continuation objects via APIs such as CordbObjectValue::GetFieldValue, even when dynamically-generated continuation types don’t carry full metadata. (dotnet/runtime#121432)
    • ILVerify recognizes the IL-level async flag so verification understands the intended async representation. (dotnet/runtime#121503)
  • AOT and compiler-toolchain support:
    • AOT tools pass the async flag to the JIT when compiling runtime-async methods, and the runtime type system gains AsyncMethodDesc to represent async-call-convention method variants. (dotnet/runtime#120772, dotnet/runtime#120858)
    • ReadyToRun / ILCompiler implement getAsyncInfo to provide async information to the JIT, enabling compilation of runtime-async methods in AOT pipelines. (dotnet/runtime#120859)
    • NativeAOT adds runtime-async continuation support and virtual-method support for runtime-async methods, expanding compatibility for async-heavy applications in AOT deployments. (dotnet/runtime#121398, dotnet/runtime#121443)
  • Interop compatibility: built-in COM interop excludes runtime-async call-convention methods from CCW vtables and GUID calculations to preserve existing COM surface behavior and identifiers. (dotnet/runtime#122195)

Impact and how to use

  • If you just run .NET apps: the runtime-side support is enabled by default via RuntimeAsync. Most apps won’t need a specific action unless they’re experimenting with runtime async at the compiler level.
  • If you want to experiment with runtime-async compilation: you’ll need a compiler/toolchain that can emit the runtime-async representation (e.g., the compiler feature mentioned in dotnet/runtime#121732).
  • If you use AOT (ReadyToRun/NativeAOT): Preview 1 includes foundational support so runtime-async methods can be compiled and diagnosed (including continuation support and toolchain plumbing).

WebAssembly

CoreCLR on WebAssembly: SDK, packaging, and hosting

CoreCLR is now a first-class target in the WebAssembly SDK and browser-hosted CoreCLR gained core hosting/runtime features.

  • CoreCLR support in the WebAssembly SDK: connects in-tree CoreCLR artifacts, defines CoreCLR-oriented defaults, and decouples Mono’s native build where applicable. (dotnet/runtime#122495)
  • Browser runtime packs for CoreCLR: adds packaging/layout pieces needed to ship a browser-hosted CoreCLR runtime pack. (dotnet/runtime#121174)
  • Runtime features for browser-hosted CoreCLR: enables async Main, thread pool, and timers in the browser host. (dotnet/runtime#120976)
  • Runtime option propagation: browser host can apply runtime options so that linker-related features work as expected in hosted scenarios. (dotnet/runtime#123331)
  • Globalization prerequisites: browser-hosted CoreCLR can download ICU to support globalization scenarios. (dotnet/runtime#121800)
  • JavaScript numeric interop: enables BigInt support in browser-hosted CoreCLR on WASM. (dotnet/runtime#121025)

Node.js and corerun workflows

  • CoreCLR corerun on Node.js: enables Node.js as a host for CoreCLR-on-WASM corerun, including statically-linked dependencies, host filesystem access, and environment propagation. (dotnet/runtime#119250)
  • More consistent corewasmrun builds: aligns artifact layout for WASM’s corerun equivalent with other corerun scenarios, simplifying the workflow. (dotnet/runtime#119029)
  • Support larger workloads: allows linear-memory growth for corerun on WASM. (dotnet/runtime#120844)

WebAssembly interop and execution features

  • Call into UnmanagedCallersOnly from WASM: adds support for calling UnmanagedCallersOnly functions on WASM via runtime-provided entry points similar to reverse P/Invoke stubs. (dotnet/runtime#121359)
  • Portable EntryPoint (initial): starts the Portable EntryPoint work, developed in a WASM-agnostic manner but initially scoped to WASM scenarios. (dotnet/runtime#119178)

WebAssembly performance improvements

This preview adds faster allocation helpers and reduces overhead in common interop cases.

WebAssembly JIT (RyuJit)

WASM-targeting JIT bring-up

.NET 11 Preview 1 begins bringing up a WASM-targeting RyuJit, including build system support and Crossgen2 integration work needed for AOT/JIT pipelines.

Interpreter (CoreCLR)

What’s new

The CoreCLR interpreter continues to expand its supported IL surface and execution features, improving compatibility when the interpreter is enabled (notably for WASM/iOS scenarios) and improving debugging and toolchain integration.

New IL and call features supported by the interpreter

Interpreter runtime integration (async, ReJIT, debugging)

Interpreter platform ports and interop

Interpreter performance improvements

  • Faster interpreter calls by reducing per-invocation setup and avoiding unnecessary prestub work. (dotnet/runtime#120067)
  • Improved compilation performance for very large methods in the interpreter compiler (algorithmic improvements). (dotnet/runtime#119514)
  • Delegate tail-calling support and improved delegate handling, including WASM scenarios. (dotnet/runtime#120205)

JIT

Performance improvements

These changes focus on improving startup throughput, enabling more optimizations, and reducing overhead in key code patterns.

  • Raise the Multicore JIT MAX_METHODS limit to better support large workloads and improve startup throughput in method-heavy apps. (dotnet/runtime#119359)
  • Optimize stackalloc zeroing on Arm64 via STORE_BLK to reduce instruction count and improve throughput for stack allocations. (dotnet/runtime#121986)
  • Generalize pattern-based induction-variable (IV) analysis to enable more loop analysis cases, opening the door to more loop optimizations. (dotnet/runtime#119537)
  • Extract bitfields directly from parameter registers without spilling in more cases, improving codegen for certain struct/argument shapes. (dotnet/runtime#112740)
  • Always create FIELD_LIST for promoted struct arguments in physical promotion, removing older backend-era constraints. (dotnet/runtime#118778)
  • Devirtualize non-shared generic virtual methods to reduce virtual-call overhead and enable further inlining/optimization opportunities. (dotnet/runtime#122023)

New/experimental SIMD work

  • Introduce TYP_SIMD as an experimental JIT type for Vector<T> on Arm64, gated by DOTNET_JitUseScalableVectorT=1. This is an enabling step for future scalable-vector work. (dotnet/runtime#121548)

GC

New capabilities

  • GC heap hard limit support is now available for 32-bit processes, improving operational control over heap growth in constrained 32-bit environments. (dotnet/runtime#101024)

Threading & Synchronization (CoreCLR)

Runtime subsystem improvements

CoreCLR moves more of its waiting/synchronization infrastructure onto the shared managed wait subsystem.

  • Move CoreCLR over to the shared managed wait subsystem, reducing reliance on the Win32 PAL wait path for managed code. (dotnet/runtime#117788)
  • Port cross-process shared mutex logic into managed code to work alongside the managed wait subsystem. (dotnet/runtime#117635)

NativeAOT / Hosting

New capabilities and operational improvements

  • Implement Thread.Interrupt on NativeAOT on Windows, improving feature parity for interruption-based patterns. (dotnet/runtime#118968)
  • Add DOTNET_DbgCreateDumpToolPath to locate createdump in NativeAOT scenarios where it isn’t shipped alongside the runtime. (dotnet/runtime#122989)
  • Increase file descriptor limits in NativeAOT executables to better support FD-heavy workloads. (dotnet/runtime#118995)

Diagnostics (DAC / cDAC)

Expanded cDAC functionality

This preview expands cDAC’s ability to describe GC state and ship the data needed for postmortem diagnostics.

New cDAC APIs for profiling and inspection (selected)

These APIs improve what tools like SOS and diagnostics stacks can retrieve and present.

Architecture coverage

Mono Runtime

New capabilities and performance-related configuration

Architecture enablement

RISC-V and s390x improvements

  • Add initial RISC-V “C” extension support (compressed integer register-register ops, alignment/unwind updates, and related tooling adjustments). (dotnet/runtime#117408)
  • Add RISC-V Zbs extension support (single-bit instructions). (dotnet/runtime#115335)
  • Add SIMD fallback support for older / unsupported s390x generations. (dotnet/runtime#118376)

@jamesmontemagno
Copy link
Member Author

Merge when ready

@jamesmontemagno
Copy link
Member Author

@richlander thoughts here

@jamesmontemagno jamesmontemagno merged commit 5161671 into dotnet-11-preview1 Feb 10, 2026
1 of 4 checks passed
@jamesmontemagno jamesmontemagno deleted the dotnet-11-preview1-runtime branch February 10, 2026 17:40
@agocke
Copy link
Member

agocke commented Feb 10, 2026

@hez2010's summary is quite good. I'd trim out the bits that have no user-visible impact, but it is on the right track. How should we add things here?

@richlander richlander restored the dotnet-11-preview1-runtime branch February 10, 2026 18:22
@richlander richlander deleted the dotnet-11-preview1-runtime branch February 10, 2026 18:23
@AndyAyersMS
Copy link
Member

His summary was merged into the main PR: #10221, see runtime.md.

I suppose we can still edit that? When is the deadline?

@jongalloway
Copy link
Contributor

@agocke @AndyAyersMS You can push commits to #10221 (dotnet-11-preview1) until we merge which is looking pretty soon, or create an update PR against main later today.

jongalloway added a commit that referenced this pull request Feb 10, 2026
* Add release notes for .NET 11 Preview 1 across various components

* Update sdk.md for Preview 1 (#10230)

* Update sdk.md for Preview 1

* Update release notes for .NET 11 Preview 1 SDK

Expanded release notes for .NET 11 Preview 1 SDK features, including CLI command improvements, new analyzers, and other changes.

* add msubild release notes too

* Update release-notes/11.0/preview/preview1/sdk.md

Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>

* Add `dotnet run` mobile gifs

* coorect a markdown linting error

* Fix image paths in SDK release notes

Update release-notes/11.0/preview/preview1/sdk.md to correct GIF links by removing the redundant 'dotnet-11/' prefix from the Android and iOS media paths, ensuring the images resolve correctly.

---------

Co-authored-by: Chet Husk <baronfel@users.noreply.github.com>
Co-authored-by: Chet Husk <chusk3@gmail.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>

* Update visualbasic.md for Preview 1 (#10231)

* Update visualbasic.md for Preview 1

* No VB changes.

---------

Co-authored-by: Bill Wagner <wiwagn@microsoft.com>

* Update csharp.md for Preview 1 (#10224)

* Update csharp.md for Preview 1

* first draft for C#

* 2nd draft of release notes

---------

Co-authored-by: Bill Wagner <wiwagn@microsoft.com>

* Update efcore.md for Preview 1 (#10226)

* Update efcore.md for Preview 1

* EF Core 11 preview.1 docs

* update urls

---------

Co-authored-by: Shay Rojansky <roji@roji.org>

* Update libraries.md for Preview 1 (#10228)

* Update libraries.md for Preview 1

* Revise release notes for .NET 11 Preview 1 libraries

Updated release notes for .NET 11 Preview 1 libraries, summarizing new features, improvements, and notable changes across various feature areas.

* Revise release notes for .NET 11 Libraries Preview 1

Updated release notes for .NET 11 Libraries Preview 1 to enhance clarity and detail regarding new features, performance improvements, and notable changes.

* Update title for .NET 11 Libraries release notes

* Revise introduction for clarity in libraries.md

* Fix formatting in libraries.md for LoopbackServer

* Revise libraries.md for .NET 11 Preview 1 updates (v2)

Update release notes for .NET 11 Preview 1 with new features, improvements, and notable changes across various libraries.

* Reorganize .NET 11 Preview 1 libraries section

* Update libraries.md

* Add more libraries features based on the .NET 10.0 GA to .NET 11 Preview 1 API Diff

* Add Performance Improvements section to libraries.md

---------

Co-authored-by: Art Leonard <artl93@users.noreply.github.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: artl <artl@microsoft.com>

* Update aspnetcore.md for .NET 11 Preview 1 (#10222)

* Update fsharp.md for Preview 1 (#10227)

* Update fsharp.md for Preview 1

* Revise F# release notes for .NET 11 Preview 1

Updated F# release notes for .NET 11 Preview 1, including compiler performance improvements, new features, breaking changes, and bug fixes.

* Fix markdown lint errors and broken link in fsharp.md

- Fix MD051: anchor #performance → #compiler-performance
- Fix MD051: anchor fragment missing hyphen in computation-expression-heavy
- Fix MD012: remove trailing double blank line
- Fix dead link: replace 404 fsharp-compiler-docs URL with learn.microsoft.com

* Fix F# release notes link to About.html

---------

Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>

* Add libraries release-notes-generator Copilot skill (#10244)

* WIP - Add release notes generator and related documentation

* Update default output path to release-notes/11.0/preview/preview1/libraries.md

* Rename skill from release-notes-generator to libraries-release-notes

* Add API Diff analysis as Step 1 of the workflow

* Add backing issue research and Copilot comment fetching to the workflow

* Add de-duplication against previous release notes

* Update date range input to use Code Complete date guidance

* Refine discovery and editorial instructions

* Recognize multi-faceted PRs

* Restructure skill into data/verify/author phases with independent steps

* Improve libraries-release-notes skill to reduce approval prompts

- Use SQL tool for intermediate data instead of writing .cache/ files
- Remove disk I/O from gh CLI fallback instructions
- Allow incremental input collection with progress tracking
- Prohibit running linters, formatters, or validators on output

* Use label-scoped searches to avoid large MCP responses

- Add 'Avoid large MCP responses' execution guideline explaining that
  large search payloads get saved to temp files, requiring shell commands
  (and approval prompts) to read back.
- Rewrite PR collection strategy to search per area label with small
  perPage values instead of fetching all merged PRs at once.
- Prescribe view tool as fallback for any temp files instead of
  PowerShell commands.

* Undo .gitignore cache addition for the libraries-release-notes skill

* Refactor SKILL.md: extract inputs to reference file, relocate guidelines, remove workflow.md

---------

Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>

* Update wpf.md for Preview 1 (#10233)

* Update wpf.md for Preview 1

* Added WPF Updates

---------

Co-authored-by: Himanshi Goyal <himgoyal@microsoft.com>

* Update dotnetmaui.md for Preview 1 (#10225)

* Update dotnetmaui.md for Preview 1

* Update .NET MAUI release notes for Preview 1

Expanded release notes for .NET MAUI in Preview 1, detailing new features such as CoreCLR by default, enhancements to 'dotnet run', and XAML source generation.

* Add files via upload

* Revise .NET MAUI Preview 1 release notes

Updated the release notes for .NET MAUI in Preview 1 to include new features and contributor acknowledgments.

---------

Co-authored-by: David Ortinau <david.ortinau@microsoft.com>

* Update runtime.md for Preview 1 (#10229)

* Update runtime.md for Preview 1

* update

* Update release notes for .NET 11 Preview 1, including content adjustments and removal of outdated references

* Fix formatting issues in release notes for .NET 11 Preview 1

* Fix formatting issue in known issues section of release notes for .NET 11 Preview 1

* Add .github directory to markdownlintignore for improved linting control

* Add runtime.md

* Clean up runtime-async

* Include .github/skills in exclude for super-linter

* markdownlint fix

* Fix ASP.NET Core roadmap link for .NET 11

* Update release-notes/11.0/preview/preview1/runtime.md

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

* Fix EF learn links

---------

Co-authored-by: Chet Husk <baronfel@users.noreply.github.com>
Co-authored-by: Chet Husk <chusk3@gmail.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
Co-authored-by: Bill Wagner <wiwagn@microsoft.com>
Co-authored-by: Shay Rojansky <roji@roji.org>
Co-authored-by: Art Leonard <artl93@users.noreply.github.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: artl <artl@microsoft.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
Co-authored-by: Himanshi Goyal <himgoyal@microsoft.com>
Co-authored-by: David Ortinau <david.ortinau@microsoft.com>
Co-authored-by: Rich Lander <2608468+richlander@users.noreply.github.com>
Co-authored-by: Andy Gocke <andy@commentout.net>
Co-authored-by: Rahul Bhandari <rbhanda@microsoft.com>
Co-authored-by: Jon Galloway <jongalloway@gmail.com>
Co-authored-by: Daniel Roth <daroth@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants