clr

dangercoder 2026-02-15T07:35:53.098839Z

This is great news: https://laurentkempe.com/2026/02/14/exploring-net-11-preview-1-runtime-async-a-dive-into-the-future-of-async-in-net/ Async/await is now a runtime-level concept in .NET 11 Preview 1 — no need to replicate the complex compiler-generated state machine in ClojureCLR. Just mark a method with [MethodImpl(MethodImplOptions.Async)], return Task and await becomes a simple static call: (AsyncHelpers/Await expr)

🔥 1
dangercoder 2026-03-27T06:54:03.992389Z

https://github.com/Dangercoder/clojure-clr/commit/c045c24e289d08aa27ccebb70f6862c4c4a4f8b9 Highly experimental, but works. Also made a https://github.com/Dangercoder/clojure-clr/blob/feature/async-await-iterop/examples/dotnet-minimal-api/app/server.clj using async/await interop under /examples 🙂. Since async/await and the concept of a Task is so fundamental on the CLR I made a clojure.async.task namespace.

dmiller 2026-02-17T23:31:39.799679Z

thanks for sharing. I'll be checking it out

1
dangercoder 2026-03-27T09:22:54.264149Z

There was also a missing piece in classForName's dependency resolution: https://github.com/Dangercoder/clojure-clr/commit/7c4367acf413869e202c0d50cdc5593c346b7212#diff-a5733e4f5d37ae91c6897df6dd9388b712e7740ee238b1dffd8f4aab7f219f63 The DependencyContext heuristic guessed assembly names by taking the type's namespace prefix (Microsoft.AspNetCore.Builder for WebApplication) but only tried a single exact match. When the actual assembly is Microsoft.AspNetCore, that one lookup missed. Fix walks up the namespace hierarchy until it finds a match. Also resolved empty paths for DependencyContext entries and added fallbacks to the AssemblyResolve handler. This became obvious (and easy to debug) thanks to /examples/ — without the minimal API example exercising real NuGet packages like Dapper and http://ASP.NET the gap in the resolution chain wouldn't have surfaced.

jamesd3142 2026-02-16T00:57:12.027259Z

Oh, interesting! I've been thinking about async lately in light of borkdude's work on clojurescript. Thanks for sharing.

✌️ 1