The compiler Global_Controls api defines the interface for modulating the behavior of the Mythryl compiler via various tweakable settings, based on bazillions of icky thread-hostile mutable global variables.
The Global_Controls api is implemented by the global_controls package.
The Global_Controls api source code is in src/lib/compiler/toplevel/main/global-controls.api.
The above information is manually maintained and may contain errors.
api { package mc : api { print_args : Ref(Bool ); print_ret : Ref(Bool ); bind_no_variable_warn : Ref(Bool ); warn_on_nonexhaustive_bind : Ref(Bool ); error_on_nonexhaustive_bind : Ref(Bool ); warn_on_nonexhaustive_match : Ref(Bool ); error_on_nonexhaustive_match : Ref(Bool ); warn_on_redundant_match : Ref(Bool ); error_on_redundant_match : Ref(Bool );};; package compiler : api { allocprof : Ref(Bool ); alphac : Ref(Bool ); argrep : Ref(Bool ); arithopt : Ref(Bool ); beta_contract : Ref(Bool ); beta_expand : Ref(Bool ); bodysize : Ref(Int ); boxedconstconreps : Ref(Bool ); branchfold : Ref(Bool ); callee_function : Ref(Int ); checknextcode1 : Ref(Bool ); checknextcode2 : Ref(Bool ); checknextcode3 : Ref(Bool ); checknextcode : Ref(Bool ); checklty1 : Ref(Bool ); checklty2 : Ref(Bool ); checklty3 : Ref(Bool ); closure_strategy : Ref(Int ); closureprint : Ref(Bool ); comment : Ref(Bool ); comparefold : Ref(Bool ); optional_nextcode_improvers : Ref(List(String ) ); cse : Ref(Bool ); csehoist : Ref(Bool ); deadup : Ref(Bool ); deadvars : Ref(Bool ); debugnextcode : Ref(Bool ); dropargs : Ref(Bool ); escape_function : Ref(Int ); eta : Ref(Bool ); extraflatten : Ref(Bool ); flatfblock : Ref(Bool ); flattenargs : Ref(Bool ); foldconst : Ref(Bool ); handlerfold : Ref(Bool ); hoistdown : Ref(Bool ); hoistup : Ref(Bool ); icount : Ref(Bool ); if_idiom : Ref(Bool ); invariant : Ref(Bool ); known_cl_function : Ref(Int ); known_function : Ref(Int ); knownfiddle : Ref(Bool ); lambdaopt : Ref(Bool ); lambdaprop : Ref(Bool ); misc4 : Ref(Int ); newconreps : Ref(Bool ); path : Ref(Bool ); poll_checks : Ref(Bool ); poll_ratio_a_to_i : Ref(Float ); printit : Ref(Bool ); printsize : Ref(Bool ); rangeopt : Ref(Bool ); recordcopy : Ref(Bool ); recordopt : Ref(Bool ); recordpath : Ref(Bool ); reducemore : Ref(Int ); rounds : Ref(Int ); scheduling : Ref(Bool ); selectopt : Ref(Bool ); sharepath : Ref(Bool ); spill_function : Ref(Int ); static_closure_size_profiling : Ref(Bool ); switchopt : Ref(Bool ); tail : Ref(Bool ); tailrecur : Ref(Bool ); targeting : Ref(Int ); uncurry : Ref(Bool ); unroll : Ref(Bool ); unroll_recursion : Ref(Bool ); split_known_escaping_functions : Ref(Bool ); improve_after_closure : Ref(Bool ); debug_representation : Ref(Bool ); print_flowgraph_stream : Ref(Output_Stream ); disambiguate_memory : Ref(Bool ); control_dependence : Ref(Bool ); comp_debugging : Ref(Bool ); module_junk_debugging : Ref(Bool ); translate_to_anormcode_debugging : Ref(Bool ); type_junk_debugging : Ref(Bool ); types_debugging : Ref(Bool ); expand_generics_g_debugging : Ref(Bool ); typerstore_debugging : Ref(Bool ); generics_expansion_junk_debugging : Ref(Bool ); api_match_debugging : Ref(Bool ); type_package_language_debugging : Ref(Bool ); typer_junk_debugging : Ref(Bool ); type_api_debugging : Ref(Bool ); typecheck_type_debugging : Ref(Bool ); unify_typoids_debugging : Ref(Bool ); translate_types_debugging : Ref(Bool ); expand_oop_syntax_debugging : Ref(Bool ); verbose_compile_log : Ref(Bool ); trap_int_overflow : Ref(Bool ); check_vector_index_bounds : Ref(Bool ); compile_in_subprocesses : Ref(Bool );};; package lowhalf : api { registry : ?.global_control_index::Global_Control_Index; prefix : String; menu_slot : ?.global_control::Menu_Slot; Cpu_Time = {gc:time::Time, sys:time::Time, usr:time::Time}; lowhalf : Ref(Bool ); lowhalf_phases : Ref(List(String ) ); debug_stream : Ref(Output_Stream ); Global_Control_Set X = ?.global_control_set::Global_Control_Set((X, Ref(X ))); counters : Global_Control_Set(Int ); ints : Global_Control_Set(Int ); bools : Global_Control_Set(Bool ); floats : Global_Control_Set(Float ); strings : Global_Control_Set(String ); string_lists : Global_Control_Set(List(String ) ); timings : Global_Control_Set(Cpu_Time ); make_counter : (String , String) -> Ref(Int ); make_int : (String , String) -> Ref(Int ); make_bool : (String , String) -> Ref(Bool ); make_float : (String , String) -> Ref(Float ); make_string : (String , String) -> Ref(String ); make_string_list : (String , String) -> Ref(List(String ) ); make_timing : (String , String) -> Ref(Cpu_Time ); counter : String -> Ref(Int ); int : String -> Ref(Int ); bool : String -> Ref(Bool ); float : String -> Ref(Float ); string : String -> Ref(String ); string_list : String -> Ref(List(String ) ); timing : String -> Ref(Cpu_Time ); get_counter : String -> Ref(Int ); get_int : String -> Ref(Int ); get_bool : String -> Ref(Bool ); get_float : String -> Ref(Float ); get_string : String -> Ref(String ); get_string_list : String -> Ref(List(String ) ); get_timing : String -> Ref(Cpu_Time );};; package print : api { print_depth : Ref(Int ); print_length : Ref(Int ); string_depth : Ref(Int ); integer_depth : Ref(Int ); print_loop : Ref(Bool ); apis : Ref(Int ); print_includes : Ref(Bool ); out : Ref({flush:Void -> Void, say:String -> Void} ); linewidth : Ref(Int ); say : String -> Void; flush : Void -> Void;};; package highcode : api { print : Ref(Bool ); print_phases : Ref(Bool ); print_function_types : Ref(Bool ); anormcode_passes : Ref(List(String ) ); inline_threshold : Ref(Int ); unroll_threshold : Ref(Int ); maxargs : Ref(Int ); dropinvariant : Ref(Bool ); specialize : Ref(Bool ); sharewrap : Ref(Bool ); saytappinfo : Ref(Bool ); misc : Ref(Int ); check : Ref(Bool ); check_sumtypes : Ref(Bool ); check_kinds : Ref(Bool );};; debugging : Ref(Bool ); unparse_raw_syntax_tree : Ref(Bool ); unparse_deep_syntax_tree : Ref(Bool ); execute_compiled_code : Ref(Bool ); prettyprint_raw_syntax_tree : Ref(Bool ); print_warnings : Ref(Bool ); top_index : ?.global_control_index::Global_Control_Index; note_subindex : (String , ?.global_control_index::Global_Control_Index , ?.global_control::Menu_Slot) -> Void; primary_prompt : Ref(String ); secondary_prompt : Ref(String ); show_interactive_result_types : Ref(Bool ); edit_request_stream : Ref(Null_Or(Output_Stream ) ); lazy_is_a_keyword : Ref(Bool ); support_smlnj_antiquotes : Ref(Bool ); print_interactive_prompts : Ref(Bool ); unparse_result : Ref(Bool ); log_edit_requests : Ref(Bool ); remember_highcode_codetemp_names : Ref(Bool ); value_restriction_local_warn : Ref(Bool ); value_restriction_top_warn : Ref(Bool ); mult_def_warn : Ref(Bool ); share_def_error : Ref(Bool ); macro_expand_sigs : Ref(Bool ); internals : Ref(Bool ); interp : Ref(Bool ); save_lambda : Ref(Bool ); preserve_lvar_names : Ref(Bool ); mark_deep_syntax_tree : Ref(Bool ); track_exn : Ref(Bool ); poly_eq_warn : Ref(Bool ); indexing : Ref(Bool ); inst_sigs : Ref(Bool ); saveit : Ref(Bool ); save_deep_syntax_tree : Ref(Bool ); save_convert : Ref(Bool ); save_nextcode : Ref(Bool ); save_closure : Ref(Bool ); tdp_instrument_enabled : Ref(Bool ); package inline : api { Global_Setting = DEFAULT Null_Or(Int ) | OFF; Localsetting = Null_Or(Null_Or(Int ) ); use_default : Localsetting; suggest : Null_Or(Int ) -> Localsetting; set : Global_Setting -> Void; get : Void -> Null_Or(Int ); get' : Localsetting -> Null_Or(Int ); parse : String -> Null_Or(Global_Setting ); show : Global_Setting -> String;};;};