1. 31 Mar, 2022 1 commit
    • Manos Koukoutos's avatar
      Reland "[wasm-gc] Implement isorecursive canonicalization" · cfa8d0b3
      Manos Koukoutos authored
      This is a reland of commit e76ad5c6
      
      Changes compared to original:
      - Move invocation of LAZY_INSTANCE_INITIALIZER to a static global
        variable, as some builds were failing with a function-level static.
      - Drive-by: Improve documentation a bit.
      
      Original change's description:
      > [wasm-gc] Implement isorecursive canonicalization
      >
      > This implements isorecursive canonicalization for static types.
      >
      > Not implemented in this CL:
      > - Runtime type canonicalization.
      > - Cross-module signature canonicalization for purposes of call_indirect.
      >
      > Bug: v8:7748
      > Change-Id: I6214f947444eea8d7b15a29b35c94c3d07ddb525
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541925
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79665}
      
      Bug: v8:7748
      Change-Id: I493fba1906491762f7d8bae50108e3e4a743391d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560480Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79692}
      cfa8d0b3
  2. 30 Mar, 2022 2 commits
  3. 27 Jan, 2022 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Implement iso-recursive types · fe531e1f
      Manos Koukoutos authored
      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/+/3416239Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78816}
      fe531e1f
  4. 20 Sep, 2021 1 commit
  5. 07 Sep, 2021 1 commit
  6. 14 Jun, 2021 1 commit
  7. 09 Jun, 2021 1 commit
  8. 08 Jun, 2021 1 commit
  9. 01 Jun, 2021 1 commit
  10. 27 Apr, 2021 1 commit
  11. 18 Sep, 2020 2 commits
  12. 14 Sep, 2020 1 commit