WebAssemblyã§ã®ã¹ã¬ããã®æåã®å®è£ ã«é¢ããETAã¯ãããŸããïŒ
--R
次ã®æ°ååæã®ããææã¯ããããã誰ããèšãããšãã§ããã»ã©æ£ç¢ºã§ãã ãã ããåé¡ãæåºããããã«åé¡ãã©ãã«ãŒãäºçŽããŠãã ããã
ãã®ãããžã§ã¯ãã«ã¯ã¡ãŒãªã³ã°ãªã¹ãããã®ä»ã®ãã©ãŒã©ã ããªããããåé¡è¿œè·¡ã·ã¹ãã ã¯ãèšèšããã»ã¹ã«ã€ããŠè³ªåã§ããå¯äžã®å Žæã§ãã 人ã ã質åã§ããå Žæãããããšã¯äŸ¡å€ãããã®ã§ãç§ã¯äººã ã質åãããããã«åé¡è¿œè·¡ã·ã¹ãã ã䜿ãç¶ããããšãå§ããŸãã
@sunfishcode ãååã«å ¬å¹³ã§ããããã®ãããªãªã¹ããäœæããããšããå§ãããŸãã 課é¡è¿œè·¡ã·ã¹ãã ããã®ä»£ããã«ãªããšã¯æããŸããã
w3å ¬éãªã¹ãããããŸãã ãã ãããã©ãã£ãã¯ã¯ããã»ã©å€ããããŸããã ç§ãä¿¡ããŠããIRCããããŸããïŒ ããæç¹ã§ãŠã§ããµã€ãã«æ²èŒãããŠãããšæããŸããããŠã§ããµã€ãã®ã³ãã¥ããã£ã»ã¯ã·ã§ã³ã§äž¡æ¹ãçŽæ¥ãªã³ã¯ãããŠããã°ããã®ã§ããã ç§ã¯åé¡ãéããŸãããããªãã誰ããäžè¬ã«ãªã³ã¯ãããŠããããšããå ¬éãããããšã奜ãæ¹æ³ãããããŸãã
ããã§ã®æé ïŒ
ç§ãã¡ã¯äººã ã«githubã䜿ãããã«æå°ããŠããŸããã 誰ããããã奜ããšããããã§ã¯ãããŸããããå€ãã®å Žæããã1ã€ã®å Žæã«ããæ¹ãè¯ãã§ãã
ããã«ã¡ã¯@ rossberg-chromiumãããŠã¿ã€ã ãªãŒãªåçã«æè¬ããŸãã
ãã ããåé¡ãæåºããããã«åé¡ãã©ãã«ãŒãäºçŽããŠãã ããã
@jfbastienãææããããã«ãæšæºçãªæ¹æ³ã§ãããè¡ãã®ã«æé©ãªå Žæã®ããã«æãããã®ã§ãããã§å°ããŸããã
ããã«ãã¹ã¬ããã®ãµããŒãã¯ãwebAssemblyã®æåãŸãã¯å€±æãšãªãèšèšæ©èœã§ãã
ããŽã®ã³ã³ããã¹ãããJavaã«å®è£
ãããŠããªãã®ã¯ãªãã§ãããããããåé¡ãšããŠæèµ·ãããŠãããšæããŸãã
ç§ãééã£ãŠããå Žåã¯ãå
±æã¡ã¢ãª/ã¹ã¬ããã®å®è£
ã«åŸãå ŽæãæããŠãã ããã
ããã¯ãªãŒãã³ãªããã»ã¹ã§ãªããã°ãªããªãã®ã§ãç§ã¯èšãããã§ãã
--R
@RobertoMalatestaã¹ã¬ããã¯éåžžã«éèŠã§ããããšã«åæããŸãããWebAssemblyã®æå°éã®å®è¡å¯èœãªè£œåã«ã¹ã¬ãããè©°ã蟌ãããããã¹ã¬ãããæ£ããããããšãéèŠã§ããã ç§ãã¡ã®æšè«ã¯åçŽã§ãïŒasm.jsã¯ãã®æ©èœãªãã§æåãåããŠããŸãã
ã¹ã¬ããã¯ãããã€ãã®éèŠãªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠééããªãã¡ã€ã¯ãŸãã¯ãã¬ã€ã¯æ©èœã§ããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããããã§ã¯ãããŸããã GCããŒãã³ã¹ãã®äŸå€åŠçãä¿èšŒãããæ«å°ŸåŒã³åºããªã©ã«ã€ããŠãåãããšãèšããŸãã
MVPãéžæãããšããããšã¯ãæåã®ç«ã¡äžãæã«å šå¡ãæºè¶³ãããããã§ã¯ãªãããšãæå³ããŸãã ãŸãããã¹ãŠãèšèšãä»æ§åãå®è£ ããåã«ãWebAssemblyã䜿çšãã人ãããããšãæå³ããŸãã
ããã¯èšã£ãŠããç§ãã¡ã¯å€ããå°ãªããJavaScriptSharedArrayBufferã¢ãããŒããWebAssemblyã«æ¡çšããããšãæåŸ ããŠããŸãã ç§ãã¡ã®å€ãã¯ãæåãããã®ä»æ§ã«é¢äžããŠããŸããã ããã«ãããC ++ã«äŒŒãäœã¬ãã«ã®æ©èœã«å ããŠãfutexã®ãããªAPIãè¿œå ãããŸãã é次äžè²«æ§ãããå€ãã®ã¡ã¢ãªé åºã§æé·ããäœå°ããããŸãã ãã®ããã®æ£åŒãªã¡ã¢ãªã¢ãã«ãäœæããããã®é²è¡äžã®äœæ¥ããããŸãã
SABã¯TC39ã®ãã¹ããŒãž4ãã«ãããŸããã€ãŸããSABã¯å®äºããåºè·ã®æºåãã§ããŠããã䜿çšããæºåãã§ããŠããŸãã WebAssemblyã«æ¡çšããã®ã¯ããã»ã©é£ãããªããšæããŸãã
@jfbastienæŽå¯ã«æºã¡ãæ å ±ãããããšãã
ããã¯èšã£ãŠããç§ãã¡ã¯å€ããå°ãªããJavaScriptSharedArrayBufferã¢ãããŒããWebAssemblyã«æ¡çšããããšãæåŸ ããŠããŸããïŒ...ïŒ
SABã¯TC39ã®ãã¹ããŒãž4ãã«ãããŸããã€ãŸããSABã¯å®äºããåºè·ã®æºåãã§ããŠããã䜿çšããæºåãã§ããŠããŸãã WebAssemblyã«æ¡çšããã®ã¯ããã»ã©é£ãããªããšæããŸãã
ãããã ç§ã¯ãåã«ã¹ã¬ããåã«é£¢ããŠããå€ãã®C ++ã³ãŒãã§ãããããã¯ã¿ã€ã¢ããããšæã£ãŠããŸãã
ç§ã¯å®æçã«WebWorkersãTS / JSã¢ããªã±ãŒã·ã§ã³ã«äœ¿çšããŠãããç§ã¯ãããã®ãã¡ã³ã§ã¯ãªããšèšãããŠãããŸãããæåã®ã¹ã¿ãŒããšããŠäœ¿çšããããšãã§ããŸãã
ã¹ã¬ããã¯éåžžã«éèŠã§ãããWebAssemblyã®æå°éã®å®è¡å¯èœãªè£œåã«ã¹ã¬ãããè©°ã蟌ãããããã¹ã¬ãããæ£ããããããšãéèŠã§ããã ç§ãã¡ã®æšè«ã¯åçŽã§ãïŒasm.jsã¯ãã®æ©èœãªãã§æåãåããŠããŸãã
MVPãè¿ éã«è±åºããå¿ èŠæ§ïŒã¹ã¿ãã¯ããŒã¹ã«ç§»è¡ããããã«ASTãåé€ããçç±ã ã£ããšæããŸãïŒãšããããªãã¹ããããèšç»ããããã«å¿ èŠãªæ³šæãå®å šã«ç解ããŠãã ããã
ã¹ã¬ããã¯ãããã€ãã®éèŠãªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠééããªãã¡ã€ã¯ãŸãã¯ãã¬ã€ã¯æ©èœã§ããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããããã§ã¯ãããŸããã GCããŒãã³ã¹ãã®äŸå€åŠçãä¿èšŒãããæ«å°ŸåŒã³åºããªã©ã«ã€ããŠãåãããšãèšããŸãã
emscriptenã®é·å¹Žã®ãŠãŒã¶ãŒãšããŠãç§ã¯WebAssemblyãJavascriptã¢ããªã±ãŒã·ã§ã³ã¹ã¿ãã¯ã®å¶éããããåãé¢ãããŠããããšãæãã§ããŸãã
Wasmã¯ã1ïŒæé«ã®ããã©ãŒãã³ã¹ãç®æãã2ïŒãœã±ãããã¡ã¢ãª/ã¹ã¬ãããGDIãfsã«Posix / Unix / BSDæšæºãæäŸããå¿ èŠããããŸãã ããããã°ãããã¯ãçµ±åãããã¿ãŒã²ãããã©ãããã©ãŒã ãšããŠã¢ãã€ã«ããã€ã¹ã«ããããŠã¯ã©ãŠãå±éå¯èœãªã¢ããªã±ãŒã·ã§ã³ãããã£ãŠç«¶åãããµãŒããŒã«åã蟌ãããšãã§ãããOSã®ãããªèãã¬ã€ã€ãŒã«ãªããŸãã
ããã¯é·æçãªæªæ¥ã«åãã£ãŠããæ¹åã§ããããããšãç§ã¯ããŒããå®å šã«éããŠããŸããïŒ
ããªãã®ä»äºã«ããäžåºŠæè¬ããŸãã
ããã«ã
Wasmã¯ãLLVMãªã©ã®ã³ã³ãã€ã©ããŠãŒã¶ãŒã¢ã¯ã»ã¹å¯èœãªã¡ã¢ãªã«é 眮ããå¿ èŠããããã®ããããŒã«ã«ãåé¢ããæ¹æ³ã®ããã«ãããã€ãã®ã¹ã¿ãã¯å¶éãã確å®ã«åãé¢ãããŠããŸãã
ã¹ã¬ããã䜿çšãããšãç¹ã«ã¯ãŒã«ãŒããŒã¹ã§ãªãå Žåã¯ãããå€ãã®ãã¯ãŒãåŸãããšãã§ããŸãã
ããã¯èšã£ãŠããããªãã®æ£ç¢ºãªã¢ã€ãã¢ã«ã€ããŠãã£ãšè©³ããç¥ãã®ã¯è¯ãããšã§ãã ãŠãŒã¹ã±ãŒã¹ã¯äœã§ãããC ++ã§ã©ã®ããã«åé¿ããwasmå®è£ ã¯ã©ã®ããã«ãããè¡ããŸããïŒ
ç§ã¯ããªãããã¹ãŠã®çããæãä»ããšã¯æããªãïŒ ä»é ã«æµ®ãã¶ã®ã¯ãŸãã«ã Fwiw C ++ã«ã¯ãã¹ã¿ãã¯å¶éã«é¢ããããã€ãã®ææ¡ããããŸãã SG14ãµãã°ã«ãŒãããã§ãã¯ããŠãã ããã
詳现ãäœããŠç³ãèš³ãããŸããããç§ã¯ð¶ð¯ã®äžã«ããŸãã åŸã§ãã£ãšããçããŸãïŒ
詳现ãããããªããŠãã¿ãŸãããç§ã¯ïŒbaby :: burritoïŒã®äžã«ããŸãã åŸã§ãã£ãšããçããŸãïŒ
ããªãã¯èµ€ã¡ããããªããŒã®äžã«ããŸããïŒ ç¬
@qwertie
ããªãã¯èµ€ã¡ããããªããŒã®äžã«ããŸããïŒ ç¬
æåéããå ãŸããèµ€ã¡ããã
ããã«ã¡ã¯@jfbastien ã
ããªãã®æ£ç¢ºãªã¢ã€ãã¢ã«ã€ããŠãã£ãšè©³ããç¥ãã®ã¯è¯ãããšã§ãã ãŠãŒã¹ã±ãŒã¹ã¯äœã§ãããC ++ã§ã©ã®ããã«åé¿ããwasmå®è£ ã¯ã©ã®ããã«ãããè¡ããŸããïŒ
äžè¬çã«ãç§ã®äœ¿çšäŸã¯ã·ãã¥ã¬ãŒã·ã§ã³ãœãããŠã§ã¢ã®æ§ç¯ã§ããèšç®ã®éšåã§ã¯ãC ++ãC / OpenCLãããã³GPUãã¯ãããžã®ãããã§ãå¶éã¯ãã·ã³ã®ã¿ã«ãªããŸãã
ããã³ããšã³ãã§ã¯ãã¹ã¿ãã¯HTML5 + CSS + Javascript + TypescriptããäžèŠæš¡ãã倧èŠæš¡ã®è€éãªã¢ããªã±ãŒã·ã§ã³ãéçºããããã®æå¹ã§å®èšŒæžã¿ã®ããŒã¿ãã«ãªæ¹æ³ã§ããããšã蚌æãããŠããŸãã
_ JS Webã¹ã¿ãã¯ïŒ Typescriptã®ãããªæ§é åèšèªãè¿œå ãããŠããïŒã¯æè¿éåžžã«åªããŠãããããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§emscriptenã«é Œã£ããwasmãè©Šãããããå¿ èŠã¯ãããŸããã_
ç§ã¯ãé«ã¬ãã«ã®ç®æšãšWebã¢ã»ã³ããªã®ãŠãŒã¹ã±ãŒã¹ãããã«ã¯éWebåã蟌ã¿ããã¥ã¡ã³ãã«ã€ããŠãã»ãŒå®å šã«åæããŸãã
_ W ebAssemblyã¯ãããé«éã«ïŒãã€ãã£ãCã¢ããªã®éªšã«å ããŠãããšãã°5ïŒ ã®ãªãŒããŒãããã§ïŒããå€ãã®ã¡ã¢ãªãããèªç±ã«äœ¿çšããããŒã/ãœã±ãããå®å šã«å®è£ ã§ããå ŽåãïŒå°ãªããšãç§ã«ãšã£ãŠã¯ïŒé¢é£ãããã¯ãããžãŒã«ãªããŸãéåžžã®OSãšåãããã«ã¹ã¬ãããå®è¡ã§ããŸãã_
Wasmãã·ã³ã¯ããµã€ãºãéåžžã«æ»ããã§ãé«éã§äºæž¬å¯èœã§ããå¿ èŠããããããGCã«åºå·ããªãã§ãã ãããGCã¯ITã®ãã³ãžãŒã¹ããŒã ã§ããæââé ãã«ãªãããµã€ã¯ã«ã倱ããããŸã§ãåµåãè² ããå²ãåœãŠãæ°ã«ããŸããã ã ããã«ãé«æ§èœã®wasmã³ã¢ãã·ã³ãããã°ããã®äžã«GCãæ§ç¯ã§ããŸãã
æ»ããã«ããããã«ãJavascriptããåŸã ã«åãé¢ããŠãããŸãã ä»»æã®èšèªã®ãã€ãã£ãã³ã³ãã€ã©ã䜿çšããŠããå Žåãã¹ã¯ãªããã¯å¿ èŠãããŸããããšã«ãããCãœãŒã¹ã§ã³ã³ãã€ã«ããã ãã§Duktape / Lua /ãã®ä»ãåã蟌ãããšãã§ããŸãã
Mozillaãµã€ãã®ã©ããã§ãwasmãã€ãã£ãDOMæäœã®å®è£
ã«é¢ããããã¥ã¡ã³ããèŠãŸãããDOMæäœã¯æ¬è³ªçã«ã·ãŒã±ã³ã·ã£ã«ã§ãããHTML5 / CSS / JSã¹ã¿ãã¯ã®æãæéã®ãããåŽé¢ã®1ã€ã§ãããããããŸãæçšã§ã¯ãªããšæããŸããè¶
é«éã®ãã«ãã¹ã¬ããwasmãäœæããã®ã¯ãDOMã®å€æŽãã·ãªã¢ã«åããŠãã¥ãŒã§åŸ
æ©ãããããã ãã§ãããããããšããã¹ãŠã®ããã©ãŒãã³ã¹ã倱ãããC / C ++ã䜿çšãããããTypescriptããã©ã³ã¹ãã€ã«ããæ¹ãé©åã§ãã ãã®å Žåãç§ã¯çŽæ¥OpenGLã¢ã¯ã»ã¹ã奜ã¿ãŸãïŒæåã¯ããã€ãã®WebGLå®è£
ã§ã次ã«OpenGLãã€ãã£ãã§ïŒã ã°ã©ãã£ãã¯ã«ãŒãã«ã¢ã¯ã»ã¹ãããšããªãŒããŒããããå°ããããŸã£ãããªãGPU / CUDAæ©èœãæäŸããã®ã«åœ¹ç«ã¡ãŸãã
ïŒããã確èªãã«è¡ã£ãŠãããã«åãçµãåé¡ïŒ273ãååŸããŸããïŒ
ãã¹ãŠã®ãã³ããŒãç¬ç«ç³»äŒæ¥ãå°ããªwasmãã·ã³ãå
±æããããšã§ãããŸããŸãªOSãããŒãžã§ã³ãã¢ãŒããã¯ãã£ã«å¯Ÿå¿ããããŒã«ãã§ãŒã³ãå°ãªããšã4ã€ããã¢ãã€ã«éçºã®æªå€¢ã解決ã§ããŸãã
ã°ã©ãã£ãã¯æ©èœãšå
¥åæ©èœã¯ç°ãªãå ŽåããããŸããã1ã€ã®wasmã«éçºããŠãããæ©èœAPIã«ã¯ãšãªãå®è¡ããããåãã¢ããªã±ãŒã·ã§ã³ãå¥ã®ã¢ããªã¹ãã¢ã«ãããã€ãããããããšãã§ããŸãã
é·æçã«ã¯ããµãŒããŒã¢ããªã±ãŒã·ã§ã³ã§ãåãã§ãããæ©èœïŒDBæ¥ç¶ãããã³ã«ãšããŒã«ãã€ãšããŒããŒãžã·ã¹ãã ãã¡ãã»ãŒãžã³ã°ãããã³ã«ãšã·ã¹ãã ãªã©ïŒã«ã€ããŠäœããã®åæã«éããJEEãã©ãããã©ãŒã ã®ããã«æšæºä»æ§ã«ããã¯ããŸãã ïŒå€ãã®æŠå¿µçãªäœæ¥ã¯ãéå»20幎éã§ãã§ã«ã¬ã€ã¢ãŠããããŠããŸãïŒã
ç§ã¯ããªãããã¹ãŠã®çããæãä»ããšã¯æããªãïŒ ä»é ã«æµ®ãã¶ã®ã¯ãŸãã«ã Fwiw C ++ã«ã¯ãã¹ã¿ãã¯å¶éã«é¢ããããã€ãã®ææ¡ããããŸãã SG14ãµãã°ã«ãŒãããã§ãã¯ããŠãã ããã
確ãã«ãããŸãã
ãç解ãšãååããããããé¡ãããããŸãã
ãã
å°ããªè¿œå ãšããŠãã¹ã¬ãããå®è£ ãããŠããå Žåãã¹ã¿ãã¯ãµã€ãºãä»»æã«å€§ããããããšãã§ããã°ããŸãã¯ãã®ä»£ããã«ãå°ãªããšã64MBã«èšå®ã§ããã°çŽ æŽãããã§ãããã ããã¯ãç§ã®ãŠãŒã¹ã±ãŒã¹ã2ã€ã®ã¹ã¬ããã䜿çšããã¢ããªã±ãŒã·ã§ã³ã§ãããéã¡ã€ã³ã¹ã¬ããã«ã¯ããªã倧ããªã¹ã¿ãã¯ãå¿ èŠãªããã§ãã
@jjpeã¯ããã®ãªããžããªã§ã¯ãªããwasmã察象ãšããç¹å®ã®ããŒã«ãã§ãŒã³ïŒemscriptenãªã©ïŒã®ãªã¯ãšã¹ãã«ãªããŸããããã¯ãwasmãã©ãããã©ãŒã èªäœã«é¢ãããã®ã§ã¯ãªããããŒã«ãã§ãŒã³ã®å®è£ ãŸãã¯ABIã®éžæã®åé¡ã§ããããã§ãã ïŒããšãã°ãhttpsïŒ//github.com/kripken/emscripten/ã§åé¡ãéãããšãã§ããŸãïŒ
以åã®ã¡ãã»ãŒãžã§ææ¡ããããšã®ããã€ãã¯ãææ°ã®WASIææ¡ã«å«ãŸããŠããããã§ãã
èŠãïŒ
https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/
亀差æã
--R
FWIWçŸåšã®ç¶æ³ã§ã¯ãChromeã¯ããŒãžã§ã³74ã§wasmã¹ã¬ããã®ãµããŒããåºè·ããŠãããFirefoxã«ã¯ãŸã åºè·ãããŠããªãå®è£ ããããEmscriptenã«ã¯pthreadsã®ãµããŒãïŒhttps://emscripten.org/docs/porting/pthreads.htmlïŒããããŸãã wasmãå©çšå¯èœã«ãªããŸããã
ïŒãŸããWASIã¯ã·ã¹ãã ã³ãŒã«APIã§ãããç¹å®ã®wasmåã蟌ã¿ãŸãã¯ããŒã«ãã§ãŒã³ãã¹ã¬ãã/ã¢ãããã¯ããµããŒããããã©ããã«ã»ãŒçŽäº€ããŸãïŒã
ChromeãšFirefoxã®ã¹ã¬ããAPIã®äœ¿çšæ¹æ³ã«é¢ããããã¥ã¡ã³ãã¯ãããŸããïŒ
ããã¯äžçš®ã®çµã¿åããã§ãã ãã©ãŠã¶ã®wasmãšã³ãžã³ã¯ãwasmä»æ§ïŒhttps://github.com/WebAssembly/threads/tree/master/proposals/threadsïŒã®threads / atomicsæ¡åŒµæ©èœãå®è£ ããŠãããå ±æãããwasmã¡ã¢ãªãã€ã³ã¹ã¿ã³ã¹åã§ããŸãã Webã§ã¯ãWebã¯ãŒã«ãŒãäœæããpostMessageãä»ããŠã¡ã¢ãªïŒããã³é¢é£ããwasmã¢ãžã¥ãŒã«ïŒãã¯ãŒã«ãŒã«éä¿¡ã§ããŸãã 次ã«ãã¯ãŒã«ãŒïŒããã³ã¡ã€ã³ã¹ã¬ãããŸãã¯å¥ã®ã¯ãŒã«ãŒïŒã®å ±æã¡ã¢ãªã䜿çšããŠã¢ãžã¥ãŒã«ãã€ã³ã¹ã¿ã³ã¹åããã€ã³ã¹ã¿ã³ã¹ãã¡ã¢ãªãå ±æããŸãã ä»æ§ææ¡ã®æŠèŠïŒhttps://github.com/WebAssembly/threads/blob/master/proposals/threads/Overview.mdïŒã«ã¯å°ããªäŸããããŸãããä»ã®äŸã¯ããããŸããã
ããã«ã¡ã¯@dschuffãšäžèšã®çãã«æè¬ããŸãã
以åã®ã¡ãã»ãŒãžã§ã¯ãpthreadã ãã§ãªããwasmãããã«ãŒãã«ã«é²åããããšããæãŸããé²åã«ã€ããŠèšåããŠããŸããã2010幎以éãemscriptenããã©ããŒããŠäœ¿çšããŠãã人ã®äžã«ã¯ããããçã®ç»æçãªãã¯ãããžãŒãšèŠãªããŠãã人ãããŸãã
https://github.com/WebAssembly/design/issues/992#issuecomment-285055578ãåç
§ããŠãã ããã
emscriptenãçºè¡šãããŠãã9幎åŸãwasmã®çºè¡šããã»ãŒ5幎åŸãwasmãå®è¡å¯èœãªãµãŒããŒãã¯ãããžãŒã«å€æããããšã¯ã»ãšãã©é²ãã§ããŸããã
æ®å¿µãªãããããŒã¿ãã«ã¢ããªã®æšæºãå¿ èŠã§ããããããå®çŸããæåã®æ¹æ³ã¯ãPOSIXã¹ã¬ãããšBerkeley Sockets +èªå·±å®çµåã®å®å šãªä»®æ³ãã¡ã€ã«ã·ã¹ãã ïŒãŠãŒã¶ãŒãå«ãïŒã䜿çšããŠå°ããªã«ãŒãã«ïŒBSD / Linuxã®ãããªïŒãå®è£ ããããšã§ããããšã°ã«ãŒãã§ååã§ãïŒã ç§ã¯H.Spencerã®å€ãããšããã«åºå·ããŸãïŒãUNIXãç解ããŠããªã人ã¯ãããåçºæããããšãéé£ãããŸããã
ç§ã¯ãŸã ä¿¡ä»°ãä¿ã¡ããã®ã§ãWASIã¯æ£ããæ¹åãžã®äžæ©ã§ãã
--R
PSïŒ2010 emscriptenã¯ãã»ãšãã©ã®äŒæ¥ã§äœ¿çšãããŠãããèšåã§ããªãã殺ããªããã©ãŠã¶ã§ãããFirefoxãšSafariã®æ¬äœãïŒå°ãªããšããããã®ãšã³ãžã³ã§ïŒæµ®ããã§ããäžæ» ã®ãã©ãŠã¶ã§åäœãããããäŸç¶ãšããŠæºããã§ããŸãã
æãåèã«ãªãã³ã¡ã³ã
ãã®ãããžã§ã¯ãã«ã¯ã¡ãŒãªã³ã°ãªã¹ãããã®ä»ã®ãã©ãŒã©ã ããªããããåé¡è¿œè·¡ã·ã¹ãã ã¯ãèšèšããã»ã¹ã«ã€ããŠè³ªåã§ããå¯äžã®å Žæã§ãã 人ã ã質åã§ããå Žæãããããšã¯äŸ¡å€ãããã®ã§ãç§ã¯äººã ã質åãããããã«åé¡è¿œè·¡ã·ã¹ãã ã䜿ãç¶ããããšãå§ããŸãã