guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 6/7] guix build: Add 'build-package'.


From: Alex Kost
Subject: Re: [PATCH 6/7] guix build: Add 'build-package'.
Date: Wed, 19 Aug 2015 23:50:54 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Ludovic Courtès (2015-08-18 17:15 +0300) wrote:

> Alex Kost <address@hidden> skribis:
>
>> * guix/scripts/build.scm (build-package): New procedure.
>
> [...]
>
>> +(define (build-package package . build-options)
>> +  "Build PACKAGE using BUILD-OPTIONS."
>> +  (with-store store
>> +    (let* ((drv (run-with-store store
>> +                  (package->derivation package)))
>> +           (drvs (list drv)))
>> +      (apply set-build-options store build-options)
>> +      (show-what-to-build store drvs)
>> +      (build-derivations store drvs)
>> +      (show-derivation-outputs drv))))
>
> I think this doesn’t fit here because it isn’t actually used by ‘guix
> build’.  Maybe keep it in emacs/ for now?

If you mean "guix-main.scm", I don't think it's the right place either,
as all this guix-devel stuff does not depend on Guix REPL (or on any
code from "guix-main.scm" in general).  Besides, "guix-main.scm" doesn't
provide a module.

What about making some additional module?: (guix devel) or something.
Other similar code may be put there in future.  For example, you are
editing a package definition and you may want to download the current
origin source.  It will probably also require some specific scheme code,
which may be added to that module.

> Also, it’s best to call ‘set-build-options’ before anything else, to
> make sure all the options are taken into account.

OK

> Bonus points for making it all monadic-style:
>
>   (mbegin %store-monad
>     (set-build-options* opts)
>     (mlet* %store-monad ((drv  (package->derivation))
>                          (drvs (list drv)))
>       (mbegin %store-monad
>         (show-what-to-build* drvs)
>         (built-derivations drvs)
>         (return (show-derivation-outputs drv)))))
>
> and (define set-build-options* (store-lift set-build-options)) in
> (guix store).
>
> WDYT?

OK, I'll look at it.  I suppose adding 'set-build-options*' to (guix
store) should be done in a separate commit, right?

-- 
Alex



reply via email to

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