already-ready tests
[scpubgit/TenDotTcl.git] / snit / roadmap2.txt
1 This is a roadmap to the code layout in snit.tcl.
2
3 Package Definition
4 * package provide
5 * ::snit:: namespace definition; exports Snit commands.
6
7 Major Variable Definitions (this includes a whole lot of code)
8 * ::snit:: variable definitions:
9     * reservedArgs
10     * prettyStackTrace          Not used currently
11
12 * ::snit::typeTemplate          Template code shared by all Snit types.
13                                 As the type definition is parsed, it
14                                 produced text that gets inserted into
15                                 this template; then the template is
16                                 evaluated as though it were sourced
17                                 from a normal .tcl file.
18     * Type namespace definition
19          * User's typevariable definitions
20     * Commands for use in type code
21         * alias installhull
22         * alias install
23         * alias typevariable
24         * alias variable
25         * alias mytypevar
26         * alias typevarname         Deprecated
27         * alias myvar
28         * alias varname             Deprecated
29         * alias myproc
30         * alias codename            Deprecated
31         * alias mymethod
32         * alias mytypemethod
33         * alias from
34     * Snit's internal variables
35         * See dictionary.txt
36     * Template Code -- Stuff that gets filled in.
37         * proc Snit_instanceVars    Initializes instance variables
38         * proc Snit_typeconstructor
39     * Default Procs -- Stuff that's sometimes replaced.
40         * proc Snit_constructor     The default constructor
41         * proc Snit_destructor      The default destructor (empty)
42     * %COMPILEDDEFS%
43     * Call the Type Constructor
44
45 * ::snit::nominalTypeProc       Template for the normal type proc.
46 * ::snit::simpleTypeProc        Template for the simple type proc.
47                                 This is used when "-hastypemethods no";
48                                 all it does is create instances.
49
50 * ::snit::nominalInstanceProc   Template for the body of the normal
51                                 instance proc. Supports method
52                                 caching, delegation, etc.
53 * ::snit::simpleInstanceProc    Template for the body of the simple
54                                 instance proc, used when
55                                 "-simpledispatch yes".  Doesn't
56                                 support delegation, upvar,
57                                 hierarchical methods, or exotic return
58                                 types.
59  
60 * Snit compilation variables
61     * compiler                  The name of the slave interpreter used
62                                 to "compile" type definitions
63     * compile                   Array, accumulates results of
64                                 "compiling" type definitions
65     * reservedwords             List of names that can't be used as
66                                 macros.  Basically, any command
67                                 defined before the first macro.
68
69 Compilation Commands
70 * proc ::snit::Comp.Init
71 * proc ::snit::Comp.Compile
72 * proc ::snit::Comp.SaveOptionInfo
73 * proc ::snit::Comp.Define
74 * proc ::snit::Comp.statement.pragma
75 * proc ::snit::Comp.statement.widgetclass
76 * proc ::snit::Comp.statement.hulltype
77 * proc ::snit::Comp.statement.constructor
78 * proc ::snit::Comp.statement.destructor
79 * proc ::snit::Comp.statement.option
80 * proc ::snit::Comp.OptionNameIsValid
81 * proc ::snit::Comp.statement.oncget
82 * proc ::snit::Comp.statement.onconfigure
83 * proc ::snit::Comp.statement.method
84 * proc ::snit::Comp.CheckMethodName
85 * proc ::snit::Comp.statement.typemethod
86 * proc ::snit::Comp.statement.typeconstructor
87 * proc ::snit::Comp.statement.proc
88 * proc ::snit::Comp.statement.typevariable
89 * proc ::snit::Comp.statement.variable
90 * proc ::snit::Comp.statement.typecomponent
91 * proc ::snit::Comp.DefineTypeComponent
92 * proc ::snit::Comp.statement.component
93 * proc ::snit::Comp.DefineComponent
94 * proc ::snit::Comp.statement.delegate
95 * proc ::snit::Comp.DelegatedTypemethod
96 * proc ::snit::Comp.DelegatedMethod
97 * proc ::snit::Comp.DelegatedOption
98 * proc ::snit::Comp.statement.expose
99
100 Public Commands
101 * proc ::snit::compile
102 * proc ::snit::type
103 * proc ::snit::widgetadaptor
104 * proc ::snit::widget
105 * proc ::snit::typemethod
106 * proc ::snit::method
107 * proc ::snit::macro
108
109 Utility Commands
110 * proc ::snit::Expand
111 * proc ::snit::Mappend
112 * proc ::snit::CheckArgs
113 * proc ::snit::Capitalize
114
115 Snit Runtime Library
116
117 The commands defined here are used by Snit-generated code at run-time
118 rather than compile time.
119
120 * Object Creation
121 ** ::snit::RT.type.typemethod.create
122 ** ::snit::RT.widget.typemethod.create
123 ** ::snit::RT.MakeInstanceCommand
124 ** ::snit::RT.InstanceTrace
125 ** ::snit::RT.ConstructInstance
126 ** ::snit::RT.UniqueName
127 ** ::snit::RT.UniqueInstanceNamespace
128 ** ::snit::RT.OptionDbGet
129 * Object Destruction
130 ** ::snit::RT.method.destroy
131 ** ::snit::RT.DestroyObject
132 ** ::snit::RT.RemoveInstanceTrace
133 * Typecomponent Management and Typemethod Caching
134 ** ::snit::RT.TypecomponentTrace
135 ** ::snit::RT.UnknownTypemethod
136 * Component Management and Method Caching
137 ** ::snit::RT.Component
138 ** ::snit::RT.ComponentTrace
139 ** ::snit::RT.UnknownMethod
140 ** ::snit::RT.ClearInstanceCaches
141 * Component Installation
142 ** ::snit::RT.installhull
143 ** ::snit::RT.install
144 * Method/Variable Name Qualification
145 ** ::snit::RT.variable
146 ** ::snit::RT.mytypevar
147 ** ::snit::RT.myvar
148 ** ::snit::RT.myproc
149 ** ::snit::RT.codename
150 ** ::snit::RT.mytypemethod
151 ** ::snit::RT.mymethod
152 ** ::snit::RT.CallInstance
153 * Utilities
154 ** ::snit::RT.from
155 * Type Destruction
156 ** ::snit::RT.typemethod.destroy
157 * Option Handling
158 ** ::snit::RT.method.cget
159 ** ::snit::RT.CacheCgetCommand
160 ** ::snit::RT.method.configurelist
161 ** ::snit::RT.CacheConfigureCommand
162 ** ::snit::RT.method.configure
163 ** ::snit::RT.GetOptionDbSpec
164 * Type Introspection
165 ** ::snit::RT.typemethod.info
166 ** ::snit::RT.typemethod.info.typevars
167 ** ::snit::RT.typemethod.info.typemethods
168 ** ::snit::RT.typemethod.info.instances
169 * Instance Introspection
170 ** ::snit::RT.method.info
171 ** ::snit::RT.method.info.type
172 ** ::snit::RT.method.info.typevars
173 ** ::snit::RT.method.info.typemethods
174 ** ::snit::RT.method.info.methods
175 ** ::snit::RT.method.info.vars
176 ** ::snit::RT.method.info.options
177