commit a copy of snit
[scpubgit/TenDotTcl.git] / snit / roadmap.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::Contains
114 * proc ::snit::Capitalize
115 * proc ::snit::Listify
116
117 Snit Runtime Library
118
119 The commands defined here are used by Snit-generated code at run-time
120 rather than compile time.
121
122 * Object Creation
123 ** ::snit::RT.type.typemethod.create
124 ** ::snit::RT.widget.typemethod.create
125 ** ::snit::RT.MakeInstanceCommand
126 ** ::snit::RT.InstanceTrace
127 ** ::snit::RT.ConstructInstance
128 ** ::snit::RT.UniqueName
129 ** ::snit::RT.UniqueInstanceNamespace
130 ** ::snit::RT.OptionDbGet
131 * Object Destruction
132 ** ::snit::RT.method.destroy
133 ** ::snit::RT.DestroyObject
134 ** ::snit::RT.RemoveInstanceTrace
135 * Typecomponent Management and Typemethod Caching
136 ** ::snit::RT.TypecomponentTrace
137 ** ::snit::RT.CacheTypemethodCommand
138 * Component Management and Method Caching
139 ** ::snit::RT.Component
140 ** ::snit::RT.ComponentTrace
141 ** ::snit::RT.CacheMethodCommand
142 ** ::snit::RT.LookupMethodCommand
143 ** ::snit::RT.ClearInstanceCaches
144 * Component Installation
145 ** ::snit::RT.installhull
146 ** ::snit::RT.install
147 * Method/Variable Name Qualification
148 ** ::snit::RT.variable
149 ** ::snit::RT.mytypevar
150 ** ::snit::RT.myvar
151 ** ::snit::RT.myproc
152 ** ::snit::RT.codename
153 ** ::snit::RT.mytypemethod
154 ** ::snit::RT.mymethod
155 ** ::snit::RT.CallInstance
156 * Utilities
157 ** ::snit::RT.from
158 * Type Destruction
159 ** ::snit::RT.typemethod.destroy
160 * Option Handling
161 ** ::snit::RT.method.cget
162 ** ::snit::RT.CacheCgetCommand
163 ** ::snit::RT.method.configurelist
164 ** ::snit::RT.CacheConfigureCommand
165 ** ::snit::RT.method.configure
166 ** ::snit::RT.GetOptionDbSpec
167 * Type Introspection
168 ** ::snit::RT.typemethod.info
169 ** ::snit::RT.typemethod.info.typevars
170 ** ::snit::RT.typemethod.info.typemethods
171 ** ::snit::RT.typemethod.info.instances
172 * Instance Introspection
173 ** ::snit::RT.method.info
174 ** ::snit::RT.method.info.type
175 ** ::snit::RT.method.info.typevars
176 ** ::snit::RT.method.info.typemethods
177 ** ::snit::RT.method.info.methods
178 ** ::snit::RT.method.info.vars
179 ** ::snit::RT.method.info.options
180