Skip to content
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 7 additions & 29 deletions release-notes/11.0/preview/preview1/runtime.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

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

## Feature
## Features

These features are all in-progress.

- **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).
- **CoreCLR on WebAssembly**: initial foundational work to bring CoreCLR support to WebAssembly (not yet ready for general use in Preview 1).
Comment thread
jkotas marked this conversation as resolved.
Outdated
- **Interpreter expansion**: more IL coverage, better integration (async/ReJIT/debugging), plus new ports.
Comment thread
jkotas marked this conversation as resolved.
Outdated
- **Targeted performance work**: JIT improvements, interpreter call and compilation performance improvements, and faster WASM allocation paths.

Expand All @@ -17,12 +17,13 @@ These features are all in-progress.

## Runtime async

Runtime async is a major runtime feature in .NET 11 that introduces new runtime-level infrastructure for async methods. The goal is to improve tooling and performance for async-heavy codepaths.
Runtime async is a major runtime feature in .NET 11 that introduces new runtime-level infrastructure for async methods. The goal is to improve tooling and performance for async-heavy codepaths. For more details and to track progress, see the [Runtime Async epic issue](https://github.com/dotnet/runtime/issues/109632).

### What changed in Preview 1

Comment thread
jkotas marked this conversation as resolved.
- **CoreCLR support**: the CoreCLR support for `RuntimeAsync` is now enabled by default, meaning no environment variables need to be set
- **NAOT support for RuntimeAsync**: Native AOT should now be able to compile runtime-async code.
Comment thread
jkotas marked this conversation as resolved.
Outdated
- **Core libraries**: None of the core runtime libraries are compiled with runtime-async support enabled in Preview 1. We expect to start changing this in upcoming previews.
Comment thread
jkotas marked this conversation as resolved.
Outdated

### Impact and how to use

Expand All @@ -34,30 +35,9 @@ Runtime async is a major runtime feature in .NET 11 that introduces new runtime-

## WebAssembly
Comment thread
jkotas marked this conversation as resolved.
Outdated

### CoreCLR on WebAssembly: SDK, packaging, and hosting
### CoreCLR on WebAssembly

Comment thread
jkotas marked this conversation as resolved.
Outdated
CoreCLR is now a 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](https://github.com/dotnet/runtime/pull/122495))
- **Browser runtime packs for CoreCLR**: adds packaging/layout pieces needed to ship a browser-hosted CoreCLR runtime pack. ([dotnet/runtime#121174](https://github.com/dotnet/runtime/pull/121174))
- **Runtime features for browser-hosted CoreCLR**: enables `async Main`, thread pool, and timers in the browser host. ([dotnet/runtime#120976](https://github.com/dotnet/runtime/pull/120976))
- **Runtime option propagation**: browser host can apply runtime options so that linker-related features work as expected in hosted scenarios. ([dotnet/runtime#123331](https://github.com/dotnet/runtime/pull/123331))
- **Globalization prerequisites**: browser-hosted CoreCLR can download ICU to support globalization scenarios. ([dotnet/runtime#121800](https://github.com/dotnet/runtime/pull/121800))
- **JavaScript numeric interop**: enables BigInt support in browser-hosted CoreCLR on WASM. ([dotnet/runtime#121025](https://github.com/dotnet/runtime/pull/121025))

### 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](https://github.com/dotnet/runtime/pull/121359))
- **Portable EntryPoint (initial)**: starts the Portable EntryPoint work, developed in a WASM-agnostic manner but initially scoped to WASM scenarios. ([dotnet/runtime#119178](https://github.com/dotnet/runtime/pull/119178))

### WebAssembly performance improvements

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

- Faster allocation paths:
- `RhpNewFast` allocators. ([dotnet/runtime#120896](https://github.com/dotnet/runtime/pull/120896))
- `RhpNewArrayFastAlign8`. ([dotnet/runtime#120690](https://github.com/dotnet/runtime/pull/120690))
- Lightweight enum marshalling: enums can use the lightweight marshaller where applicable, reducing interop overhead. ([dotnet/runtime#118991](https://github.com/dotnet/runtime/pull/118991))
.NET 11 includes the initial work to bring CoreCLR support to WebAssembly. This is foundational work that is not yet ready for general use in Preview 1. For more details and to track progress, see the [CoreCLR WASM epic issue](https://github.com/dotnet/runtime/issues/121511).
Comment thread
jkotas marked this conversation as resolved.
Outdated

## WebAssembly JIT (RyuJit)
Comment thread
jkotas marked this conversation as resolved.
Outdated

Expand All @@ -70,9 +50,7 @@ This preview adds faster allocation helpers and reduces overhead in common inter

## 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.
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. For more details and to track progress, see the [CoreCLR Interpreter epic issue](https://github.com/dotnet/runtime/issues/112748).
Comment thread
jkotas marked this conversation as resolved.
Outdated

### New IL and call features supported by the interpreter

Comment thread
jkotas marked this conversation as resolved.
Outdated
Expand Down