author | Stefan Vogel <sv@exept.de> |
Tue, 22 Oct 2019 19:21:17 +0200 | |
changeset 4585 | 2e3d4e6881e0 |
parent 4496 | 4896f7c0c61a |
child 4723 | 524785227024 |
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 |
4496 | 154 |
DoEnableCompilerOptionActionQuery |
2776 | 155 |
DoNotShowCompilerWarningAgainActionQuery |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
156 |
DoNotShowCompilerWarningAgainForThisMethodActionQuery |
3779 | 157 |
DoNotShowCompilerWarningAgainForThisReceiverSelectorActionQuery |
2776 | 158 |
InstrumentationContext |
159 |
InstrumentationInfo |
|
160 |
InstrumentedMethod |
|
161 |
LazyMethod |
|
162 |
ObjectFileHandle |
|
163 |
ObjectFileLoader |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
164 |
ParseError |
2776 | 165 |
ParseNode |
3823 | 166 |
ParseNodeVisitor |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
167 |
ParseWarning |
2776 | 168 |
ParserFlags |
169 |
ProgramNodeBuilder |
|
170 |
ProgramNodeEnumerator |
|
171 |
STCCompilerInterface |
|
172 |
Scanner |
|
173 |
SourceFileLoader |
|
174 |
Structure |
|
175 |
UndefinedVariable |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
176 |
UndefinedVariableNotification |
2776 | 177 |
Variable |
178 |
#'stx_libcomp' |
|
179 |
AssignmentNode |
|
180 |
BlockNode |
|
181 |
BreakpointNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
182 |
CompilationError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
183 |
EvalScriptingErrorHandler |
2776 | 184 |
MessageNode |
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
185 |
MethodNode |
2776 | 186 |
ParseErrorNode |
187 |
Parser |
|
3823 | 188 |
PluggableParseNodeVisitor |
2776 | 189 |
PrimaryNode |
190 |
ProgramNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
191 |
SelectorNode |
2776 | 192 |
StatementNode |
193 |
TextCollectingCompilationErrorHandler |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
194 |
UndefinedSuperclassError |
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
195 |
UndefinedVariableError |
2776 | 196 |
WarningCompilationErrorHandler |
197 |
AbstractSyntaxHighlighter |
|
198 |
BinaryNode |
|
3373
b6fe9ced025f
added EvalScriptingErrorHandler
Claus Gittinger <cg@exept.de>
parents:
3261
diff
changeset
|
199 |
BreakpointAnalyzer |
2776 | 200 |
ByteCodeCompiler |
201 |
CascadeNode |
|
202 |
ConstantNode |
|
203 |
Explainer |
|
204 |
PrimitiveNode |
|
205 |
ReturnNode |
|
206 |
SelfNode |
|
207 |
UnaryNode |
|
208 |
VariableNode |
|
209 |
ByteCodeCompilerWithBreakpointSupport |
|
210 |
CodeCoverageHighlighter |
|
211 |
Decompiler |
|
212 |
ECompletionConstantNode |
|
213 |
InstrumentingCompiler |
|
214 |
SuperNode |
|
215 |
SyntaxHighlighter |
|
3834 | 216 |
(ParseNodeValidator autoload) |
3823 | 217 |
(Switch autoload) |
2776 | 218 |
) |
219 |
! |
|
220 |
||
221 |
extensionMethodNames |
|
3848 | 222 |
"lists the extension methods which are to be included in the project. |
223 |
Entries are 2-element array literals, consisting of class-name and selector. |
|
224 |
A correponding method with real names must be present in my concrete subclasses |
|
225 |
if it has extensions." |
|
2776 | 226 |
|
227 |
^ #( |
|
228 |
Object notifyTodo:position:className:selector:severity:priority:equalityParameter:checkAction: |
|
229 |
) |
|
230 |
! |
|
231 |
||
232 |
xclassNamesAndAttributes |
|
233 |
"lists the classes which are to be included in the project. |
|
234 |
Each entry in the list may be: a single class-name (symbol), |
|
235 |
or an array-literal consisting of class name and attributes. |
|
236 |
Attributes are: #autoload or #<os> where os is one of win32, unix,..." |
|
237 |
||
238 |
^ #( |
|
239 |
"<className> or (<className> attributes...) in load order" |
|
240 |
Breakpoint |
|
2034 | 241 |
CompilationErrorHandler |
2497 | 242 |
DoNotShowCompilerWarningAgainActionQuery |
243 |
InstrumentedMethod |
|
2034 | 244 |
LazyMethod |
245 |
ObjectFileHandle |
|
246 |
ObjectFileLoader |
|
247 |
ParseNode |
|
248 |
ParserFlags |
|
249 |
ProgramNodeBuilder |
|
250 |
ProgramNodeEnumerator |
|
251 |
STCCompilerInterface |
|
252 |
Scanner |
|
253 |
SourceFileLoader |
|
254 |
Structure |
|
255 |
Switch |
|
256 |
UndefinedVariable |
|
257 |
Variable |
|
2497 | 258 |
#'stx_libcomp' |
259 |
AssignmentNode |
|
260 |
BlockNode |
|
261 |
BreakpointNode |
|
262 |
MessageNode |
|
263 |
Parser |
|
264 |
PrimaryNode |
|
265 |
ProgramNode |
|
266 |
StatementNode |
|
267 |
TextCollectingCompilationErrorHandler |
|
2034 | 268 |
WarningCompilationErrorHandler |
2497 | 269 |
AbstractSyntaxHighlighter |
270 |
BinaryNode |
|
271 |
ByteCodeCompiler |
|
272 |
CascadeNode |
|
273 |
ConstantNode |
|
274 |
Explainer |
|
275 |
ParseErrorNode |
|
276 |
PrimitiveNode |
|
277 |
ReturnNode |
|
278 |
SelfNode |
|
279 |
UnaryNode |
|
280 |
VariableNode |
|
281 |
ByteCodeCompilerWithBreakpointSupport |
|
282 |
CodeCoverageHighlighter |
|
283 |
Decompiler |
|
284 |
ECompletionConstantNode |
|
2642 | 285 |
InstrumentationInfo |
286 |
InstrumentationContext |
|
2366 | 287 |
InstrumentingCompiler |
2497 | 288 |
SuperNode |
289 |
SyntaxHighlighter |
|
2561 | 290 |
BreakpointDescription |
2580 | 291 |
(ParseNodeValidator autoload) |
2592 | 292 |
(ParseNodeVisitor autoload) |
2698
d91ab2f27d67
changed: #classNamesAndAttributes
Claus Gittinger <cg@exept.de>
parents:
2697
diff
changeset
|
293 |
(MethodNode autoload) |
1927 | 294 |
) |
2023 | 295 |
|
2776 | 296 |
"Created: / 06-12-2011 / 21:14:23 / cg" |
1927 | 297 |
! ! |
298 |
||
1827 | 299 |
!stx_libcomp class methodsFor:'description - project information'! |
300 |
||
301 |
companyName |
|
302 |
"Return a companyname which will appear in <lib>.rc" |
|
303 |
||
4044 | 304 |
^ 'Claus Gittinger / eXept Software AG' |
305 |
||
306 |
"Modified: / 18-11-2016 / 11:48:29 / cg" |
|
1827 | 307 |
! |
308 |
||
309 |
description |
|
310 |
"Return a description string which will appear in nt.def / bc.def" |
|
311 |
||
1859 | 312 |
^ 'Smalltalk/X Bytecode Compiler' |
313 |
! |
|
314 |
||
1827 | 315 |
legalCopyright |
316 |
"Return copyright string which will appear in <lib>.rc" |
|
317 |
||
4046 | 318 |
^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012' |
2045 | 319 |
|
4046 | 320 |
"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
|
321 |
! |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
322 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
323 |
productName |
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
324 |
"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
|
325 |
|
47393e19b5d2
Now preRequiites are separated in mandatoryPreRequisites and referencedPreRequisites
Stefan Vogel <sv@exept.de>
parents:
3026
diff
changeset
|
326 |
^ 'Smalltalk/X' |
1827 | 327 |
! ! |
328 |
||
2497 | 329 |
!stx_libcomp class methodsFor:'description - svn'! |
330 |
||
331 |
svnRepositoryUrlString |
|
332 |
"Return a SVN repository URL of myself. |
|
333 |
(Generated since 2011-04-08) |
|
334 |
" |
|
335 |
||
336 |
^ '$URL$' |
|
337 |
! |
|
338 |
||
339 |
svnRevisionNr |
|
340 |
"Return a SVN revision number of myself. |
|
341 |
This number is updated after a commit" |
|
342 |
||
3157 | 343 |
^ "$SVN-Revision:"'exportiert'"$" |
2497 | 344 |
! ! |
345 |
||
1827 | 346 |
!stx_libcomp class methodsFor:'documentation'! |
347 |
||
2642 | 348 |
version |
3655 | 349 |
^ '$Header$' |
2642 | 350 |
! |
351 |
||
2497 | 352 |
version_CVS |
3655 | 353 |
^ '$Header$' |
2254 | 354 |
! |
355 |
||
2497 | 356 |
version_SVN |
3255 | 357 |
^ '$ Id $' |
1827 | 358 |
! ! |
3026 | 359 |