Subject: Re: bug#26805: [PATCH] gs-fonts: add missing podule imports

From: [email-masked] (Ludovic Courtès)
Date: Thu, 11 May 2017 22:49:05 +0200

Hi!

Sergei Trofimovich <[email-masked]> skribis:

> On Wed, 10 May 2017 13:53:41 +0200
> [email-masked] (Ludovic Courtès) wrote:
>
>> What about adding (srfi srfi-1) to ‘%default-modules’ in (guix
>> build-system gnu)?  It’s generally useful anyway.
>> 
>> (Alternately, we could rename SRFI-1’s ‘delete’ in (guix build utils),
>> so we’d still be matching a literal, but we’d have problems in places
>> that use both (guix build utils) and (srfi srfi-1).)
>
> I'd personally say the less magic reexports - the better. It's ok to go
> through all of core-updates and fix missing imports.

I wouldn’t call it “magic”.  It’s just about providing a useful set of
bindings in ‘%default-modules’, to save typing essentially.

Also, for this ‘delete’ issue, I’m pretty sure we’re going to miss many
occurrences no matter what (same problem as with the ‘_’ binding from
(guix ui), which wasn’t resolved until I finally realized that renaming
it would have saved a lot of time…)

Note that there’s also the second solution above.

Thoughts?

> Would be nice the all those syntactic errors could be caught with something
> lighter-weight than full 'guix build'.

The problem is that this is “build-side code” and we can’t really tell
much about it until we’ve assembled it in on of those -guile-builder
files.

> I'm afraid I have no idea how symbol visibility works in guix as I'm
> still struggling to find which code builds and evaluates '*-guile-builder' files.
>
> For example what is the difference between
>     (use-modules ....
> and
>     (arguments '(#:modules
> ?

Hopefully the intro of the “G-Expressions” section can shed some light
on this, specifically on the build-side vs. host-side story.  Otherwise
let me know.  :-)

“(arguments '(#:modules …))” specifies modules in scope on the build
side.

HTH!

Ludo’.