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