diff mbox series

[bug#52505,2/2] doc: Mention how to remedy "source file ... newer than compiled error".

Message ID 20211215112040.25851-2-jgart@dismail.de
State Accepted
Headers show
Series [bug#52505,1/2] doc: Explain the use of make clean-go when an ABI mismatch occurs. | expand

Commit Message

jgart Dec. 15, 2021, 11:20 a.m. UTC
From: Guix Together <jgart@dismail.de>

* doc/contributing.texi (Running Guix Before It Is Installed): Mention
how to remedy "source file ... newer than compiled" error by running
`make -j`.

Co-authored-by: jgart <jgart@dismail.de>
Co-authored-by: Julien Lepiller <julien@lepiller.eu>
Co-authored-by: Ryan Prior <rprior@protonmail.com>
Co-authored-by: Blake Shaw <blake@nonconstructivism.com>
---
 doc/contributing.texi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Simon Tournier Dec. 15, 2021, 12:39 p.m. UTC | #1
Hi,

On Wed, 15 Dec 2021 at 12:36, jgart via Guix-patches via
<guix-patches@gnu.org> wrote:
>
> From: Guix Together <jgart@dismail.de>
>
> * doc/contributing.texi (Running Guix Before It Is Installed): Mention
> how to remedy "source file ... newer than compiled" error by running
> `make -j`.
>
> Co-authored-by: jgart <jgart@dismail.de>
> Co-authored-by: Julien Lepiller <julien@lepiller.eu>
> Co-authored-by: Ryan Prior <rprior@protonmail.com>
> Co-authored-by: Blake Shaw <blake@nonconstructivism.com>
> ---
>  doc/contributing.texi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)

Cool!


> +the message by running @command{make -j}. Until you do, Guile will run

[...]

> +@command{watchexec -w gnu/packages make -j}.

Personally, I would not recommand inside the manual the command "make
-j", but instead "make" or "make -j4" (4 or whatever number); as it
was done in "guix environment" section [1].

1: <https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-environment>


Cheers,
simon
Nicolas Goaziou Dec. 15, 2021, 1:14 p.m. UTC | #2
Hello,

jgart via Guix-patches via <guix-patches@gnu.org> writes:

> +This is only a note and you can safely ignore it. You can get rid of
> +the message by running @command{make -j}. Until you do, Guile will run
> +slightly slower because it will interpret the code instead of using
> +prepared Guile object (@code{.go}) files.

@code{.go} -> @file{.go}

> +You can run @command{make} automatically as you work using
> +@command{watchexec} from the @code{watchexec} package.

I'm not sure about the policy for the packages (assuming there is one).
I think @code{watchexec} should be used for the Guix variable containing
the package, and capitalized Watchexec may be appropriate for the
package name, which may not be the same as the variable.

Anyway, I'm just thinking out loud. In this situation.

> For example, to build again each time you update a package file, you
> can run +@command{watchexec -w gnu/packages make -j}.

According to the Texinfo manual, entire shell commands may use @samp.
@command is for the command name. Thus:

@command{watchexec -w gnu/packages make -j} -> @samp{watchexec -w gnu/packages make -j}

Regards,
diff mbox series

Patch

diff --git a/doc/contributing.texi b/doc/contributing.texi
index 1bcb550aac..fa8dd376d2 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -243,6 +243,24 @@  local source tree; it simply updates the @file{~/.config/guix/current}
 symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if
 you want to upgrade your local source tree.
 
+Sometimes, especially if you have recently updated your repository,
+running @command{./pre-inst-env} will print a message similar to the
+following example:
+
+@example
+;;; note: source file /home/user/projects/guix/guix/progress.scm
+;;;       newer than compiled /home/user/projects/guix/guix/progress.go
+@end example
+
+This is only a note and you can safely ignore it. You can get rid of
+the message by running @command{make -j}. Until you do, Guile will run
+slightly slower because it will interpret the code instead of using
+prepared Guile object (@code{.go}) files.
+
+You can run @command{make} automatically as you work using
+@command{watchexec} from the @code{watchexec} package. For example,
+to build again each time you update a package file, you can run
+@command{watchexec -w gnu/packages make -j}.
 
 @node The Perfect Setup
 @section The Perfect Setup