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;};;};