diff options
author | Shea Levy <shea@shealevy.com> | 2018-02-08T16·26-0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2018-02-08T17·44-0500 |
commit | 88cd2d41acb994684a3e4ead1b1676019f43b4b6 (patch) | |
tree | 7385aefa5755fd27983f3260b69020acef6de170 /doc | |
parent | f201b7733e22cc236a41093a88cc789239d994bd (diff) |
Add plugins to make Nix more extensible.
All plugins in plugin-files will be dlopened, allowing them to statically construct instances of the various Register* types Nix supports.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/manual/command-ref/conf-file.xml | 27 | ||||
-rw-r--r-- | doc/manual/release-notes/rl-2.0.xml | 7 |
2 files changed, 34 insertions, 0 deletions
diff --git a/doc/manual/command-ref/conf-file.xml b/doc/manual/command-ref/conf-file.xml index fff7994f28df..cede6db3cea7 100644 --- a/doc/manual/command-ref/conf-file.xml +++ b/doc/manual/command-ref/conf-file.xml @@ -742,6 +742,33 @@ builtins.fetchurl { </varlistentry> + <varlistentry xml:id="conf-plugin-files"> + <term><literal>plugin-files</literal></term> + <listitem> + <para> + A list of plugin files to be loaded by Nix. Each of these + files will be dlopened by Nix, allowing them to affect + execution through static initialization. In particular, these + plugins may construct static instances of RegisterPrimOp to + add new primops to the expression language, + RegisterStoreImplementation to add new store implementations, + and RegisterCommand to add new subcommands to the + <literal>nix</literal> command. See the constructors for those + types for more details. + </para> + <para> + Since these files are loaded into the same address space as + Nix itself, they must be DSOs compatible with the instance of + Nix running at the time (i.e. compiled against the same + headers, not linked to any incompatible libraries). They + should not be linked to any Nix libs directly, as those will + be available already at load time. + </para> + </listitem> + + </varlistentry> + + </variablelist> </para> diff --git a/doc/manual/release-notes/rl-2.0.xml b/doc/manual/release-notes/rl-2.0.xml index 32cdb1d0cefc..effd2e39d309 100644 --- a/doc/manual/release-notes/rl-2.0.xml +++ b/doc/manual/release-notes/rl-2.0.xml @@ -389,6 +389,13 @@ configureFlags = "--prefix=${placeholder "out"} --includedir=${placeholder "dev" </para> </listitem> + <listitem> + <para> + Nix can now be extended with plugins. See the documentation of + the 'plugin-files' option for more details. + </para> + </listitem> + </itemizedlist> <para>Some features were removed:</para> |