Subject: Re: bug#56604: [PATCH 0/8] Update Clojure to 1.11.1.
From: Ludovic Courtès <[email-masked]>
To: r0man <[email-masked]>
Cc: [email-masked]
Date: Sat, 23 Jul 2022 00:11:05 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

r0man <[email-masked]> skribis:

> 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.

Sounds reasonable.  It’s a bummer though that the whole phase is pasted
from ant-build-system.scm, the only difference being the timestamps
(1980 instead of 1970).

I added a TODO comment in clojure-build-system.scm when applying the
patch.  Could you follow up with a patch to factorize that?

> 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?

Not much, but as you might have seen in ./etc/teams.scm, the project is
finally being structured as teams.  There’s an opportunity for you to
start a Clojure team and to take the lead!  :-)

As a first step, I’d recommend getting in touch with people who have
worked on ‘clojure-build-system’ and packaged things in the past.

>   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).

I adjusted all the commit logs to follow our conventions; please
consider doing this next time:

  https://guix.gnu.org/manual/devel/en/html_node/Submitting-Patches.html

The instaparse patch missed the hash update so I did that too.

Thanks!

Ludo’.