Commit Graph

943 Commits

Author SHA1 Message Date
Alexey Andreev
0e2052d91c C: fix compiler warning 2023-10-21 19:28:42 +02:00
Alexey Andreev
8b1732d442 JS: fix issue in minified mode 2023-10-17 19:13:14 +02:00
Alexey Andreev
a78eec93d6 metaprogramming: use unprocessed class source to get program templates
This should prevent class transformations from applying twice, which can cause some errors.
2023-10-17 07:55:01 +02:00
Alexey Andreev
cd9db17d73 JS: improve performance float<->int reinterpretation conversion, improve performance of Double.equals. 2023-10-16 17:27:12 +02:00
Alexey Andreev
5bc398415d classlib: implement Atomic*FieldUpdater classes
Fix #750
2023-10-15 19:51:44 +02:00
Alexey Andreev
70540b2df0 JS: fix UMD wrapper for case when 'exports' exists, but is null 2023-10-11 14:01:24 +02:00
Alexey Andreev
d33c491a33 Gradle: report build progress from build tasks 2023-10-10 19:01:24 +02:00
Alexey Andreev
3d65d38375 Massive refactoring around Wasm support
1. Get rid of old exception handling IR transformer in favor of generation of EH code inside BE
2. Get rid of no-setjmp/longjmp support in C BE
3. Fix various bugs in WebAssembly BE
4. Suppress remaining failing tests for Wasm
5. Enable running Wasm tests by default
2023-10-08 10:36:03 +02:00
Alexey Andreev
2c00df288f wasm: fix ServiceLoader 2023-10-02 14:05:25 +02:00
Alexey Andreev
7806a699c5 wasm: fixing debug C generator 2023-09-30 20:19:22 +02:00
Alexey Andreev
47973face1 Simplify test runner, remove parallel run, remove HtmlUnit runner, fix Wasm tests 2023-09-29 21:11:23 +02:00
Alexey Andreev
d4113a6744 classlib: improve Math min/max implementations in C and Wasm
Follow-up to ihromant's "fix Math min/max functions in JS"
2023-09-28 17:02:18 +02:00
Alexey Andreev
ab507bb22b wasm: fix bugs in coroutine support 2023-09-27 20:28:09 +02:00
Alexey Andreev
219de85e24 Improve performance of PhiUpdater 2023-09-27 19:36:02 +02:00
Alexey Andreev
7fd3166f9b wasm: support Date.toString 2023-09-27 14:30:20 +02:00
Alexey Andreev
348b71685d js: fix object id generator 2023-09-27 13:51:37 +02:00
Alexey Andreev
9c0e3b5e59 Remove unnecessary test file 2023-09-26 23:02:34 +02:00
Alexey Andreev
b7cf7b593c wasm: when building tests, resolve absolute paths to source files in DWARF 2023-09-26 23:02:16 +02:00
Alexey Andreev
e84a1a8531 wasm: fix raw conversion of float and double to int and long 2023-09-25 20:25:49 +02:00
Alexey Andreev
c2c1d78f13 wasm: fix issue in exception handling transformer 2023-09-25 20:25:49 +02:00
Alexey Andreev
fa2e003dd6 classlib: fix crash in WeakReference constructor
It occurred when ReferenceQueue.remove method was never used

Fix #756
2023-09-24 13:47:15 +02:00
Alexey Andreev
390861f835 wasm: fix producing programs with detached basic blocks 2023-09-22 21:26:34 +02:00
Alexey Andreev
98ec4597d6 Fix dominator tree algorithm 2023-09-22 21:26:34 +02:00
Alexey Andreev
1cd635afa5 Fix node splitting in irreducible CFG 2023-09-22 07:51:49 +02:00
Ivan Hetman
8277671376
classlib: make difference between raw and normal floating points to int conversion 2023-09-20 23:51:55 +03:00
Alexey Andreev
edf2d33f84 js: optimize long operations 2023-09-20 19:28:01 +02:00
Alexey Andreev
2e7e11292b C: implement Long.compareUnsigned 2023-09-19 11:34:50 +02:00
Alexey Andreev
e2ee9f1dbb classlib: improve precision of float/double parsing and formatting 2023-09-13 19:40:00 +02:00
Alexey Andreev
401fcabeae wasm: support ServiceLoader 2023-08-28 19:32:22 +02:00
Alexey Andreev
70d0658b47 wasm/c: fix bugs in coroutine transformation 2023-08-28 17:16:31 +02:00
Alexey Andreev
40c4f03e3b Coroutine transformation: minor improvements 2023-08-28 14:10:34 +02:00
Alexey Andreev
bd2d2cb49b wasm: fix exceptions in DWARF generator 2023-08-28 13:18:26 +02:00
Alexey Andreev
36060b37e3 wasm: another attempt to make class reference visible in chrome dev tools 2023-08-27 00:26:03 +02:00
Alexey Andreev
cacf09dca8 wasm: generate field description in DWARF 2023-08-26 20:48:29 +02:00
Alexey Andreev
fed6a2d0ef wasm: change language in DWARF from Java to C++
This is due to weird issue in lldb (from which Chrome dev tools
are derived), which does not parse DWARF functions if there's
no support for language "type system"
2023-08-25 20:43:34 +02:00
Alexey Andreev
e576a985dd wasm: don't generate separate declarations for methods in DWARF 2023-08-24 06:45:41 +02:00
Alexey Andreev
49485efdff wasm: fix line section in DWARF 2023-08-23 21:10:42 +02:00
Alexey Andreev
e3bbf12f49 wasm: use bulk memory operations when necessary 2023-08-22 17:13:06 +02:00
Alexey Andreev
e291128948 wasm: support Long.compareUnsigned 2023-08-22 17:11:26 +02:00
Alexey Andreev
f6131a8248 wasm: fix Array.get with enabled inlining 2023-08-22 17:11:04 +02:00
Alexey Andreev
9ecb3ad817 classlib: support ReferenceQueue.remove 2023-08-21 20:13:06 +02:00
Alexey Andreev
e9d206eed0 wasm: fix NPE 2023-08-19 17:10:53 +02:00
Alexey Andreev
0e7d6b65b4 wasm: add stats generator 2023-08-19 16:59:49 +02:00
Alexey Andreev
a7f115a541 classlib: implement Integer.compareUnsigned in Wasm and C 2023-08-18 17:55:01 +02:00
Alexey Andreev
22864c88f2 js: support WeakReference 2023-08-10 20:47:01 +02:00
Alexey Andreev
b9f5e9be1c JS: optimize case when JS method returns java.lang.Object and then treated as JS object 2023-08-04 20:40:57 +02:00
Alexey Andreev
334e2829b3 JS: supports module imports in JSBody 2023-08-03 15:42:15 +02:00
Alexey Andreev
a97e0ef45c JS: generate code in UMD wrapper (to be compatible with node.js, webpack, etc). 2023-08-01 20:11:32 +02:00
Alexey Andreev
059281a25c Fix issue in optimization 2023-07-31 19:29:41 +02:00
Alexey Andreev
ef2e887d06 Avoid duplicate application of class transformations 2023-07-31 13:21:33 +02:00
Alexey Andreev
948244cbf4 JS: marshall JS object to Java in a wrapper 2023-07-29 18:54:23 +02:00
Alexey Andreev
61eb666503 classlib: faster implementation of System.arraycopy 2023-07-19 21:11:27 +02:00
Alexey Andreev
b1ddf163d7 Don't crash when reporting some cases of missing standard APIs 2023-07-17 18:41:28 +02:00
Alexey Andreev
c39efdc6d7 classlib: fix issue with integer unsigned right shift 2023-05-16 09:56:24 +02:00
Alexey Andreev
b927b28e7d js: fix extracting exception message from Java 2023-04-11 13:42:28 +02:00
Alexey Andreev
79df39fca0 minor: remove unused fields 2023-04-03 17:19:13 +02:00
Alexey Andreev
a70251fe83 classlib: add Integer/Long.compareUnsigned 2023-03-25 09:37:44 +01:00
Alexey Andreev
ca76ea45cf Get rid of Gson library 2023-03-10 21:19:30 +01:00
Alexey Andreev
0f8d36a080 JS: display Java exception message in uncaught exceptions in console 2023-03-02 20:22:33 +01:00
Alexey Andreev
971fa9a1f3 Bump versions of dependencies 2023-02-24 19:55:35 +01:00
Alexey Andreev
4fdb05905d js: increase default top level name limit, since browsers now fixed issues in their dev tools 2023-02-18 08:14:28 +01:00
Alexey Andreev
f2ae748705 wasm: display inherited fields in debugger 2023-02-17 21:04:51 +01:00
Alexey Andreev
df7b3957e9 Fix issue in graph splitter
Fix #657
2023-02-17 20:42:27 +01:00
Alexey Andreev
900f95c1ed js: make names of variables in minified mode never interfering with JS keywords 2023-02-17 19:36:33 +01:00
Ivan Hetman
fdfd923ac6
Add info about Java 14 record to IR. Add support to Metaprogramming API 2023-02-11 23:05:07 +03:00
Alexey Andreev
8014c038c0 Migrate to gradle 2023-01-23 17:16:07 +01:00
Alexey Andreev
2a0f6f206e New IDEA module kind based on Gradle 2022-12-20 20:48:16 +01:00
Alexey Andreev
013ba237b0 Wasm: fix issues when building with debugging information and optimizations enabled 2022-12-20 18:01:38 +01:00
Alexey Andreev
9a9e7561b7 Wasm: support displaying objects in debugger 2022-12-20 10:01:47 +01:00
Alexey Andreev
7b3905246b Wasm: support class layout in debug information 2022-12-18 17:45:35 +01:00
Alexey Andreev
506a9bd8c5 Wasm: fix bugs in debugger 2022-12-15 17:27:14 +01:00
Alexey Andreev
6c91192794 Wasm: fix issues in debugger 2022-12-14 16:50:18 +01:00
Alexey Andreev
6808d9e517 Wasm: support local variables in debugger 2022-12-13 21:18:41 +01:00
Alexey Andreev
313e4ed87f Wasm: fix issues with debugger 2022-12-13 18:51:19 +01:00
Alexey Andreev
a6add26aaa Wasm: working on step-in and step-over in debugger 2022-12-09 19:13:20 +01:00
Alexey Andreev
87d63168d2 Wasm: working on control flow analyzer for debugger 2022-12-05 20:03:57 +01:00
Alexey Andreev
44204b952d Wasm: working on binary parser 2022-12-04 20:43:32 +01:00
Alexey Andreev
53dbb72c53 Wasm: working on binary parser 2022-12-02 21:35:07 +01:00
Alexey Andreev
aaed8e312a Wasm: working on parser 2022-12-02 18:07:56 +01:00
Alexey Andreev
b58dd1a37b Wasm: refactor debug info parser and fix debugger errors 2022-12-02 17:15:38 +01:00
Alexey Andreev
548ded7c75 Wasm: fix debug info generation 2022-12-02 07:49:07 +01:00
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