## typer-data-controls.pkg
## (C) 2001 Lucent Technologies, Bell Labs
# Compiled by:
#
src/lib/compiler/front/typer-stuff/typecheckdata.sublibstipulate
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.pkgherein
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;