[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] profiles: Generate GHC's package database cache.
From: |
Ludovic Courtès |
Subject: |
Re: [PATCH] profiles: Generate GHC's package database cache. |
Date: |
Sun, 05 Apr 2015 22:06:04 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
Federico Beffa <address@hidden> skribis:
> From dfe3b875267731006512b8a9803aaa56f07db12e Mon Sep 17 00:00:00 2001
> From: Federico Beffa <address@hidden>
> Date: Sat, 4 Apr 2015 22:51:13 +0200
> Subject: [PATCH] profiles: Generate GHC's package database cache.
>
> * guix/profiles.scm (ghc-package-cache-file): New procedure.
> (profile-derivation): Add 'ghc-package-cache?' keyword argument. If true
> (the default), add the result of 'ghc-package-cache-file' to 'inputs'.
> * guix/scripts/package.scm (guix-package)[process-actions]: Pass
> #:ghc-package-cache? to 'profile-generation'.
> * tests/packages.scm ("--search-paths with pattern"): Likewise.
> * tests/profiles.scm ("profile-derivation"): Likewise.
LG, but...
> On Sun, Apr 5, 2015 at 7:21 AM, Mark H Weaver <address@hidden> 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.
All good points.
> 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))))
I think that would do.
Eventually we could think of more sophisticated way to determine whether
to trigger a given “hook” (info-dir, ca-certificates, ghc.) Perhaps
this ‘ghc-package-cache-file’ procedure could be added as an
‘environment-hook’ field of the ghc package and it would be triggered
iff GHC is installed. (This approach would work well for GHC, but not
for info-dir or ca-certificates, though.)
>> 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.
I think this is fine. A similar hook could be added for Hugs if/when we
see fit and presumably they would not interfere.
Thoughts?
Thanks,
Ludo’.
- [PATCH] profiles: Generate GHC's package database cache., Federico Beffa, 2015/04/04
- Re: [PATCH] profiles: Generate GHC's package database cache., Mark H Weaver, 2015/04/05
- Re: [PATCH] profiles: Generate GHC's package database cache., Federico Beffa, 2015/04/05
- Re: [PATCH] profiles: Generate GHC's package database cache., Mark H Weaver, 2015/04/05
- Re: [PATCH] profiles: Generate GHC's package database cache., Federico Beffa, 2015/04/05
- Re: [PATCH] profiles: Generate GHC's package database cache., Federico Beffa, 2015/04/06
- Re: [PATCH] profiles: Generate GHC's package database cache., Mark H Weaver, 2015/04/06
- Re: [PATCH] profiles: Generate GHC's package database cache., Federico Beffa, 2015/04/06
- Re: [PATCH] profiles: Generate GHC's package database cache., Ludovic Courtès, 2015/04/06
- Re: [PATCH] profiles: Generate GHC's package database cache., Alexandre Héaumé, 2015/04/10
Re: [PATCH] profiles: Generate GHC's package database cache.,
Ludovic Courtès <=