1. 25 Oct, 2017 1 commit
  2. 16 Oct, 2017 1 commit
  3. 10 May, 2017 3 commits
  4. 09 May, 2017 1 commit
    • Michael Achenbach's avatar
      Revert "Revert "Revert "Introducing an event loop mechanism for d8.""" · 02595c60
      Michael Achenbach authored
      This reverts commit 7dcc8eff.
      
      Reason for revert: Some flakes still (see comments) and breaks predictable testing:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20predictable/builds/11452
      
      Original change's description:
      > Revert "Revert "Introducing an event loop mechanism for d8.""
      > 
      > This reverts commit f7c25da6.
      > 
      > Reason for revert: Fixed
      > 
      > Original change's description:
      > > Revert "Introducing an event loop mechanism for d8."
      > > 
      > > This reverts commit de964dbe.
      > > 
      > > Reason for revert:
      > > https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958
      > > 
      > > Original change's description:
      > > > Introducing an event loop mechanism for d8.
      > > > 
      > > > This mechanism ensures APIs like wasm async complete their work, 
      > > > without requiring use of natives (%APIs).
      > > > 
      > > > The mechanism is similar to the one used in content_shell,
      > > > which should allow us to easily port tests in that environment.
      > > > 
      > > > Review-Url: https://codereview.chromium.org/2842843005
      > > > Cr-Original-Commit-Position: refs/heads/master@{#44908}
      > > > Bug: 
      > > > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344
      > > > Reviewed-on: https://chromium-review.googlesource.com/494968
      > > > Commit-Queue: Mircea Trofin <mtrofin@google.com>
      > > > Reviewed-by: Jochen Eisinger <jochen@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#45165}
      > > 
      > > TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org
      > > NOPRESUBMIT=true
      > > NOTREECHECKS=true
      > > NOTRY=true
      > > 
      > > Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f
      > > Reviewed-on: https://chromium-review.googlesource.com/498630
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#45166}
      > 
      > TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > 
      > Change-Id: Ic3c782e918326e291a6cb9bb349c609e9a340b09
      > Reviewed-on: https://chromium-review.googlesource.com/498430
      > Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
      > Commit-Queue: Mircea Trofin <mtrofin@google.com>
      > Cr-Commit-Position: refs/heads/master@{#45172}
      
      TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Change-Id: I21ffba7141db0bfb4a3275b6e1bf4fb399800ed2
      Reviewed-on: https://chromium-review.googlesource.com/500128Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45177}
      02595c60
  5. 08 May, 2017 3 commits
  6. 06 Apr, 2017 1 commit
  7. 03 Apr, 2017 2 commits
  8. 20 Jan, 2017 1 commit
  9. 17 Jan, 2017 1 commit
  10. 16 Jan, 2017 1 commit
  11. 12 Jan, 2017 1 commit
  12. 11 Jan, 2017 1 commit
  13. 09 Jan, 2017 1 commit
  14. 21 Dec, 2016 1 commit
  15. 20 Dec, 2016 1 commit
  16. 19 Dec, 2016 1 commit
  17. 23 Nov, 2016 3 commits
    • gdeepti's avatar
      [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. · e108f90d
      gdeepti authored
      Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances.
       - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate.
       - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected.
       - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected.
       - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance.
      
       R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org
      
      Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6
      Committed: https://crrev.com/3c98e339599b068f1ed630afb7601ff942424d31
      Review-Url: https://codereview.chromium.org/2471883003
      Cr-Original-Original-Commit-Position: refs/heads/master@{#41121}
      Cr-Original-Commit-Position: refs/heads/master@{#41198}
      Cr-Commit-Position: refs/heads/master@{#41234}
      e108f90d
    • hablich's avatar
      Revert of [wasm] WebAssembly.Memory object can be referenced by multiple... · de330e13
      hablich authored
      Revert of [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. (patchset #13 id:240001 of https://codereview.chromium.org/2471883003/ )
      
      Reason for revert:
      Test crashes after an unrelated revert: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/7189
      
      Reverting because of recommendation from WASM team.
      
      Original issue's description:
      > [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects.
      >
      > Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances.
      >  - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate.
      >  - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected.
      >  - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected.
      >  - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance.
      >
      >  R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org
      >
      > Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6
      > Committed: https://crrev.com/3c98e339599b068f1ed630afb7601ff942424d31
      > Cr-Original-Commit-Position: refs/heads/master@{#41121}
      > Cr-Commit-Position: refs/heads/master@{#41198}
      
      TBR=bradnelson@chromium.org,mtrofin@chromium.org,titzer@chromium.org,gdeepti@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2529573002
      Cr-Commit-Position: refs/heads/master@{#41208}
      de330e13
    • gdeepti's avatar
      [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. · 3c98e339
      gdeepti authored
      Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances.
       - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate.
       - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected.
       - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected.
       - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance.
      
       R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org
      
      Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6
      Review-Url: https://codereview.chromium.org/2471883003
      Cr-Original-Commit-Position: refs/heads/master@{#41121}
      Cr-Commit-Position: refs/heads/master@{#41198}
      3c98e339
  18. 19 Nov, 2016 2 commits
    • machenbach's avatar
      Revert of [wasm] WebAssembly.Memory object can be referenced by multiple... · 682f6500
      machenbach authored
      Revert of [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. (patchset #10 id:180001 of https://codereview.chromium.org/2471883003/ )
      
      Reason for revert:
      Breaks gc stress:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/7114
      
      Original issue's description:
      > [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects.
      >
      > Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances.
      >  - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate.
      >  - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected.
      >  - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected.
      >  - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance.
      >
      >  R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org
      >
      > Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6
      > Cr-Commit-Position: refs/heads/master@{#41121}
      
      TBR=bradnelson@chromium.org,mtrofin@chromium.org,titzer@chromium.org,gdeepti@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2512323004
      Cr-Commit-Position: refs/heads/master@{#41122}
      682f6500
    • gdeepti's avatar
      [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. · 30ef8e33
      gdeepti authored
      Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances.
       - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate.
       - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected.
       - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected.
       - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance.
      
       R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org
      
      Review-Url: https://codereview.chromium.org/2471883003
      Cr-Commit-Position: refs/heads/master@{#41121}
      30ef8e33
  19. 28 Oct, 2016 1 commit
  20. 26 Oct, 2016 1 commit
  21. 13 Oct, 2016 1 commit
  22. 06 Oct, 2016 3 commits
  23. 29 Sep, 2016 1 commit
  24. 27 Sep, 2016 1 commit
    • titzer's avatar
      [wasm] Master CL for Binary 0xC changes. · 28392ab1
      titzer authored
      [0xC] Convert to stack machine semantics.
      [0xC] Use section codes instead of names.
      [0xC] Add elements section decoding.
      [0xC] Decoding of globals section.
      [0xC] Decoding of memory section.
      [0xC] Decoding of imports section.
      [0xC] Decoding of exports section.
      [0xC] Decoding of data section.
      [0xC] Remove CallImport bytecode.
      [0xC] Function bodies have an implicit block.
      [0xC] Remove the bottom label from loops.
      [0xC] Add signatures to blocks.
      [0xC] Remove arities from branches.
      Add tests for init expression decoding.
      Rework compilation of import wrappers and how they are patched.
      Rework function indices in debugging.
      Fix ASM->WASM builder for stack machine.
      Reorganize asm.js foreign functions due to import indices change.
      
      R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
      BUG=chromium:575167
      LOG=Y
      
      Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9
      Review-Url: https://codereview.chromium.org/2345593003
      Cr-Original-Commit-Position: refs/heads/master@{#39678}
      Cr-Commit-Position: refs/heads/master@{#39795}
      28392ab1
  25. 23 Sep, 2016 2 commits
    • machenbach's avatar
      Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of... · e1eee748
      machenbach authored
      Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of https://codereview.chromium.org/2345593003/ )
      
      Reason for revert:
      Main suspect for tsan:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893
      
      Also changes layout tests:
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10036
      
      +mips builder:
      https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/4032
      
      Original issue's description:
      > [wasm] Master CL for Binary 0xC changes.
      >
      > [0xC] Convert to stack machine semantics.
      > [0xC] Use section codes instead of names.
      > [0xC] Add elements section decoding.
      > [0xC] Decoding of globals section.
      > [0xC] Decoding of memory section.
      > [0xC] Decoding of imports section.
      > [0xC] Decoding of exports section.
      > [0xC] Decoding of data section.
      > [0xC] Remove CallImport bytecode.
      > [0xC] Function bodies have an implicit block.
      > [0xC] Remove the bottom label from loops.
      > [0xC] Add signatures to blocks.
      > [0xC] Remove arities from branches.
      > Add tests for init expression decoding.
      > Rework compilation of import wrappers and how they are patched.
      > Rework function indices in debugging.
      > Fix ASM->WASM builder for stack machine.
      > Reorganize asm.js foreign functions due to import indices change.
      >
      > R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
      > BUG=chromium:575167
      > LOG=Y
      >
      > Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9
      > Cr-Commit-Position: refs/heads/master@{#39678}
      
      TBR=ahaas@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,rossberg@chromium.org,bradnelson@google.com,titzer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:575167
      
      Review-Url: https://codereview.chromium.org/2361053004
      Cr-Commit-Position: refs/heads/master@{#39685}
      e1eee748
    • titzer's avatar
      [wasm] Master CL for Binary 0xC changes. · 76eb976a
      titzer authored
      [0xC] Convert to stack machine semantics.
      [0xC] Use section codes instead of names.
      [0xC] Add elements section decoding.
      [0xC] Decoding of globals section.
      [0xC] Decoding of memory section.
      [0xC] Decoding of imports section.
      [0xC] Decoding of exports section.
      [0xC] Decoding of data section.
      [0xC] Remove CallImport bytecode.
      [0xC] Function bodies have an implicit block.
      [0xC] Remove the bottom label from loops.
      [0xC] Add signatures to blocks.
      [0xC] Remove arities from branches.
      Add tests for init expression decoding.
      Rework compilation of import wrappers and how they are patched.
      Rework function indices in debugging.
      Fix ASM->WASM builder for stack machine.
      Reorganize asm.js foreign functions due to import indices change.
      
      R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
      BUG=chromium:575167
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/2345593003
      Cr-Commit-Position: refs/heads/master@{#39678}
      76eb976a
  26. 12 Sep, 2016 1 commit
    • mtrofin's avatar
      [wasm] reuse the first compiled module. · b4dc310a
      mtrofin authored
      This change avoids needing to keep around an unused compiled
      module. Instead, the result of compiling the wasm bytes is
      given to the first instance. The module object and that instance object
      point to the same compiled module. Instances are, then, cloned from
      the compiled module the module object points to. When an instance is
      collected, we make sure that the module object still has a clone
      available, and, if the last instance is GC-ed, we also reset the compiled
      module so that it does not reference its heap, so that it (==heap) may
      be collected.
      
      This is achieved by linking the clones in a double-linked list and
      registering a finalizer for each. When we create an instance, we tie it
      in the front of the list, making the module object point to it (O(1)). When
      the finalizer is called, we relink the list over the dying object (O(1)). The
      costliest operation is finalizing the last instance, since we need to visit
      all wasm functions and reset heap references.
      
      BUG=v8:5316
      
      Committed: https://crrev.com/01f5af515728aebe6c5246f4f7dd6c573e8748af
      Review-Url: https://codereview.chromium.org/2305903002
      Cr-Original-Commit-Position: refs/heads/master@{#39153}
      Cr-Commit-Position: refs/heads/master@{#39361}
      b4dc310a
  27. 05 Sep, 2016 2 commits
    • machenbach's avatar
      Revert of [wasm] reuse the first compiled module (patchset #12 id:220001 of... · 359a00bf
      machenbach authored
      Revert of [wasm] reuse the first compiled module (patchset #12 id:220001 of https://codereview.chromium.org/2305903002/ )
      
      Reason for revert:
      mac gc stress failures:
      https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/8341
      
      Original issue's description:
      > [wasm] reuse the first compiled module.
      >
      > This change avoids needing to keep around an unused compiled
      > module. Instead, the result of compiling the wasm bytes is
      > given to the first instance. The module object and that instance object
      > point to the same compiled module. Instances are, then, cloned from
      > the compiled module the module object points to. When an instance is
      > collected, we make sure that the module object still has a clone
      > available, and, if the last instance is GC-ed, we also reset the compiled
      > module so that it does not reference its heap, so that it (==heap) may
      > be collected.
      >
      > This is achieved by linking the clones in a double-linked list and
      > registering a finalizer for each. When we create an instance, we tie it
      > in the front of the list, making the module object point to it (O(1)). When
      > the finalizer is called, we relink the list over the dying object (O(1)). The
      > costliest operation is finalizing the last instance, since we need to visit
      > all wasm functions and reset heap references.
      >
      > BUG=v8:5316
      >
      > Committed: https://crrev.com/01f5af515728aebe6c5246f4f7dd6c573e8748af
      > Cr-Commit-Position: refs/heads/master@{#39153}
      
      TBR=bradnelson@chromium.org,verwaest@chromium.org,vogelheim@chromium.org,yangguo@chromium.org,mtrofin@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5316
      
      Review-Url: https://codereview.chromium.org/2306403002
      Cr-Commit-Position: refs/heads/master@{#39154}
      359a00bf
    • mtrofin's avatar
      [wasm] reuse the first compiled module. · 01f5af51
      mtrofin authored
      This change avoids needing to keep around an unused compiled
      module. Instead, the result of compiling the wasm bytes is
      given to the first instance. The module object and that instance object
      point to the same compiled module. Instances are, then, cloned from
      the compiled module the module object points to. When an instance is
      collected, we make sure that the module object still has a clone
      available, and, if the last instance is GC-ed, we also reset the compiled
      module so that it does not reference its heap, so that it (==heap) may
      be collected.
      
      This is achieved by linking the clones in a double-linked list and
      registering a finalizer for each. When we create an instance, we tie it
      in the front of the list, making the module object point to it (O(1)). When
      the finalizer is called, we relink the list over the dying object (O(1)). The
      costliest operation is finalizing the last instance, since we need to visit
      all wasm functions and reset heap references.
      
      BUG=v8:5316
      
      Review-Url: https://codereview.chromium.org/2305903002
      Cr-Commit-Position: refs/heads/master@{#39153}
      01f5af51
  28. 31 Aug, 2016 1 commit