Alexey Andreev
57e0227a02
Wasm: trying to improve debug information emitter
2022-12-01 17:33:35 +01:00
Alexey Andreev
930a57fdd6
Wasm: fix compiler crash when compiling without debug info
2022-11-30 14:01:46 +01:00
Alexey Andreev
4453bba33b
Wasm: fix issues in debugger
2022-11-30 13:38:34 +01:00
Alexey Andreev
a2715f2c79
Wasm: working on Chrome RDP debugger
2022-11-29 21:30:41 +01:00
Alexey Andreev
9d3927e196
Wasm: working on Chrome RDP debugger
2022-11-29 18:14:13 +01:00
Alexey Andreev
d1feec7ae6
Wasm: add parser for own debug information
2022-11-28 17:30:34 +01:00
Alexey Andreev
56929b2085
Wasm: generate debugging information for own debugger
2022-11-25 17:50:39 +01:00
Alexey Andreev
7e95e935d1
Wasm: write more info about classes in DWARF
2022-11-23 22:04:26 +01:00
Alexey Andreev
646c8ec488
Wasm: fix issue with forward references in DWARF, generate class references as pointer types
2022-11-23 11:20:07 +01:00
Alexey Andreev
f938db798b
Wasm: add information about parameters and local variables to DWARF
2022-11-22 17:53:12 +01:00
Alexey Andreev
13cc56feb5
Wasm: split declarations and specifications of methods in DWARF
2022-11-21 16:00:27 +01:00
Alexey Andreev
8fac3237ba
Wasm: generate nested DIEs for namespaces/classes/methods
2022-11-20 16:12:00 +01:00
Alexey Andreev
6222241651
Wasm: update loader to use instantiateStreaming method
2022-11-20 14:05:35 +01:00
Alexey Andreev
1399045ff6
Wasm: fix issues in DWARF generator
2022-11-20 08:42:32 +01:00
Alexey Andreev
7f38697d50
Wasm: don't emit DW_LNE_end_sequence when there were no previous command emitted
2022-11-19 20:15:54 +01:00
Alexey Andreev
f7768efd51
Wasm: fix bugs in DWARF generator, emit DW_LNE_end_sequence after each function
2022-11-19 15:14:21 +01:00
Alexey Andreev
06bcaec1e5
Wasm: emit simple DW_TAG_subprogram DIEs (however, no success with debuggers).
2022-11-19 13:00:52 +01:00
Alexey Andreev
f06ba832d7
Wasm: generate DWARF line numbers
...
Despite generated DWARF sections pass different verifications, they don't work in chrome or wasmtime.
2022-11-19 11:52:43 +01:00
Alexey Andreev
c5011ebf69
Wasm: initial skeleton implementation of DWARF generator
2022-11-18 22:07:23 +01:00
Alexey Andreev
a543b91b84
Wasm: fix error when parsing command line args
2022-11-17 16:35:28 +01:00
Alexey Andreev
238873cbe7
Apply Java 11 syntax
2022-11-17 14:36:55 +01:00
Alexey Andreev
06748fa12b
Fix class initializer optimization.
...
Assume that class initializer is dynamic if it initializes another class with dynamic initializer
2022-11-17 14:35:37 +01:00
Alexey Andreev
df98b411d0
Wasm: fix issue with attempt to shrink heap after GC
2022-11-17 12:02:46 +01:00
Alexey Andreev
64ae44ee01
JS: store global object in a variable to avoid name clashes between generated declarations (in minified mode) and global declarations
2022-11-17 12:02:46 +01:00
Alexey Andreev
70e37dfed9
Wasi: fix bugs in IO implementation
2022-11-12 21:52:29 +01:00
Alexey Andreev
d9fb2bc159
Fix bugs in Wasi support. Fix GC issue in Wasm
2022-11-11 21:01:22 +01:00
Alexey Andreev
1b6acc9eb1
Update Java version to 11
2022-11-11 14:37:12 +01:00
Alexey Andreev
4a025f2605
Wasm: trying to revive GC debugger in wasm2c generator and implement emulation for WASI
2022-11-11 14:04:56 +01:00
Alexey Andreev
1fb70b0903
Fix private method call resolution in Java 11
2022-11-11 10:56:20 +01:00
Alexey Andreev
5fb83ca2ac
Remove unnecessary Wasm runtime imports, implement isFinite method
2022-11-11 09:38:21 +01:00
Alexey Andreev
485f8ac902
Wasi: fix file system issues, add support for Math.pow
2022-11-10 17:08:58 +01:00
Alexey Andreev
224810d0ab
Wasm: support file IO and random generator in WASI
2022-11-08 19:44:56 +01:00
Alexey Andreev
e428e2ac7a
Wasm: implement file IO in WASI
2022-11-08 17:24:58 +01:00
Alexey Andreev
3eb4b742ea
Move FS support to teavm-core module
2022-11-07 09:53:46 +01:00
Alexey Andreev
8f4e4e811f
Wasm: don't emit wasm-runtime.js file in WASI mode
2022-11-06 21:41:09 +01:00
Alexey Andreev
34eb06f5f0
Wasm: support command line args in WASI
2022-11-06 21:21:49 +01:00
Alexey Andreev
1ca2c75e1c
Wasm: initial WASI support
2022-11-06 11:53:52 +01:00
Alexey Andreev
d5cdd740f5
Fix incorrect behaviour of Class.getInterfaces
...
fix #635
2022-11-04 16:15:30 +01:00
Alexey Andreev
752ec040b0
Wasm: fix resource files getting into garbage collection metadata
2022-11-04 14:48:53 +01:00
Alexey Andreev
6c6d440ebb
С/wasm: don't include references metadata resource into GC stack roots and into class layout for GC.
2022-11-01 09:38:10 +01:00
Alexey Andreev
d097350787
Bump ASM version, use common ASM API version everywhere, bump ASM API version to 9
2022-10-05 11:09:53 +02:00
Alexey Andreev
2b671b8088
Fix issue with precedence of % operator
2022-08-25 12:48:59 +02:00
Alexey Andreev
ddddfcf217
Add option to disable assertions
2022-07-15 19:51:47 +03:00
Alexey Andreev
f0d805fda8
Support Java 17 records
2022-07-10 20:40:24 +03:00
Alexey Andreev
29fd95be95
Fix bugs related to MULTINEWARRAY in various backends
2022-07-10 18:16:16 +03:00
Alexey Andreev
b03518c493
Remove unnecessary hppc artifact versions from pom.xml
2022-06-01 17:25:33 +03:00
Alexey Andreev
98490e92f6
JS: fix strict mode null pointer check with inlining
2022-05-19 12:24:02 +03:00
Alexey Andreev
be259f1667
Fix false negatives when checking missing methods
2022-05-19 10:25:40 +03:00
Alexey Andreev
31f91bc63c
C: fix overlapping file names
2022-05-16 11:59:25 +03:00
Alexey Andreev
5e37e2a45b
Fix reporting missing static field if containing class is never referenced directly
2022-03-25 10:27:15 +03:00
Alexey Andreev
ce5e3bfeb7
C/Wasm: fix issue in GC
2021-12-16 18:39:26 +03:00
Alexey Andreev
15466bad93
C: fix heap dump generator
2021-12-16 14:54:23 +03:00
Alexey Andreev
1fa48560c6
C: add option to generate shorter output file names to workaround msvc bug
2021-12-10 18:51:12 +03:00
Alexey Andreev
08aa642fe5
C: prevent from casting to native function type
2021-08-31 15:11:17 +03:00
Alexey Andreev
c2f90d3cfc
fix ClassInference for arrays
2021-08-30 17:53:14 +03:00
Alexey Andreev
c65a9e1c97
Fix bug in irreducible graph splitting algorithm
2021-07-15 19:17:11 +03:00
Alexey Andreev
220537d984
C: fix behaviour of nested try/catch statements
2021-04-15 20:55:52 +03:00
Alexey Andreev
73bd139b7e
C: implement ServiceLoader
2021-04-14 23:02:09 +03:00
Alexey Andreev
4a62b58f82
Bug fixes in optimizer
2021-04-02 19:54:38 +03:00
Alexey Andreev
7058a195b7
JS: fix class of object created by multianewarray instruction
2021-04-01 12:05:18 +03:00
Alexey Andreev
c89bc11d02
Fix dominator tree builder, make it possible to choose starting node
2021-04-01 09:29:18 +03:00
Alexey Andreev
d710870c65
Fix possible NPE
2021-03-31 12:53:12 +03:00
Alexey Andreev
9972fe0c29
Rewrite node splitting algorithm
2021-03-30 12:07:14 +03:00
Alexey Andreev
b34e25414e
C: fix support for resources
2021-03-24 18:52:54 +03:00
Alexey Andreev
00fba54d7b
C: fix exception handling semantics with longjmp
2021-03-24 17:30:49 +03:00
Alexey Andreev
bb4315e486
C: fix missing files when casting to arrays
2021-03-24 16:09:01 +03:00
Alexey Andreev
6de830d5bd
wasm: fix initialization order of system classes
2021-03-22 23:22:34 +03:00
Alexey Andreev
f2bac088f1
Fix more complex cases of irreducible CFGs during coroutine transformation
2021-03-22 22:09:41 +03:00
Alexey Andreev
9df897d298
Fix coroutine transformation. Make emulated threads work in Wasm
2021-03-22 21:28:50 +03:00
Alexey Andreev
eb495182d2
JS: fix runtime for Safari
2021-03-22 15:13:40 +03:00
Alexey Andreev
38cbd7e80b
JS: fix async methods
2021-03-22 14:17:50 +03:00
Alexey Andreev
d6780ea637
Fix bug in global value numbering optimization
2021-03-22 14:17:50 +03:00
Alexey Andreev
bd53c1a5a2
wasm: trying to implement coroutines
2021-03-21 22:13:09 +03:00
Alexey Andreev
c4c1408160
wasm: fix running tests, add in-browser test runners
2021-03-20 19:52:45 +03:00
Alexey Andreev
b2b7a603b4
JS: fix array optimization
2021-03-19 14:16:29 +03:00
Alexey Andreev
75d06bebbf
JS: fix bug in compilation of monitorenter instruction
2021-03-18 14:20:29 +03:00
JohannesS
f97484365c
JS: fix overrides with default methods
2021-03-18 12:26:33 +03:00
Alexey Andreev
81bfe3f6e2
Improve pom.xml configuration
2021-03-18 11:16:41 +03:00
Alexey Andreev
2c7b5be62e
JS: fix long emulation in JS engines that don't support BigInt
2021-03-18 10:14:18 +03:00
Alexey Andreev
3779520389
C: fix after introducing CCE support
2021-03-18 01:03:01 +03:00
Alexey Andreev
67c639b875
JS: fix stack trace decoder with new CCE support
2021-03-17 21:49:06 +03:00
Alexey Andreev
4c0c7872a1
JS: add support for CCE in strict mode
2021-03-17 21:11:18 +03:00
Alexey Andreev
02e8955abc
JS: fix overflow behaviour of unary minus
2021-03-17 10:16:07 +03:00
Alexey Andreev
71f87d79a5
JUnit: add support for TestNG annotations
2021-03-16 21:47:05 +03:00
Alexey Andreev
40ecb0938d
Fix issue with BigInt64Array in Safari
2021-03-12 19:13:29 +03:00
Alexey Andreev
35f025d7da
JS: fix bug in fallback long implementation
2021-03-10 16:22:19 +03:00
Alexey Andreev
ca23da939a
JS: represent long as BigInt if available
2021-03-08 22:59:45 +03:00
Alexey Andreev
e4c808c324
Add switch to log devirtualization process
2021-02-26 12:26:13 +03:00
Alexey Andreev
0eca9d95e1
Fix missing virtual call detector
2021-02-26 11:52:10 +03:00
Alexey Andreev
d1fa57210e
Copy parameter annotations when renaming a class
2021-02-01 14:41:18 +03:00
Alexey Andreev
969ad17b6a
C: workaround for regression in MSVC compiler
2020-11-27 18:54:24 +03:00
Octavia Togami
a8641de39b
Correct problem severity for warning
2020-11-26 14:59:13 +03:00
Alexey Andreev
306c78459c
JS: use symbol instead of string property to represent Java exception wrapper
2020-09-09 19:28:32 +03:00
Alexey Andreev
17098495f2
JS: fix compilation of class files that contain methods and field names containing non-identifier characters
2020-07-06 12:11:17 +03:00
Alexey Andreev
9cf21825fc
Fix wrong evaluation when optimizer sees array initialization that looks like array initializer expression, but has access to array variable on its elements, i.e. on a case like this:
...
Object[] array = new Object[1];
array[0] = array;
That can't be optimized to
Object[] array = new Object[] { array };
2020-06-16 19:24:45 +03:00
Alexey Andreev
5ee332c771
Fix crash when lambda is not used. Fix #500
2020-06-01 12:19:37 +03:00
Alexey Andreev
6f7c2dff2b
Fix copying source files in simple optimization mode. Fix #501
2020-06-01 12:07:42 +03:00
Alexey Andreev
ecc4be2d25
Fix class initialization optimization
2020-05-19 13:27:26 +03:00
Alexey Andreev
eebe16157b
C: further workaround for msvc bug
2020-05-19 09:56:47 +03:00
Alexey Andreev
8f68c64193
Fix bug in repeated field read elimination.
...
There's a case that was missing in this optimization. We install invalidation
points on a block's dominance frontiers when the block contains som
invalidation instructions. However, if a block is an entry to exception
handler, state is always invalidated. This should be done
since exception handler may recover and proceed with some code that
follows try/catch block. Without this change code after try/catch inherits
state of `try` block, which is invalid, since `catch` is another
source from where we can get there. We can't rely on regular instruction
analysis in `catch` blocks, since we get into `catch` from an unpredictable
point.
2020-05-18 17:24:21 +03:00