Nix
2.93.0-dev
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
primops.hh
Go to the documentation of this file.
1
#pragma once
3
4
#include "
lix/libexpr/eval.hh
"
5
6
#include <tuple>
7
#include <vector>
8
9
namespace
nix {
10
17
constexpr
size_t
nonRecursiveStackReservation
= 128;
18
25
constexpr
size_t
conservativeStackReservation
= 16;
26
27
struct
RegisterPrimOp
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
47
void
prim_importNative(
EvalState
& state,
const
PosIdx
pos,
Value
* * args,
Value
& v);
48
52
void
prim_exec(
EvalState
& state,
const
PosIdx
pos,
Value
* * args,
Value
& v);
53
54
void
makePositionThunks(
EvalState
& state,
const
PosIdx
pos,
Value
& line,
Value
& column);
55
56
}
nix::EvalState
Definition
eval.hh:673
nix::PosIdx
Definition
pos-idx.hh:9
eval.hh
nix::nonRecursiveStackReservation
constexpr size_t nonRecursiveStackReservation
Definition
primops.hh:17
nix::conservativeStackReservation
constexpr size_t conservativeStackReservation
Definition
primops.hh:25
nix::PrimOp
Definition
eval.hh:47
nix::RegisterPrimOp
Definition
primops.hh:28
nix::RegisterPrimOp::RegisterPrimOp
RegisterPrimOp(PrimOp &&primOp)
Definition
primops.cc:2822
nix::Value
Definition
value.hh:191
lix
libexpr
primops.hh
Generated by
1.10.0