[Nix-dev] Re: Python `setuptools' reverted to `builderDefs'

Ludovic Courtès ludo at gnu.org
Tue May 26 00:52:43 CEST 2009


Hello,

Michael Raskin <7c6f434c at mail.ru> writes:

>> The `setuptools' expression based on `stdenv' could still be called with
>> `python = pythonFull' or `python = pythonBase'.  What difference does it
>> make to use `builderDefs' here?
>
> Well, you need some special-casing that way to do it without full
> argument list repetition in one place or another.

With parameter currying, it can be handled pretty easily IMO.

>> If `builderDefs' has features that are a noticeable improvement over
>> `stdenv', then I think we should discuss them, one-by-one, and see how
>> to integrate them in (or merge them with) `stdenv'.  Having two package
>> styles as different as `stdenv' and `builderDefs' just doesn't sound
>> right to me.  I would prefer more homogeneity.
>
> It is currently impossible. If we have a static builder and influence
> its behavior with environment variables, we are bound to rebuild
> everything once that magic script changes. That also means that direct
> incorporation of features in the script is slowed down. This also puts a
> limit on overrides.

In practice, I haven't found it a serious limitation.

Do you have practical use cases where `stdenv' is limiting?

I remember you citing the addition of a new compression format to the
standard build script as one thing that would require a full rebuild
when added to `stdenv', whereas `builderDefs' can be extended without
incurring a full rebuild.  That's admittedly an improvement, but not a
compelling one in practice, IMO.

Thanks,
Ludo'.



More information about the nix-dev mailing list