fe531e1feb
This CL replaces the equirecursive type system for wasm-gc with the isorecursive hybrid type system presented here: https://github.com/WebAssembly/gc/issues/257. In broad strokes, this includes the following changes: - In the module decoder, remove equirecursive types. Implement recursive type groups, subtype definitions, and function/struct/array definitions. Treat nominal modules as syntactic sugar of an isorecursive module, where all types belong in the same recursive group. - Remove rtt.sub and all related infrastructure. - Change subtyping to work with explicit supertypes only. - Add ValidSubtypeDefinition in subtyping, to check that subtype declarations are valid during decoding. - Remove the subtyping cache. - Add support for functions to have specific signature index in WasmModuleBuilder and in test-gc.cc. - Adapt tests. Current restrictions: - Recursive groups are not stored beyond decoding. - Type canonicalization is not implemented. No tests relying on types being considered identical post-canonicalization. - No cross-module subtyping is possible. Tests relying on cross-module subtyping have been commented out. Bug: v8:7748 Change-Id: I69fd04ecc5611f6230c95d5c89d1c520163fffae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416239 Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78816} |
||
---|---|---|
.. | ||
console | ||
cpu-profiler | ||
debugger | ||
heap-profiler | ||
regress | ||
runtime | ||
sessions | ||
type-profiler | ||
BUILD.gn | ||
DEPS | ||
DIR_METADATA | ||
frontend-channel.h | ||
inspector-test.cc | ||
inspector.status | ||
isolate-data.cc | ||
isolate-data.h | ||
json-parse-expected.txt | ||
json-parse.js | ||
OWNERS | ||
print-method-not-found-expected.txt | ||
print-method-not-found.js | ||
protocol-test.js | ||
task-runner.cc | ||
task-runner.h | ||
tasks.cc | ||
tasks.h | ||
testcfg.py | ||
utils.cc | ||
utils.h | ||
wasm-inspector-test.js |