From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Maxime Devos <maximedevos@telenet.be>
Cc: 57121@debbugs.gnu.org
Subject: bug#57121: clojure-build-system fails to compile -- backtrace from language/tree-il/peval.scm
Date: Sat, 27 Aug 2022 11:53:53 -0400 [thread overview]
Message-ID: <87tu5xbs32.fsf@gmail.com> (raw)
In-Reply-To: <ae2686e0-0ad3-1ae6-cfae-9340e5b6868b@telenet.be> (Maxime Devos's message of "Tue, 23 Aug 2022 11:07:39 +0200")
Hi Maxime,
Maxime Devos <maximedevos@telenet.be> writes:
> On 23-08-2022 06:06, Maxim Cournoyer wrote:
>> Hi Maxime,
>>
>> Maxime Devos<maximedevos@telenet.be> writes:
>>
>>> On 22-08-2022 17:32, Maxim Cournoyer wrote:
>>>>> 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
>>>> If a module imports a different module, and that module changes, even if
>>>> it's macro, Guile should not blindly reuse the stale .go like it
>>>> currently does. It should complain and evaluate from source instead.
>>>>
>>>> That would cover the base and avoid breakage. After, if it known how to
>>>> do that, yes, it seems it'd be useful to have something similar to 'gcc
>>>> -M' to provide the needed intelligence to the build system.
>>>>
>>>> Does that make sense?
>>> Sounds reasonable, though we could go for something less general in
>>> Guix first.
>> I'd rather avoiding adding more complexity in Guix if it can be fixed
>> upstream; where it'd benefit everyone most.
>
> It cannot be solved upstream, this is not a pure Guile matter but also
> a build system matter. Even if this the 'if that module changes, it
> ... should evaluate from source' was implemented, the build system
> still needs to know to compile the module.
OK. I'd welcome fixing as much of it as possible in Guile, then adding
the Guix-specific bits on top of it. We already carry a bit too many
things in Guix that could be in Guile proper, in my opinion.
> More concretely, build-aux/compile-all.scm uses the following to
> determine what needs to be recompiled:
>
>> (define (file-needs-compilation? file)
>> (let ((go (scm->go file)))
>> (or (not (file-exists? go))
>> (file-mtime<? go file))))
> --- just interpreting imported modules that have changed doesn't cause
> the importing module to be recompiled.
>
[...]
OK, I see that since we already implement such mechanism in Guix, it's
on our shoulders to fix it there. I'm changing my mind but with what I
said above (as much of the fix to go in Guile, the rest on top in Guix).
Thank you,
Maxim
prev parent reply other threads:[~2022-08-27 15:56 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-10 16:59 bug#57121: clojure-build-system fails to compile -- backtrace from language/tree-il/peval.scm Maxime Devos
2022-08-10 17:42 ` Maxime Devos
2022-08-19 20:37 ` Maxim Cournoyer
2022-08-19 20:58 ` Maxime Devos
2022-08-22 15:32 ` Maxim Cournoyer
2022-08-22 18:10 ` Maxime Devos
2022-08-23 4:06 ` Maxim Cournoyer
2022-08-23 9:07 ` Maxime Devos
2022-08-27 15:53 ` Maxim Cournoyer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tu5xbs32.fsf@gmail.com \
--to=maxim.cournoyer@gmail.com \
--cc=57121@debbugs.gnu.org \
--cc=maximedevos@telenet.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).