MysoreScript
Classes | Typedefs | Variables
Interpreter Namespace Reference

Classes

class  Context
 
class  Value
 Value wraps an object pointer. More...
 

Typedefs

typedef std::unordered_map< std::string, Obj * > SymbolTable
 A symbol table stores the address of each allocation. More...
 

Variables

ClosureInvoke closureTrampolines []
 Array of trampolines, indexed by number or arguments. More...
 
bool forceCompiler = false
 Force the compiler to run. More...
 

Typedef Documentation

§ SymbolTable

typedef std::unordered_map<std::string, Obj*> Interpreter::SymbolTable

A symbol table stores the address of each allocation.

Definition at line 103 of file interpreter.hh.

Variable Documentation

§ closureTrampolines

MysoreScript::ClosureInvoke Interpreter::closureTrampolines
Initial value:
= {
reinterpret_cast<ClosureInvoke>(closureTrampoline0),
reinterpret_cast<ClosureInvoke>(closureTrampoline1),
reinterpret_cast<ClosureInvoke>(closureTrampoline2),
reinterpret_cast<ClosureInvoke>(closureTrampoline3),
reinterpret_cast<ClosureInvoke>(closureTrampoline4),
reinterpret_cast<ClosureInvoke>(closureTrampoline5),
reinterpret_cast<ClosureInvoke>(closureTrampoline6),
reinterpret_cast<ClosureInvoke>(closureTrampoline7),
reinterpret_cast<ClosureInvoke>(closureTrampoline8),
reinterpret_cast<ClosureInvoke>(closureTrampoline9),
}
Obj closureTrampoline8(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3, Obj o4, Obj o5, Obj o6, Obj o7)
8-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:101
Obj closureTrampoline3(Closure *C, Obj o0, Obj o1, Obj o2)
3-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:54
Obj closureTrampoline4(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3)
4-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:63
Obj closureTrampoline9(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3, Obj o4, Obj o5, Obj o6, Obj o7, Obj o8)
9-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:111
Obj closureTrampoline2(Closure *C, Obj o0, Obj o1)
2-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:45
Object *(* ClosureInvoke)(Closure *,...)
A compiled closure invoke function.
Definition: runtime.hh:80
Obj closureTrampoline1(Closure *C, Obj o0)
1-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:36
Obj closureTrampoline7(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3, Obj o4, Obj o5, Obj o6)
7-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:91
Obj closureTrampoline10(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3, Obj o4, Obj o5, Obj o6, Obj o7, Obj o8, Obj o9)
10-argument trampoline for jumping back into the interpreter when a closure that has not yet been com...
Definition: interpreter.cc:121
Obj closureTrampoline6(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3, Obj o4, Obj o5)
6-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:81
Obj closureTrampoline5(Closure *C, Obj o0, Obj o1, Obj o2, Obj o3, Obj o4)
5-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:72
Obj closureTrampoline0(Closure *C)
0-argument trampoline for jumping back into the interpreter when a closure that has not yet been comp...
Definition: interpreter.cc:28

Array of trampolines, indexed by number or arguments.

Definition at line 277 of file interpreter.cc.

§ forceCompiler

bool Interpreter::forceCompiler = false

Force the compiler to run.

This overrides the compile threshold and ensures that all methods and closures are compiled the first time that they are invoked.

Definition at line 7 of file interpreter.cc.