clr 2026-08-29

Is there a central list somewhere of Clojure libraries that run on CLR? I sure found https://github.com/orgs/clojure/repositories?q=clr, but I wonder if there are more.

No general list that I know of. The clr repos on the Clojure github account are pretty much what I maintain to support ClojureCLR itself. Plus special requests I've gotten over the years, such as clr.core.logic What others have done has not been collected in any way to my knowledge.

I (some random Clojure user) like to share a thought. Because the CLR is an ECMA standard and MIT-licensed and your Clojure has the blessing of Rich Hickey, it is ideal as the reference host for the sprawling Clojure dialects. The current idea of using the existing Java interop semantics as a portable Clojure layer https://clojure.cc/blog/2026/08/10/portable-libraries/ is a pragmatic one (lots of existing libraries on that host). But the ideal ECMA semantics is the CLR, it's MIT-license is practically meant to be the canonical Clojure layer.

Some entertaining ideas in that post. And probably some things I should check out, such as what is happening in some of the dialects mentioned. Thanks for that. I'm going to guess that not many will be inspired by target of "ideal ECMA semantics". From a practical standpoint, if I were a good Java developer working on a Clojure library, am I going to want to take the time to understand and write in a "portable Clojure layer" versus just pulling what I know really well out my JVM toolkit? If you're not opposed to AI-generated code, here is something you could do today that would not take any effort to develop a portable Clojure layer. ("Today" sounds better than some indeterminate future when the portable Clojure layer exists.) Grab a library without external dependencies other than Java interop. Have your agent look at all interop and extract all interop calls into an interop namespace (or two or three). You could either go with regular functions or macroize the crap out of it. Now you need port only the interop namespaces -- and your agent can probably do that better than you also. Just drive the bus. If later the portable Clojure layer comes into being, another easy transformation.

I agree if the last sentence is altered: instead of "If later the portable Clojure layer comes into being, another easy transformation." say "After that, make the Clojure library run on Clojure/CLR today with yet another easy transformation and that CLR-interop-code is then your portable Clojure layer for other dialects". I hold: if ClojuistsTogether agree that porting the major Clojure libraries to CLR (maybe in the - foreign to me - AI way you mentioned) is worth the (easy?) transformation effort, then it will happen. I hold: porting the major libraries to the CLR is a good next step to steward Clojure in a controlled way towards different platforms (Go, Rust, ...). Because the authors of those dialects would just shim the CLR-interop to the extent they deem desirable (shimming is what an ECMA standard is there for). In any case it would be good if the point "strategically steward Clojure libraries, via ClojuristsTogether funding, towards the CLR as canonical host for all dialects" were discussed more widely.

I'll let you and others make the case for that. Coming from me, I think it be viewed as a bit self-serving.

I agree it be viewed as self-serving. And indeed it is high on time that you take credit given that you maintain Clojure/CLR since how many years? 15? 20? Anyone who responds with an ad hominem argument ("he is biased") will simply be crushed immediately by your towering technical achievements alone. There is maybe only a handful of people who have done more for Clojure than you. Who has the right to pose an ad hominem argument? Answer: no one, And everyone knows that. So I'd like, as an average joe Clojurian, to conclude (however you decide): a BIG thank you for all you have done over all those years.

💯 1

Appreciated. My work is pretty much 99.5% perspiration. The inspiration resides elsewhere.

🔥 1
🌐 1
🚴‍♂️ 1
🏋️‍♂️ 1
💪 2
💪🏼 1