in a global environment, a Function is compiled, but it is not in a DispatchTable (the dispatchTable_ field is uninitialized).
The eval function in eval.c calls do_for or do_while respectively.
Then the call order is R_compileAndExecute -> R_compileExpr -> externalCodeCompile, which is a pointer to rirCompile -> rir::Compiler::compileExpression -> rir::Compiler::finalize, where the Function is created.
The created Function is afterwards called with rirEval thru R_compileAndExecute.
The calling is going without any issue and this might not be a bug, but it is a weird behaviour.
When running
or
in a global environment, a Function is compiled, but it is not in a DispatchTable (the
dispatchTable_
field is uninitialized).The
eval
function ineval.c
callsdo_for
ordo_while
respectively. Then the call order isR_compileAndExecute
->R_compileExpr
->externalCodeCompile
, which is a pointer torirCompile
->rir::Compiler::compileExpression
->rir::Compiler::finalize
, where theFunction
is created.The created
Function
is afterwards called withrirEval
thruR_compileAndExecute
. The calling is going without any issue and this might not be a bug, but it is a weird behaviour.