Federico Beffa <be...@ieee.org> writes:

> On Sun, Apr 5, 2015 at 7:21 AM, Mark H Weaver <m...@netris.org> wrote:
>> I believe this will require GHC to build *any* non-empty profile.  Since
>> GHC is only available on Intel platforms, this will break profile
>> building on MIPS and ARM.
>>
>> Even on Intel platforms, I don't want to have to install GHC to build
>> profiles that don't contain any Haskell packages, especially since it
>> involves trusting the upstream binaries from GHC.
>
> Good point. Would this check be satisfactory for you?
>
>   ;; Don't depend on GHC when there's nothing to do.
>   (if (any (cut string-prefix? "ghc" <>)
>            (map manifest-entry-name (manifest-entries manifest)))
>       (gexp->derivation "ghc-package-cache" build
>                         #:modules '((guix build utils))
>                         #:local-build? #t)
>       (gexp->derivation "ghc-package-cache" #~(mkdir #$output))))

Sure, this would be fine, although I wonder if we could replace the
'string-prefix?' with 'string=?'.  If so, the conditional could be
changed to:

  (if (member "ghc" (map manifest-entry-name (manifest-entries manifest)))
      ...)

What do you think?

>> What if I want to use Hugs instead, or some other Haskell implementation
>> that is capable of being bootstrapped from source code.  Is GHC the only
>> tool that can do this job?
>
> As far as I know, the library database is compiler specific. Here we
> are handling GHC only.

Okay, makes sense.

    Thank you!
       Mark

Reply via email to