Nix  2.93.0-dev
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
eval.hh File Reference
#include "lix/libexpr/attr-set.hh"
#include "lix/libexpr/eval-error.hh"
#include "lix/libexpr/gc-alloc.hh"
#include "lix/libutil/box_ptr.hh"
#include "lix/libutil/generator.hh"
#include "lix/libutil/async.hh"
#include "lix/libutil/source-path.hh"
#include "lix/libutil/types.hh"
#include "lix/libexpr/value.hh"
#include "lix/libexpr/nixexpr.hh"
#include "lix/libexpr/symbol-table.hh"
#include "lix/libutil/config.hh"
#include "lix/libutil/experimental-features.hh"
#include "lix/libexpr/search-path.hh"
#include "lix/libexpr/repl-exit-status.hh"
#include "lix/libutil/backed-string-view.hh"
#include <map>
#include <optional>
#include <unordered_map>
#include <functional>
#include "lix/libexpr/eval-inline.hh"
Include dependency graph for eval.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nix::PrimOp
 
struct  nix::Constant
 
struct  nix::Env
 
struct  nix::DebugTrace
 
struct  nix::DebugState
 
class  nix::DebugState::TraceFrame
 
struct  nix::StaticSymbols
 
class  nix::EvalMemory
 
struct  nix::EvalMemory::Statistics
 
class  nix::EvalBuiltins
 
struct  nix::EvalBuiltins::Doc
 
struct  nix::EvalRuntimeCaches
 
struct  nix::EvalErrorContext
 
class  nix::EvalPaths
 
struct  nix::EvalPaths::AllowedPath::ComponentLess
 
struct  nix::EvalPaths::PathResult< T, E >
 
struct  nix::EvalStatistics
 
class  nix::Evaluator
 
class  nix::EvalState
 

Typedefs

using nix::PrimOpImpl = void(EvalState & state, PosIdx pos, Value ** args, Value & v)
 
using nix::ValMap = GcMap<std::string, Value *>
 

Functions

std::ostream & nix::operator<< (std::ostream &output, PrimOp &primOp)
 
void nix::printEnvBindings (const EvalState &es, const Expr &expr, const Env &env)
 
void nix::printEnvBindings (const SymbolTable &st, const StaticEnv &se, const Env &env, int lvl)
 
std::unique_ptr< ValMap > nix::mapStaticEnvBindings (const SymbolTable &st, const StaticEnv &se, const Env &env)
 
void nix::copyContext (const Value &v, NixStringContext &context)
 
std::string nix::printValue (EvalState &state, Value &v)
 
std::ostream & nix::operator<< (std::ostream &os, const ValueType t)
 
void nix::initLibExpr ()
 
std::string_view nix::showType (ValueType type, bool withArticle)
 
std::string nix::showType (const Value &v)
 

Typedef Documentation

◆ PrimOpImpl

using nix::PrimOpImpl = void(EvalState & state, PosIdx pos, Value ** args, Value & v)

Function that implements a primop.

Function Documentation

◆ initLibExpr()

void nix::initLibExpr ( )

Initialise the evaluator (including Boehm GC, if applicable).

◆ showType()

std::string_view nix::showType ( ValueType type,
bool withArticle = true )
Returns
A string representing the type of the value v.
Parameters
withArticleWhether to begin with an english article, e.g. "an integer" vs "integer".