<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nixos/nixpkgs.git/lib/default.nix, branch staging.patchShebangs</title>
<subtitle>Nix Packages collection</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/nixos/nixpkgs.git/'/>
<entry>
<title>Add some primops to lib</title>
<updated>2013-11-12T12:48:30+00:00</updated>
<author>
<name>Eelco Dolstra</name>
<email>eelco.dolstra@logicblox.com</email>
</author>
<published>2013-11-12T12:48:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/nixos/nixpkgs.git/commit/?id=785eaf2cea3c57daef96bb209f44589e3f48a7ff'/>
<id>785eaf2cea3c57daef96bb209f44589e3f48a7ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Big cleanup of the NixOS module system</title>
<updated>2013-10-28T21:45:55+00:00</updated>
<author>
<name>Eelco Dolstra</name>
<email>eelco.dolstra@logicblox.com</email>
</author>
<published>2013-10-27T23:56:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/nixos/nixpkgs.git/commit/?id=0e333688cea468a28516bf6935648c03ed62a7bb'/>
<id>0e333688cea468a28516bf6935648c03ed62a7bb</id>
<content type='text'>
The major changes are:

* The evaluation is now driven by the declared options.  In
  particular, this fixes the long-standing problem with lack of
  laziness of disabled option definitions.  Thus, a configuration like

    config = mkIf false {
      environment.systemPackages = throw "bla";
    };

  will now evaluate without throwing an error.  This also improves
  performance since we're not evaluating unused option definitions.

* The implementation of properties is greatly simplified.

* There is a new type constructor "submodule" that replaces
  "optionSet".  Unlike "optionSet", "submodule" gets its option
  declarations as an argument, making it more like "listOf" and other
  type constructors.  A typical use is:

    foo = mkOption {
      type = type.attrsOf (type.submodule (
        { config, ... }:
        { bar = mkOption { ... };
          xyzzy = mkOption { ... };
        }));
    };

  Existing uses of "optionSet" are automatically mapped to
  "submodule".

* Modules are now checked for unsupported attributes: you get an error
  if a module contains an attribute other than "config", "options" or
  "imports".

* The new implementation is faster and uses much less memory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The major changes are:

* The evaluation is now driven by the declared options.  In
  particular, this fixes the long-standing problem with lack of
  laziness of disabled option definitions.  Thus, a configuration like

    config = mkIf false {
      environment.systemPackages = throw "bla";
    };

  will now evaluate without throwing an error.  This also improves
  performance since we're not evaluating unused option definitions.

* The implementation of properties is greatly simplified.

* There is a new type constructor "submodule" that replaces
  "optionSet".  Unlike "optionSet", "submodule" gets its option
  declarations as an argument, making it more like "listOf" and other
  type constructors.  A typical use is:

    foo = mkOption {
      type = type.attrsOf (type.submodule (
        { config, ... }:
        { bar = mkOption { ... };
          xyzzy = mkOption { ... };
        }));
    };

  Existing uses of "optionSet" are automatically mapped to
  "submodule".

* Modules are now checked for unsupported attributes: you get an error
  if a module contains an attribute other than "config", "options" or
  "imports".

* The new implementation is faster and uses much less memory.
</pre>
</div>
</content>
</entry>
<entry>
<title>Manual: When building from the channel, link to the exact Git revision</title>
<updated>2013-10-24T00:03:10+00:00</updated>
<author>
<name>Eelco Dolstra</name>
<email>eelco.dolstra@logicblox.com</email>
</author>
<published>2013-10-24T00:02:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/nixos/nixpkgs.git/commit/?id=d49f141a7937399fd2feeffa37eb9726d84d0e31'/>
<id>d49f141a7937399fd2feeffa37eb9726d84d0e31</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move pkgs/lib/ to lib/</title>
<updated>2013-10-10T11:28:21+00:00</updated>
<author>
<name>Eelco Dolstra</name>
<email>eelco.dolstra@logicblox.com</email>
</author>
<published>2013-10-10T11:28:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/nixos/nixpkgs.git/commit/?id=5fef92c4a0c91153e3edac3a61a232581765074a'/>
<id>5fef92c4a0c91153e3edac3a61a232581765074a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
