|
|
Created:
3 years, 9 months ago by Mircea Trofin Modified:
3 years, 9 months ago CC:
v8-reviews_googlegroups.com Target Ref:
refs/heads/master Project:
v8 Visibility:
Public. |
Description[wasm] Skeleton WasmModuleObjectBuilder for streamed compilation
APIs and trivial implementation, to unblock Chrome side dev.
BUG=chromium:697028
Review-Url: https://codereview.chromium.org/2763413003
Cr-Commit-Position: refs/heads/master@{#44053}
Committed: https://chromium.googlesource.com/v8/v8/+/78905107d3a6465f346d909fa7f1c22ffec144c2
Patch Set 1 #Patch Set 2 : fix leak #Patch Set 3 : [wasm] Skeleton WasmModuleObjectBuilder for streamed compilation #
Total comments: 2
Messages
Total messages: 47 (34 generated)
The CQ bit was checked by mtrofin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== [wasm] Skeleton WasmModuleObjectBuilder for streamed compilation APIs and trivial implementation, to unblock Chrome side dev. BUG= ========== to ========== [wasm] Skeleton WasmModuleObjectBuilder for streamed compilation APIs and trivial implementation, to unblock Chrome side dev. BUG=chromium:697028 ==========
mtrofin@chromium.org changed reviewers: + ahaas@chromium.org, bradnelson@chromium.org
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_win_compile_dbg on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_compile_dbg/builds/3...)
Added a skeleton API for streamed compilation on the V8 side, to unblock my work on the Blink side.
lgtm
The CQ bit was checked by mtrofin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_win_compile_dbg on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_compile_dbg/builds/3...) v8_win_nosnap_shared_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng...)
The CQ bit was checked by mtrofin@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from ahaas@chromium.org Link to the patchset: https://codereview.chromium.org/2763413003/#ps20001 (title: "fix leak")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: v8_win_compile_dbg on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_compile_dbg/builds/3...) v8_win_nosnap_shared_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng...)
The CQ bit was checked by mtrofin@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from ahaas@chromium.org Link to the patchset: https://codereview.chromium.org/2763413003/#ps40001 (title: "appease msvc")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: v8_win_nosnap_shared_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng...)
lgtm (sans compile failure on the bots)
The CQ bit was checked by mtrofin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng...)
The CQ bit was checked by mtrofin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by mtrofin@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Patchset #4 (id:60001) has been deleted
Patchset #3 (id:40001) has been deleted
Patchset #3 (id:80001) has been deleted
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by mtrofin@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from bradnelson@chromium.org, ahaas@chromium.org Link to the patchset: https://codereview.chromium.org/2763413003/#ps100001 (title: "[wasm] Skeleton WasmModuleObjectBuilder for streamed compilation")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 100001, "attempt_start_ts": 1490233560205810, "parent_rev": "06a551ae7c0324a0cdf818144823ecf736353738", "commit_rev": "78905107d3a6465f346d909fa7f1c22ffec144c2"}
Message was sent while issue was closed.
Description was changed from ========== [wasm] Skeleton WasmModuleObjectBuilder for streamed compilation APIs and trivial implementation, to unblock Chrome side dev. BUG=chromium:697028 ========== to ========== [wasm] Skeleton WasmModuleObjectBuilder for streamed compilation APIs and trivial implementation, to unblock Chrome side dev. BUG=chromium:697028 Review-Url: https://codereview.chromium.org/2763413003 Cr-Commit-Position: refs/heads/master@{#44053} Committed: https://chromium.googlesource.com/v8/v8/+/78905107d3a6465f346d909fa7f1c22ffec... ==========
Message was sent while issue was closed.
Committed patchset #3 (id:100001) as https://chromium.googlesource.com/v8/v8/+/78905107d3a6465f346d909fa7f1c22ffec...
Message was sent while issue was closed.
clemensh@google.com changed reviewers: + clemensh@google.com
Message was sent while issue was closed.
https://codereview.chromium.org/2763413003/diff/100001/include/v8.h File include/v8.h (right): https://codereview.chromium.org/2763413003/diff/100001/include/v8.h#newcode3917 include/v8.h:3917: // TODO(mtrofin): rename WasmCompiledModule to WasmModuleObject, for FYI: Ben once had the plan to rename this to WasmSpecializedCode. The problem with the current name (and also "WasmModuleObject") is that this suggests that only one such object exists per module, which is not the case.
Message was sent while issue was closed.
https://codereview.chromium.org/2763413003/diff/100001/include/v8.h File include/v8.h (right): https://codereview.chromium.org/2763413003/diff/100001/include/v8.h#newcode3917 include/v8.h:3917: // TODO(mtrofin): rename WasmCompiledModule to WasmModuleObject, for On 2017/03/27 07:39:20, clemensh wrote: > FYI: Ben once had the plan to rename this to WasmSpecializedCode. > The problem with the current name (and also "WasmModuleObject") is that this > suggests that only one such object exists per module, which is not the case. By "module" you mean "wire bytes"? An instance of WasmCompiledModule is the v8 wrapping of an instance of the JS type "WebAssembly.Module". Not sure where the problem is: the user knows they can create multiple WebAssembly.Module objects from the same instance of wire bytes. Same here.
Message was sent while issue was closed.
On 2017/03/27 at 07:58:30, mtrofin wrote: > https://codereview.chromium.org/2763413003/diff/100001/include/v8.h > File include/v8.h (right): > > https://codereview.chromium.org/2763413003/diff/100001/include/v8.h#newcode3917 > include/v8.h:3917: // TODO(mtrofin): rename WasmCompiledModule to WasmModuleObject, for > On 2017/03/27 07:39:20, clemensh wrote: > > FYI: Ben once had the plan to rename this to WasmSpecializedCode. > > The problem with the current name (and also "WasmModuleObject") is that this > > suggests that only one such object exists per module, which is not the case. > > By "module" you mean "wire bytes"? > > An instance of WasmCompiledModule is the v8 wrapping of an instance of the JS type "WebAssembly.Module". Not sure where the problem is: the user knows they can create multiple WebAssembly.Module objects from the same instance of wire bytes. Same here. That correspondance does not hold (and that's exactly the problem). The WasmCompiledModule object is cloned for each (live) instance. Hence it corresponds more to an instance than a module. And it's purpose is mainly to hold the code objects that were specialized to that instance. If the last instance of a "WebAssembly.Module" is GCed, then the WasmCompiledModule object of that instance is reset and reused for another instantiation of the same module.
Message was sent while issue was closed.
On 2017/03/27 08:05:34, Clemens Hammacher wrote: > On 2017/03/27 at 07:58:30, mtrofin wrote: > > https://codereview.chromium.org/2763413003/diff/100001/include/v8.h > > File include/v8.h (right): > > > > > https://codereview.chromium.org/2763413003/diff/100001/include/v8.h#newcode3917 > > include/v8.h:3917: // TODO(mtrofin): rename WasmCompiledModule to > WasmModuleObject, for > > On 2017/03/27 07:39:20, clemensh wrote: > > > FYI: Ben once had the plan to rename this to WasmSpecializedCode. > > > The problem with the current name (and also "WasmModuleObject") is that this > > > suggests that only one such object exists per module, which is not the case. > > > > By "module" you mean "wire bytes"? > > > > An instance of WasmCompiledModule is the v8 wrapping of an instance of the JS > type "WebAssembly.Module". Not sure where the problem is: the user knows they > can create multiple WebAssembly.Module objects from the same instance of wire > bytes. Same here. > > That correspondance does not hold (and that's exactly the problem). > The WasmCompiledModule object is cloned for each (live) instance. Hence it > corresponds more to an instance than a module. > And it's purpose is mainly to hold the code objects that were specialized to > that instance. If the last instance of a "WebAssembly.Module" is GCed, then the > WasmCompiledModule object of that instance is reset and reused for another > instantiation of the same module. Ah, there is a problem, but that's the name: this here is actually the module object, not just the compiled functions. It's the "m" and "n", separately, in: var m = new WebAssembly.Module(some_bytes); var n = new WebAssembly.Module(some_bytes); Hence my wanting to rename the external concept to match the JS API and also the internal API (i::WasmModuleObject), which is different from the internal notion of "compiled part" and all that. |