author | Claus Gittinger <cg@exept.de> |
Thu, 01 Aug 2019 14:07:09 +0200 | |
changeset 4465 | 48abe3471357 |
parent 4458 | 458a1ac0701d |
child 4496 | 4896f7c0c61a |
permissions | -rw-r--r-- |
1858 | 1 |
" |
4045 | 2 |
COPYRIGHT (c) 1989 by Claus Gittinger / 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 |
" |
|
4045 | 27 |
COPYRIGHT (c) 1989 by Claus Gittinger / 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 |
|
4033 | 46 |
This compiler is used when code is changed within the running IDE or application, |
4045 | 47 |
and when source code is loaded (fileIn). |
4033 | 48 |
It generates bytecode methods, which are (typically) further translated to machine code by the VM, |
49 |
when first executed |
|
50 |
(although for some architectures, no JITTER is available, and the bytecode will be interpreted, |
|
51 |
which is of course much slower). |
|
52 |
||
53 |
This is not to be confused with the stc-compiler, which generates plain machine code, |
|
54 |
which is packaged into compiled class libraries and runs with very good performance. |
|
55 |
Usually, end user applications are deployed as stc-compiled binary code. |
|
56 |
And only patches or dynamically generated code uses bytecode methods. |
|
57 |
Therefore, the speed of the bytecode interpreter is usually not at all relevant to a deployed app's |
|
58 |
overall speed (and also not to the ST/X IDE itself, as it also consists of precompiled machine code). |
|
4045 | 59 |
|
60 |
[author:] |
|
61 |
cg |
|
62 |
||
63 |
[primary maintainer:] |
|
64 |
cg |
|
1858 | 65 |
" |
66 |
! ! |
|
1827 | 67 |
|
68 |
!stx_libcomp class methodsFor:'description'! |
|
69 |
||
2034 | 70 |
excludedFromPreRequisites |
71 |
^ #( |
|
2497 | 72 |
#'exept:ctypes' |
2034 | 73 |
#'stx:libbasic2' "Text - referenced by Parser>>selectorCheck:for:positions: " |
74 |
#'stx:libtool' "Tools::ToDoListBrowser - referenced by Parser>>selectorCheck:for:positions: " |
|
75 |
#'stx:libview' "Color - referenced by SyntaxHighlighter>>markParenthesisAt: " |
|
76 |
#'stx:libview2' "ValueHolder - referenced by Parser>>addDoItTemporary: " |
|
77 |
#'stx:libwidg' "Workspace - referenced by Parser>>primary_identifier " |
|
78 |
#'stx:libwidg2' "TextBox - referenced by WarningCompilationErrorHandler>>error:position:to:from: " |
|
2497 | 79 |
#'stx:goodies/sunit' |
3912 | 80 |
#'stx:goodies/refactoryBrowser/lint' "RBReadBeforeWrittenTester - referenced by Parser class>>checkMethod:in:ignoreErrors:ignoreWarnings:" |
81 |
#'stx:goodies/refactoryBrowser/parser' "RBAssignmentNode - referenced by Explainer class>>addTypesAssignedToLocal:inTree:to:" |
|
82 |
#'stx:goodies/refactoryBrowser/refactoring' "RenameTemporaryRefactoring - referenced by Parser::CorrectByInteractiveRename>>fixFrom:to:for:" |
|
83 |
#'stx:libbasic3' "AbstractSourceCodeManager - referenced by Explainer class>>methodSpecialInfoFor:" |
|
84 |
#'stx:libtool2' "MethodFinderWindow - referenced by Explainer class>>actionToOpenMethodFinderFor:" |
|
2034 | 85 |
) |
2497 | 86 |
|
87 |
"Modified: / 16-06-2011 / 15:33:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
2034 | 88 |
! |
89 |
||
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
90 |
mandatoryPreRequisites |
3834 | 91 |
"list packages which are mandatory as a prerequisite. |
92 |
This are packages containing superclasses of my classes and classes which |
|
93 |
are extended by myself. |
|
94 |
They are mandatory, because we need these packages as a prerequisite for loading and compiling. |
|
95 |
This method is generated automatically, |
|
96 |
by searching along the inheritance chain of all of my classes." |
|
2497 | 97 |
|
1827 | 98 |
^ #( |
3834 | 99 |
#'stx:libbasic' "Autoload - superclass of ParseNodeValidator" |
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
100 |
) |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
101 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
102 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
103 |
referencedPreRequisites |
3834 | 104 |
"list packages which are a prerequisite, because they contain |
105 |
classes which are referenced by my classes. |
|
106 |
We do not need these packages as a prerequisite for compiling or loading, |
|
107 |
however, a class from it may be referenced during execution and having it |
|
108 |
unloaded then may lead to a runtime doesNotUnderstand error, unless the caller |
|
109 |
includes explicit checks for the package being present. |
|
110 |
This method is generated automatically, |
|
111 |
by searching all classes (and their packages) which are referenced by my classes." |
|
112 |
||
113 |
^ #( |
|
114 |
) |
|
1827 | 115 |
! ! |
116 |
||
1868 | 117 |
!stx_libcomp class methodsFor:'description - compilation'! |
118 |
||
2203 | 119 |
additionalBaseAddressDefinition_bc_dot_mak |
120 |
"this is an optional definition, which (if present) may speed up the dll-loading a little |
|
121 |
on win32 systems." |
|
122 |
||
1889 | 123 |
^ ' |
1968 | 124 |
# see stdHeader_bc for LIBCOMP_BASE |
2203 | 125 |
LIB_BASE=$(LIBCOMP_BASE) |
1889 | 126 |
' |
1878 | 127 |
! |
128 |
||
1868 | 129 |
stcOptimizationOptions |
3528 | 130 |
^ '+optinline +optinline2 +inlinenew' |
1868 | 131 |
|
132 |
"Created: / 23-08-2006 / 11:27:31 / cg" |
|
3528 | 133 |
! |
134 |
||
135 |
stcWarningOptions |
|
136 |
^ '-warnNonStandard -warnUnused' |
|
1868 | 137 |
! ! |
138 |
||
1927 | 139 |
!stx_libcomp class methodsFor:'description - contents'! |
140 |
||
141 |
classNamesAndAttributes |
|
2254 | 142 |
"lists the classes which are to be included in the project. |
143 |
Each entry in the list may be: a single class-name (symbol), |
|
144 |
or an array-literal consisting of class name and attributes. |
|
145 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
146 |
||
1927 | 147 |
^ #( |
2034 | 148 |
"<className> or (<className> attributes...) in load order" |
2497 | 149 |
Breakpoint |
2776 | 150 |
BreakpointDescription |
3435 | 151 |
BreakpointQuery |
2776 | 152 |
CompilationErrorHandler |
3779 | 153 |
CompilationErrorHandlerQuery |
2776 | 154 |
DoNotShowCompilerWarningAgainActionQuery |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
155 |
DoNotShowCompilerWarningAgainForThisMethodActionQuery |
3779 | 156 |
DoNotShowCompilerWarningAgainForThisReceiverSelectorActionQuery |
2776 | 157 |
InstrumentationContext |
158 |
InstrumentationInfo |
|
159 |
InstrumentedMethod |
|
160 |
LazyMethod |
|
161 |
ObjectFileHandle |
|
162 |
ObjectFileLoader |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
163 |
ParseError |
2776 | 164 |
ParseNode |
3823 | 165 |
ParseNodeVisitor |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
166 |
ParseWarning |
2776 | 167 |
ParserFlags |
168 |
ProgramNodeBuilder |
|
169 |
ProgramNodeEnumerator |
|
170 |
STCCompilerInterface |
|
171 |
Scanner |
|
172 |
SourceFileLoader |
|
173 |
Structure |
|
174 |
UndefinedVariable |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
175 |
UndefinedVariableNotification |
2776 | 176 |
Variable |
177 |
#'stx_libcomp' |
|
178 |
AssignmentNode |
|
179 |
BlockNode |
|
180 |
BreakpointNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
181 |
CompilationError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
182 |
EvalScriptingErrorHandler |
2776 | 183 |
MessageNode |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
184 |
MethodNode |
2776 | 185 |
ParseErrorNode |
186 |
Parser |
|
3823 | 187 |
PluggableParseNodeVisitor |
2776 | 188 |
PrimaryNode |
189 |
ProgramNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
190 |
SelectorNode |
2776 | 191 |
StatementNode |
192 |
TextCollectingCompilationErrorHandler |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
193 |
UndefinedSuperclassError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
194 |
UndefinedVariableError |
2776 | 195 |
WarningCompilationErrorHandler |
196 |
AbstractSyntaxHighlighter |
|
197 |
BinaryNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
198 |
BreakpointAnalyzer |
2776 | 199 |
ByteCodeCompiler |
200 |
CascadeNode |
|
201 |
ConstantNode |
|
202 |
Explainer |
|
203 |
PrimitiveNode |
|
204 |
ReturnNode |
|
205 |
SelfNode |
|
206 |
UnaryNode |
|
207 |
VariableNode |
|
208 |
ByteCodeCompilerWithBreakpointSupport |
|
209 |
CodeCoverageHighlighter |
|
210 |
Decompiler |
|
211 |
ECompletionConstantNode |
|
212 |
InstrumentingCompiler |
|
213 |
SuperNode |
|
214 |
SyntaxHighlighter |
|
3834 | 215 |
(ParseNodeValidator autoload) |
3823 | 216 |
(Switch autoload) |
2776 | 217 |
) |
218 |
! |
|
219 |
||
220 |
extensionMethodNames |
|
3848 | 221 |
"lists the extension methods which are to be included in the project. |
222 |
Entries are 2-element array literals, consisting of class-name and selector. |
|
223 |
A correponding method with real names must be present in my concrete subclasses |
|
224 |
if it has extensions." |
|
2776 | 225 |
|
226 |
^ #( |
|
227 |
Object notifyTodo:position:className:selector:severity:priority:equalityParameter:checkAction: |
|
228 |
) |
|
229 |
! |
|
230 |
||
231 |
xclassNamesAndAttributes |
|
232 |
"lists the classes which are to be included in the project. |
|
233 |
Each entry in the list may be: a single class-name (symbol), |
|
234 |
or an array-literal consisting of class name and attributes. |
|
235 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
236 |
||
237 |
^ #( |
|
238 |
"<className> or (<className> attributes...) in load order" |
|
239 |
Breakpoint |
|
2034 | 240 |
CompilationErrorHandler |
2497 | 241 |
DoNotShowCompilerWarningAgainActionQuery |
242 |
InstrumentedMethod |
|
2034 | 243 |
LazyMethod |
244 |
ObjectFileHandle |
|
245 |
ObjectFileLoader |
|
246 |
ParseNode |
|
247 |
ParserFlags |
|
248 |
ProgramNodeBuilder |
|
249 |
ProgramNodeEnumerator |
|
250 |
STCCompilerInterface |
|
251 |
Scanner |
|
252 |
SourceFileLoader |
|
253 |
Structure |
|
254 |
Switch |
|
255 |
UndefinedVariable |
|
256 |
Variable |
|
2497 | 257 |
#'stx_libcomp' |
258 |
AssignmentNode |
|
259 |
BlockNode |
|
260 |
BreakpointNode |
|
261 |
MessageNode |
|
262 |
Parser |
|
263 |
PrimaryNode |
|
264 |
ProgramNode |
|
265 |
StatementNode |
|
266 |
TextCollectingCompilationErrorHandler |
|
2034 | 267 |
WarningCompilationErrorHandler |
2497 | 268 |
AbstractSyntaxHighlighter |
269 |
BinaryNode |
|
270 |
ByteCodeCompiler |
|
271 |
CascadeNode |
|
272 |
ConstantNode |
|
273 |
Explainer |
|
274 |
ParseErrorNode |
|
275 |
PrimitiveNode |
|
276 |
ReturnNode |
|
277 |
SelfNode |
|
278 |
UnaryNode |
|
279 |
VariableNode |
|
280 |
ByteCodeCompilerWithBreakpointSupport |
|
281 |
CodeCoverageHighlighter |
|
282 |
Decompiler |
|
283 |
ECompletionConstantNode |
|
2642 | 284 |
InstrumentationInfo |
285 |
InstrumentationContext |
|
2366 | 286 |
InstrumentingCompiler |
2497 | 287 |
SuperNode |
288 |
SyntaxHighlighter |
|
2561 | 289 |
BreakpointDescription |
2580 | 290 |
(ParseNodeValidator autoload) |
2592 | 291 |
(ParseNodeVisitor autoload) |
2698
d91ab2f27d67
changed: #classNamesAndAttributes
Claus Gittinger <cg@exept.de>
parents:
2697
diff
changeset
|
292 |
(MethodNode autoload) |
1927 | 293 |
) |
2023 | 294 |
|
2776 | 295 |
"Created: / 06-12-2011 / 21:14:23 / cg" |
1927 | 296 |
! ! |
297 |
||
1827 | 298 |
!stx_libcomp class methodsFor:'description - project information'! |
299 |
||
300 |
companyName |
|
301 |
"Return a companyname which will appear in <lib>.rc" |
|
302 |
||
4044 | 303 |
^ 'Claus Gittinger / eXept Software AG' |
304 |
||
305 |
"Modified: / 18-11-2016 / 11:48:29 / cg" |
|
1827 | 306 |
! |
307 |
||
308 |
description |
|
309 |
"Return a description string which will appear in nt.def / bc.def" |
|
310 |
||
1859 | 311 |
^ 'Smalltalk/X Bytecode Compiler' |
312 |
! |
|
313 |
||
1827 | 314 |
legalCopyright |
315 |
"Return copyright string which will appear in <lib>.rc" |
|
316 |
||
4046 | 317 |
^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012' |
2045 | 318 |
|
4046 | 319 |
"Modified: / 18-11-2016 / 12:17:52 / cg" |
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
320 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
321 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
322 |
productName |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
323 |
"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
|
324 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
325 |
^ 'Smalltalk/X' |
1827 | 326 |
! ! |
327 |
||
2497 | 328 |
!stx_libcomp class methodsFor:'description - svn'! |
329 |
||
330 |
svnRepositoryUrlString |
|
331 |
"Return a SVN repository URL of myself. |
|
332 |
(Generated since 2011-04-08) |
|
333 |
" |
|
334 |
||
335 |
^ '$URL$' |
|
336 |
! |
|
337 |
||
338 |
svnRevisionNr |
|
339 |
"Return a SVN revision number of myself. |
|
340 |
This number is updated after a commit" |
|
341 |
||
3157 | 342 |
^ "$SVN-Revision:"'exportiert'"$" |
2497 | 343 |
! ! |
344 |
||
1827 | 345 |
!stx_libcomp class methodsFor:'documentation'! |
346 |
||
2642 | 347 |
version |
3655 | 348 |
^ '$Header$' |
2642 | 349 |
! |
350 |
||
2497 | 351 |
version_CVS |
3655 | 352 |
^ '$Header$' |
2254 | 353 |
! |
354 |
||
2497 | 355 |
version_SVN |
3255 | 356 |
^ '$ Id $' |
1827 | 357 |
! ! |
3026 | 358 |