The Rust community has given us at least two Scheme runtimes, several JS runtimes, but no Clojure interpreter yet that I'm aware of. There are a few zombie projects squatting on the name (seems common in Rust) but no viable releases.
The Rust community has given us at least two Scheme runtimes, several JS runtimes, but no Clojure interpreter yet that I'm aware of. There are a few zombie projects squatting on the name (seems common in Rust) but no viable releases.
It'll have its first alpha release this year. It's currently written in C++, but will be migrated to Rust piece by piece, either once we find a champion to lead it or once we reach Clojure parity and I can focus on it. C++ interop will remain, but we'll benefit from Rust's memory safety and improved dev tooling.
I randomly came across the talk from the founder, and their reasoning for this was awesome: basically creating a C++ REPL for the science community (and the rest of us by happy accident).
If it is about additional safety, in any regard, self hosting would be the answer, not Rust.
but the main implementation benefits from GC and making it easy to call host (java) methods. as far as i know, the core clojure data structures are kinda hard if you don't have a GC
if you're implementing the clojure data structures, you wouldn't use a cell inside. semantically, they're immutable, and the operations on them all return copies that share nodes with the old one. if you know the old one won't be used, you can cheat and mutate it instead
the issue with using Arc for these data structures is that it's a fatter pointer (costs memory, causes cache pressure), and it requires atomics/fences. they also generate a ton of garbage in typical use-cases (unless you can do the mutation optimization). languages with a compacting GC also usually get a faster allocator
it's basically ideal conditions for a GC to outperform reference counting
That said, people have strong opinions on whether reference counting counts as GC. I say it does, but others are vehement that it does not. If it does not count as GC, I think Interlisp-D would qualify.