[Nix-dev] Re: NixOS: New scheme

Nicolas Pierron nicolas.b.pierron at gmail.com
Tue Nov 18 23:31:58 CET 2008


On Tue, Nov 18, 2008 at 22:38, Ludovic Courtès <ludo at gnu.org> wrote:
> Hello,
>
> "Nicolas Pierron"
> <nicolas.b.pierron at gmail.com> writes:
>
>> On Tue, Nov 18, 2008 at 16:22, Ludovic Courtès <ludo at gnu.org> wrote:
>>> Hello!
>>>
>>> "Nicolas Pierron"
>>> <nicolas.b.pierron at gmail.com> writes:
>>>
>>>> This mail is a draft about the description of the new writing style.
>>>
>>> I'm afraid I didn't get the whole point, partly because "New scheme" or
>>> "new writing style" is not very descriptive IMO.
>>
>> True, may be we should call it the "fix style".
>
> Sorry, I don't understand the meaning of "the fix style" either.
>
> For me, the question is: what problem are you trying to solve?

I am trying to simplify NixOS to be easily extended by end-user.
Therefore I am trying to get rid of long list concatenation that are
only extendable by a bit of understandable code.  The simplest syntax
which is clear and understandable is the syntax uses to configure an
entire computer with a few lines.

>>> I agree that it makes it slightly more simple to write an Upstart jobs.
>>> However, I think that passing `pkgs' and `config' to every single job is
>>> too coarse-grain, and it breaks the principle of least authority.  I
>>> would feel more at ease if Upstart jobs were passed only what they
>>> really need (which is roughly what the so-called "old scheme" does).
>>
>> One problem with the "old scheme" is that you need to add extra stuff
>> everywhere when you want a bit of freedom.  True freedom is not a good
>> solution as explained in the principle of least authority. [1]  I
>> think a good solution have some kinds of scopes.  So we have to
>> distinguish 2 terms "require" and "inherit". (this is just an idea)
>
> IMO functions are a sufficient abstraction, with clear scoping rules: a
> function can access anything that was passed as an argument, nothing
> else (`import' aside).  Implementing "ambient authority" by passing all
> Upstart jobs `pkgs' and `config', and then trying to restrict that
> authority (which is what you propose, AIUI) seems more complicated than
> just conveying just as much authority as is needed.
>
>> I've presented this to Eelco some months ago, but Eelco is not
>> everybody ... So I will probably create a branch in NixOS to continue
>> this work.
>
> You mean it was presented off-line, e.g., in a face-to-face meeting?

Yes.

> Now, don't misunderstand me.  I agree that the "old scheme" could be
> improved, most notably by centralizing things that pertain to the same
> Upstart job, rather than spread options, code, etc., over several files.
> But I'm not sure that it's what you're trying to solve.

That is one part of what I am doing.  I am trying to get rid of
unmaintainable/unextendable things which includes what you have
mentioned.

-- 
Nicolas Pierron
http://www.linkedin.com/in/nicolasbpierron
- If you are doing something twice then you should try to do it once.



More information about the nix-dev mailing list