Subject: bug#57121: clojure-build-system fails to compile -- backtrace from language/tree-il/peval.scm

From: Maxime Devos <[email-masked]>
Date: Fri, 19 Aug 2022 22:58:48 +0200

On 19-08-2022 22:37, Maxim Cournoyer wrote:

> Hi Maxime.
>
> Maxime Devos <[email-masked]> writes:
>
>> Can't reproduce after touching java-utils.scm.
> I got this issue a couple times too.  I attributed it (without analysis)
> to Guile's failure to keep track of changes to macro expanded code.

It might be inlining. I don't see how macro expansion matters here. I 
think it's dependency tracking in general.

> More like something to track on the side of Guile, I would think.

I had a patch for build-aux/compile-all.scm that adds a form of 
dependency tracking: <https://issues.guix.gnu.org/50384>. If we teach it 
about (define-module (foo) #:use-module (bar)) --> (bar) is a dependency 
of (foo) (using parts of source-module-closure?) (and drop the 
search-patch things), then it seems solved to me.

As there is a known path to a solution, I wouldn't close this.

These patches are for Guix' build system.  I don't see anything that 
could be done on the Guile side, except for eventually migrating some 
dependency tracking stuff over to Guile -- "gcc" has an -M option to use 
in combination with "make", maybe Guile could have something similar.  
Actually acting on the dependency information (which is part of the 
patches) isn't something Guile can do, that seems more something for 
"make" (when using Autotools and not like how Guix uses Autotools), 
guile-build-system or build-aux/compile-all.scm to me.

> I'd suggest to close it here, since it's not reproducible.

Just wait a few months or something, it keeps popping up -- I have 
encountered this one some time in the past.

Also, non-determinism failures (which is a cause of irreproducibility) 
are bugs in Guix.

Greetings,
Maxime