diff --git a/src/libexpr/eval-settings.hh b/src/libexpr/eval-settings.hh index dbfc3b2c7767..300f6d37275d 100644 --- a/src/libexpr/eval-settings.hh +++ b/src/libexpr/eval-settings.hh @@ -19,18 +19,18 @@ struct EvalSettings : Config Enable built-in functions that allow executing native code. In particular, this adds: - - `builtins.importNative` *path* - - Load a dynamic shared object (DSO) at *path* which exposes a function pointer to a procedure that initialises a Nix language value, and return that value. + - `builtins.importNative` *path* *symbol* + Runs function with *symbol* from a dynamic shared object (DSO) at *path*. + This may be used to add new primitive functions to the Nix language, that may not be possible to express within the language itself. The procedure must have the following signature: ```cpp extern "C" typedef void (*ValueInitialiser) (EvalState & state, Value & v); - ``` - + ``` + The [Nix C++ API documentation](@docroot@/contributing/documentation.md#api-documentation) has more details on evaluator internals. - + - `builtins.exec` *arguments* - + Execute a program, where *arguments* are specified as a list of strings, and parse its output as a Nix expression. )"};