Looks like that's actually a work in progress: https://github.com/drmeister/clasp
Looks like that's actually a work in progress: https://github.com/drmeister/clasp
Clojure a greatest strength was being able to use all the mature Java libraries. The jvm is an incredibly sophisticated platform, regardless of how shitty Java is. Clojure script benefits from the same concept by being able to run on node, use npm libraries, run on lighter devices in a quicker start-up than regular clojure, etc.
Common lisp and clojure have quite a few differences, though common lisp is certainly on clojures tail with regards to adoptability in enterprise. Scheme is a simpler, truer to principle language than CL.
I get where you're coming from, but there's a long list of reasons why it hasn't ever been done very well, not the least of which being that it just wouldn't be as useful as people think. There's a million languages that can talk to c/c++. Guile can do it, ruby can do it, Julia can do it, there's already some lisp cousins/friends that have that ability.
I'm not super familiar with clasp, but I'd bet anything that its missing some major features compared to sbcl.
What if symbols in macros were hygienic by default, but we had a `pubsym` escape hatch, allowing us to specify the exact symbol name. Would that allay safety concerns, or does that make something else difficult/impossible?
First class continuations however are less easy, and just as big a part of scheme. Callcc is a cult, nearly, and for good reason. With it, almost all local control patterns can be easily implemented so you can have things like fibers, coroutines, etc basically for free. It gets harder when you want asynchrony and parallelism, Andy Wingo has a great blog about guile internals and delimited continuation implementation, CML stuff, etc. If you're interested in higher-level scheme implementation, that's a good starting point.
Clojure has advanced control flow mechanisms and more sophisticated parallelism features than most scheme implementations, but this relies a lot on the underlying host platform. Callcc is made possible at the fundamental level of how scheme works. Pmaps in clojure work because the jvm is incredible and js engines are getting there too. LLVM is not the magic bullet for excellent language design, sometimes.