Commit Graph

66918 Commits

Author SHA1 Message Date
Pierre Muller
a8ca170649 Set defualt riscv32 linux abi to abi_riscv_ipl32 2023-11-08 23:34:56 +01:00
Pierre Muller
184b40de3e Set defualt riscv32 linux abi to abi_riscv_ipl32 2023-11-08 23:34:56 +01:00
Pierre Muller
3638303f0e Rename variable called section to _section to avoid parsing error for morphos OS 2023-11-08 23:34:55 +01:00
Pierre Muller
49a05c992e Handle the specific NaN pattern of mips floating-point unit 2023-11-08 23:34:55 +01:00
Nikolay Nikolov
4b29633cd7 + added mutable globals to the target switches section 2023-11-08 23:34:55 +01:00
Nikolay Nikolov
c42e8c5fff + added promising _start and _initialize exports 2023-11-08 23:34:55 +01:00
Nikolay Nikolov
512ccaf953 * fixed erroneously duplicated code from previous commit 2023-11-08 23:34:55 +01:00
Nikolay Nikolov
b63c3306d9 + print a proper error message if a suspending external is used on a non-WebAssembly platform 2023-11-08 23:34:52 +01:00
Nikolay Nikolov
c74ec6c59b * tsk_wasm_suspending renamed tsk_wasm_suspending_first 2023-11-08 23:34:23 +01:00
Nikolay Nikolov
245ee90877 + print an error message, in case 'promising' exports are used on non-WebAssembly platform 2023-11-08 23:34:21 +01:00
Nikolay Nikolov
5cd7b7a348 + support 'promising last' exports 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
5a0267d5da * tcpuprocdef.promising_export_name renamed promising_first_export_name 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
8a6ffe417f + added 'last' or 'first' to the internal promising wrapper name 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
b1ad8c809e + added last:boolean parameter to implement_wasm_promising_wrapper 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
9aefc64bc3 + introduced implement_wasm_promising_wrapper 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
fd6113e880 + introduced tcpuprocdef.add_promising_export 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
be4fd4c012 * assert that any exported promising function is not synthetic 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
aa94e9cd21 * eo_promising renamed eo_promising_first 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
d55c7819cb + also allow declaring an external as 'suspending first' 2023-11-08 23:33:56 +01:00
Nikolay Nikolov
fc9d8c98d0 + support 'suspending last' externals as well 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
8317cad7ee + comment for the po_wasm_suspending value 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
8ac7551464 + comments for tsk_wasm_suspending and tsk_wasm_promising 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
bce6147317 + added a basic JS promise test 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
a9fb240110 * fixed generating wrappers for suspending functions that return something, other than double 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
daaf617590 + initial implementation of WebAssembly promising exports 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
74955b4e03 * fixed creating suspended wrappers for functions without parameters 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
389de7c65c * fixed compilation with -Sew 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
bd95252ae1 * since exporting webassembly globals doesn't yet work accross units, added a
workaround by using property getters and setters
2023-11-08 23:33:55 +01:00
Nikolay Nikolov
45ca2c6f88 + initial attempt (not fully working, yet) at implementing WebAssembly suspending externals 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
1f286cf736 * ppudump compilation fixed 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
4c70cfb9f9 + added parser support for the 'suspending' directive 2023-11-08 23:33:55 +01:00
Nikolay Nikolov
20b9e39ff5 + support externref and funcref WebAssembly globals in the internal object writer 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
6c7b45a0bb + support WebAssembly reference types as WebAssembly globals 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
a2393c0aeb * use tcallparanode.parasym to find the tparavarsym in twasmcallnode.pass_typecheck 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
5ca1c45b2b * fixed crash in twasmcallnode.pass_typecheck when there is no procdefinition (for generic methods) 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
daa7e1c190 * fixed another crash, introduced in 6ff566350c 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
754e0de69e * fixed bug, introduced in 6ff566350c, due to
missing parenthesis
2023-11-08 23:33:54 +01:00
Nikolay Nikolov
4df862fce6 * disallow passing WebAssembly reference types as untyped out parameters as well 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
6bc52b046c * disallow passing WebAssembly reference types as untyped var/constref/const parameters 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
a35f6221fe * fixed program name in test 2023-11-08 23:33:54 +01:00
Nikolay Nikolov
773b36c21e * disallow WebAssembly reference types to be declared as var, constref or out parameters 2023-11-08 23:33:51 +01:00
Nikolay Nikolov
c04c513a5d + support nil comparison of WebAssembly reference types (externref and funcref) 2023-11-08 23:33:17 +01:00
Nikolay Nikolov
57e99cc094 + support using nil constants for setting values of WebAssembly reference types (funcref and externref) 2023-11-08 23:33:17 +01:00
Nikolay Nikolov
425f52d601 - removed redundant semicolon 2023-11-08 23:33:17 +01:00
Nikolay Nikolov
ded26eeacf + also test that pointers cannot be converted to externref implicitly 2023-11-08 23:33:16 +01:00
Nikolay Nikolov
3e9a29a46f * disallow conversion between regular pointers and WasmExternRef 2023-11-08 23:33:16 +01:00
Nikolay Nikolov
4c096f8389 * fixed test's program name 2023-11-08 23:33:16 +01:00
Nikolay Nikolov
d531ec05c9 + some basic tests for WebAssembly funcref types added 2023-11-08 23:33:16 +01:00
Nikolay Nikolov
457d0e598b + also check for assigned(left) after calling inherited in twasmaddrnode.pass_typecheck, to avoid another crash 2023-11-08 23:33:16 +01:00
Nikolay Nikolov
48edb0377e * check for codegenerror in twasmaddrnode.pass_typecheck and exit early, to avoid crashes 2023-11-08 23:33:16 +01:00