mirror of
https://github.com/NixOS/nix.git
synced 2025-11-09 03:56:01 +01:00
libexpr: Document {eval,maybeThunk} methods
This commit is contained in:
parent
ab7feb3898
commit
71b27774f0
2 changed files with 9 additions and 4 deletions
|
|
@ -979,10 +979,6 @@ void EvalState::mkSingleDerivedPathString(const SingleDerivedPath & p, Value & v
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create a thunk for the delayed computation of the given expression
|
|
||||||
in the given environment. But if the expression is a variable,
|
|
||||||
then look it up right away. This significantly reduces the number
|
|
||||||
of thunks allocated. */
|
|
||||||
Value * Expr::maybeThunk(EvalState & state, Env & env)
|
Value * Expr::maybeThunk(EvalState & state, Env & env)
|
||||||
{
|
{
|
||||||
Value * v = state.allocValue();
|
Value * v = state.allocValue();
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,16 @@ struct Expr
|
||||||
virtual ~Expr() {};
|
virtual ~Expr() {};
|
||||||
virtual void show(const SymbolTable & symbols, std::ostream & str) const;
|
virtual void show(const SymbolTable & symbols, std::ostream & str) const;
|
||||||
virtual void bindVars(EvalState & es, const std::shared_ptr<const StaticEnv> & env);
|
virtual void bindVars(EvalState & es, const std::shared_ptr<const StaticEnv> & env);
|
||||||
|
|
||||||
|
/** Normal evaluation, implemented directly by all subclasses. */
|
||||||
virtual void eval(EvalState & state, Env & env, Value & v);
|
virtual void eval(EvalState & state, Env & env, Value & v);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a thunk for the delayed computation of the given expression
|
||||||
|
* in the given environment. But if the expression is a variable,
|
||||||
|
* then look it up right away. This significantly reduces the number
|
||||||
|
* of thunks allocated.
|
||||||
|
*/
|
||||||
virtual Value * maybeThunk(EvalState & state, Env & env);
|
virtual Value * maybeThunk(EvalState & state, Env & env);
|
||||||
virtual void setName(Symbol name);
|
virtual void setName(Symbol name);
|
||||||
virtual void setDocComment(DocComment docComment) {};
|
virtual void setDocComment(DocComment docComment) {};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue