Nix 2.26.3
Nix, the purely functional package manager; unstable internal interfaces
 
Loading...
Searching...
No Matches
primops.hh
Go to the documentation of this file.
1#pragma once
3
4#include "eval.hh"
5
6#include <tuple>
7#include <vector>
8
9namespace nix {
10
17constexpr size_t nonRecursiveStackReservation = 128;
18
25constexpr size_t conservativeStackReservation = 16;
26
28{
29 typedef std::vector<PrimOp> PrimOps;
30 static PrimOps * primOps;
31
37 RegisterPrimOp(PrimOp && primOp);
38};
39
40/* These primops are disabled without enableNativeCode, but plugins
41 may wish to use them in limited contexts without globally enabling
42 them. */
43
47void prim_importNative(EvalState & state, const PosIdx pos, Value * * args, Value & v);
48
52void prim_exec(EvalState & state, const PosIdx pos, Value * * args, Value & v);
53
54void makePositionThunks(EvalState & state, const PosIdx pos, Value & line, Value & column);
55
56}
Definition eval.hh:182
Definition pos-idx.hh:9
uint32_t line
Definition lexer.l:6526
std::vector< Expr * > args
Definition lexer.l:6126
constexpr size_t nonRecursiveStackReservation
Definition primops.hh:17
constexpr size_t conservativeStackReservation
Definition primops.hh:25
Definition eval.hh:68
RegisterPrimOp(PrimOp &&primOp)
Definition primops.cc:3553
Definition value.hh:167