NAME
src/embed.c - The Parrot embedding interface
DESCRIPTION
This file implements the Parrot embedding interface.
Functions
Parrot_Interp Parrot_new
Returns a new Parrot interpreter.The first created interpreter (void Parrot_init_stacktop
Initializes the new interpreter when it hasn't been initialized before.Additionally sets the stack top,
so that Parrot objects created in inner stack frames will be visible during GC stack walking code.
stack_top should be the address of an automatic variable in the caller's stack frame.
All unanchored Parrot objects (PMCs) must live in inner stack frames so that they are not destroyed during GC runs.Use this function when you call into Parrot before entering a run loop.
void Parrot_set_flag
Sets on any of the following flags,
specified by void Parrot_set_debug
Set a debug flag: void Parrot_set_executable_name
Sets the name of the executable launching Parrot (see void Parrot_set_trace
Set a trace flag: void Parrot_clear_flag
Clears a flag in the interpreter.
void Parrot_clear_debug
Clears a flag in the interpreter.
void Parrot_clear_trace
Clears a flag in the interpreter.
Parrot_Int Parrot_test_flag
Test the interpreter flags specified in UINTVAL Parrot_test_debug
Test the interpreter flags specified in UINTVAL Parrot_test_trace
Test the interpreter flags specified in void Parrot_set_run_core
Sets the specified run core.
void Parrot_setwarnings
Activates the given warnings.
PackFile *Parrot_pbc_read
Read in a bytecode,
unpack it into a void Parrot_pbc_load
Loads the static PMC *setup_argv
Creates and returns static int prof_sort_f
Sort function for profile data.
Sorts by time.
static const char *op_name
Returns the name of the opcode.
static FLOATVAL calibrate
With this calibration,
reported times of static void print_profile
Prints out a profile listing.
static void print_debug
Prints GC info.
static PMC *set_current_sub
Search the fixup table for a PMC matching the argument.
On a match,
set up the appropriate context.If no match,
set up a dummy PMC entry.
In either case,
return a pointer to the PMC.
void Parrot_runcode
Sets up opcode_t *Parrot_debug
Runs the interpreter's bytecode in debugging mode.
static void print_constant_table
Print the contents of the constants table.
void Parrot_disassemble
Disassembles and prints out the interpreter's bytecode.This is used by the Parrot disassembler.
void Parrot_run_native
Run the C function
parent
is NULL
) is the last one to get destroyed.
flag
,
in the interpreter:Flag Effect PARROT_BOUNDS_FLAG
enable bounds checking PARROT_PROFILE_FLAG
enable profiling,
PARROT_THR_TYPE_1
disable variable sharing and thread communication PARROT_THR_TYPE_2
disable variable sharing but enable thread communication PARROT_THR_TYPE_3
enable variable sharing.
PARROT_DEBUG_FLAG
.
pbc_to_exe
and the parrot
binary).
PARROT_TRACE_FLAG
flag
.
flag
.
flag
.
PackFile
structure,
and do fixups.
PackFile
returned by Parrot_pbc_read()
.
ARGS
array PMC.
parrot -p
almost match those measured with time parrot -b
.
ARGV
and runs the ops.
func
through the program [enternative, end]
.
This ensures that the function is run with the same setup as in other run loops.This function is used in some of the source tests in t/src which use the interpreter outside a runloop.SEE ALSO
include/parrot/embed.h and docs/embed.pod.
HISTORY
Initial version by Brent Dax on 2002.1.28.