Subject: [bug#56604] [PATCH 0/8] Update Clojure to 1.11.1.

From: r0man <[email-masked]>
Date: Sat, 16 Jul 2022 20:17:34 +0200

Hello Guix,

This patch series updates Clojure and it's packages to 1.11.1.

It also adds the 'reset-class-timestamps phase to the Clojure build system.

This phase makes sure the timestamp of compiled class files is set to a later
point in time than the timestamp of the corresponding Clojure source files. If
the timestamps of the class and source files are the same, the Clojure
compiler will compile the sources again which can lead to issues. This problem
has been discussed here [1]. The suggested solution was to keep/adjust the
timestamps of the class files.

[1] https://www.mail-archive.com/[email-masked]/msg99928.html

Could you please review this?

In the patch for clojure-instaparse, I disabled the AOT compilation because of
a known issue. Is that ok?

Btw, I was a bit surprised that in Guix Clojure packages are AOT compiled. The
general wisdom in the Clojure community seems to be to avoid AOT compilation
when distributing libraries, and only AOT compiling Uberjars for final
deployment. Due to issues like I mentioned in clojure-instaparse.

Are we sure that AOT compiling all Clojure source files by default is a good
idea, instead of just compiling user declared namespaces which Leiningen and
friends are doing? WDYT?

Thanks Roman.

r0man (8):
  gnu: clojure-tools-cli: Update to 1.0.206.
  gnu: clojure-tools-gitlibs: Update to 2.4.181.
  gnu: clojure-tools-deps-alpha: Update to 0.14.1212.
  gnu: clojure-tools: Update to 1.11.1.1149.
  gnu: clojure: Update to 1.11.1.
  gnu: clojure-algo-generic: Fix test failing under AOT in Clojure 1.11.1.
  gnu: clojure-core-match: Update to 1.0.0.
  gnu: clojure-instaparse: Update to 1.4.12 (disabled AOT).

 gnu/packages/clojure.scm            | 185 +++++++++++++++++++---------
 guix/build/clojure-build-system.scm |  53 +++++++-
 2 files changed, 178 insertions(+), 60 deletions(-)

--
2.36.1