Implement Exception Handling for classic interpreter (#3096)

This PR adds the initial support for WASM exception handling:
* Inside the classic interpreter only:
  * Initial handling of Tags
  * Initial handling of Exceptions based on W3C Exception Proposal
  * Import and Export of Exceptions and Tags
* Add `cmake -DWAMR_BUILD_EXCE_HANDLING=1/0` option to enable/disable
  the feature, and by default it is disabled
* Update the wamr-test-suites scripts to test the feature
* Additional CI/CD changes to validate the exception spec proposal cases

Refer to:
https://github.com/bytecodealliance/wasm-micro-runtime/issues/1884
https://github.com/bytecodealliance/wasm-micro-runtime/commit/587513f3c60f1707681af606a578a8c9f2dfb586
https://github.com/bytecodealliance/wasm-micro-runtime/commit/8bebfe9ad75695a2390d2db6ccbef8ba5350da34
https://github.com/bytecodealliance/wasm-micro-runtime/commit/59bccdfed82178c39ea4e14295ceb24289b3b857

Signed-off-by: Ricardo Aguilar <ricardoaguilar@siemens.com>
Co-authored-by: Chris Woods <chris.woods@siemens.com>
Co-authored-by: Rene Ermler <rene.ermler@siemens.com>
Co-authored-by: Trenner Thomas <trenner.thomas@siemens.com>
This commit is contained in:
Wenyong Huang
2024-01-31 08:27:17 +08:00
committed by GitHub
co-authored by Chris Woods Rene Ermler Trenner Thomas
parent 7e65f9a244
commit af318bac81
16 changed files with 1620 additions and 39 deletions
+8
View File
@@ -359,6 +359,14 @@ else
CFLAGS += -DWASM_ENABLE_REF_TYPES=0
endif
ifeq ($(CONFIG_INTERPRETERS_WAMR_ENABLE_EXCE_HANDLING),y)
CFLAGS += -DWASM_ENABLE_EXCE_HANDLING=1
CFLAGS += -DWASM_ENABLE_TAGS=1
else
CFLAGS += -DWASM_ENABLE_EXCE_HANDLING=0
CFLAGS += -DWASM_ENABLE_TAGS=0
endif
CFLAGS += -Wno-strict-prototypes -Wno-shadow -Wno-unused-variable
CFLAGS += -Wno-int-conversion -Wno-implicit-function-declaration