Alexey Andreev
5eb1e7d9bc
wasm gc: implement intrinsics for Long and Class classes
2024-08-18 19:55:25 +02:00
Alexey Andreev
a97e6574ac
Introduce concept of 'weak' cast.
...
Use weak casts to maintain proper typing within methods during various operations on IR. At generation level, ignore weak casts, except for Wasm GC BE, which turns weak casts into platform casts.
2024-08-18 18:47:04 +02:00
Alexey Andreev
8b52741e04
wasm: avoid generation of types as defined in GC spec
...
This fixes passing tests in environments that either don't support or prohibit usage of GC spec
2024-08-18 17:51:29 +02:00
Alexey Andreev
199032d48a
wasm gc: support Array.newInstance
2024-08-17 20:48:03 +02:00
Alexey Andreev
40fbce0ddd
wasm gc: fix issues with virtual calls
2024-08-16 20:42:03 +02:00
Alexey Andreev
8c15885f44
Fix metaprogramming support, fix calculation of virtual tables for final classes
2024-08-14 13:22:27 +02:00
Alexey Andreev
eaf2c8189f
wasm gc: implement some basic reflection-specific intrinsics in Object and Class
2024-08-13 20:51:20 +02:00
Alexey Andreev
a84c5fc77f
wasm gc: fix issues related to virtual calls
2024-08-13 19:57:48 +02:00
Alexey Andreev
73edc0cf6e
wasm gc: support passing arguments to main method
2024-08-12 20:28:11 +02:00
Alexey Andreev
e61301576b
wasm gc: support System.arrayCopy for special cases
2024-08-12 17:55:19 +02:00
Alexey Andreev
6af7250e3b
wasm: add support for array.copy instruction
2024-08-03 19:55:16 +02:00
Alexey Andreev
92666e8cf0
wasm gc: trying to fix issues with array covariance
2024-08-02 19:11:11 +02:00
Alexey Andreev
dd2e4bb001
wasm: fix error in ClassMetadataRequirements causing compiler crash
2024-08-02 15:26:36 +02:00
Alexey Andreev
8d276f2efd
wasm gc: avoid generation of unnecessary supertype functions
2024-08-02 15:03:29 +02:00
Alexey Andreev
8e483245f5
wasm: fix generation of constructor invocation
2024-08-02 14:36:33 +02:00
Alexey Andreev
7ba0a7fe7d
wasm gc: export exception tag from module
2024-08-02 14:31:00 +02:00
Alexey Andreev
e4fa6bd364
wasm gc: reduce number of generated virtual tables, fix non-matching types in case of null literals
2024-08-02 13:50:49 +02:00
Alexey Andreev
9b5e1e7661
wasm gc: fix remaining issues that prevent running trivial example
2024-08-01 20:25:18 +02:00
Alexey Andreev
54dc7fe5f8
wasm gc: fix generation issues, get first version that produces module that passes validation
2024-08-01 19:57:12 +02:00
Alexey Andreev
a8d97ad387
wasm gc: cast receivers on devirtualized calls to actual argument type, avoid this cast when possible
2024-07-31 20:49:45 +02:00
Alexey Andreev
75bead66b3
wasm: support instructions that were recently implemented in generator
2024-07-31 17:31:39 +02:00
Alexey Andreev
5572d4b5d7
wasm gc: add subtyping information to types, fix generation of expressions
2024-07-30 20:57:36 +02:00
Alexey Andreev
a1a776ea9b
wasm gc: trying to fix type validation
2024-07-30 17:33:31 +02:00
Alexey Andreev
87aaa0b452
wasm gc: fix issues in generation of types, globals and some expressions
2024-07-29 20:41:58 +02:00
Alexey Andreev
ea29208b6c
wasm gc: trying to generate types according to unclear spec
2024-07-28 21:04:18 +02:00
Alexey Andreev
a281c19363
wasm gc: draft Wasm GC backend
2024-07-28 14:31:34 +02:00
Alexey Andreev
9f12917de9
js: remove long emulation
2024-07-25 19:43:29 +02:00
Alexey Andreev
f48c24283c
wasm: implement transformation from TeaVM tree IR to Wasm GC
2024-07-24 20:21:22 +02:00
Alexey Andreev
172de8e737
wasm: move common part of wasm expression generator in order to later reuse it with Wasm GC BE
2024-07-22 20:16:16 +02:00
Alexey Andreev
025801d385
Limit depth of method analysis in class initializer analysis in order to avoid too deep stack (and therefore SOE)
2024-07-11 18:18:24 +02:00
Alexey Andreev
7efb3c97a0
wasm gc: draft first parts of Wasm GC backend
...
* class metadata generator
* string pool generator
2024-07-09 19:42:37 +02:00
Alexey Andreev
efcb22b639
wasm: implement global variables
...
They aren't used by current Wasm BE yet, but will be used by future Wasm GC BE
2024-07-01 19:37:04 +02:00
Alexey Andreev
3ba2282473
wasm: implement several instructions related to reference types
...
These instructions will be presumably required for implementation of new Wasm GC BE. There's no tests for these changes, since there is no infrastructure to test anything like this. Instead, this code will be covered by tests for corresponding Wasm BE, when it's finally implemented.
2024-06-30 16:19:00 +02:00
Alexey Andreev
d6474c3aeb
wasm: add model definitions for GC spec
...
- refactor Wasm type representation to include reference types
- refactor function representation for consistency with new type system
First step toward Wasm GC support
2024-06-26 20:41:01 +02:00
Alexey Andreev
5d237a98ae
wasm: fix writing debug info when some class was not found
2024-05-15 19:24:33 +02:00
Alexey Andreev
1b412073b9
wasm: support exception handling via native exception handling spec
2024-05-09 20:38:17 +02:00
Alexey Andreev
e48dfb27b0
Improve inlining performance by caching method complexity
2024-04-29 16:32:24 +02:00
Alexey Andreev
188d189407
js: improve performance of instanceof
against interfaces
2024-04-26 10:37:12 +02:00
Alexey Andreev
a1d711d069
jso: when casting to JS objects, don't fail cast when cast object is null
2024-04-16 20:03:19 +02:00
Alexey Andreev
931f0f1f4a
jso: support varargs in exported classes and modules
2024-04-15 20:53:24 +02:00
Alexey Andreev
6a09f181c7
js: add JSTopLevel annotation that allows to import top-level declarations
2024-04-11 20:29:57 +02:00
Alexey Andreev
a6fb67817c
jso: improve support of instanceof and cast against JS wrapper types
...
Fix #808
2024-04-04 21:18:54 +02:00
Alexey Andreev
e069bc3a44
classlib: implement WeakHashMap
...
Fix #799
2024-04-03 19:11:48 +02:00
Alexey Andreev
bbd02b0067
gradle: implement dev server task
2024-03-20 20:41:10 +01:00
Alexey Andreev
7341fb38a6
Reduce memory consumption
2024-03-18 18:05:06 +01:00
Alexey Andreev
622006de0e
Reduce memory consumption
2024-03-18 17:02:42 +01:00
Alexey Andreev
6e416c11d7
Reduce memory consumption in dependency analyzer
2024-03-18 16:21:12 +01:00
Alexey Andreev
055d5df367
js: fix emitting line number to debug info
2024-03-13 12:36:33 +01:00
Alexey Andreev
582fcf904c
jso: implement vararg support for method calls
2024-03-12 18:56:19 +01:00
Alexey Andreev
ccfe19994b
js: refactor and simplify AstWriter, properly fix case with variable in catch block
2024-03-06 20:24:35 +01:00