Next: Application hooks
Up: Miscellaneous
Previous: System operations
Index
In msg.cecil:
method send(msg_name@:string, num_params@:int,
args@:ordered_collection[dynamic]):dynamic;
method send(msg_name@:string, num_params@:int,
args@:ordered_collection[dynamic], if_error:&():dynamic):dynamic;
method send(msg_name@:vstring, num_params@:int,
args@:vector[dynamic], if_error:&():dynamic):dynamic;
method field_init_send(msg_name@:string, num_params@:int,
args@:ordered_collection[dynamic],
if_error:&():dynamic):dynamic;
method field_init_send(msg_name@:vstring, num_params@:int,
args@:vector[dynamic], if_error:&():dynamic):dynamic;
method prim_resend(msg_name@:string, num_params@:int,
args@:ordered_collection[dynamic],
dirs@:ordered_collection[dynamic],
is_undirected:bool, if_error:&():dynamic):dynamic;
method prim_resend(msg_name@:vstring, num_params@:int,
args@:vector[dynamic], dirs@:vector[dynamic],
is_undirected:bool, if_error:&():dynamic):dynamic;
method directed_field_init_send(msg_name@:string, num_params@:int,
args@:ordered_collection[dynamic],
dirs@:ordered_collection[dynamic],
if_error:&():dynamic):dynamic;
method directed_field_init_send(msg_name@:vstring, num_params@:int,
args@:vector[dynamic], dirs@:vector[dynamic],
if_error:&():dynamic):dynamic;
method type_id(t:any):int;
method set_breakpoint(msg_name@:string):void;
method set_breakpoint(msg_name_oop@:vstring):void;
method show_breakpoints():void;
This file includes primitives allowing the Cecil program access to the
run-time system's compiled code and method lookup tables, thus
supporting reflection.
In env.cecil:
abstract object evaluation_env;
method is_global_env(@:evaluation_env):bool;
method lexically_enclosing_env(e@:evaluation_env):evaluation_env;
signature lexically_enclosing_env(evaluation_env,
if_none:&():evaluation_env):evaluation_env;
method lookup(e@:evaluation_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method lookup_assign(e@:evaluation_env, s:string, num_params:int,
value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
method find_defining_env(e@:evaluation_env, s:string, num_params:int,
if_absent:&():evaluation_env,
if_error:&(string):evaluation_env):evaluation_env;
signature fetch(evaluation_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
signature fetch_object(evaluation_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic
):dynamic;
signature assign(evaluation_env, s:string, num_params:int, value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
signature defines_var(evaluation_env, s:string, num_params:int,
if_error:&(string):bool):bool;
method add_var_decl(e@:evaluation_env, name:string, is_constant:bool,
type_annotation:string, value:dynamic,
if_error:&(string):none):void;
method add_var_decl(e@:evaluation_env, name:string, num_params:int,
is_constant:bool, is_abstract:bool,
type_annotation:string, value:dynamic,
if_error:&(string):none):void;
method local_vars_do(@:evaluation_env,
cl:&(name:string, is_constant:bool,
type_annotation:string):void):void;
method decl_context_string(@:evaluation_env):string;
concrete object empty_env isa evaluation_env;
method lexically_enclosing_env(@:empty_env,
if_none:&():evaluation_env):evaluation_env;
method fetch(r@:empty_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method fetch_object(r@:empty_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic
):dynamic;
method assign(r@:empty_env, s:string, num_params:int, value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
method defines_var(r@:empty_env, s:string, num_params:int,
if_error:&(string):bool):bool;
abstract object debuggable_env isa evaluation_env;
method debugger(env@:debuggable_env, print_frame@:bool):void;
concrete representation global_env isa debuggable_env;
method print_string(e@:global_env):string;
method is_global_env(@:global_env):bool;
method lexically_enclosing_env(@:global_env,
if_none:&():evaluation_env):evaluation_env;
var field extensions(e@:global_env):evaluation_env;
method add_var_decl(e@:global_env, name:string, num_params:int,
is_constant:bool, is_abstract:bool,
type_annotation:string, value:dynamic,
if_error:&(string):none):void;
method fetch(r@:global_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method fetch_internal(r@:global_env, s:string, num_params:int,
if_absent:&():dynamic,
if_error:&(string):dynamic):dynamic;
method fetch_internal(r@:global_env, s@:vstring, num_params@:int,
if_absent:&():dynamic,
if_error:&(string):dynamic):dynamic
(** sends(r1 = eval([if_absent]),
r2 = eval([if_error],[i_vstring])),
return_type(r1,r2,unknown),
formals_escape(f,f,f,f,f)**);
method fetch_object(r@:global_env, s@:string, num_params@:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method fetch_object_internal(r@:global_env, s@:string, num_params@:int,
if_absent:&():dynamic, if_error:&(string):dynamic
):dynamic;
method fetch_object_internal(r@:global_env, s@:vstring, num_params@:int,
if_absent:&():dynamic, if_error:&(string):dynamic
):dynamic;
method assign(r@:global_env, s:string, num_params:int, value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
method assign_internal(r@:global_env, s:string, num_params:int, value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
method assign_internal(r@:global_env, s@:vstring, num_params@:int,
value:dynamic,
if_absent:&():void, if_error:&(string):void):void
(** return_type(void),
sends(eval([if_absent]),
eval([if_error],[i_vstring])),
formals_escape(f,f,f,t,f,f) **);
method defines_var(r@:global_env, s:string, num_params:int,
if_error:&(string):bool):bool;
method defines_var_internal(r@:global_env, s:string, num_params:int,
if_error:&(string):bool):bool;
method defines_var_internal(r@:global_env, s@:vstring, num_params@:int,
if_error:&(string):bool):bool;
method create_anon_object(r@:global_env, parent:dynamic,
if_error:&(string):dynamic):dynamic;
method create_named_object(r@:global_env, s@:string, num_params@:int,
is_abstract@:bool,
parents@:indexed[dynamic],
if_present:&():dynamic,
if_error:&(string):dynamic):dynamic;
method create_named_object(r@:global_env, s@:vstring, num_params@:int,
is_abstract@:bool,
parents_oop@:vector[dynamic],
if_present:&():dynamic, if_error:&(string):dynamic
):dynamic
(** sends(r1 = eval([if_present]),
r2 = eval([if_error],[i_vstring]),
add_var_decl([global_env],[s],[num_params],[true],
[is_abstract],[i_vstring],[unknown],
[if_error])),
return_type(r1, r2, unknown),
formals_escape(f,f,f,f,f,f,f) **);
extend runtime_env isa debuggable_env;
method current_env():runtime_env;
method my_caller(if_none:&():`T):runtime_env|T;
method my_caller():runtime_env|global_env;
method caller(r@:runtime_env, if_none:&():`T):runtime_env|T;
method lexically_enclosing_env(r@:runtime_env,
if_none:&():evaluation_env):evaluation_env;
method fetch(r@:runtime_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method fetch(r@:runtime_env, s@:vstring, num_params@:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method fetch_object(r@:runtime_env, s:string, num_params:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method fetch_object(r@:runtime_env, s@:vstring, num_params@:int,
if_absent:&():dynamic, if_error:&(string):dynamic):dynamic;
method assign(r@:runtime_env, s:string, num_params:int, value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
method assign(r@:runtime_env, s@:vstring, num_params@:int, value:dynamic,
if_absent:&():void, if_error:&(string):void):void;
method defines_var(r@:runtime_env, s:string, num_params:int,
if_error:&(string):bool):bool;
method defines_var(r@:runtime_env, s@:vstring, num_params@:int,
if_error:&(string):bool):bool;
method local_vars_do(r@:runtime_env,
cl:&(name:string, is_constant:bool,
type_annotation:string):void):void
(** sends(eval([cl],[i_vstring],[true,false],
[i_vstring])),
return_type(void),
formals_escape(f,f)**);
method decl_context_string(r@:runtime_env):string;
method is_global_env(r@:runtime_env):bool;
abstract object extension_evaluation_env isa debuggable_env;
signature calling_env(extension_evaluation_env):evaluation_env;
signature procedure_name(extension_evaluation_env):vstring;
signature is_anonymous_env(extension_evaluation_env):bool;
signature source_file_name(extension_evaluation_env):vstring;
signature line_num(extension_evaluation_env):int;
signature num_params(extension_evaluation_env):int;
signature num_formals(extension_evaluation_env):int;
signature num_locals(extension_evaluation_env):int;
signature num_results(extension_evaluation_env):int;
signature var_name(extension_evaluation_env, int):vstring;
signature print_short_var_value(extension_evaluation_env, int):void;
signature print_full_var_value(extension_evaluation_env, int):void;
abstract object runtime_extension_method;
signature runtime_extension(meth:runtime_extension_method,
args:vector[dynamic],
interrupt_flag:int):void;
method extend_method_table(meth_name_oop:string, num_params@:int,
specializers:ordered_collection[dynamic],
method_object:runtime_extension_method,
interpret_interrupts:bool,
if_error:&():bool):bool;
method extend_method_table(meth_name_oop@:vstring, num_params@:int,
specializers@:vector[dynamic],
method_object:runtime_extension_method,
interpret_interrupts:bool,
if_error:&():bool
):bool;
evaluation_env
s support Cecil program access to its runtime state, for
debugging and fast expression evaluation purposes.
Next: Application hooks
Up: Miscellaneous
Previous: System operations
Index
Cecil/Vortex Project