> On Aug 28, 2018, at 12:09 PM, Yusuke Suzuki <yusukesuz...@slowstart.org> > wrote: > > > > On Wed, Aug 29, 2018 at 3:58 Filip Pizlo <fpi...@apple.com > <mailto:fpi...@apple.com>> wrote: > >> On Aug 28, 2018, at 11:56 AM, Yusuke Suzuki <yusukesuz...@slowstart.org >> <mailto:yusukesuz...@slowstart.org>> wrote: >> >> >> >> On Wed, Aug 29, 2018 at 3:49 Yusuke Suzuki <yusukesuz...@slowstart.org >> <mailto:yusukesuz...@slowstart.org>> wrote: >> >> >> On Wed, Aug 29, 2018 at 3:27 Filip Pizlo <fpi...@apple.com >> <mailto:fpi...@apple.com>> wrote: >> >>> On Aug 28, 2018, at 11:25 AM, Yusuke Suzuki <yusukesuz...@slowstart.org >>> <mailto:yusukesuz...@slowstart.org>> wrote: >>> >>> Thanks! >>> >>> On Wed, Aug 29, 2018 at 3:22 Filip Pizlo <fpi...@apple.com >>> <mailto:fpi...@apple.com>> wrote: >>> I don’t like this proposal. >>> >>> If we are running low on memory, we should switch to bounds checked memory. >>> >>> How about using bound checking mode exclusively for low environment? >> >> That would mean that, paradoxically, having a machine with a lot of memory >> means being able to spawn fewer wasm instances. >> >> We want to support lightweight wasm instances because it wouldn’t be good to >> rule that out as a use case. >> >> Hmmm, can we compile the BBQ phase / initial wasm code without knowing the >> attached memory’s mode? The current strategy basically defers compilation of >> wasm module until the memory mode is found. >> Because of this, WebAssembly.compile is not so meaningful in our >> implementation right now... >> And wasm ES6 module can import memory externally. This means that we cannot >> start wasm compilation after the memory mode of the impprted memory >> (described in the imported modulr) is downloaded, analyzed and found. >> >> How about always compiling BBQ code with bound checking mode? >> It should work with signaling memory with small / no tweaks. And OMG code >> will be compiled based on the memory mode attached to the module. >> Since BBQ -> OMG function call should be linked, we need to call appropriate >> func for the running memory mode, but it would not introduce significant >> complexity. > > What complexity are you trying to fix, specifically? > > What I want is starting compilation before the memory is attached a.k.a. > instantiated) > > > I think that what we really want is an interpreter as our baseline. Then > tier-up to BBQ or OMG from there. In that world, I don’t think any of this > matters. > > Does this interpreter execute wasm binary directly? If so, we can skip > compiling and all should work well! > > Even if we want some own bytecode (like stack VM to register VM etc.), it is > ok if the compilation result is not tied to the memory mode.
I don’t know if it will execute the wasm binary directly, but whatever bytecode it runs could be dissociated from memory mode. -Filip > > If the compilation result is tied to the memory mode, then we still need to > defer the compilation until the memory mode is attached. > > > -Filip > > >> >> >> >> >> -Filip >> >> >>> >>> >>> -Filip >>> >>> >>> >>>> On Aug 28, 2018, at 11:21 AM, Yusuke Suzuki <yusukesuz...@slowstart.org >>>> <mailto:yusukesuz...@slowstart.org>> wrote: >>>> >>> >>> >>>> Posted this mail to webkit-dev mailing list too :) >>>> >>>> On Wed, Aug 29, 2018 at 3:19 AM Yusuke Suzuki <yusukesuz...@slowstart.org >>>> <mailto:yusukesuz...@slowstart.org>> wrote: >>>> Hi JSC folks, >>>> >>>> In Wasm supported environment, our MemoryMode is a bit dynamic. >>>> When we fail to allocate WasmMemory for signaling mode, we fall back to >>>> the bound checking memory instead. >>>> >>>> But Wasm code compiled for signaling / bound checking is incompatible. If >>>> the code is compiled >>>> as signaling mode, and if we attach the memory for bound checking, we need >>>> to recompile the >>>> code for bound checking mode. This introduces significant complexity to >>>> our wasm compilation. >>>> And our WebAssembly.compile is not basically compiling: it is just >>>> validating. >>>> Actual compiling needs to be deferred until the memory is attached by >>>> instantiating. >>>> It is not good when we would like to share WasmModule among multiple wasm >>>> threads / workers in the future, since the "compiled" Wasm module is not >>>> actually compiled. >>>> >>>> So, my proposal is, can we explore the way to exclusively support one of >>>> MemoryMode in a certain architecture? >>>> For example, in x64, enable signaling mode, and we report OOM errors if we >>>> fail to allocate WasmMemory with signaling mode. >>>> >>>> Best regards, >>>> Yusuke Suzuki >>> >>>> _______________________________________________ >>>> webkit-dev mailing list >>>> webkit-dev@lists.webkit.org <mailto:webkit-dev@lists.webkit.org> >>>> https://lists.webkit.org/mailman/listinfo/webkit-dev >>>> <https://lists.webkit.org/mailman/listinfo/webkit-dev>
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev