The standard library Makelib api defines access to top-level Mythryl make / compile functionality.
The functions defined in scripting_globals are available unqualified in scripts; in non-script code they may be accessed as makelib::scripting_globals::foo.
The Makelib api is implemented by the makelib package.
The Makelib api source code is in src/lib/core/internal/makelib.api.
The above information is manually maintained and may contain errors.
api { help : Void -> Void; make : String -> Bool; load : String -> Bool; use : String -> Bool; compile : String -> Bool; freeze : String -> Bool; freeze' : {recursively:Bool} -> String -> Bool; show_all : Void -> Void; show_apis : Void -> Void; show_pkgs : Void -> Void; show_vals : Void -> Void; show_types : Void -> Void; show_generics : Void -> Void; search_lib_load_path_for_file : String -> Null_Or(String ); show_controls : Void -> Void; show_control : String -> Void; set_control : String -> String -> Void; show_api : String -> Void; show_pkg : String -> Void; parse_string_to_raw_declarations : {pp:?.standard_prettyprinter::pp::Prettyprinter, sourcecode_info:sourcecode_info::Sourcecode_Info} -> List(raw_syntax::Declaration ); compile_raw_declaration_to_package_closure : {compiler_state_stack:(compiler_state::Compiler_State , List(compiler_state::Compiler_State )), declaration:raw_syntax::Declaration, options:List(compiler_state::Compile_And_Eval_String_Option ), pp:?.standard_prettyprinter::pp::Prettyprinter, sourcecode_info:sourcecode_info::Sourcecode_Info} ->Null_Or( {code_and_data_segments:code_segment::Code_And_Data_Segments, compiler_state_stack:(compiler_state::Compiler_State , List(compiler_state::Compiler_State )), compiler_verbosity:per_compile_stuff::Compiler_Verbosity, deep_syntax_declaration:deep_syntax::Declaration, export_picklehash:Null_Or(picklehash::Picklehash ), exported_highcode_variables:List(highcode_codetemp::Codetemp ), get_current_compiler_mapstack_set:Void -> compiler_state::Compiler_Mapstack_Set, import_trees:List(import_tree::Import_Tree ), inline_expression:Null_Or(anormcode_form::Function ), linking_mapstack:linking_mapstack::Picklehash_To_Heapchunk_Mapstack, new_symbolmapstack:symbolmapstack::Symbolmapstack, package_closure:code_segment::Package_Closure, top_level_pkg_etc_defs_jar:compiler_state::Compiler_Mapstack_Set_Jar} ); link_and_run_package_closure : {pp:?.standard_prettyprinter::pp::Prettyprinter, sourcecode_info:sourcecode_info::Sourcecode_Info} -> {code_and_data_segments:code_segment::Code_And_Data_Segments, compiler_state_stack:(compiler_state::Compiler_State , List(compiler_state::Compiler_State )), compiler_verbosity:per_compile_stuff::Compiler_Verbosity, deep_syntax_declaration:deep_syntax::Declaration, export_picklehash:Null_Or(picklehash::Picklehash ), exported_highcode_variables:List(highcode_codetemp::Codetemp ), get_current_compiler_mapstack_set:Void -> compiler_state::Compiler_Mapstack_Set, import_trees:List(import_tree::Import_Tree ), inline_expression:Null_Or(anormcode_form::Function ), linking_mapstack:linking_mapstack::Picklehash_To_Heapchunk_Mapstack, new_symbolmapstack:symbolmapstack::Symbolmapstack, package_closure:code_segment::Package_Closure, top_level_pkg_etc_defs_jar:compiler_state::Compiler_Mapstack_Set_Jar} -> (compiler_state::Compiler_State , List(compiler_state::Compiler_State )); Controller X = {get:Void -> X, set:X -> Void}; package control : api { keep_going_after_compile_errors : Controller(Bool ); verbose : Controller(Bool ); warn_on_obsolete_syntax : Controller(Bool ); debug : Controller(Bool ); conserve_memory : Controller(Bool ); generate_index : Controller(Bool ); parse_caching : Controller(Int );};; package freezefile_db : api { Freezefile; known : Void -> List(Freezefile ); describe : Freezefile -> String; os_string : Freezefile -> String; dismiss : Freezefile -> Void; unshare : Freezefile -> Void;};; package makelib_state : api { clear_state : Void -> Void; dump : String -> Void; dump_latex : {directory:String, filename_prefix:String, filename_suffix:String} -> Void;};; sources : Null_Or({architecture:String, os:String} ) -> String -> Null_Or(List({derived:Bool, file:String, ilk:String} ) ); get_makelib_preprocessor_symbol_value : String -> Controller(Null_Or(Int ) ); load_plugin : String -> Bool; build_executable_heap_image : ?.freeze_policy::Freeze_Policy -> {heap_filename:String, libfile_to_run:String, setup:Null_Or(String ), wrapper_libfile:String} -> Null_Or(List(String ) ); package graph : api { graph : String ->Null_Or( {graph:?.portable_graph::Graph, imports:List(freezefile_db::Freezefile ), nativesrc:String -> String} );};; package scripting_globals : api { _! : multiword_int::Int -> multiword_int::Int; _[]:= : (Rw_Vector(X ) , Int , X) -> Void; =~ : (String , String) -> Bool; atod : String -> Float; atoi : String -> Int; backticks__op : String -> List(String ); basename : String -> String; bin_sh : String -> String; bin_sh' : String -> Int; chdir : String -> Void; chomp : String -> String; die : String -> Void; die_x : String -> X; dirname : String -> String; environ : Void -> List(String ); eval : String -> Void; evali : String -> Int; evalf : String -> Float; evals : String -> String; evalli : String -> List(Int ); evallf : String -> List(Float ); evalls : String -> List(String ); exit : Int -> Void; exit_x : Int -> X; explode : String -> List(Char ); factors : Int -> List(Int ); fields : (Char -> Bool) -> String -> List(String ); filter : (X -> Bool) -> List(X ) -> List(X ); fscanf : Input_Stream -> String -> Null_Or(List(printf_field::Printf_Arg ) ); getcwd : Void -> String; getenv : String -> Null_Or(String ); getpid : Void -> Int; getuid : Void -> Int; geteuid : Void -> Int; getppid : Void -> Int; getgid : Void -> Int; getegid : Void -> Int; getgroups : Void -> List(Int ); getlogin : Void -> String; getpgrp : Void -> Int; mkdir : String -> Void; setgid : Int -> Void; setpgid : (Int , Int) -> Void; setsid : Void -> Int; setuid : Int -> Void; implode : List(Char ) -> String; in : (''a , List(''a )) -> Bool; iseven : Int -> Bool; isodd : Int -> Bool; isprime : Int -> Bool; join' : String -> String -> String -> List(String ) -> String; join : String -> List(String ) -> String; lstat : String -> ?.posix_file::stat::Stat; now : Void -> Float; product : List(Int ) -> Int; rename : {from:String, to:String} -> Void; rmdir : String -> Void; round : Float -> Int; shuffle' : random::Random_Number_Generator -> List(X ) -> List(X ); shuffle : List(X ) -> List(X ); sleep : Float -> Void; sort : ((X , X) -> Bool) -> List(X ) -> List(X ); sorted : ((X , X) -> Bool) -> List(X ) -> Bool; scanf : String -> Null_Or(List(printf_field::Printf_Arg ) ); sscanf : String -> String -> Null_Or(List(printf_field::Printf_Arg ) ); stat : String -> ?.posix_file::stat::Stat; strcat : List(String ) -> String; strlen : String -> Int; strsort : List(String ) -> List(String ); struniqsort : List(String ) -> List(String ); sum : List(Int ) -> Int; symlink : {new:String, old:String} -> Void; time : Void -> one_word_int::Int; tolower : String -> String; toupper : String -> String; tokens : (Char -> Bool) -> String -> List(String ); trim : String -> String; uniquesort : ((X , X) -> Order) -> List(X ) -> List(X ); unlink : String -> Void; words : String -> List(String ); dotqquotes__op : String -> List(String ); arg0 : Void -> String; argv : Void -> List(String ); isfile : String -> Bool; isdir : String -> Bool; ispipe : String -> Bool; issymlink : String -> Bool; issocket : String -> Bool; ischardev : String -> Bool; isblockdev : String -> Bool; mayread : String -> Bool; maywrite : String -> Bool; mayexecute : String -> Bool; eval_kludge_ref_int : Ref(Int ); eval_kludge_ref_float : Ref(Float ); eval_kludge_ref_string : Ref(String ); eval_kludge_ref_list_int : Ref(List(Int ) ); eval_kludge_ref_list_float : Ref(List(Float ) ); eval_kludge_ref_list_string : Ref(List(String ) ); exception THREAD_SCHEDULER_NOT_RUNNING; package state : api { State = ALIVE | FAILURE | FAILURE_DUE_TO_UNCAUGHT_EXCEPTION | SUCCESS;};; Apptask; Microthread; default_microthread : Microthread; get_current_microthread : Void -> Microthread; get_current_microthread's_name : Void -> String; get_current_microthread's_id : Void -> Int; get_task's_id : Apptask -> Int; get_task's_name : Apptask -> String; get_task's_state : Apptask -> state::State; get_task's_alive_threads_count : Apptask -> Int; same_task : (Apptask , Apptask) -> Bool; compare_task : (Apptask , Apptask) -> Order; same_thread : (Microthread , Microthread) -> Bool; compare_thread : (Microthread , Microthread) -> Order; hash_thread : Microthread -> Unt; kill_thread : {success:Bool, thread:Microthread} -> Void; kill_task : {success:Bool, task:Apptask} -> Void; get_thread's_id : Microthread -> Int; get_thread's_id_as_string : Microthread -> String; get_thread's_name : Microthread -> String; get_thread's_state : Microthread -> state::State; get_thread's_task : Microthread -> Apptask; get_exception_that_killed_thread : Microthread -> Null_Or(Exception ); get_exception_that_killed_task : Apptask -> Null_Or(Exception ); Make_Thread_Args = THREAD_NAME String | THREAD_TASK Apptask; make_thread' : List(Make_Thread_Args ) -> (X -> Void) -> X -> Microthread; make_thread : String -> (Void -> Void) -> Microthread; make_task : String -> List(((String , (Void -> Void))) ) -> Apptask; thread_exit : {success:Bool} -> X; thread_done__mailop : Microthread -> ?.internal_threadkit_types::Mailop(Void ); task_done__mailop : Apptask -> ?.internal_threadkit_types::Mailop(Void ); yield : Void -> Void; run_thread__xu : Microthread -> (X -> Void) -> X -> Void; make_per_thread_property : (Void -> X) -> {clear:Void -> Void, get:Void -> X, peek:Void -> Null_Or(X ), set:X -> Void}; make_boolean_per_thread_property : Void -> {get:Void -> Bool, set:Bool -> Void}; Mailslot X; make_mailslot : Void -> Mailslot(X ); same_mailslot : (Mailslot(X ) , Mailslot(X )) -> Bool; put_in_mailslot : (Mailslot(X ) , X) -> Void; take_from_mailslot : Mailslot(X ) -> X; put_in_mailslot' : (Mailslot(X ) , X) -> ?.internal_threadkit_types::Mailop(Void ); take_from_mailslot' : Mailslot(X ) -> ?.internal_threadkit_types::Mailop(X ); nonblocking_put_in_mailslot : (Mailslot(X ) , X) -> Bool; nonblocking_take_from_mailslot : Mailslot(X ) -> Null_Or(X ); Maildrop X; exception MAY_NOT_FILL_ALREADY_FULL_MAILDROP; make_empty_maildrop : Void -> Maildrop(X ); make_full_maildrop : X -> Maildrop(X ); put_in_maildrop : (Maildrop(X ) , X) -> Void; take_from_maildrop : Maildrop(X ) -> X; take_from_maildrop' : Maildrop(X ) -> ?.internal_threadkit_types::Mailop(X ); nonblocking_take_from_maildrop : Maildrop(X ) -> Null_Or(X ); get_from_maildrop : Maildrop(X ) -> X; get_from_maildrop' : Maildrop(X ) -> ?.internal_threadkit_types::Mailop(X ); nonblocking_get_from_maildrop : Maildrop(X ) -> Null_Or(X ); maildrop_swap : (Maildrop(X ) , X) -> X; maildrop_swap' : (Maildrop(X ) , X) -> ?.internal_threadkit_types::Mailop(X ); same_maildrop : (Maildrop(X ) , Maildrop(X )) -> Bool; make_run_gun : Void -> {fire_run_gun:Void -> Void, run_gun':mailop::Run_Gun}; make_end_gun : Void -> {end_gun':mailop::End_Gun, fire_end_gun:Void -> Void}; maildrop_to_string : (Maildrop(X ) , String) -> String; Oneshot_Maildrop X; exception MAY_NOT_FILL_ALREADY_FULL_ONESHOT_MAILDROP; make_oneshot_maildrop : Void -> Oneshot_Maildrop(X ); put_in_oneshot : (Oneshot_Maildrop(X ) , X) -> Void; get_from_oneshot : Oneshot_Maildrop(X ) -> X; get_from_oneshot' : Oneshot_Maildrop(X ) -> ?.internal_threadkit_types::Mailop(X ); nonblocking_get_from_oneshot : Oneshot_Maildrop(X ) -> Null_Or(X ); same_oneshot_maildrop : (Oneshot_Maildrop(X ) , Oneshot_Maildrop(X )) -> Bool; Mailqueue X; make_mailqueue : ?.internal_threadkit_types::Microthread -> Mailqueue(X ); same_mailqueue : (Mailqueue(X ) , Mailqueue(X )) -> Bool; put_in_mailqueue : (Mailqueue(X ) , X) -> Void; take_from_mailqueue : Mailqueue(X ) -> X; take_from_mailqueue' : Mailqueue(X ) -> ?.internal_threadkit_types::Mailop(X ); take_all_from_mailqueue : Mailqueue(X ) -> List(X ); take_all_from_mailqueue' : Mailqueue(X ) -> ?.internal_threadkit_types::Mailop(List(X ) ); mailqueue_to_string : (Mailqueue(X ) , String) -> String; get_mailqueue_reader : Mailqueue(X ) -> ?.internal_threadkit_types::Microthread; get_mailqueue_id : Mailqueue(X ) -> Int; get_mailqueue_length : Mailqueue(X ) -> Int; get_mailqueue_putcount : Mailqueue(X ) -> Int; drop_mailqueue_tap : (Mailqueue(X ) , Ref(Void )) -> Void; note_mailqueue_tap : (Mailqueue(X ) , (X -> Void)) -> Ref(Void ); Mailcaster X; Readqueue X; make_mailcaster : Void -> Mailcaster(X ); make_readqueue : Mailcaster(X ) -> Readqueue(X ); clone_readqueue : Readqueue(X ) -> Readqueue(X ); receive : Readqueue(X ) -> X; receive' : Readqueue(X ) -> ?.internal_threadkit_types::Mailop(X ); transmit : (Mailcaster(X ) , X) -> Void; Mailop X; Run_Gun = Mailop(Void ); End_Gun = Mailop(Void ); do_one_mailop : List(Mailop(X ) ) -> X; ==> : (Mailop(X ) , (X -> Y)) -> Mailop(Y ); Replyqueue; make_replyqueue : Void -> Replyqueue; put_in_replyqueue : (Replyqueue , Mailop(Void )) -> Void; do_one_mailop' : Replyqueue -> List(Mailop(Void ) ) -> Void; replyqueue_to_string : (Replyqueue , String) -> String; dynamic_mailop : (Void -> Mailop(X )) -> Mailop(X ); dynamic_mailop_with_nack : (Mailop(Void ) -> Mailop(X )) -> Mailop(X ); never' : Mailop(X ); always' : X -> Mailop(X ); if_then' : (Mailop(X ) , (X -> Y)) -> Mailop(Y ); make_exception_handling_mailop : (Mailop(X ) , (Exception -> X)) -> Mailop(X ); cat_mailops : List(Mailop(X ) ) -> Mailop(X ); block_until_mailop_fires : Mailop(X ) -> X; state_to_string : microthread::state::State -> String; get_or_make_current_cleanup_task : Void -> ?.internal_threadkit_types::Apptask; note_thread_cleanup_action : (Void -> Void) -> Void; note_task_cleanup_action : (Void -> Void) -> Void; timeout_in' : Float -> ?.Mailop(Void ); timeout_at' : time::Time -> ?.Mailop(Void ); sleep_for : Float -> Void; sleep_until : time::Time -> Void; start_up_thread_scheduler : (Void -> Void) -> Int; start_up_thread_scheduler' : time::Time -> (Void -> Void) -> Int; run_under_thread_scheduler : (Void -> X) -> Void; shut_down_thread_scheduler : Int -> X; spawn_to_disk : (String , ((String , List(String )) -> Int) , Null_Or(time::Time )) -> Void; When = APP_SHUTDOWN | APP_STARTUP | COMPILER_STARTUP | THREADKIT_SHUTDOWN; when_to_string : When -> String; note_startup_or_shutdown_action : (String , List(When ) , (When -> Void)) -> Null_Or(((List(When ) , (When -> Void))) ); forget_startup_or_shutdown_action : String -> Null_Or(((List(When ) , (When -> Void))) ); exception NO_SUCH_ACTION; note_mailqueue : (String , mailqueue::Mailqueue(X )) -> Void; forget_mailqueue : String -> Void; note_mailslot : (String , ?.mailslot::Mailslot(X )) -> Void; forget_mailslot : String -> Void; note_imp : {at_shutdown:Void -> Void, at_startup:Void -> Void, name:String} -> Void; forget_imp : String -> Void; forget_all_mailslots_mailqueues_and_imps : Void -> Void;};; redump_heap : String -> Void;};