Is there any work ongoing related to https://clojure.atlassian.net/browse/CLJ-1255 ?
There's a working fork of Clojure with the new forms here: https://github.com/cursive-ide/clojure/tree/defclass. I've been using it in Cursive for a very long time, it seems to work well.
The original design doc is here: https://docs.google.com/document/d/1OcewjSpxmeFRQ3TizcaRRwlV34T8wl4wVED138FHFFE/edit?usp=sharing
The fork is a little behind Clojure master, I think it's on one of the later betas of 1.12.0 at the moment, I don't anticipate problems bringing it up to date but I just haven't got around to it yet.
The comment from Rich there says that he didn't want to overload reify and deftype - the current branch does not do that, it uses clojure.interop/extend-class and clojure.interop/defclass as analogues to reify and deftype. At the time the blocker to getting it looked at was that Rich wanted the fork rewritten to not touch any existing code paths, and neither Nicola nor I had the time to do that. The fork is in an as-is where-is state at the moment, it works well for me.
Thanks for the explanation
It’s can’t really check the patches easily (I only have my phone for a few days), but it would be great if that could be made standalone indeed. That could then just be distributed as a library initially.
related Ask about this, which you can vote and comment on: https://ask.clojure.org/index.php/3360/support-abstract-base-classes-with-java-only-variant-reify
To be clear, if anyone wants to take on the work of separating those patches out into new code paths that don't modify the existing compiler, I'm very happy for that to happen - I think these changes would benefit Clojure's interop story greatly. I just don't have the bandwidth to do it myself.