In this post I'll give updates about open source I worked on during March 2023.
But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors:
If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in the following ways. Thank you!
If you're used to sponsoring through some other means which isn't listed above, please get in touch.
On to the projects that I've been working on!
Experimental ClojureScript to ES6 module compiler
This month I've been preparing cherry as a compiler that you can embed in your existing CLJS / shadow-cljs applications. This makes cherry an additional alternative to SCI and self-hosted CLJS.
Read about embedding cherry into your application here.
I've been working on several PRs to include cherry as an additional evaluator in:
The Small Clojure Interpreter (SCI) integrated with emacs as a loadable module.
This is a new project by Jack Rusher and I've helped him with the SCI integration.
Transpile clojure to elisp. A brand new project to transpile Clojure to Elisp. It might be of value for those who know Clojure better than Elisp and want to have something to get started. It's far from complete. Try it in the playground here.
Make let-expressions REPL-friendly!
The deflet
macro lets your write inline-def expressions, while expanding those to regular let expressions, giving you the benefits of REPL-driven development without polluting production code with top level vars.
Native, fast starting Clojure interpreter for scripting
New release: 1.3.175 (2023-03-18)), 1.3.176 (2023-03-18)
Highlights:
The clojure.core.async/go
macro now uses virtual threads.
Many small fixes and upgrades.
See the complete CHANGELOG.
This is a JSON abstraction library that you can include in babashka and JVM projects while also including your own favorite JSON implementation. The idea is that babashka libraries can include this, while JVM projects don't have to switch their JSON implementation to cheshire.core.
I worked together with the maintainers of the following libraries to make them compatible with babashka:
Static analyzer and linter for Clojure code that sparks joy
New release: 2023.03.17
Some highlights:
{:ignore [:unresolved-symbol]}
or {:ignore true}
, valid in ns-metadata, :config-in-ns
, :config-in-call
:var-same-name-except-case
linter: warn when vars have names that differ only in case (important for AOT compilation and case-insensitive filesystems):jvm-opts
in top level of deps.edn
update
, update-in
, swap!
, swap-vals!
, send
, send-off
, and send-via
Check the changelog for details.
Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
New release: 0.7.39 (2023-03-07)
See changelog for more.
The following projects also got updates, mostly in the form of maintenance and performance improvements. This post would get too long if I had to go into detail about them, so I'll briefly mention them in random order:
These are (some of the) other projects I'm involved with but little to no activity happened in the past month.
Published: 2023-04-07
Tagged: clojure oss updates