Alexey Andreev
a2b6c2be58
Fix bug in liveness analysis
2019-06-26 13:41:21 +03:00
Alexey Andreev
b6cfbe7f5b
TeaVM(C): fix unnecessary call to Fiber.isResuming
2019-06-25 14:03:02 +03:00
Alexey Andreev
c430578426
Improve GVN
2019-06-23 23:39:40 +03:00
Alexey Andreev
2c6068b36a
JS: reduce the probability of colliding local variable name with a keyword
2019-06-22 23:56:32 +03:00
Alexey Andreev
62b3c68a5b
Don't report compile-0time error when there's possible way to reach suspension point. Generate runtime error instead.
2019-06-22 23:30:05 +03:00
Alexey Andreev
c28d9ef68d
C: fix GC hanging when main function receives 0 for argc
2019-06-20 17:41:35 +03:00
Alexey Andreev
aeb5f44922
C: allow to change main function name
2019-06-20 17:13:08 +03:00
Alexey Andreev
a65f8fdcd9
C: reduce number of warnings, redirect console to debugger in Windows
2019-06-20 15:06:15 +03:00
Alexey Andreev
9e4c3010b0
C: fix compilation on UWP
2019-06-18 19:17:09 +03:00
Alexey Andreev
b72e4f01e2
C: fix coroutine generation
2019-06-17 17:45:34 +03:00
Alexey Andreev
00ca2c1064
C: fix compilation in Linux
2019-06-17 15:58:19 +03:00
Alexey Andreev
9642eeec0a
C: support passing strings as char16_t*, fix bugs under msvc
2019-06-17 15:16:44 +03:00
Alexey Andreev
6e71fa7e87
C: implement file IO in Windows
2019-06-14 15:32:20 +03:00
Alexey Andreev
2c67cc3eb9
C: fix initialization order of system classes
2019-06-10 13:16:27 +03:00
Alexey Andreev
7831fd328f
C: allow to put 'struct' keyword before references to native structures
2019-06-06 18:37:37 +03:00
Alexey Andreev
c84ae57b3a
C: native structures
2019-06-03 18:27:08 +03:00
Alexey Andreev
3fe3aa5847
C: fix NPE when building application with errors
2019-05-31 17:37:05 +03:00
Alexey Andreev
91de1f6ca7
C: implement native file system
2019-05-31 15:05:23 +03:00
Alexey Andreev
2ba4ce0977
Fix inability to synchronize using array object
...
See #393
2019-05-29 22:49:13 +03:00
Alexey Andreev
1ca635fac6
JS: fix rethrowing uncaught exception
...
See #394
2019-05-29 21:37:34 +03:00
Alexey Andreev
d17b459ecc
C: fix MSVC support
2019-05-28 20:13:14 +03:00
Alexey Andreev
1899641f63
C: when converting between C and Java strings, properly handle illegal characters
2019-05-27 17:39:10 +03:00
Alexey Andreev
d818b62686
C: fix bug in virtual table builder
2019-05-27 11:57:57 +03:00
Alexey Andreev
fdb3f5edb1
C: improve incremental compiler performance. Generate text file with list of c files to compile
2019-05-24 12:10:18 +03:00
Alexey Andreev
28c0cc6ef2
Wasm: fix bugs
2019-05-23 23:38:10 +03:00
Alexey Andreev
871e9a0113
C: reduce size occupied by call site descriptors
2019-05-23 18:43:31 +03:00
Alexey Andreev
9de7df6fdf
C: pack virtual tables
2019-05-23 17:34:08 +03:00
Alexey Andreev
063a9f049e
C: less code for virtual calls
2019-05-23 15:26:35 +03:00
Alexey Andreev
8b3df6f730
C: fix bugs, introduce new virtual table builder
2019-05-23 15:18:25 +03:00
Alexey Andreev
7f875aa568
C: support methods of Date class
2019-05-21 15:17:58 +03:00
Alexey Andreev
bb9ca77349
JS: fix bug in debugger
2019-05-17 18:51:34 +03:00
Alexey Andreev
2eafb902f4
C: support weak references
2019-05-17 17:40:45 +03:00
Alexey Andreev
4c50ed8714
C: fix generation of '#line' directive
2019-05-17 17:39:29 +03:00
Alexey Andreev
86b5daa3cf
Add annotations to mark classes and methods supported on some platforms
2019-05-17 11:44:35 +03:00
Alexey Andreev
816434500c
C: fix virtual tables
2019-05-16 18:58:36 +03:00
Alexey Andreev
f5c2cf0fa3
C: fix generation of virtual tables inheriting interface default methods
2019-05-16 18:50:03 +03:00
Alexey Andreev
b3b324d73c
C: add missing include to all.c
2019-05-16 17:08:50 +03:00
Alexey Andreev
8e08cf6dcd
C: improve generation of string pool for incremental mode
2019-05-16 16:53:40 +03:00
Alexey Andreev
0003ed0bb2
C: generate '#line' preprocessor directive
2019-05-16 11:12:35 +03:00
Alexey Andreev
054db3e8d1
C: incremental code generator
2019-05-15 15:16:18 +03:00
Alexey Andreev
ca50f72fe9
Fix displaying diagnostics in out-of-process mode
2019-05-14 14:46:44 +03:00
Alexey Andreev
3d96616761
JS: reduce precision of float constants
2019-05-13 17:39:18 +03:00
Alexey Andreev
a1aa25afa0
C: fix generation of relative path in 'include' directive
2019-05-13 10:49:36 +03:00
Alexey Andreev
da22256c1f
C: compile into multiple .c and .h files
2019-05-08 17:36:46 +03:00
Alexey Andreev
7ef639ec8a
Fix bug in GC
2019-04-29 16:24:07 +03:00
Alexey Andreev
ea5dd80199
C/Wasm: fix bugs in GC root detector
2019-04-29 16:24:07 +03:00
Alexey Andreev
5a346fd3a4
Fix issue in inliner
2019-04-29 16:24:07 +03:00
Alexey Andreev
093b506c9a
Improve resolution of System.nanoTime
2019-04-29 16:24:07 +03:00
Alexey Andreev
8a45dc300c
C backend: fix bug Class implementation. Don't emit unnecessary Object.monitor field
2019-04-26 18:26:23 +03:00
Alexey Andreev
da68fa0083
Wasm backend: fix
2019-04-26 17:10:28 +03:00
Alexey Andreev
20866637e7
C backend: exit application and print stack when getting out of memory error
2019-04-26 14:04:07 +03:00
Alexey Andreev
87656a3e9a
C backend: fix array of of bounds access in fibers
2019-04-26 12:41:17 +03:00
Alexey Andreev
8cd96d2da2
C backend: fix passing NULL arrays to native methods
2019-04-26 12:40:51 +03:00
Alexey Andreev
f828d049c4
C backend: bugfixes
2019-04-23 19:56:16 +03:00
Alexey Andreev
cbc8d3f638
C backend: bugfixes
2019-04-22 19:03:37 +03:00
Alexey Andreev
2a6ca2d0d8
C backend: bug fixes and interop improvements
2019-04-19 18:41:02 +03:00
Alexey Andreev
cfd6b64899
Remove debugging code
2019-04-15 16:47:46 +03:00
Alexey Andreev
83d041d55b
Improve compilation performance of low-level backends
2019-04-05 14:37:02 +03:00
Alexey Andreev
7551cd1ec6
C: fix bugs in GC
2019-04-05 13:08:16 +03:00
Alexey Andreev
ec8bae1d40
C: fix bugs in RTTI. Support args parameter of main method
2019-04-04 18:34:30 +03:00
Alexey Andreev
91cf9917c7
JS: fix deobfuscated parameter names. Generate less local variables
2019-04-02 19:15:48 +03:00
Alexey Andreev
e6bb91bfb0
JS: fix coroutines
2019-04-02 17:12:53 +03:00
Alexey Andreev
fe68bf700b
Improve performance of array creation
2019-04-02 17:04:51 +03:00
Alexey Andreev
a9c4ab6aa4
Support generic type signatures in IR
2019-03-31 21:32:41 +03:00
Alexey Andreev
45d31da85c
Make clinit optimization weaker in order to properly handle case
...
when clinit method reads state that was set somewhere in main method
2019-03-27 19:34:30 +03:00
Alexey Andreev
d2a7e31eca
Proper fix for recent bug in C backend. Fix Thread.daemon flag
2019-03-27 18:29:02 +03:00
Alexey Andreev
0dc170dad2
Fix bugs in C backend
2019-03-26 19:09:25 +03:00
Alexey Andreev
46d76f7acf
Fix <clinit> optimization issues
2019-03-25 15:09:23 +03:00
Alexey Andreev
103affa392
Partially revert previous <clinit> commit.
...
Generate calls to <clinit> methods, since corresponding analyzer
guarantees proper initialization order.
2019-03-24 22:51:17 +03:00
Alexey Andreev
f33c90f778
Improve <clinit> elimination:
...
* Generate clinit instruction instead of calling <clinit>
directly
* Rename annotation that indicates absence of side effects
* Don't apply this annotation automatically to all JSBody methods
2019-03-24 12:54:06 +03:00
Alexey Andreev
de84105241
Call <clinit> methods before main method when possible, eliminate
...
lazy class initialization for these <clinit> methods.
2019-03-22 19:40:56 +03:00
Alexey Andreev
955ac92035
Get rid of reflection code
2019-03-22 11:32:48 +03:00
Alexey Andreev
f664d94d74
Allow to exclude certain classes, fields and methods from compilation
2019-03-21 17:00:22 +03:00
Alexey Andreev
36041b4107
Fix issues with call graph serialization
2019-03-13 19:19:05 +03:00
Alexey Andreev
731beb5cd5
Fix bugs in threading in C backend
2019-03-13 18:47:30 +03:00
Alexey Andreev
eeaa71072a
Fix IR serialization issue
2019-03-11 18:36:10 +03:00
Alexey Andreev
a8226ef6a3
Decrease memory consumption
2019-03-11 17:27:51 +03:00
Alexey Andreev
94322e5f6e
Get rid of Mapper interface in favour of Function
2019-03-11 13:27:34 +03:00
Alexey Andreev
3acf1f9538
Fix issues with new IR serialization format
2019-03-11 12:14:10 +03:00
Alexey Andreev
abdd9b3270
C backend: support coroutines
2019-03-10 14:04:04 +03:00
Alexey Andreev
578912056b
Reduce memory used by initial class reader
2019-03-07 19:27:07 +03:00
Alexey Andreev
fcfa998e1c
Reduce memory used by call graph in dev server mode
2019-03-07 16:51:00 +03:00
Alexey Andreev
88dca1bd02
Decrease memory consumption during compilation
2019-03-06 16:51:01 +03:00
Alexey Andreev
2a1aca98da
Use shared ReferenceCache between different stages of compilation
2019-03-05 19:32:50 +03:00
Alexey Andreev
3c9a3bb359
Store AST cash in binary format. Introduce more compact
...
AST serialization format.
Reduce memory consumption of incremental compilation on dev server
2019-03-05 19:06:21 +03:00
Alexey Andreev
573c5f6064
Reduce memory consumption of incremental compilation on dev server
2019-03-05 16:50:16 +03:00
Alexey Andreev
35730d665f
Decrease memory consumption
2019-02-27 13:24:50 +03:00
Alexey Andreev
ade00cc984
C backend: fix bugs
2019-02-26 00:10:22 +03:00
Alexey Andreev
2c40c7d56e
Trying to decrease compiler memory consumption
2019-02-25 18:31:34 +03:00
Alexey Andreev
95092c4d82
Refactor things around decompiler, JS backend and control flow debug info
2019-02-25 16:10:35 +03:00
Alexey Andreev
3be32a5851
JS: don't generate square brackets in 'if' bodies, when possible.
...
Generate mangled name for $rt_wrapException
2019-02-25 11:30:30 +03:00
Alexey Andreev
a8f1940df3
Fix bugs in debugger
2019-02-22 17:19:19 +03:00
Alexey Andreev
4a325a192e
Update inlining thresholds due to changes in scoring algorithm
2019-02-13 19:31:57 +03:00
Alexey Andreev
ce13c05342
JS: add ability to set limit for top-level names.
...
The purpose of this option is JS engines are too sensible for number
of methods in closure, while they don't care about methods
in an object.
2019-02-13 17:03:13 +03:00
Alexey Andreev
6790d724c7
Further improvements to inliner
2019-02-13 13:42:44 +03:00
Alexey Andreev
4de1c51e1a
Improve inliner: use simlified heuristics in advanced optimization mode, remove methods that were fully inlined
2019-02-12 19:30:57 +03:00
Alexey Andreev
89189c7454
Fix bugs in debugger
2019-02-12 12:10:33 +03:00
Alexey Andreev
bc41b12f0e
JS: fix bug in generating async functions in minified mode
2019-02-07 17:15:32 +03:00
Alexey Andreev
1b2c47407f
Place classes to a single object in development server to improve debugger performance
2019-02-07 16:29:55 +03:00
Alexey Andreev
95a3a30a6e
Fix html4j tests
2019-01-31 19:20:14 +03:00
Alexey Andreev
7d2c76f711
Fix compiler crash when using incremental pipeline
2019-01-30 19:36:00 +03:00
Alexey Andreev
35ca7fd152
Add lazy compilation pipeline that can work a little bit faster in incremental compiler
2019-01-30 19:00:07 +03:00
Alexey Andreev
5be34dcf44
Proper fix for virtual table issue.
...
C: prevent from generating identifiers that clash with keywords
2019-01-30 15:00:49 +03:00
Alexey Andreev
daeaa502d6
JS: deobfuscate stack traces for wrapped native exceptions
2019-01-30 14:32:43 +03:00
Alexey Andreev
42aedf770b
Fix bugs in C backend
2019-01-28 14:57:34 +03:00
Alexey Andreev
f734603255
JS: prevent TeaVM from generating URL function
2019-01-27 23:42:05 +03:00
Alexey Andreev
78c55437e3
Add stack deobfuscation to dev server
2019-01-24 16:28:30 +03:00
Alexey Andreev
1dd379551c
Produce less names in top level scope in dev server mode in order to improve debugging performance in Chrome
2019-01-23 13:28:39 +03:00
Alexey Andreev
48227b24a0
Fix bootstrap mode
2019-01-20 17:50:46 +03:00
Alexey Andreev
74997d277b
Fix bugs in try/catch decompilation
2019-01-15 21:49:33 +03:00
Alexey Andreev
3c8184c3b7
Fix bug in nullness analysis when variable graph has irreducible loops
2019-01-14 14:08:12 +03:00
Alexey Andreev
1fabe4c5b9
Fix passing checkstyle
2019-01-09 12:54:38 +03:00
Alexey Andreev
9305a532bb
Replace ArrayList with array to store arguments of InvokeInstruction
2019-01-09 12:51:52 +03:00
Alexey Andreev
f589b0035a
Decrease memory consumption
2018-12-29 19:02:03 +03:00
Alexey Andreev
58c19e3abc
Minor fixes in development toolchain
2018-12-25 18:45:26 +03:00
Alexey Andreev
4ffe74296d
Limit max line size of generated JS code
2018-12-21 14:28:30 +03:00
Alexey Andreev
96f77b2f08
Fix stack overflow when decoding large Java strings
2018-12-20 17:25:02 +03:00
Alexey Andreev
43cda1223c
Fix class initialization when writing to its static field
2018-12-20 16:59:15 +03:00
Alexey Andreev
a4b61bac19
Fix bugs in debugger
2018-12-19 19:28:35 +03:00
Alexey Andreev
75295f50e5
Make debugging API asynchronous
2018-12-19 18:13:15 +03:00
Alexey Andreev
d7d4dc1571
Add IDEA run configuration that runs dev server
2018-12-16 20:42:21 +03:00
Alexey Andreev
bab0cd59a6
Improve performance and stability of development server and incremental compilation
2018-12-13 18:45:44 +03:00
Alexey Andreev
c9c9c15dfe
Fix Class.initialize. Fix html4j tests
2018-12-11 23:47:47 +03:00
Alexey Andreev
d968b20e4c
Fix generation of integer multiplication in minified mode. Fix String.intern() (see #370 )
2018-12-11 17:42:14 +03:00
Alexey Andreev
eec458089f
Implement development server
2018-12-10 19:03:18 +03:00
Alexey Andreev
952ed3f193
Fix diagnostics no printed from teavm-cli. Fix diagnostics of unavailable classes and methods
2018-12-09 19:54:04 +03:00
Alexey Andreev
d74bcbe2b9
Fast dependency analyzer, fix bugs in incremental compiler
2018-12-07 17:41:21 +03:00
Alexey Andreev
eaf0f5a24e
Fix bootstrap compiler
2018-12-07 17:41:20 +03:00
Alexey Andreev
3209909c8b
Fix build
2018-12-07 01:30:13 +03:00
Alexey Andreev
1b83519280
Reduce minumus JS runtime a little
2018-12-07 00:52:05 +03:00
Alexey Andreev
2bb146af47
Improve float to string conversion
2018-12-07 00:21:18 +03:00
Alexey Andreev
f23c71cd97
Improve double to string conversion
2018-12-02 16:12:59 +03:00
Alexey Andreev
1cf3cce076
Reduce minimum runtime size
2018-12-01 23:07:03 +03:00
Alexey Andreev
45d0a13c9b
In HtmlUnit, decode stack traces for all constructed exceptions
2018-11-26 15:58:51 +03:00
Alexey Andreev
0c03379206
Fix inability to catch exception when calling just created lambda
2018-11-26 14:49:03 +03:00
Alexey Andreev
85f901362f
Wrap native JS exceptions as java.lang.RuntimeException
2018-11-26 14:01:50 +03:00
Alexey Andreev
b018e61615
Fix converting method to state machine in some cases. Fix #366
2018-11-25 18:46:45 +03:00
Alexey Andreev
a3dfc0c486
Add API to catch native JS exceptions
2018-11-23 19:54:37 +03:00
Alexey Andreev
cf9090e0fa
Use JS typed arrays to reinterpret floats and ints.
...
Also, drop IE9 support
2018-11-23 17:14:06 +03:00
Alexey Andreev
0376a46c06
Fix extra space added after new expression
2018-11-23 12:13:13 +03:00
Alexey Andreev
d50189ea3a
Add decoding of stack trace in JUnit adapter
2018-11-23 12:09:26 +03:00
Alexey Andreev
6d2815bc5c
Support running JUnit3 tests and improve support of JUnit4
2018-11-22 19:51:33 +03:00
Alexey Andreev
cd7a702c31
Trying to fix Travis build
2018-11-22 15:40:32 +03:00
Alexey Andreev
753755918d
Update build config to avoid jar hell
2018-11-22 14:49:30 +03:00
Alexey Andreev
0f951f8c86
Fix calculating class name in debugger
2018-11-19 15:29:02 +03:00
Alexey Andreev
f2dd398719
Fix bug in source map generation
...
This bug caused metadata lines that follow after the code
generated from Java bytecode, to be mapped to the line in
Java bytecode of the method that appears last in the generated
JavaScript
2018-11-18 02:11:28 +03:00
Alexey Andreev
148c07336c
Generate entire code inside wrapper IIF
2018-11-15 12:47:25 +03:00
Alexey Andreev
fe151d525a
Prevent generation of function names that clash with standard objects
2018-11-14 13:55:36 +03:00
Alexey Andreev
064888c9a1
Support Java 11
2018-11-12 18:59:28 +03:00
Alexey Andreev
4a7b70e1e8
Wasm: fix the way '!' expression translated. Also fix #365
2018-11-06 14:34:18 +03:00