[Proposal]: Unsafe evolution
Author: 333fredCreated Sep 23, 2025Updated Jul 22, 2026
LabelsProposalProposal champion
Unsafe evolution
- Specification: https://github.com/dotnet/csharplang/blob/main/proposals/unsafe-evolution.md
- .NET Design: https://github.com/dotnet/designs/blob/main/proposed/caller-unsafe.md
- Discussion: https://github.com/dotnet/csharplang/discussions/9705
- Implementation: https://github.com/dotnet/roslyn/issues/81207
Summary
Evolving unsafe in C# to cover general memory unsafety.
Design meetings
- https://github.com/dotnet/csharplang/blob/main/meetings/2025/LDM-2025-09-17.md#unsafe-evolution
- https://github.com/dotnet/csharplang/blob/main/meetings/2025/LDM-2025-10-29.md#unsafe-evolution
- https://github.com/dotnet/csharplang/blob/main/meetings/2025/LDM-2025-11-05.md#unsafe-evolution
- https://github.com/dotnet/csharplang/blob/main/meetings/2025/LDM-2025-11-12.md#unsafe-evolution
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-01-21.md#unsafe-evolution
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-01-26.md#alternative-syntax-for-caller-unsafe
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-04-01.md#unsafe-evolution-migration-and-explicit-safety-markers
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-04-06.md#unsafe-evolution-continued
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-04-13.md#unsafe-evolution-continued
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-04-22.md#unsafe-evolution-continued
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-05-13.md#unsafe-evolution-continued
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-05-27.md#unsafe-evolution
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-07-01.md#unsafe-awaits
- https://github.com/dotnet/csharplang/blob/main/meetings/2026/LDM-2026-07-22.md#allowing-safe-on-non-extern-members
Source: dotnet/csharplang