PreviousUpNext

15.4.607  src/lib/compiler/front/typer-stuff/main/typer-data-controls.pkg

## typer-data-controls.pkg
## (C) 2001 Lucent Technologies, Bell Labs

# Compiled by:
#     src/lib/compiler/front/typer-stuff/typecheckdata.sublib


stipulate
    package bc  =  basic_control;                                               # basic_control                 is from   src/lib/compiler/front/basics/main/basic-control.pkg
    package ci  =  global_control_index;                                        # global_control_index          is from   src/lib/global-controls/global-control-index.pkg
    package cj  =  global_control_junk;                                         # global_control_junk                   is from   src/lib/global-controls/global-control-junk.pkg
    package ctl =  global_control;                                              # global_control                is from   src/lib/global-controls/global-control.pkg
herein

    package   typer_data_controls
    : (weak)  Typer_Data_Controls                                               # Typer_Data_Controls           is from   src/lib/compiler/front/typer-stuff/main/typer-data-controls.api
    {
        priority = [10, 10, 7];
        obscurity = 6;
        prefix = "ed";

        registry                                                                # More icky thread-hostile global mutable state. :( XXX BUGGO FIXME
            =
            ci::make { help => "typechecker datastructures" };
                                                                                            my _ = 
        bc::note_subindex (prefix, registry, priority);

        convert_boolean
            =
            cj::cvt::bool;

        next_menu_slot =  REF 0;

        fun make (name, help, initial_value)
            =
            state
            where
                state     =  REF initial_value;
                menu_slot =  *next_menu_slot;

                control
                    =
                    ctl::make_control
                        {
                          name,
                          help,
                          menu_slot  => [menu_slot],
                          obscurity,
                          control   => state
                        };

                next_menu_slot :=  menu_slot + 1;



                ci::note_control
                    #
                    registry
                    #
                    { control         =>   ctl::make_string_control  convert_boolean  control,
                      dictionary_name =>   THE (cj::dn::to_upper  "ED_"  name)
                    };
            end;

        remember_highcode_codetemp_names
            =
            make ("remember_highcode_codetemp_names", "?", TRUE);       # XXX BUGGO FIXME This should be FALSE for production use.

        expand_generics_g_debugging     = make ("expand_generics_g_debugging",          "?", FALSE);
        typerstore_debugging            = make ("typerstore_debugging",                 "?", FALSE);
        module_junk_debugging           = make ("module_junk_debugging",                "?", FALSE);

        type_junk_debugging             = make ("type_junk_debugging",                  "?", FALSE);
        types_debugging                 = make ("types_debugging",                      "?", FALSE);
        translate_to_anormcode_debugging= make ("translate_to_anormcode_debugging",     "?", FALSE);
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext