RepoJournal
.NET

@dotnet

The .NET runtime, ASP.NET, and the C# tooling

Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: .NET Full archive →

The Wire · Showcase

RUNTIME FIXES PODMAN BUILDS, JIT INTRINSIFIES ASYNC FACTORIES

By RepoJournal · Filed · About .NET

dotnet build now works inside rootless podman containers after a fix for chmod failures on bind-mounted filesystems, while the JIT compiler gains direct recognition of Task and ValueTask factory methods for faster async code.

The runtime team shipped a critical fix [1] addressing a long-standing pain point for developers using rootless podman devcontainers. The issue: bind-mounted Windows folders appear root-owned to non-root container users, causing `File.SetUnixFileMode` to fail with permission errors during apphost and single-file publish operations. This blocks the entire `dotnet build` pipeline in environments like VS Code devcontainers. The fix detects chmod-hostile filesystems and skips the mode-setting step when it's not supported.

In a major performance win for async code, the JIT now intrinsifies Task and ValueTask factory methods [2], directly recognizing `Task.FromResult`, `Task.CompletedTask`, `ValueTask.FromResult`, `ValueTask.CompletedTask`, and their instantiation patterns when used in async context. This eliminates method call overhead for the most common async patterns, a substantial improvement for high-throughput code.

The runtime also landed calling-convention fixes [3] for small straddling value types on amd64, resolving corruption in generic shared code paths where struct layouts crossed the 8-byte boundary. On the WASM front [4], the browser runtime upgraded to standardized exception handling using the exnref proposal, moving away from legacy V8-specific encodings.

EF Core shipped fixes for left-join projections of non-entities [6], which now correctly materialize as null on no-match rows instead of throwing. The team also added Half type support for SQLite [7] and refactored element-type handling to be a creation-time concern [8], cleaning up deferred initialization bugs. Coverage reporting is now wired into the EF Core PR workflow [5].

On the MAUI side, the simulator install step that was timing out macOS official builds is now skipped [10], and the release merge workflow got a branch guard [9] to prevent silent failures.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Fix apphost/bundle creation failure on chmod-hostile filesystems (#129342) dotnet/runtime
  2. [2] JIT: Intrinsify Task/ValueTask factory methods ↗ dotnet/runtime
  3. [3] [mono][amd64] Fix calling-convention mismatch for small straddling vtypes in shared generics ↗ dotnet/runtime
  4. [4] [browser] WASM exception handling to use the standardized exnref ↗ dotnet/runtime
  5. [5] Generate and upload code coverage reports ↗ dotnet/efcore
  6. [6] Materialize a left-joined non-entity projection as null on no-match (#30915) ↗ dotnet/efcore
  7. [7] Add Half type support for SQLite ↗ dotnet/efcore
  8. [8] Make primitive collection element type a creation-time concern ↗ dotnet/efcore
  9. [9] Add branch guard to merge-net11-to-release workflow ↗ dotnet/maui
  10. [10] Skip simulator install in official pack pipeline ↗ dotnet/maui

Quick answers

What shipped in .NET on June 27, 2026?
dotnet build now works inside rootless podman containers after a fix for chmod failures on bind-mounted filesystems, while the JIT compiler gains direct recognition of Task and ValueTask factory methods for faster async code. In total, 36 commits and 37 pull requests landed.
Who contributed to .NET on June 27, 2026?
6 developers shipped this update, including jakobbotsch, pavelsavara, Copilot, ajcvickers, kimjaejung96, and PureWeen.
What were the notable .NET updates?
Fix apphost/bundle creation failure on chmod-hostile filesystems (#129342), JIT: Intrinsify Task/ValueTask factory methods, and [mono][amd64] Fix calling-convention mismatch for small straddling vtypes in shared generics.

More from @dotnet

Daily updates, in your inbox

Follow .NET

Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?

We use privacy-friendly analytics (Google Analytics, IP-anonymized) to see which pages help readers. No ads, and we never sell your data. See our Privacy Policy.