RepoJournal
.NET

@dotnet

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

Pick a date

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.

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

FAQ

What changed 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.
What should .NET teams do about it?
If running VS Code devcontainers on rootless podman, pull the latest runtime immediately • Review your hot-path async code for Task/ValueTask factory calls; JIT intrinsics are now automatic • Validate EF Core left-join projections if you use LEFT JOIN with non-entity DTOs
Which .NET repositories shipped on June 27, 2026?
dotnet/runtime, dotnet/efcore, dotnet/maui

For your repos

The showcase is a teaser.
Your wire is the product.

Same engine. Different stack. Below: what changes when the wire is yours.

Showcase wire

  • 14 famous open source orgs
  • One wire per day
  • Public, generic
  • Read on the web, when you remember

Your wire

  • Up to 1,500 of your repos - orgs, deps, vendors
  • Morning and evening briefs
  • Action items routed to your team
  • Slack delivery, email, breaking-news CVE alerts

Want a hands-on demo first? Ask a current user for an invite link.