author | Claus Gittinger <cg@exept.de> |
Mon, 11 May 2015 15:20:01 +0200 | |
changeset 3628 | febf865a3ca9 |
parent 3597 | 89fd7f6409ca |
child 3655 | c6a2d886cfe9 |
permissions | -rw-r--r-- |
1858 | 1 |
" |
2 |
COPYRIGHT (c) 2006 by eXept Software AG |
|
3135 | 3 |
All Rights Reserved |
1858 | 4 |
|
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
1827 | 12 |
"{ Package: 'stx:libcomp' }" |
13 |
||
3559 | 14 |
"{ NameSpace: Smalltalk }" |
15 |
||
1827 | 16 |
LibraryDefinition subclass:#stx_libcomp |
3255 | 17 |
instanceVariableNames:'' |
18 |
classVariableNames:'' |
|
19 |
poolDictionaries:'' |
|
20 |
category:'* Projects & Packages *' |
|
1827 | 21 |
! |
22 |
||
1858 | 23 |
!stx_libcomp class methodsFor:'documentation'! |
24 |
||
25 |
copyright |
|
26 |
" |
|
27 |
COPYRIGHT (c) 2006 by eXept Software AG |
|
3135 | 28 |
All Rights Reserved |
1858 | 29 |
|
30 |
This software is furnished under a license and may be used |
|
31 |
only in accordance with the terms of that license and with the |
|
32 |
inclusion of the above copyright notice. This software may not |
|
33 |
be provided or otherwise made available to, or used by, any |
|
34 |
other person. No title to or ownership of the software is |
|
35 |
hereby transferred. |
|
36 |
" |
|
37 |
! |
|
38 |
||
39 |
documentation |
|
40 |
" |
|
3498 | 41 |
Package documentation: |
42 |
||
3559 | 43 |
This library contains the Smalltalk parser and bytecode compiler, |
3498 | 44 |
and related support classes (AST representation). |
3597 | 45 |
|
46 |
This compiler is used when code is changed within the running IDE or application. |
|
47 |
It generates bytecode methods, which are further translated to machine code by the VM, |
|
48 |
when first executed. |
|
49 |
This is not to be confused with the stc-compiler, which generates plain machine code, which |
|
50 |
is packaged in compiled class libraries. Usually, end user applications are deployed as |
|
51 |
stc-compiled binary code. And only patches or dynamically generated code uses bytecode methods. |
|
1858 | 52 |
" |
53 |
! ! |
|
1827 | 54 |
|
55 |
!stx_libcomp class methodsFor:'description'! |
|
56 |
||
2034 | 57 |
excludedFromPreRequisites |
58 |
^ #( |
|
2497 | 59 |
#'exept:ctypes' |
2034 | 60 |
#'stx:libbasic2' "Text - referenced by Parser>>selectorCheck:for:positions: " |
61 |
#'stx:libtool' "Tools::ToDoListBrowser - referenced by Parser>>selectorCheck:for:positions: " |
|
62 |
#'stx:libview' "Color - referenced by SyntaxHighlighter>>markParenthesisAt: " |
|
63 |
#'stx:libview2' "ValueHolder - referenced by Parser>>addDoItTemporary: " |
|
64 |
#'stx:libwidg' "Workspace - referenced by Parser>>primary_identifier " |
|
65 |
#'stx:libwidg2' "TextBox - referenced by WarningCompilationErrorHandler>>error:position:to:from: " |
|
2497 | 66 |
#'stx:goodies/sunit' |
2034 | 67 |
) |
2497 | 68 |
|
69 |
"Modified: / 16-06-2011 / 15:33:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
2034 | 70 |
! |
71 |
||
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
72 |
mandatoryPreRequisites |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
73 |
"list all required mandatory packages. |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
74 |
Packages are mandatory, if they contain superclasses of the package's classes |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
75 |
or classes which are extended by this package. |
2497 | 76 |
This list can be maintained manually or (better) generated and |
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
77 |
updated by scanning the superclass hierarchies |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
78 |
(the browser has a menu function for that) |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
79 |
However, often too much is found, and you may want to explicitely |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
80 |
exclude individual packages in the #excludedFromPreRequisites method." |
2497 | 81 |
|
1827 | 82 |
^ #( |
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
83 |
#'stx:libbasic' "Query - superclass of Parser::AskForVariableTypeOfUndeclaredQuery " |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
84 |
) |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
85 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
86 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
87 |
referencedPreRequisites |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
88 |
"list all packages containing classes referenced by the packages's members. |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
89 |
This list can be maintained manually or (better) generated and |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
90 |
updated by looking for global variable accesses |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
91 |
(the browser has a menu function for that) |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
92 |
However, often too much is found, and you may want to explicitely |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
93 |
exclude individual packages in the #excludedFromPreRequisites method." |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
94 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
95 |
^ #( |
1827 | 96 |
) |
97 |
! ! |
|
98 |
||
1868 | 99 |
!stx_libcomp class methodsFor:'description - compilation'! |
100 |
||
2203 | 101 |
additionalBaseAddressDefinition_bc_dot_mak |
102 |
"this is an optional definition, which (if present) may speed up the dll-loading a little |
|
103 |
on win32 systems." |
|
104 |
||
1889 | 105 |
^ ' |
1968 | 106 |
# see stdHeader_bc for LIBCOMP_BASE |
2203 | 107 |
LIB_BASE=$(LIBCOMP_BASE) |
1889 | 108 |
' |
1878 | 109 |
! |
110 |
||
1868 | 111 |
stcOptimizationOptions |
3528 | 112 |
^ '+optinline +optinline2 +inlinenew' |
1868 | 113 |
|
114 |
"Created: / 23-08-2006 / 11:27:31 / cg" |
|
3528 | 115 |
! |
116 |
||
117 |
stcWarningOptions |
|
118 |
^ '-warnNonStandard -warnUnused' |
|
1868 | 119 |
! ! |
120 |
||
1927 | 121 |
!stx_libcomp class methodsFor:'description - contents'! |
122 |
||
123 |
classNamesAndAttributes |
|
2254 | 124 |
"lists the classes which are to be included in the project. |
125 |
Each entry in the list may be: a single class-name (symbol), |
|
126 |
or an array-literal consisting of class name and attributes. |
|
127 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
128 |
||
1927 | 129 |
^ #( |
2034 | 130 |
"<className> or (<className> attributes...) in load order" |
2497 | 131 |
Breakpoint |
2776 | 132 |
BreakpointDescription |
3435 | 133 |
BreakpointQuery |
2776 | 134 |
CompilationErrorHandler |
135 |
DoNotShowCompilerWarningAgainActionQuery |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
136 |
DoNotShowCompilerWarningAgainForThisMethodActionQuery |
2776 | 137 |
InstrumentationContext |
138 |
InstrumentationInfo |
|
139 |
InstrumentedMethod |
|
140 |
LazyMethod |
|
141 |
ObjectFileHandle |
|
142 |
ObjectFileLoader |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
143 |
ParseError |
2776 | 144 |
ParseNode |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
145 |
ParseWarning |
2776 | 146 |
ParserFlags |
147 |
ProgramNodeBuilder |
|
148 |
ProgramNodeEnumerator |
|
149 |
STCCompilerInterface |
|
150 |
Scanner |
|
151 |
SourceFileLoader |
|
152 |
Structure |
|
153 |
UndefinedVariable |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
154 |
UndefinedVariableNotification |
2776 | 155 |
Variable |
156 |
#'stx_libcomp' |
|
157 |
AssignmentNode |
|
158 |
BlockNode |
|
159 |
BreakpointNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
160 |
CompilationError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
161 |
EvalScriptingErrorHandler |
2776 | 162 |
MessageNode |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
163 |
MethodNode |
2776 | 164 |
ParseErrorNode |
165 |
Parser |
|
166 |
PrimaryNode |
|
167 |
ProgramNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
168 |
SelectorNode |
2776 | 169 |
StatementNode |
170 |
TextCollectingCompilationErrorHandler |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
171 |
UndefinedSuperclassError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
172 |
UndefinedVariableError |
2776 | 173 |
WarningCompilationErrorHandler |
174 |
AbstractSyntaxHighlighter |
|
175 |
BinaryNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
176 |
BreakpointAnalyzer |
2776 | 177 |
ByteCodeCompiler |
178 |
CascadeNode |
|
179 |
ConstantNode |
|
180 |
Explainer |
|
181 |
PrimitiveNode |
|
182 |
ReturnNode |
|
183 |
SelfNode |
|
184 |
UnaryNode |
|
185 |
VariableNode |
|
186 |
ByteCodeCompilerWithBreakpointSupport |
|
187 |
CodeCoverageHighlighter |
|
188 |
Decompiler |
|
189 |
ECompletionConstantNode |
|
190 |
InstrumentingCompiler |
|
191 |
SuperNode |
|
192 |
SyntaxHighlighter |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
193 |
(ParseNodeValidator autoload) |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
194 |
(ParseNodeVisitor autoload) |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
195 |
(Switch autoload) |
2776 | 196 |
) |
197 |
! |
|
198 |
||
199 |
extensionMethodNames |
|
200 |
"lists the extension methods which are to be included in the project. |
|
201 |
Entries are 2-element array literals, consisting of class-name and selector." |
|
202 |
||
203 |
^ #( |
|
204 |
Object notifyTodo:position:className:selector:severity:priority:equalityParameter:checkAction: |
|
205 |
) |
|
206 |
! |
|
207 |
||
208 |
xclassNamesAndAttributes |
|
209 |
"lists the classes which are to be included in the project. |
|
210 |
Each entry in the list may be: a single class-name (symbol), |
|
211 |
or an array-literal consisting of class name and attributes. |
|
212 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
213 |
||
214 |
^ #( |
|
215 |
"<className> or (<className> attributes...) in load order" |
|
216 |
Breakpoint |
|
2034 | 217 |
CompilationErrorHandler |
2497 | 218 |
DoNotShowCompilerWarningAgainActionQuery |
219 |
InstrumentedMethod |
|
2034 | 220 |
LazyMethod |
221 |
ObjectFileHandle |
|
222 |
ObjectFileLoader |
|
223 |
ParseNode |
|
224 |
ParserFlags |
|
225 |
ProgramNodeBuilder |
|
226 |
ProgramNodeEnumerator |
|
227 |
STCCompilerInterface |
|
228 |
Scanner |
|
229 |
SourceFileLoader |
|
230 |
Structure |
|
231 |
Switch |
|
232 |
UndefinedVariable |
|
233 |
Variable |
|
2497 | 234 |
#'stx_libcomp' |
235 |
AssignmentNode |
|
236 |
BlockNode |
|
237 |
BreakpointNode |
|
238 |
MessageNode |
|
239 |
Parser |
|
240 |
PrimaryNode |
|
241 |
ProgramNode |
|
242 |
StatementNode |
|
243 |
TextCollectingCompilationErrorHandler |
|
2034 | 244 |
WarningCompilationErrorHandler |
2497 | 245 |
AbstractSyntaxHighlighter |
246 |
BinaryNode |
|
247 |
ByteCodeCompiler |
|
248 |
CascadeNode |
|
249 |
ConstantNode |
|
250 |
Explainer |
|
251 |
ParseErrorNode |
|
252 |
PrimitiveNode |
|
253 |
ReturnNode |
|
254 |
SelfNode |
|
255 |
UnaryNode |
|
256 |
VariableNode |
|
257 |
ByteCodeCompilerWithBreakpointSupport |
|
258 |
CodeCoverageHighlighter |
|
259 |
Decompiler |
|
260 |
ECompletionConstantNode |
|
2642 | 261 |
InstrumentationInfo |
262 |
InstrumentationContext |
|
2366 | 263 |
InstrumentingCompiler |
2497 | 264 |
SuperNode |
265 |
SyntaxHighlighter |
|
2561 | 266 |
BreakpointDescription |
2580 | 267 |
(ParseNodeValidator autoload) |
2592 | 268 |
(ParseNodeVisitor autoload) |
2698
d91ab2f27d67
changed: #classNamesAndAttributes
Claus Gittinger <cg@exept.de>
parents:
2697
diff
changeset
|
269 |
(MethodNode autoload) |
1927 | 270 |
) |
2023 | 271 |
|
2776 | 272 |
"Created: / 06-12-2011 / 21:14:23 / cg" |
1927 | 273 |
! ! |
274 |
||
1827 | 275 |
!stx_libcomp class methodsFor:'description - project information'! |
276 |
||
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
277 |
applicationIconFileName |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
278 |
"Return the name (without suffix) of an icon-file (the app's icon); will be included in the rc-resource file" |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
279 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
280 |
^ nil |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
281 |
"/ ^ self applicationName |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
282 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
283 |
|
1827 | 284 |
companyName |
285 |
"Return a companyname which will appear in <lib>.rc" |
|
286 |
||
287 |
^ 'eXept Software AG' |
|
288 |
! |
|
289 |
||
290 |
description |
|
291 |
"Return a description string which will appear in nt.def / bc.def" |
|
292 |
||
1859 | 293 |
^ 'Smalltalk/X Bytecode Compiler' |
294 |
! |
|
295 |
||
1827 | 296 |
legalCopyright |
297 |
"Return copyright string which will appear in <lib>.rc" |
|
298 |
||
2886 | 299 |
^ 'Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012' |
2045 | 300 |
|
2886 | 301 |
"Modified: / 18-07-2012 / 19:11:33 / cg" |
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
302 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
303 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
304 |
productName |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
305 |
"Return a product name which will appear in <lib>.rc" |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
306 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
307 |
^ 'Smalltalk/X' |
1827 | 308 |
! ! |
309 |
||
2497 | 310 |
!stx_libcomp class methodsFor:'description - svn'! |
311 |
||
312 |
svnRepositoryUrlString |
|
313 |
"Return a SVN repository URL of myself. |
|
314 |
(Generated since 2011-04-08) |
|
315 |
" |
|
316 |
||
317 |
^ '$URL$' |
|
318 |
! |
|
319 |
||
320 |
svnRevisionNr |
|
321 |
"Return a SVN revision number of myself. |
|
322 |
This number is updated after a commit" |
|
323 |
||
3157 | 324 |
^ "$SVN-Revision:"'exportiert'"$" |
2497 | 325 |
! ! |
326 |
||
1827 | 327 |
!stx_libcomp class methodsFor:'documentation'! |
328 |
||
2642 | 329 |
version |
3597 | 330 |
^ '$Header: /cvs/stx/stx/libcomp/stx_libcomp.st,v 1.72 2015-02-21 11:27:04 cg Exp $' |
2642 | 331 |
! |
332 |
||
2497 | 333 |
version_CVS |
3597 | 334 |
^ '$Header: /cvs/stx/stx/libcomp/stx_libcomp.st,v 1.72 2015-02-21 11:27:04 cg Exp $' |
2254 | 335 |
! |
336 |
||
2497 | 337 |
version_SVN |
3255 | 338 |
^ '$ Id $' |
1827 | 339 |
! ! |
3026 | 340 |