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