PreviousUpNext

15.3.294  src/lib/compiler/toplevel/main/control-apis.api

## control-apis.api 

# Compiled by:
#     src/lib/compiler/core.sublib



###       "All truths are easy to understand
###        once they are discovered; the
###        point is to discover them."
###
###                  -- Galileo Galilei



api Match_Compiler_Controls {                                   # This api is implemented in:   src/lib/compiler/toplevel/main/match-compiler-controls.pkg
    #
    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 );

#   my expand_result:              Ref( Bool )

};

api Anormcode_Sequencer_Controls {
    #
    print:                      Ref( Bool );
    print_phases:               Ref( Bool );
    print_function_types:       Ref( Bool );
    anormcode_passes:           Ref( List(String) );
    #
    inline_threshold:           Ref( Int );
 #  split_threshold:            Ref( Int ) 
    unroll_threshold:           Ref( Int );
    maxargs:                    Ref( Int );     #  to put a cap on arity raising 
    dropinvariant:              Ref( Bool );

    specialize:                 Ref( Bool );
 #  lift_literals:              Ref( Bool ) 
    sharewrap:                  Ref( Bool );
    saytappinfo:                Ref( Bool );    #  for verbose typelifting 

   #  Only for temporary debugging: 
    misc:                       Ref( Int );

    # Highcode internal type-checking controls:
    #
    check:                      Ref(  Bool );
    check_sumtypes:             Ref(  Bool );
    check_kinds:                Ref(  Bool );
};

stipulate
    package fil =  file__premicrothread;                                # file__premicrothread  is from   src/lib/std/src/posix/file--premicrothread.pkg
herein

    api Compiler_Controls {
        #
        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) );           #  list of optional_nextcode_improvers phases 

        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(  fil::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 );
    };
end;

## COPYRIGHT (c) 1995 AT&T Bell Laboratories 
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext