Skip to content
Snippets Groups Projects
  1. Jul 11, 2014
  2. Jul 10, 2014
  3. Jul 09, 2014
  4. Jul 08, 2014
  5. Jul 04, 2014
  6. Jul 03, 2014
  7. Jun 27, 2014
  8. Jun 24, 2014
  9. Jun 17, 2014
    • Shea Levy's avatar
      Add importNative primop · 5cd022d6
      Shea Levy authored
      This can be used to import a dynamic shared object and return an
      arbitrary value, including new primops. This can be used both to test
      new primops without having to recompile nix every time, and to build
      specialized primops that probably don't belong upstream (e.g. a function
      that calls out to gpg to decrypt a nixops secret as-needed).
      
      The imported function should initialize the Value & as needed. A single
      import can define multiple values by creating an attrset or list, of
      course.
      
      An example initialization function might look like:
      
      extern "C" void initialize(nix::EvalState & state, nix::Value & v)
      {
          v.type = nix::tPrimOp;
          v.primOp = NEW nix::PrimOp(myFun, 1, state.symbols.create("myFun"));
      }
      
      Then `builtins.importNative ./example.so "initialize"` will evaluate to
      the primop defined in the myFun function.
      5cd022d6
  10. Jun 12, 2014
  11. Jun 10, 2014
  12. Jun 02, 2014
  13. May 29, 2014
  14. May 26, 2014
Loading