author | Claus Gittinger <cg@exept.de> |
Tue, 28 Aug 2018 16:14:10 +0200 | |
branch | cvs_MAIN |
changeset 3831 | 18ebe0c2c00f |
parent 3724 | 8184529b4866 |
permissions | -rw-r--r-- |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko, |
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
3 |
SWING Research Group, Czech Technical University |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
in Prague |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
Permission is hereby granted, free of charge, to any person |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
obtaining a copy of this software and associated documentation |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
files (the 'Software'), to deal in the Software without |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
restriction, including without limitation the rights to use, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
copies of the Software, and to permit persons to whom the |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
Software is furnished to do so, subject to the following |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
conditions: |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
The above copyright notice and this permission notice shall be |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
included in all copies or substantial portions of the Software. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
OTHER DEALINGS IN THE SOFTWARE. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
" |
2729
ac412f6ea6d4
More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2728
diff
changeset
|
27 |
"{ Package: 'stx:libjava/tools' }" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
|
3723 | 29 |
"{ NameSpace: Smalltalk }" |
30 |
||
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
Object subclass:#JavaCompiler |
2734
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
32 |
instanceVariableNames:'className imports packageName sourceCode sourceDir requestor |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
33 |
classloader problems' |
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
34 |
classVariableNames:'SynchronizationLock' |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
poolDictionaries:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
category:'Languages-Java-Support-Compiling' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
!JavaCompiler class methodsFor:'documentation'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
copyright |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko, |
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
44 |
SWING Research Group, Czech Technical University |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
in Prague |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
Permission is hereby granted, free of charge, to any person |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
obtaining a copy of this software and associated documentation |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
files (the 'Software'), to deal in the Software without |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
restriction, including without limitation the rights to use, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
copies of the Software, and to permit persons to whom the |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
Software is furnished to do so, subject to the following |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
conditions: |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
The above copyright notice and this permission notice shall be |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
included in all copies or substantial portions of the Software. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
OTHER DEALINGS IN THE SOFTWARE. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
documentation |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
" |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
73 |
An facade to Java compiler to compile Java classed from |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
source (given as string). |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
|
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
76 |
Internally, it uses ECJ. See stx.libjava.compiler.ecj.CompilerAdapter. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
[author:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
Jan Vrany <jan.vrany@fit.cvut.cz> |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
Marcel Hlopko <marcel.hlopko@fit.cvut.cz> |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
[instance variables:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
[class variables:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
[see also:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
history |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
"Created: #dotJavaPathname / 13-12-2012 / 00:02:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
|
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
96 |
!JavaCompiler class methodsFor:'initialization'! |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
97 |
|
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
98 |
initialize |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
99 |
"Invoked at system start or when the class is dynamically loaded." |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
100 |
|
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
101 |
"/ please change as required (and remove this comment) |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
102 |
|
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
103 |
SynchronizationLock := RecursionLock new. |
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
104 |
|
2738
a633a2e8e67e
Make sure eclipse Parser is initialized before actually start parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2734
diff
changeset
|
105 |
"Modified: / 19-09-2013 / 10:54:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
106 |
! ! |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
107 |
|
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
!JavaCompiler class methodsFor:'instance creation'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
new |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
111 |
^self basicNew initialize |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
112 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
"Created: / 15-12-2012 / 16:48:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
114 |
"Modified: / 15-04-2013 / 20:43:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
116 |
|
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
117 |
!JavaCompiler class methodsFor:'accessing'! |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
118 |
|
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
119 |
SynchronizationLock |
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
120 |
^ SynchronizationLock |
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
121 |
|
2738
a633a2e8e67e
Make sure eclipse Parser is initialized before actually start parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2734
diff
changeset
|
122 |
"Created: / 19-09-2013 / 10:55:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
123 |
! ! |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
124 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
125 |
!JavaCompiler class methodsFor:'compiler interface'! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
126 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
127 |
compile: source |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
128 |
"Compiles a new Groovy class given the source code" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
129 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
130 |
^self new compile: source. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
131 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
132 |
"Created: / 27-02-2012 / 23:27:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
133 |
! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
134 |
|
2648
f871848ecfa8
Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2645
diff
changeset
|
135 |
compile:source forClass: class inCategory:cat notifying: requestor |
f871848ecfa8
Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2645
diff
changeset
|
136 |
^ self compile:source forClass: class inCategory:cat notifying: requestor install: true. |
f871848ecfa8
Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2645
diff
changeset
|
137 |
|
f871848ecfa8
Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2645
diff
changeset
|
138 |
"Created: / 08-08-2013 / 23:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f871848ecfa8
Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2645
diff
changeset
|
139 |
! |
f871848ecfa8
Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2645
diff
changeset
|
140 |
|
2729
ac412f6ea6d4
More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2728
diff
changeset
|
141 |
compile: source forClass: class inCategory: cat notifying: requestor install: doInstall |
3723 | 142 |
"We always compile whole classes" |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
143 |
^self compile: source register: true notifying: requestor |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
144 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
145 |
"Created: / 21-02-2012 / 11:10:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
146 |
"Modified: / 03-04-2013 / 00:11:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3723 | 147 |
"Modified (comment): / 07-06-2017 / 18:12:33 / mawalch" |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
148 |
! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
149 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
150 |
compile:aString forClass:aClass inCategory:cat notifying:requestor |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
151 |
install:install skipIfSame:skipIfSame silent:silent |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
153 |
"HACK. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
154 |
Problem: |
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
155 |
SmalltalkChunkFileReader always uses class's compiler to compile source. |
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
156 |
However, when filing in Smalltalk extensions to Java classes, a Smalltalk |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
157 |
code is passed to me. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
158 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
159 |
See ClassCategoryReader>>fileInFrom:notifying:passChunk:single:silent: |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
160 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
161 |
Workaround: |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
162 |
Detect such a situation and compile using Smalltalk compiler...bad, I know. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
163 |
Better to move logic from Stream>>fileIn into SmalltalkChunkSourceFileReader. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
164 |
" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
165 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
166 |
(requestor isKindOf: SourceFileLoader) ifTrue:[ |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
167 |
^Compiler compile:aString forClass:aClass inCategory:cat notifying:requestor |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
168 |
install:install skipIfSame:skipIfSame silent:silent |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
169 |
]. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
170 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
171 |
self breakPoint:#jv. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
172 |
self error: 'Not (yet) supported' |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
173 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
174 |
"Created: / 07-09-2012 / 10:35:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
175 |
! |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
176 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
177 |
compile: source register: register notifying: requestor |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
178 |
"Called when a class is accepted" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
179 |
| classes | |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
180 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
181 |
classes := self new |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
182 |
requestor: requestor; |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
183 |
compile: source. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
184 |
register ifTrue:[ |
2643
dc73ff5b258a
Fix in JavaCompiler: refetch classes after registering them.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2588
diff
changeset
|
185 |
JavaVM registry registerClasses: classes andWait: true. |
dc73ff5b258a
Fix in JavaCompiler: refetch classes after registering them.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2588
diff
changeset
|
186 |
"/ Register class may eventually reload a class. When only methods are changed, |
dc73ff5b258a
Fix in JavaCompiler: refetch classes after registering them.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2588
diff
changeset
|
187 |
"/ reloader only updates method dictionary and constant pools and the new class |
dc73ff5b258a
Fix in JavaCompiler: refetch classes after registering them.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2588
diff
changeset
|
188 |
"/ is immediately thrown away. Thus, refetch classes... |
2862
7bd41088bd64
Fix in JavaCompiler>>#compile:register:notifying: (send #binaryName instead of #name)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2859
diff
changeset
|
189 |
classes := classes collect:[:cls|JavaVM registry classNamed: cls binaryName loader: cls classLoader]. |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
190 |
]. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
191 |
^classes first. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
192 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
193 |
"Created: / 03-04-2013 / 00:10:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2862
7bd41088bd64
Fix in JavaCompiler>>#compile:register:notifying: (send #binaryName instead of #name)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2859
diff
changeset
|
194 |
"Modified: / 15-10-2013 / 17:57:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
195 |
! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
196 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
197 |
evaluate: source notifying: requestor compile: doCompile |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
198 |
"Called when a class is accepted" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
199 |
^self compile: source register: true notifying: requestor |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
200 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
201 |
"Created: / 04-04-2012 / 10:07:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
202 |
"Modified: / 03-04-2013 / 00:11:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2859
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
203 |
! |
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
204 |
|
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
205 |
recompile: aJavaClass |
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
206 |
"Recompiles given Java class. |
2859
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
207 |
|
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
208 |
Raises an error if no source is available for that class" |
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
209 |
|
2871
948160ac3435
Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2862
diff
changeset
|
210 |
| source recompiledClass | |
2859
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
211 |
|
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
212 |
source := aJavaClass source. |
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
213 |
source isNil ifTrue:[ |
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
214 |
self error:'No source available, cannot recompile ', aJavaClass binaryName. |
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
215 |
]. |
2871
948160ac3435
Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2862
diff
changeset
|
216 |
JavaClassReader classLoaderQuerySignal answer: aJavaClass classLoader do:[ |
948160ac3435
Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2862
diff
changeset
|
217 |
recompiledClass := self compile: source register: true notifying: nil |
948160ac3435
Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2862
diff
changeset
|
218 |
]. |
948160ac3435
Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2862
diff
changeset
|
219 |
^ recompiledClass |
2859
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
220 |
|
af4e7f1dd33e
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2855
diff
changeset
|
221 |
"Created: / 15-10-2013 / 00:35:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2871
948160ac3435
Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2862
diff
changeset
|
222 |
"Modified: / 17-10-2013 / 02:14:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2872
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
223 |
! |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
224 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
225 |
recompileErroneousClassesReferringTo: aJavaClass |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
226 |
"Recompiles all classes with compilation errors/unresolved classes that refer to given Java class. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
227 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
228 |
Classes with no source are silently ignored" |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
229 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
230 |
self recompileErroneousClassesReferringTo: aJavaClass ignoring: nil. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
231 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
232 |
"Created: / 17-10-2013 / 02:30:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
233 |
"Modified: / 17-10-2013 / 09:51:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
234 |
! |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
235 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
236 |
recompileErroneousClassesReferringTo: aJavaClass ignoring: classToIgnore |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
237 |
"Recompiles all classes with compilation errors/unresolved classes that refer to given Java class. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
238 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
239 |
Classes with no source are silently ignored" |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
240 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
241 |
JavaVM booted ifFalse:[ ^ self ]. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
242 |
JavaVM registry classes do:[:each | |
2942
c39cbf09ea3d
Fixes for Java reflection on Smalltalk classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2872
diff
changeset
|
243 |
(each isJavaClass and:[(each binaryName ~= 'stx/libjava/tools/compiler/CompileError') and:[each ~~ classToIgnore]]) ifTrue:[ |
2872
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
244 |
(each constantPool contains: [:entry | entry isJavaClassRef and:[entry name = 'stx/libjava/tools/compiler/CompileError']]) ifTrue:[ |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
245 |
| source | |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
246 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
247 |
source := each source. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
248 |
(source notNil and:[source includesSubString: aJavaClass lastName]) ifTrue:[ |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
249 |
JavaClassReloader requestRecompile: each. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
250 |
] |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
251 |
] |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
252 |
]. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
253 |
]. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
254 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2871
diff
changeset
|
255 |
"Created: / 17-10-2013 / 09:51:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2942
c39cbf09ea3d
Fixes for Java reflection on Smalltalk classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2872
diff
changeset
|
256 |
"Modified: / 20-11-2013 / 16:08:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
257 |
! ! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
258 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
259 |
!JavaCompiler methodsFor:'accessing'! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
260 |
|
2734
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
261 |
problems |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
262 |
^ problems |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
263 |
! |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
264 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
265 |
requestor |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
266 |
^ requestor |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
267 |
! |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
268 |
|
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
269 |
requestor:anObject |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
270 |
requestor := anObject. |
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
271 |
! ! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
272 |
|
2734
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
273 |
!JavaCompiler methodsFor:'checking'! |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
274 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
275 |
check:source |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
276 |
"Dry-compile a java class in given source code (passed as String). |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
277 |
Return a list of compiler problems. **DOES** not actually produce any |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
278 |
bytecode. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
279 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
280 |
Upon error, throws an exception" |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
281 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
282 |
| javac | |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
283 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
284 |
classloader isNil ifTrue:[ |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
285 |
classloader := JavaClassReader classLoaderQuerySignal query. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
286 |
classloader isNil ifTrue:[ |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
287 |
classloader := JavaVM systemClassLoader. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
288 |
] |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
289 |
]. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
290 |
|
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
291 |
javac := (JavaVM classForName:'stx.libjava.tools.compiler.CompilerAdapter') new: |
2734
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
292 |
classloader. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
293 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
294 |
javac compile: source generate: false. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
295 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
296 |
problems := javac getResult getProblems asNilIfEmpty. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
297 |
^ problems. |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
298 |
|
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
299 |
"Created: / 16-09-2013 / 09:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
300 |
! ! |
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
301 |
|
2479
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
302 |
!JavaCompiler methodsFor:'compiler interface'! |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
303 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
304 |
compile:source in: class notifying: requestor ifFail: block |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
305 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
306 |
requestor class == SourceFileLoader ifTrue:[ |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
307 |
^Compiler compile:source in: class notifying: requestor ifFail: block |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
308 |
]. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
309 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
310 |
self error:'Not yet supported'. |
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
311 |
|
76c5d94e3d4a
JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2476
diff
changeset
|
312 |
"Created: / 04-09-2012 / 23:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
313 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
314 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
315 |
!JavaCompiler methodsFor:'compiling'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
316 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
317 |
compile:source |
3724 | 318 |
"Compiles a Java class in given source code (passed as String). |
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
319 |
Return an array of JavaClass which are not yet registered in Java |
3724 | 320 |
class registry nor initialized. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
321 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
322 |
To make it accessible for Java code, caller must register returned |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
323 |
classes himself. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
324 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
325 |
Upon error, throws an exception" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
326 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
327 |
|
2734
f56049613ff3
Initial support for live code checker / lint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2732
diff
changeset
|
328 |
| javac classfiles classes | |
2513
6669c7947f72
Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2512
diff
changeset
|
329 |
|
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
330 |
classloader isNil ifTrue:[ |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
331 |
classloader := JavaClassReader classLoaderQuerySignal query. |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
332 |
classloader isNil ifTrue:[ |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
333 |
classloader := JavaVM systemClassLoader. |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
334 |
] |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
335 |
]. |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
336 |
|
3085
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
337 |
JavaCompiler synchronized:[ |
78e1d19eb584
Fixed JavaCompiler>>synchronizationSemaphore.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2942
diff
changeset
|
338 |
javac := (JavaVM classForName:'stx.libjava.tools.compiler.CompilerAdapter' definedBy: JavaVM systemClassLoader) new: |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
339 |
classloader. |
2738
a633a2e8e67e
Make sure eclipse Parser is initialized before actually start parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2734
diff
changeset
|
340 |
]. |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
341 |
|
2855
cfd4ec1ffa22
Reverted back Marcel's change in JavaCompiler: pass plain Smalltalk string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2826
diff
changeset
|
342 |
javac compile: source. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
343 |
|
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
344 |
"javac getResult hasErrors" |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
345 |
javac getClassFiles size == 0 ifTrue:[ |
2513
6669c7947f72
Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2512
diff
changeset
|
346 |
^self error:'Compilation failed - nothing compiled' |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
347 |
]. |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
348 |
|
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
349 |
classfiles := javac getClassFiles. |
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
350 |
classes := classfiles collect:[:each| |
2578
fc6186a4961f
Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2515
diff
changeset
|
351 |
(JavaClassReader readStream: each getBytes readStream loader: classloader) |
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
352 |
classLoader: classloader; |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
353 |
setSource: source; |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
354 |
yourself]. |
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
355 |
|
2645
b7a540a27521
Java compiler problem highlighting improved.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2643
diff
changeset
|
356 |
problems := javac getResult getProblems asNilIfEmpty. |
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
357 |
^classes. |
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
358 |
|
2512
f2cbd771fc7b
Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2486
diff
changeset
|
359 |
"Created: / 15-12-2012 / 23:04:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2826
a31c3f2902d7
jv please revide, I probably broke something and this only fixes a symptom.
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2738
diff
changeset
|
360 |
"Modified: / 13-10-2013 / 12:27:10 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
3173
26dd7e06c4bb
Removed classFileBytes from JavaClass.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3085
diff
changeset
|
361 |
"Modified: / 24-07-2014 / 21:06:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3724 | 362 |
"Modified (comment): / 08-06-2017 / 14:03:51 / mawalch" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
363 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
364 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
365 |
!JavaCompiler class methodsFor:'documentation'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
366 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
367 |
version_CVS |
3723 | 368 |
^ '$Header$' |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
369 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
370 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
371 |
version_HG |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
372 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
373 |
^ '$Changeset: <not expanded> $' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
374 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
375 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
376 |
version_SVN |
3723 | 377 |
^ '$Id$' |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
378 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
379 |
|
2515
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
380 |
|
bcfe9f4dca6b
Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2513
diff
changeset
|
381 |
JavaCompiler initialize! |