guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Making substitute* throw an error if substition failed?


From: Ludovic Courtès
Subject: Re: Making substitute* throw an error if substition failed?
Date: Mon, 17 Oct 2016 10:50:36 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hi,

Ricardo Wurmus <address@hidden> skribis:

> it happened a couple of times already that a “substitute*” expression
> silently failed and I only found out about it when investigating the
> remains of a failing build (“guix build -K”).  This can easily happen
> when a package is updated and substitutions “anchors” no longer exist in
> the updated source code.
>
> Would it be desirable to change “substitute*” (or replace it) such that
> it throws an error or returns a value if substitution failed?

“Failed” as in “there were no pattern matches”, right?

> This might be helpful for the more complex packages with many
> substitutions.  If we make it return a value (#f for error) it would
> also make our build phases a little prettier, I think.  (Now we
> forcefully return #t in any case and that seems wrong.)

I like this idea.  Like others wrote, it could return #t if one or more
substitutions were made, and #f otherwise.

I think it’s better than throwing an error, because there are cases
where it doesn’t matter whether a substitution was made or not (e.g.,
when replacing strings en masse on a set of files.)

WDYT?

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]