14 April 2022
Alex Miller
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)
I mentioned back in the April 1st Deref that we’d had a couple reports with 1.11 where Clojure code compiled with a prior version of Clojure with functions overlapping newly added functions in 1.11 had failed when run without recompilation on 1.11. (Notably, this is not a new issue, just one we are seeing now by adding a function name abs
in clojure.core that is relatively common.) Recompiling is sufficient to get past the issue, but we want to actually fix this problem for future releases. Fogus has spent a couple weeks now diving into the details and it mostly centers around refer
and some subtle differences in ordering behavior between AOT compiled Clojure and loaded Clojure source. There have been several changes over the life of Clojure trying to address these differences, but I’m convinced we did not truly understand the problem in most of those cases and created workarounds instead of actual fixes. Anyhow, Fogus is continuing to work on this.
Among other things, I’ve been most recently looking into the reducibility and iterability of seqs over persistent collections. In most cases, these (unnecessarily) lose the context of their original (immutable) source. I’ve done an exhaustive review of this and I’m working towards a tidy set of improvements that should benefit reduce
(and things built on reduce
like into
, transduce
, etc) in a lot of cases. Hope to have a public ticket and patch for this work soon.
Wilker Lucio - Cognicast Episode 168 - Cognicast
:pez (Peter Strömberg distills CIDER to make Calva) - Lost in Lambduhhs podcast
E68 Vouch with Anthony Maley - ClojureStream Podcast
Clojure visual-tools meeting 5 - Sci Cloj
Biff demo: getting started, deployment, developing in prod - Jacob O’Bryant
Getting Started with Clojure and GraphQL - Vishal Gautam
Meetup: Collaborative Learning - Reveal - Los Angeles Clojure User’s Group
Meetup: Collaborative Learning - Portal - Los Angeles Clojure User’s Group
Typed Clojure 1.0.27 - Check your programs without depending on typedclojure! - Ambrose Bonnaire-Sergeant
Starting your Computer Music Journey with Clojure and Overtone in Emacs - Savo Djuric
Clojurists Together March 2022 Monthly Update - Alyssa Parado
Using clojure from Windows - Serafeim Papastefanos
Using EC2 to enhance k6 load tests - Daniel Fitzpatrick
New releases and tools this week:
charred 1.002 - zero dependency efficient read/write of json and csv data
http-cron 0.2.1 - Service / Clojure library to POST to HTTP endpoints at regular intervals
plusinia 1.23 - Solution to N+1 problem in Lacinia
clj-fast 0.0.11 - Unpredictably faster Clojure
clojure-deps-edn - User level aliases and Clojure CLI configuration for deps.edn based projects
nbb 0.3.5 - ad-hoc scripting for Clojure on Node.js
matcho 0.1.1 - Simpliest pattern matching you’ve ever seen
hermes 0.10.533 - terminology tools to support SNOMED CT, cross-maps, inference, fast full-text search, autocompletion, compositional grammar and the expression constraint language
clarktown 1.1 - An extensible and modular zero-dependency, pure-Clojure Markdown parser
lsp4clj 0.0.1 - LSP base support for any LSP that is implemented in Clojure
byte-streams 0.3.0 - A simple way to handle the menagerie of Java byte representations
tools.project 0.1.71 - A project management tool
macrocss 0.1.0 - Macro-driven atomic CSS library for Clojure(Script)
clj-otel 0.1.2 - An idiomatic Clojure API for adding telemetry to your libraries and applications using OpenTelemetry
fulcro 3.5.18 - A library for development of single-page full-stack web applications in clj/cljs
Calva 2.0.267 - Clojure & ClojureScript Interactive Programming for VS Code
jet 0.1.1 - CLI to transform between JSON, EDN and Transit, powered with a minimal query language
rewrite-edn 0.2.0 - Utility lib on top of rewrite-clj with common operations to update EDN while preserving whitespace and comments