![]() |
ArkScript
A small, lisp-inspired, functional scripting language
|
#include <ExecutionContext.hpp>
Public Member Functions | |
ExecutionContext () noexcept | |
bool | isFree () const |
void | setActive (const bool toggle) |
Public Attributes | |
std::size_t | ip {} |
Instruction pointer. | |
std::size_t | pp {} |
Page pointer. | |
uint16_t | sp {} |
Stack pointer. | |
uint16_t | fc {} |
Frame count. | |
uint16_t | last_symbol |
const bool | primary |
Tells if the current ExecutionContext is the primary one or not. | |
uint16_t | inst_exec_counter {} |
std::atomic_bool | active |
std::optional< ClosureScope > | saved_scope {} |
Scope created by CAPTURE <x> instructions, used by the MAKE_CLOSURE instruction. | |
std::optional< uint16_t > | capture_rename_id {} |
std::vector< std::shared_ptr< ClosureScope > > | stacked_closure_scopes {} |
Stack the closure scopes to keep the closure alive as long as we are calling them. | |
std::vector< ScopeView > | locals {} |
std::array< ScopeView::pair_t, ScopeStackSize > | scopes_storage {} |
All the ScopeView use this array to store id->value. | |
std::array< Value, VMStackSizeWithOverflowBuffer > | stack {} |
Static Public Attributes | |
static unsigned | Count = 0 |
Definition at line 26 of file ExecutionContext.hpp.
|
inlinenoexcept |
Definition at line 48 of file ExecutionContext.hpp.
|
inlinenodiscard |
Definition at line 56 of file ExecutionContext.hpp.
References active.
|
inline |
Definition at line 61 of file ExecutionContext.hpp.
References active.
Referenced by Ark::VM::createAndGetContext(), and Ark::VM::deleteContext().
std::atomic_bool Ark::internal::ExecutionContext::active |
Definition at line 37 of file ExecutionContext.hpp.
Referenced by ExecutionContext(), isFree(), and setActive().
std::optional<uint16_t> Ark::internal::ExecutionContext::capture_rename_id {} |
Definition at line 40 of file ExecutionContext.hpp.
Referenced by Ark::VM::safeRun().
|
inlinestatic |
Definition at line 28 of file ExecutionContext.hpp.
Referenced by ExecutionContext().
uint16_t Ark::internal::ExecutionContext::fc {} |
Frame count.
Definition at line 33 of file ExecutionContext.hpp.
Referenced by Ark::VM::backtrace(), Ark::VM::createAndGetContext(), Ark::VM::init(), and Ark::VM::safeRun().
uint16_t Ark::internal::ExecutionContext::inst_exec_counter {} |
Definition at line 36 of file ExecutionContext.hpp.
Referenced by Ark::VM::safeRun().
std::size_t Ark::internal::ExecutionContext::ip {} |
Instruction pointer.
Definition at line 30 of file ExecutionContext.hpp.
Referenced by Ark::VM::backtrace(), Ark::VM::getField(), Ark::VM::safeRun(), and Ark::VM::throwArityError().
uint16_t Ark::internal::ExecutionContext::last_symbol |
Definition at line 34 of file ExecutionContext.hpp.
Referenced by Ark::VM::createFuture(), Ark::VM::getField(), Ark::VM::safeRun(), and Ark::VM::throwArityError().
std::vector<ScopeView> Ark::internal::ExecutionContext::locals {} |
Definition at line 43 of file ExecutionContext.hpp.
Referenced by Ark::VM::backtrace(), Ark::VM::createAndGetContext(), Ark::VM::init(), Ark::VM::loadPlugin(), and Ark::VM::safeRun().
std::size_t Ark::internal::ExecutionContext::pp {} |
Page pointer.
Definition at line 31 of file ExecutionContext.hpp.
Referenced by Ark::VM::backtrace(), Ark::VM::getField(), Ark::VM::safeRun(), and Ark::VM::throwArityError().
const bool Ark::internal::ExecutionContext::primary |
Tells if the current ExecutionContext is the primary one or not.
Definition at line 35 of file ExecutionContext.hpp.
Referenced by Ark::VM::createAndGetContext().
std::optional<ClosureScope> Ark::internal::ExecutionContext::saved_scope {} |
Scope created by CAPTURE <x> instructions, used by the MAKE_CLOSURE instruction.
Definition at line 39 of file ExecutionContext.hpp.
Referenced by Ark::VM::createAndGetContext(), Ark::VM::init(), and Ark::VM::safeRun().
std::array<ScopeView::pair_t, ScopeStackSize> Ark::internal::ExecutionContext::scopes_storage {} |
All the ScopeView use this array to store id->value.
Definition at line 44 of file ExecutionContext.hpp.
Referenced by Ark::VM::createAndGetContext(), Ark::VM::init(), and Ark::VM::safeRun().
uint16_t Ark::internal::ExecutionContext::sp {} |
Stack pointer.
Definition at line 32 of file ExecutionContext.hpp.
Referenced by Ark::VM::backtrace(), Ark::VM::createAndGetContext(), Ark::VM::init(), and Ark::VM::throwArityError().
std::array<Value, VMStackSizeWithOverflowBuffer> Ark::internal::ExecutionContext::stack {} |
Definition at line 46 of file ExecutionContext.hpp.
Referenced by Ark::VM::throwArityError().
std::vector<std::shared_ptr<ClosureScope> > Ark::internal::ExecutionContext::stacked_closure_scopes {} |
Stack the closure scopes to keep the closure alive as long as we are calling them.
Definition at line 41 of file ExecutionContext.hpp.
Referenced by Ark::VM::createAndGetContext(), and Ark::VM::init().