Skip to content

Commit 87a8114

Browse files
authored
Update the GC tiered level from B to C. (#4817)
Several known limitations have been exposed, and a few might impact the estimation when trying to integrate that feature into a product.
1 parent c9815ef commit 87a8114

File tree

3 files changed

+48
-42
lines changed

3 files changed

+48
-42
lines changed

doc/build_wamr.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,11 @@ SIMDE (SIMD Everywhere) implements SIMD operations in fast interpreter mode.
338338
- **WAMR_BUILD_STRINGREF**=1/0, default to off. When enabled, need to set WAMR_STRINGREF_IMPL_SOURCE as well
339339

340340
> [!WARNING]
341+
> Current implentation of Garbage Collection(GC) is not fully compliant with the Wasm GC proposal and Wasm 3.0 specification. There are still few known limitations:
342+
>
343+
> - `exn` and `noexn` types are not supported.
344+
> - nested structs and arrays are not fully supported.
345+
>
341346
> Garbage collection is not supported in fast-jit mode and multi-tier-jit mode.
342347
343348
### **Set the Garbage Collection heap size**

doc/stability_wasm_proposals.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,16 @@ Users can turn those features on or off by using compilation options. If a relev
1212

1313
## On-by-default Wasm Proposals
1414

15-
| Proposal | >= Phase 4 | Compilation Option |
16-
| ------------------------------------- | ---------- |----------------------------|
17-
| Bulk Memory Operations | Yes | `WAMR_BUILD_BULK_MEMORY` |
18-
| Fixed-width SIMD[^1] | Yes | `WAMR_BUILD_SIMD` |
19-
| Import/Export of Mutable Globals[^2] | Yes | N/A |
20-
| Multi-value | Yes | N/A |
21-
| Non-trapping float-to-int Conversions | Yes | N/A |
22-
| Reference Types | Yes | `WAMR_BUILD_REF_TYPES` |
23-
| Sign-extension Operators | Yes | N/A |
24-
| WebAssembly C and C++ API | No | N/A |
25-
| Branch Hinting | Yes | `WASM_ENABLE_BRANCH_HINTS` |
15+
| Proposal | >= Phase 4 | Compilation Option |
16+
| ------------------------------------- | ---------- | ------------------------ |
17+
| Bulk Memory Operations | Yes | `WAMR_BUILD_BULK_MEMORY` |
18+
| Fixed-width SIMD[^1] | Yes | `WAMR_BUILD_SIMD` |
19+
| Import/Export of Mutable Globals[^2] | Yes | N/A |
20+
| Multi-value | Yes | N/A |
21+
| Non-trapping float-to-int Conversions | Yes | N/A |
22+
| Reference Types | Yes | `WAMR_BUILD_REF_TYPES` |
23+
| Sign-extension Operators | Yes | N/A |
24+
| WebAssembly C and C++ API | No | N/A |
2625

2726
[^1]: llvm-jit and aot only.
2827

@@ -31,7 +30,8 @@ Users can turn those features on or off by using compilation options. If a relev
3130
## Off-by-default Wasm Proposals
3231

3332
| Proposal | >= Phase 4 | Compilation Option |
34-
| ----------------------------- | ---------- | ---------------------------------|
33+
| ----------------------------- | ---------- | -------------------------------- |
34+
| Branch Hinting | Yes | `WASM_ENABLE_BRANCH_HINTS` |
3535
| Extended Constant Expressions | Yes | `WAMR_BUILD_EXTENDED_CONST_EXPR` |
3636
| Garbage Collection | Yes | `WAMR_BUILD_GC` |
3737
| Legacy Exception Handling[^3] | No | `WAMR_BUILD_EXCE_HANDLING` |
@@ -49,6 +49,7 @@ Users can turn those features on or off by using compilation options. If a relev
4949
this proposal is discouraged.
5050

5151
[^4]: interpreter only
52+
5253
[^5]: `WAMR_BUILD_LIB_PTHREAD` can also be used to enable
5354

5455
## Unimplemented Wasm Proposals

doc/tiered_support.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ This tier indicates experimental features with foundational support levels. Thes
9393
| Nuttx Compatibility | WAMR_BUILD_PALTFORM=nuttx | Portability |
9494
| SGX Compatibility | WAMR_BUILD_PALTFORM=linux-sgx | Portability |
9595
| Zephyr Compatibility | WAMR_BUILD_PALTFORM=zephyr | Portability |
96-
| GC (Garbage Collection) | [WAMR_BUILD_GC](./build_wamr.md#garbage-collection) | Wasm Proposal |
9796
| Stringref | [WAMR_BUILD_STRINGREF](./build_wamr.md#garbage-collection) | Wasm Proposal |
9897
| Tail Calls | [WAMR_BUILD_TAIL_CALL](./build_wamr.md#tail-call-feature) | Wasm Proposal |
9998
| LLVM JIT | [WAMR_BUILD_JIT](./build_wamr.md#configure-llvm-jit) | Running mode |
@@ -108,7 +107,6 @@ This tier indicates experimental features with foundational support levels. Thes
108107
| Copy Call Stack | [WAMR_BUILD_COPY_CALL_STACK](./build_wamr.md#copy-call-stack) | Runtime Extensions |
109108
| Debug Interpreter | [WAMR_BUILD_DEBUG_INTERP](./build_wamr.md#configure-debug) | Runtime Extensions |
110109
| Dump call stack | [WAMR_BUILD_DUMP_CALL_STACK](./build_wamr.md#dump-call-stack-feature) | Runtime Extensions |
111-
| Garbage Collection Heap Verify | [WAMR_BUILD_GC_HEAP_VERIFY](./build_wamr.md#garbage-collection) | Runtime Extensions |
112110
| Native General Invocation | [WAMR_BUILD_INVOKE_NATIVE_GENERAL](./build_wamr.md#invoke-general-ffi) | Runtime Extensions |
113111
| Lazy JIT Compilation | [WAMR_BUILD_LAZY_JIT](./build_wamr.md#configure-llvm-jit) | Runtime Extensions |
114112
| Pthread | [WAMR_BUILD_LIB_PTHREAD](./build_wamr.md#lib-pthread) | Runtime Extensions |
@@ -153,31 +151,33 @@ This tier indicates experimental features with foundational support levels. Thes
153151

154152
## Features
155153

156-
| Description | Compilation Flags | Labels |
157-
| ------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------ |
158-
| AliOS compatibility | WAMR_BUILD_PLATFORM=alios-things | Portability |
159-
| Android Compatibility | WAMR_BUILD_PLATFORM=android | Portability |
160-
| Cosmo Compatibility | WAMR_BUILD_PLATFORM=cosmopolitan | Portability |
161-
| FreeBSD Compatibility | WAMR_BUILD_PLATFORM=freebsd | Portability |
162-
| iOS Compatibility | WAMR_BUILD_PLATFORM=darwin | Portability |
163-
| RIOT OS Compatibility | WAMR_BUILD_PLATFORM=riot | Portability |
164-
| RT-Thread Compatibility | WAMR_BUILD_PLATFORM=rt-thread | Portability |
165-
| VxWorks Compatibility | WAMR_BUILD_PLATFORM=vxworks | Portability |
166-
| Windows Compatibility | WAMR_BUILD_PLATFORM=windows | Portability |
167-
| Legacy Exception Handling | [WAMR_BUILD_EXCE_HANDLING](./build_wamr.md#exception-handling) | Wasm Proposal |
168-
| Multi-memory | [WAMR_BUILD_MULTI_MEMORY](./build_wamr.md#multi-memory) | Wasm Proposal |
169-
| Fast JIT | [WAMR_BUILD_FAST_JIT](./build_wamr.md#configure-fast-jit) | Running mode |
170-
| Multi-tier JIT | [Combination of flags](./build_wamr.md#configure-multi-tier-jit) | Running mode |
171-
| AoT Validator | [WAMR_BUILD_AOT_VALIDATOR](./build_wamr.md#aot-validator) | Runtime Extensions |
172-
| Debug AOT | [WAMR_BUILD_DEBUG_AOT](./build_wamr.md#configure-debug) | Runtime Extensions |
173-
| Dynamic AoT debugging | [WAMR_BUILD_DYNAMIC_AOT_DEBUG](./build_wamr.md#configure-debug) | Runtime Extensions |
174-
| Fast JIT Dump | [WAMR_BUILD_FAST_JIT_DUMP](./build_wamr.md#configure-fast-jit) | Runtime Extensions |
175-
| Instruction Metering | [WAMR_BUILD_INSTRUCTION_METERING](./build_wamr.md#instruction-metering) | Runtime Extensions |
176-
| Libc EMCC Compatibility | [WAMR_BUILD_LIBC_EMCC](./build_wamr.md#libc-emcc) | Runtime Extensions |
177-
| Libc UVWASI Compatibility | [WAMR_BUILD_LIBC_UVWASI](./build_wamr.md#libc-uvwasi) | Runtime Extensions |
178-
| RATS Library | [WAMR_BUILD_LIB_RATS](./build_wamr.md#librats) | Runtime Extensions |
179-
| Mini Loader | [WAMR_BUILD_MINI_LOADER](./build_wamr.md#wasm-mini-loader) | Runtime Extensions |
180-
| SGX IPFS Support | [WAMR_BUILD_SGX_IPFS](./build_wamr.md#intel-protected-file-system) | Runtime Extensions |
181-
| Static PGO | [WAMR_BUILD_STATIC_PGO](./build_wamr.md#running-pgoprofile-guided-optimization-instrumented-aot-file) | Runtime Extensions |
182-
| WASM cache | [WAMR_BUILD_WASM_CACHE](./build_wamr.md#wasm-cache) | Runtime Extensions |
183-
| Test garbage collection | [WAMR_TEST_GC](./build_wamr.md#test-garbage-collection) | Runtime Extensions |
154+
| Description | Compilation Flags | Labels |
155+
| ------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------ |
156+
| AliOS compatibility | WAMR_BUILD_PLATFORM=alios-things | Portability |
157+
| Android Compatibility | WAMR_BUILD_PLATFORM=android | Portability |
158+
| Cosmo Compatibility | WAMR_BUILD_PLATFORM=cosmopolitan | Portability |
159+
| FreeBSD Compatibility | WAMR_BUILD_PLATFORM=freebsd | Portability |
160+
| iOS Compatibility | WAMR_BUILD_PLATFORM=darwin | Portability |
161+
| RIOT OS Compatibility | WAMR_BUILD_PLATFORM=riot | Portability |
162+
| RT-Thread Compatibility | WAMR_BUILD_PLATFORM=rt-thread | Portability |
163+
| VxWorks Compatibility | WAMR_BUILD_PLATFORM=vxworks | Portability |
164+
| Windows Compatibility | WAMR_BUILD_PLATFORM=windows | Portability |
165+
| GC (Garbage Collection) | [WAMR_BUILD_GC](./build_wamr.md#garbage-collection) | Wasm Proposal |
166+
| Legacy Exception Handling | [WAMR_BUILD_EXCE_HANDLING](./build_wamr.md#exception-handling) | Wasm Proposal |
167+
| Multi-memory | [WAMR_BUILD_MULTI_MEMORY](./build_wamr.md#multi-memory) | Wasm Proposal |
168+
| Fast JIT | [WAMR_BUILD_FAST_JIT](./build_wamr.md#configure-fast-jit) | Running mode |
169+
| Multi-tier JIT | [Combination of flags](./build_wamr.md#configure-multi-tier-jit) | Running mode |
170+
| AoT Validator | [WAMR_BUILD_AOT_VALIDATOR](./build_wamr.md#aot-validator) | Runtime Extensions |
171+
| Debug AOT | [WAMR_BUILD_DEBUG_AOT](./build_wamr.md#configure-debug) | Runtime Extensions |
172+
| Dynamic AoT debugging | [WAMR_BUILD_DYNAMIC_AOT_DEBUG](./build_wamr.md#configure-debug) | Runtime Extensions |
173+
| Fast JIT Dump | [WAMR_BUILD_FAST_JIT_DUMP](./build_wamr.md#configure-fast-jit) | Runtime Extensions |
174+
| Garbage Collection Heap Verify | [WAMR_BUILD_GC_HEAP_VERIFY](./build_wamr.md#garbage-collection) | Runtime Extensions |
175+
| Instruction Metering | [WAMR_BUILD_INSTRUCTION_METERING](./build_wamr.md#instruction-metering) | Runtime Extensions |
176+
| Libc EMCC Compatibility | [WAMR_BUILD_LIBC_EMCC](./build_wamr.md#libc-emcc) | Runtime Extensions |
177+
| Libc UVWASI Compatibility | [WAMR_BUILD_LIBC_UVWASI](./build_wamr.md#libc-uvwasi) | Runtime Extensions |
178+
| RATS Library | [WAMR_BUILD_LIB_RATS](./build_wamr.md#librats) | Runtime Extensions |
179+
| Mini Loader | [WAMR_BUILD_MINI_LOADER](./build_wamr.md#wasm-mini-loader) | Runtime Extensions |
180+
| SGX IPFS Support | [WAMR_BUILD_SGX_IPFS](./build_wamr.md#intel-protected-file-system) | Runtime Extensions |
181+
| Static PGO | [WAMR_BUILD_STATIC_PGO](./build_wamr.md#running-pgoprofile-guided-optimization-instrumented-aot-file) | Runtime Extensions |
182+
| WASM cache | [WAMR_BUILD_WASM_CACHE](./build_wamr.md#wasm-cache) | Runtime Extensions |
183+
| Test garbage collection | [WAMR_TEST_GC](./build_wamr.md#test-garbage-collection) | Runtime Extensions |

0 commit comments

Comments
 (0)