A list of bindings which make objects in the hosting environment available to the interpreter under a given name.
A list of bindings which make objects in the hosting environment available to the interpreter under a given name.
An injected code fragment which precedes the evaluation of the each interpreted line's wrapping object.
An injected code fragment which precedes the evaluation of the each interpreted line's wrapping object.
For example if the interpreted code was val foo = 33
, the actually compiled code looks like
val res = <execution> { object <synthetic> { val foo = 33 }}
The executor can be used for example to set a particular context needed during the evaluation of the object's body. Then most probably it will be defined to take a thunk argument, for instance:
object MyExecutor { def apply[A](thunk: => A): A = concurrent.stm.atomic(_ => thunk) config.executor = "MyExecutor"
Then the evaluated code may find the STM transaction using Txn.findCurrent
A list of package names to import to the scope of the interpreter.
A list of package names to import to the scope of the interpreter.
The interpreter's output printing device.
The interpreter's output printing device.
Whether initial imports should be performed silently (true
) or not (false
).
Whether initial imports should be performed silently (true
) or not (false
). Not silent means the imported
packages' names will be printed to the default printing device (out
).