1. 14 Mar, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Make error messages deterministic · eb1d2d70
      Clemens Hammacher authored
      Compilation only stores whether an error has been found, but not the
      exact error or it's location. This is generated by running a validation
      pass once all wire bytes have been received.
      This unifies error messages by removing one more location where we
      generate compilation error messages, and makes it deterministic because
      a) we always report the error in the first failing function, and
      b) if names are present, the error message will always contain the
         function name.
      
      R=titzer@chromium.org
      
      Bug: chromium:926311, v8:8814
      Change-Id: I79551b8bb73dcee503484de343a3ada60a6add4f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521112
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60242}
      eb1d2d70
  2. 06 Feb, 2019 1 commit
  3. 01 Feb, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Revise compile error messages · 327fd140
      Clemens Hammacher authored
      This CL revises some of our error messages, and removes unneeded parts
      (like "AsyncCompilation: " or "(null): "). It also extends existing
      tests to check for the precise error message more thoroughly to detect
      changes or nondeterminism earlier.
      
      R=titzer@chromium.org, ahaas@chromium.org
      
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Bug: chromium:926311
      Change-Id: I1ccfb307d4a61291f4582330152a53fbadd0848f
      Reviewed-on: https://chromium-review.googlesource.com/c/1445897
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59296}
      327fd140
  4. 30 Jan, 2019 1 commit
  5. 09 Nov, 2018 1 commit
  6. 06 Nov, 2018 1 commit
  7. 24 Oct, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Fix streaming instantiation with no code section · ecbf6296
      Clemens Hammacher authored
      Because of ordering issues we didn't set the wire bytes on the
      {NativeModule} during {OnFinishedStream}. We then failed during
      instantiation when trying to read the import names from the wire bytes.
      
      This CL fixes this locally without much code churn. I plan to clean up
      the interaction between {AsyncCompileJob} and {AsyncStreamingProcessor}
      in a follow-up CL.
      
      R=ahaas@chromium.org
      
      Bug: chromium:898310
      Change-Id: I06337a04ba380f87b803f325323208298d363f41
      Reviewed-on: https://chromium-review.googlesource.com/c/1296467Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56938}
      ecbf6296
  8. 09 May, 2018 1 commit
  9. 25 Oct, 2017 1 commit
  10. 16 Oct, 2017 1 commit
  11. 02 Aug, 2017 1 commit
  12. 06 Jul, 2017 1 commit
    • Andreas Haas's avatar
      Reland [wasm] Allow the initialization of a single compilation unit · 28cc5dc6
      Andreas Haas authored
      Tsan figured out that I called compilation_units_.empty() outside a
      lock.
      
      Original message:
      This CL adds a new function {InitializeCompilationUnit} to initialize
      a single compilation unit and not just all compilation units at once.
      This is necessary for streaming compilation eventually. This also
      required some refactoring on how the working queue for compilation units
      works. Previously the synchronization was done with an atomic counter,
      now it is done with a lock. Note that the code to finish compilation
      of a module still only works if the working queue gets only empty when
      all work is done. I plan to change this in a different CL.
      
      Since the code would not be tested without streaming compilation, I added
      an experimental flag and a test to test the new code.
      
      R=clemensh@chromium.org, mtrofin@chromium.org
      
      Change-Id: Ia83560d1c70f0802271a88c514e0d1cb0458f6c4
      Reviewed-on: https://chromium-review.googlesource.com/561458Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46454}
      28cc5dc6
  13. 30 Jun, 2017 2 commits
    • Michael Achenbach's avatar
      Revert "[wasm] Allow the initialization of a single compilation unit" · fa4314da
      Michael Achenbach authored
      This reverts commit ca931562.
      
      Reason for revert: tsan:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/16007
      
      Original change's description:
      > [wasm] Allow the initialization of a single compilation unit
      > 
      > This CL adds a new function {InitializeCompilationUnit} to initialize
      > a single compilation unit and not just all compilation units at once.
      > This is necessary for streaming compilation eventually. This also
      > required some refactoring on how the working queue for compilation units
      > works. Previously the synchronization was done with an atomic counter,
      > now it is done with a lock. Note that the code to finish compilation
      > of a module still only works if the working queue gets only empty when
      > all work is done. I plan to change this in a different CL.
      > 
      > Since the code would not be tested without streaming compilation, I added
      > an experimental flag and a test to test the new code.
      > 
      > R=​clemensh@chromium.org, mtrofin@chromium.org
      > 
      > Change-Id: I839c04fd78d1ea8e1db202f2cbed41c4c2cf4f28
      > Reviewed-on: https://chromium-review.googlesource.com/550096
      > Commit-Queue: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46348}
      
      TBR=mtrofin@chromium.org,ahaas@chromium.org,clemensh@chromium.org
      
      Change-Id: Ied6532f05463c0b78c8b8f5307d44640bcca8316
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/558224Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46350}
      fa4314da
    • Andreas Haas's avatar
      [wasm] Allow the initialization of a single compilation unit · ca931562
      Andreas Haas authored
      This CL adds a new function {InitializeCompilationUnit} to initialize
      a single compilation unit and not just all compilation units at once.
      This is necessary for streaming compilation eventually. This also
      required some refactoring on how the working queue for compilation units
      works. Previously the synchronization was done with an atomic counter,
      now it is done with a lock. Note that the code to finish compilation
      of a module still only works if the working queue gets only empty when
      all work is done. I plan to change this in a different CL.
      
      Since the code would not be tested without streaming compilation, I added
      an experimental flag and a test to test the new code.
      
      R=clemensh@chromium.org, mtrofin@chromium.org
      
      Change-Id: I839c04fd78d1ea8e1db202f2cbed41c4c2cf4f28
      Reviewed-on: https://chromium-review.googlesource.com/550096
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46348}
      ca931562
  14. 10 May, 2017 3 commits
  15. 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
  16. 08 May, 2017 3 commits
  17. 30 Apr, 2017 1 commit
    • Clemens Hammacher's avatar
      [wasm] Refactor and fix ErrorThrower · e3207836
      Clemens Hammacher authored
      The error thrower did allocate the exception at the moment the error was
      detected. For async compilation, this meant in another step than when
      it was actually thrown. Since the HandleScope of the exception already
      died at that point, this would have lead to memory errors.
      
      With this refactoring, we only store the information needed to generate
      the exception in the ErrorThrower, and only generate the exception
      object once it is actually needed.
      
      With regression test.
      
      R=ahaas@chromium.org, mtrofin@chromium.org
      Also-by: ahaas@chromium.org
      
      Change-Id: Iffcab1f8d1cf5925e3643fcf0729ba9a84c7d277
      Reviewed-on: https://chromium-review.googlesource.com/490085
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45000}
      e3207836
  18. 06 Apr, 2017 1 commit
  19. 03 Apr, 2017 2 commits