[Nix-dev] A standard function to handle deps
Evgeny Egorochkin
phreedom.stdin at gmail.com
Wed Jun 23 17:32:42 CEST 2010
On Monday 21 June 2010 19:23:46 Marc Weber wrote:
> Hi Evgeny Egorochkin,
>
> > I propose to add a standard function like this:
> >
> > optionalInput =
> >
> > cond: elem: assert cond -> elem != null; if cond then [elem] else [];
> >
> > This removes a good deal of asserts clutter and is easy enough to use so
> > that maintainers will actually specify asserts as a byproduct instead of
> > letting things fail at buildtime or silently not compile in the needed
> > functionality.
>
> Just some more ways:
>
> A)
> buildInputs = nullGuard [ null ]; // guard fails if one element is null.
> Probably nullGuard does not exist yet.
>
> B) remove the "? null" in the arg list. Assume that null is never
> passed. Usually the option is passed. Then also remove the
> assertion because you assume that null is never passed.
>
> Usually you should keep code as is unless there is reason to change it.
> That's how I think about it.
I did indeed miss the fact that you can pass var=null and that asserts only
for optional vars aren't enough.
So how about adding a "nullGuard" to stdenv.mkDerivation? It isn't going to
affect a single working package but would help to catch errors early.
--
Evgeny
More information about the nix-dev
mailing list