unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
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




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