author | Claus Gittinger <cg@exept.de> |
Sun, 23 Sep 2018 01:23:05 +0200 | |
changeset 4305 | 2b94668b13a1 |
parent 4046 | ce10b34bf4a2 |
child 4061 | ebdd14acce2d |
child 4458 | 458a1ac0701d |
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 |
) |
|
115 |
! |
|
116 |
||
117 |
subProjects |
|
118 |
"list packages which are known as subprojects. |
|
119 |
The generated makefile will enter those and make there as well. |
|
120 |
However: they are not forced to be loaded when a package is loaded; |
|
121 |
for those, redefine requiredPrerequisites." |
|
3033
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
122 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
123 |
^ #( |
1827 | 124 |
) |
125 |
! ! |
|
126 |
||
1868 | 127 |
!stx_libcomp class methodsFor:'description - compilation'! |
128 |
||
2203 | 129 |
additionalBaseAddressDefinition_bc_dot_mak |
130 |
"this is an optional definition, which (if present) may speed up the dll-loading a little |
|
131 |
on win32 systems." |
|
132 |
||
1889 | 133 |
^ ' |
1968 | 134 |
# see stdHeader_bc for LIBCOMP_BASE |
2203 | 135 |
LIB_BASE=$(LIBCOMP_BASE) |
1889 | 136 |
' |
1878 | 137 |
! |
138 |
||
1868 | 139 |
stcOptimizationOptions |
3528 | 140 |
^ '+optinline +optinline2 +inlinenew' |
1868 | 141 |
|
142 |
"Created: / 23-08-2006 / 11:27:31 / cg" |
|
3528 | 143 |
! |
144 |
||
145 |
stcWarningOptions |
|
146 |
^ '-warnNonStandard -warnUnused' |
|
1868 | 147 |
! ! |
148 |
||
1927 | 149 |
!stx_libcomp class methodsFor:'description - contents'! |
150 |
||
151 |
classNamesAndAttributes |
|
2254 | 152 |
"lists the classes which are to be included in the project. |
153 |
Each entry in the list may be: a single class-name (symbol), |
|
154 |
or an array-literal consisting of class name and attributes. |
|
155 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
156 |
||
1927 | 157 |
^ #( |
2034 | 158 |
"<className> or (<className> attributes...) in load order" |
2497 | 159 |
Breakpoint |
2776 | 160 |
BreakpointDescription |
3435 | 161 |
BreakpointQuery |
2776 | 162 |
CompilationErrorHandler |
3779 | 163 |
CompilationErrorHandlerQuery |
2776 | 164 |
DoNotShowCompilerWarningAgainActionQuery |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
165 |
DoNotShowCompilerWarningAgainForThisMethodActionQuery |
3779 | 166 |
DoNotShowCompilerWarningAgainForThisReceiverSelectorActionQuery |
2776 | 167 |
InstrumentationContext |
168 |
InstrumentationInfo |
|
169 |
InstrumentedMethod |
|
170 |
LazyMethod |
|
171 |
ObjectFileHandle |
|
172 |
ObjectFileLoader |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
173 |
ParseError |
2776 | 174 |
ParseNode |
3823 | 175 |
ParseNodeVisitor |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
176 |
ParseWarning |
2776 | 177 |
ParserFlags |
178 |
ProgramNodeBuilder |
|
179 |
ProgramNodeEnumerator |
|
180 |
STCCompilerInterface |
|
181 |
Scanner |
|
182 |
SourceFileLoader |
|
183 |
Structure |
|
184 |
UndefinedVariable |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
185 |
UndefinedVariableNotification |
2776 | 186 |
Variable |
187 |
#'stx_libcomp' |
|
188 |
AssignmentNode |
|
189 |
BlockNode |
|
190 |
BreakpointNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
191 |
CompilationError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
192 |
EvalScriptingErrorHandler |
2776 | 193 |
MessageNode |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
194 |
MethodNode |
2776 | 195 |
ParseErrorNode |
196 |
Parser |
|
3823 | 197 |
PluggableParseNodeVisitor |
2776 | 198 |
PrimaryNode |
199 |
ProgramNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
200 |
SelectorNode |
2776 | 201 |
StatementNode |
202 |
TextCollectingCompilationErrorHandler |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
203 |
UndefinedSuperclassError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
204 |
UndefinedVariableError |
2776 | 205 |
WarningCompilationErrorHandler |
206 |
AbstractSyntaxHighlighter |
|
207 |
BinaryNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
208 |
BreakpointAnalyzer |
2776 | 209 |
ByteCodeCompiler |
210 |
CascadeNode |
|
211 |
ConstantNode |
|
212 |
Explainer |
|
213 |
PrimitiveNode |
|
214 |
ReturnNode |
|
215 |
SelfNode |
|
216 |
UnaryNode |
|
217 |
VariableNode |
|
218 |
ByteCodeCompilerWithBreakpointSupport |
|
219 |
CodeCoverageHighlighter |
|
220 |
Decompiler |
|
221 |
ECompletionConstantNode |
|
222 |
InstrumentingCompiler |
|
223 |
SuperNode |
|
224 |
SyntaxHighlighter |
|
3834 | 225 |
(ParseNodeValidator autoload) |
3823 | 226 |
(Switch autoload) |
2776 | 227 |
) |
228 |
! |
|
229 |
||
230 |
extensionMethodNames |
|
3848 | 231 |
"lists the extension methods which are to be included in the project. |
232 |
Entries are 2-element array literals, consisting of class-name and selector. |
|
233 |
A correponding method with real names must be present in my concrete subclasses |
|
234 |
if it has extensions." |
|
2776 | 235 |
|
236 |
^ #( |
|
237 |
Object notifyTodo:position:className:selector:severity:priority:equalityParameter:checkAction: |
|
238 |
) |
|
239 |
! |
|
240 |
||
241 |
xclassNamesAndAttributes |
|
242 |
"lists the classes which are to be included in the project. |
|
243 |
Each entry in the list may be: a single class-name (symbol), |
|
244 |
or an array-literal consisting of class name and attributes. |
|
245 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
246 |
||
247 |
^ #( |
|
248 |
"<className> or (<className> attributes...) in load order" |
|
249 |
Breakpoint |
|
2034 | 250 |
CompilationErrorHandler |
2497 | 251 |
DoNotShowCompilerWarningAgainActionQuery |
252 |
InstrumentedMethod |
|
2034 | 253 |
LazyMethod |
254 |
ObjectFileHandle |
|
255 |
ObjectFileLoader |
|
256 |
ParseNode |
|
257 |
ParserFlags |
|
258 |
ProgramNodeBuilder |
|
259 |
ProgramNodeEnumerator |
|
260 |
STCCompilerInterface |
|
261 |
Scanner |
|
262 |
SourceFileLoader |
|
263 |
Structure |
|
264 |
Switch |
|
265 |
UndefinedVariable |
|
266 |
Variable |
|
2497 | 267 |
#'stx_libcomp' |
268 |
AssignmentNode |
|
269 |
BlockNode |
|
270 |
BreakpointNode |
|
271 |
MessageNode |
|
272 |
Parser |
|
273 |
PrimaryNode |
|
274 |
ProgramNode |
|
275 |
StatementNode |
|
276 |
TextCollectingCompilationErrorHandler |
|
2034 | 277 |
WarningCompilationErrorHandler |
2497 | 278 |
AbstractSyntaxHighlighter |
279 |
BinaryNode |
|
280 |
ByteCodeCompiler |
|
281 |
CascadeNode |
|
282 |
ConstantNode |
|
283 |
Explainer |
|
284 |
ParseErrorNode |
|
285 |
PrimitiveNode |
|
286 |
ReturnNode |
|
287 |
SelfNode |
|
288 |
UnaryNode |
|
289 |
VariableNode |
|
290 |
ByteCodeCompilerWithBreakpointSupport |
|
291 |
CodeCoverageHighlighter |
|
292 |
Decompiler |
|
293 |
ECompletionConstantNode |
|
2642 | 294 |
InstrumentationInfo |
295 |
InstrumentationContext |
|
2366 | 296 |
InstrumentingCompiler |
2497 | 297 |
SuperNode |
298 |
SyntaxHighlighter |
|
2561 | 299 |
BreakpointDescription |
2580 | 300 |
(ParseNodeValidator autoload) |
2592 | 301 |
(ParseNodeVisitor autoload) |
2698
d91ab2f27d67
changed: #classNamesAndAttributes
Claus Gittinger <cg@exept.de>
parents:
2697
diff
changeset
|
302 |
(MethodNode autoload) |
1927 | 303 |
) |
2023 | 304 |
|
2776 | 305 |
"Created: / 06-12-2011 / 21:14:23 / cg" |
1927 | 306 |
! ! |
307 |
||
1827 | 308 |
!stx_libcomp class methodsFor:'description - project information'! |
309 |
||
310 |
companyName |
|
311 |
"Return a companyname which will appear in <lib>.rc" |
|
312 |
||
4044 | 313 |
^ 'Claus Gittinger / eXept Software AG' |
314 |
||
315 |
"Modified: / 18-11-2016 / 11:48:29 / cg" |
|
1827 | 316 |
! |
317 |
||
318 |
description |
|
319 |
"Return a description string which will appear in nt.def / bc.def" |
|
320 |
||
1859 | 321 |
^ 'Smalltalk/X Bytecode Compiler' |
322 |
! |
|
323 |
||
1827 | 324 |
legalCopyright |
325 |
"Return copyright string which will appear in <lib>.rc" |
|
326 |
||
4046 | 327 |
^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012' |
2045 | 328 |
|
4046 | 329 |
"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
|
330 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
331 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
332 |
productName |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
333 |
"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
|
334 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
335 |
^ 'Smalltalk/X' |
1827 | 336 |
! ! |
337 |
||
2497 | 338 |
!stx_libcomp class methodsFor:'description - svn'! |
339 |
||
340 |
svnRepositoryUrlString |
|
341 |
"Return a SVN repository URL of myself. |
|
342 |
(Generated since 2011-04-08) |
|
343 |
" |
|
344 |
||
345 |
^ '$URL$' |
|
346 |
! |
|
347 |
||
348 |
svnRevisionNr |
|
349 |
"Return a SVN revision number of myself. |
|
350 |
This number is updated after a commit" |
|
351 |
||
3157 | 352 |
^ "$SVN-Revision:"'exportiert'"$" |
2497 | 353 |
! ! |
354 |
||
1827 | 355 |
!stx_libcomp class methodsFor:'documentation'! |
356 |
||
2642 | 357 |
version |
3655 | 358 |
^ '$Header$' |
2642 | 359 |
! |
360 |
||
2497 | 361 |
version_CVS |
3655 | 362 |
^ '$Header$' |
2254 | 363 |
! |
364 |
||
2497 | 365 |
version_SVN |
3255 | 366 |
^ '$ Id $' |
1827 | 367 |
! ! |
3026 | 368 |