https://github.com/squint-cljs/squint: Light-weight ClojureScript dialect
v0.11.187
• Accept plain await in async functions, in anticipation of CLJS next. The legacy js-await and js/await forms continue to work as aliases for now and may be deprecated in a future version.
• Add built-in cljs.test / clojure.test support: deftest, is, testing, are, use-fixtures, async, run-tests. (thanks @wcohen for doing the initial work)
• Fix with-meta now preserves callability when applied to a function
• Fix https://github.com/squint-cljs/squint/issues/783: auto-load macros from .cljc files via :require (no need for :require-macros)
• Fix https://github.com/squint-cljs/squint/issues/783: resolve qualified symbols from macro expansions
• Fix https://github.com/squint-cljs/squint/issues/784: resolve transitive macro deps and auto-import runtime deps from macro expansion
• Fix https://github.com/squint-cljs/squint/issues/786: resolve-macro-ns for cherry namespace resolution
@borkdude what is cljs next?
The next version of CLJS that's coming out soon
Thanks! @borkdude
The first user of the the new cljs.test support! https://github.com/nextjournal/clojure-mode/pull/60
I am SO excited for this. Many thanks!
oh! test support! sweet!
Hello everyone! I have been working on something for a few months, and it’s real enough to share now 😄
Introducing https://github.com/RegiByte/cljam: a modest Clojure dialect and interpreter + runtime built from the ground up in TypeScript. Designed to be embeddable in any JS/TS project, run as a standalone CLI, Vite plugin, or as an MCP server for LLMs. Supports Vitest as a native test runner.
Features:
• createSession(): eval strings, get values back clojure-spin
• embeddable nREPL server: Calva, CIDER, Cursive connect out of the box calva cider cursive
• Vite plugin with bidirectional .clj ↔️ .js/`.ts` interop, you get to literally import .clj files from JS and vice versa 🙏
• Faithful to Clojure semantics (to the best of my knowledge): vars, macros, protocols/records, multimethods, transducers, loop/recur, clojure.test
• Incremental compiler, hot paths compile to native JS closures
• Libraries (shipped separately): cljam-schema (malli-inspired), cljam-integrant (Integrant port), cljam-date and cljam-mcp
I don’t claim any novelty here, and I am definitely not a Clojure expert.
This is a learning project where I got to learn even more about the best language I’ve ever used, and I’m sure there are lots of things I got wrong. If you have any feedback, questions or suggestions, please let me know.
• Wrote up the full story here: https://regibyte.github.io/cljam/blog/building-cljam
• WebREPL Playground: https://regibyte.github.io/cljam/playground
• Install with npm install @regibyte/cljam and start using with cljam repl
Acknowledgments:
• Huge thanks to @pez for the support with Bencode and everything else, I could not have gotten this far without him 🙏 calva
• Thanks to everyone in the #beginners slack channel for answering my questions and helping me understand more about PL theory and language design trade-offs, it’s been a great learning experience.
I hope you have some fun cljamming today 🙏 Thanks for the attention! gratitude
Congratulations on the release! 🎉