PreviousUpNext

14.4.87  Runtime_Internals

The standard library Runtime_Internals api defines access to functionality such as control of the garbage collector.

The Runtime_Internals api is implemented by runtime_internals in src/lib/std/src/nj/runtime-internals.pkg.

The Runtime_Internals api source code is in src/lib/std/src/nj/runtime-internals.api.

The above information is manually maintained and may contain errors.

api {   package at
          : api {   When
                    = FORK_TO_DISK
                    |
                    NEVER_RUN
                    |
                    SHUTDOWN_PHASE_1_USER_HOOKS
                    |
                    SHUTDOWN_PHASE_2_UNREDIRECT_SYSCALLS
                    |
                    SHUTDOWN_PHASE_3_STOP_THREAD_SCHEDULER
                    |
                    SHUTDOWN_PHASE_4_STOP_SUPPORT_HOSTTHREADS
                    |
                    SHUTDOWN_PHASE_5_ZERO_COMPILE_STATISTICS
                    |
                    SHUTDOWN_PHASE_6_CLOSE_OPEN_FILES
                    |
                    SHUTDOWN_PHASE_6_FLUSH_OPEN_FILES
                    |
                    SHUTDOWN_PHASE_7_CLEAR_POSIX_INTERPROCESS_SIGNAL_HANDLER_TABLE
                    |
                    SPAWN_TO_DISK
                    |
                    STARTUP_PHASE_10_START_NEW_DLOPEN_ERA
                    |
                    STARTUP_PHASE_11_START_SUPPORT_HOSTTHREADS
                    |
                    STARTUP_PHASE_12_START_THREAD_SCHEDULER
                    |
                    STARTUP_PHASE_13_REDIRECT_SYSCALLS
                    |
                    STARTUP_PHASE_14_START_BASE_IMPS
                    |
                    STARTUP_PHASE_15_START_XKIT_IMPS
                    |
                    STARTUP_PHASE_16_OF_HEAP_MADE_BY_FORK_TO_DISK
                    |
                    STARTUP_PHASE_16_OF_HEAP_MADE_BY_SPAWN_TO_DISK
                    |
                    STARTUP_PHASE_17_USER_HOOKS
                    |
                    STARTUP_PHASE_1_RESET_STATE_VARIABLES
                    |
                    STARTUP_PHASE_2_REOPEN_MYTHRYL_LOG
                    |
                    STARTUP_PHASE_3_REOPEN_USER_LOGS
                    |
                    STARTUP_PHASE_4_MAKE_STDIN_STDOUT_AND_STDERR
                    |
                    STARTUP_PHASE_5_CLOSE_STALE_OUTPUT_STREAMS
                    |
                    STARTUP_PHASE_6_INITIALIZE_POSIX_INTERPROCESS_SIGNAL_HANDLER_TABLE
                    |
                    STARTUP_PHASE_7_RESET_POSIX_INTERPROCESS_SIGNAL_HANDLER_TABLE
                    |
                    STARTUP_PHASE_8_RESET_COMPILER_STATISTICS
                    |
                    STARTUP_PHASE_9_RESET_CPU_AND_WALLCLOCK_TIMERS;
                schedule : (String , List(When ) , (When -> Void)) -> Null_Or(((List(When ) , (When -> Void))) );
                deschedule : String -> Null_Or(((List(When ) , (When -> Void))) );
                run_functions_scheduled_to_run : When -> Void;
                when_to_string : When -> String;
                when_to_int : When -> Int;
                when_compare : (When , When) -> Order;
                when_gt : (When , When) -> Bool;
                get_schedule : Void -> List(((String , List(When ))) );};;
        package rpc
          : api {
                add_per_fun_call_counters_to_deep_syntax : Ref(Bool );
                get_time_profiling_rw_vector : Void -> Rw_Vector(Int );
                this_fn_profiling_hook_refcell__global : Ref(Int );
                start_sigvtalrm_time_profiler : Void -> Void;
                stop_sigvtalrm_time_profiler : Void -> Void;
                sigvtalrm_time_profiler_is_running : Void -> Bool;
                get_sigvtalrm_interval_in_microseconds : Void -> Int;
                    Profiled_Package
                    = PROFILED_PACKAGE      {first_slot_in_time_profiling_rw_vector:Int, fun_count:Int, fun_names:String,
                                            per_fun_call_counts:Rw_Vector(Int )};
                in_runtime__cpu_user_index : Int;
                in_minor_heapcleaner__cpu_user_index : Int;
                in_major_heapcleaner__cpu_user_index : Int;
                in_other_code__cpu_user_index : Int;
                in_compiler__cpu_user_index : Int;
                number_of_predefined_indices : Int;
                get_profiled_packages_list : Void -> List(Profiled_Package );
                zero_profiling_counts : Void -> Void;
                space_profiling : Ref(Bool );
                space_prof_register : Ref(((?.unsafe::Chunk , String) -> ?.unsafe::Chunk) );};;
        package hc
          : api {
                clean_heap : Int -> Void;
                messages : Bool -> Void;};;
    print_hook : Ref((String -> Void) );
    initialize_posix_interprocess_signal_handler_table : Void -> Void;
    clear_posix_interprocess_signal_handler_table : Void -> Void;
    reset_posix_interprocess_signal_handler_table : Void -> Void;
        package tdp
          : api {     Plugin  =         {enter:(Int , Int) -> Void, name:String, nopush:(Int , Int) -> Void,
                                        push:(Int , Int) -> Void -> Void, register:(Int , Int , Int , String) -> Void,
                                        save:Void -> Void -> Void};
                Monitor  = {monitor:(Bool , (Void -> Void)) -> Void, name:String};
                active_plugins : Ref(List(Plugin ) );
                active_monitors : Ref(List(Monitor ) );
                reserve : Int -> Int;
                reset : Void -> Void;
                idk_entry_point : Int;
                idk_non_tail_call : Int;
                idk_tail_call : Int;
                tdp_instrument_enabled : Ref(Bool );
                with_monitors : Bool -> (Void -> Void) -> Void;};;};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext