On Fri, Sep 12, 2025 at 8:58 AM Maxim Cournoyer <ma...@guixotic.coop> wrote:
> > 1) The issues with Guile and Autotools need to be outlined: a) Guile
> > wants to install both source and compiled files b) Guile is
> > second-class to Autotools (say, unlike C) and c) the mtime issue with
> > the .scm.go rule that currently requires a "hack" to fix on Autotools.
> > To be specific, I'm talking about Automake too when I mention
> > Autotools. The examples in the manual only consider Autoconf.
> > 2) More examples need to be included, both as snippets in the manual
> > and full examples in the GNU Guile distribution.
> > 3) The meta/guile.m4 file has issues that need fixing, for instance
> > GUILE_SITE is a hardcoded path that disallows the use of --prefix.
>
> What is the mtime issue with .scm.go? I don't think I've encountered a
> problem with it. Anyway, this all sounds very useful to document and/or
> fix, so I'd encourage you to work on it.

Briefly, imagine that the user installs /usr/bin/foo which is a Guile
script, with corresponding .go file which is in the ccache. When
executed for the first time, unless the installation preserved the
mtime of the ccache object to be larger than of the script, it will be
recompiled. In Automake, you might try to control the mtime of
installed targets by introducing a dependency of one target on the
other. In Automake, there are various implicit behaviors for rules for
make targets. One of these implicit behaviors erases the install
target entirely if you mention it by name (assuming you want complete
control). To get around this behavior, you can use one-step
indirection (introducing a variable holding the name of the rule),
which prevents Automake from performing this implicit behavior. This
trick relies on unstable generated target names (but 15 years since
and still works fine; the maintainer said the behavior would very
likely remain unchanged.)

I would like to know that a maintainer is on board with me working on
these, otherwise I won't spend the time on it. It's happened before
that I spent time on a patch that the maintainer (of some other
project, not Guile) did not want.

Regards,
Nikolaos Chatzikonstantinou

Reply via email to