WebAssemblyã®ã»ãã¥ãªãã£ã¢ãã«ã¯ããã°ã®ãããã¡ã€ã«ãæªæã®ãã.wasm
ãã¡ã€ã«ãããŠãŒã¶ãŒãä¿è·ããããšãç®çãšããŠããŸãã ããã¯ãéçºè
ãå®å
šãªã¢ããªã±ãŒã·ã§ã³ãäœæããã®ã«åœ¹ç«ã¡ãŸããã ç§ãã¡ã®èšèšã§ã¯ããã®åºå¥ãæ確ã«ããWebAssemblyããã®ã»ãã¥ãªãã£ãå®è£
ããæ¹æ³ãšãéçºè
ãå®å
šãªã¢ããªã±ãŒã·ã§ã³ãäœæããã®ã«åœ¹ç«ã€ãšWebAssemblyãæåŸ
ããããŒã«ã説æããå¿
èŠããããŸãïŒããã¯ãWebAssemblyã§é©åãªããªããã£ããæäŸããããšã«äŸåããŠããŸãïŒã
ããã¯äž»ã«ãããããã¶ã€ã³ã«è¿œå ããããã®ç§èªèº«ã®åé¡ã§ãã
ããïŒ
質åããããŸãããã®ã³ã³ããã¹ãã§æ¬¡ã®ããšã詳ãã説æããã®ã¯çã«ããªã£ãŠããŸããã
ããã以å€ã«ããœãŒã¹èšèªã¬ãã«ã§æªå®çŸ©ã®åäœãåŒã³åºãããã°ã©ã ã¯ãã¢ããªã±ãŒã·ã§ã³ããŒãã®ã³ã³ãã³ãã®ç Žæãä»»æã®ãã©ã¡ãŒã¿ãŒã䜿çšããAPIã®åŒã³åºãããã³ã°ããã©ããããŸãã¯ä»»æã®éã®æ¶è²»ãªã©ãä»ã®ããšãè¡ãWebAssemblyããã°ã©ã ã«ã³ã³ãã€ã«ãããå ŽåããããŸãããªãœãŒã¹ïŒå¶éå ïŒãã
https://github.com/WebAssembly/design/blob/master/CAndC++.md#undefined-and-implementation-defined-behavior
ç§ãèããŠããã®ã¯ãäŸãšãããªãè°è«ãæäŸããããšã«ãã£ãŠãéãã€ãã£ãã®ããã¯ã°ã©ãŠã³ãããæ¥ãWebéçºè ã«ïŒããããïŒåœ¹ç«ã€ãããããªãã³ã³ããã¹ã/ãªãã¡ã¬ã³ã¹ãæäŸããããšã§ãã
ããšãã°ãCERTã®MSC14-Cã 移æ€æ§ã®åäœïŒæªæå®ã®åäœãæªå®çŸ©ã®åäœããã±ãŒã«åºæã®åäœãå®è£ å®çŸ©ã®åäœïŒãäŸãšãšãã«ãªã¹ããããŠããŸãã MSC15-CPPã è匱æ§ãžã®äŸåããªãã§ãã ãããCã³ã³ãã€ã©ã¯äžéšã®ã©ããã¢ã©ãŠã³ããã§ãã¯ããµã€ã¬ã³ãã«ç Žæ£ããå¯èœæ§ããããå¢ç
ãã詳现ãªæ²»çïŒ
ãã®ä»ã®æœåšçã«é¢é£ããã¢ããã€ã¹ïŒ
wasmãã¡ã€ã«ãå¶åŸ¡ããããã®äžæã®CSPããããŒããããšåœ¹ã«ç«ã¡ãŸããïŒ ãµã€ãã®ææè ã¯ããµããªãœãŒã¹ãwasmãããŒãããªãããã«ããããšæããããããŸããã
ããã¯èå³æ·±ã質åã§ãã ééããªãã eval
ãšFunction
ãèš±å¯ããªãã®ãšåãå Žåã«ããµã€ããWebAssemblyã®åçããŒããšè©äŸ¡ãèš±å¯ããªãããã«ããå¿
èŠããããŸãïŒããã¯ã Loader
ã§ã®ES6ã¢ãžã¥ãŒã«çµ±åãšCSPãã§ãã¯ããå€ããã ãã§ãã
ãã€ãããã¯ãªã³ã¯ã«é¢ããã»ãã¥ãªãã£äžã®æžå¿µã®ããã€ãã«ã€ããŠã¯ãïŒ53ãåç §ãã䟡å€ããããŸãã
@jfbastien yup CORSãšSRIã¯ãå¯èœãªå Žåã¯éçºè ãå©çšã§ããããã«ããå¿ èŠããããŸãã
@lukewagnerwasmãæå¹ã«ãããªãœãŒã¹ãžã®äœã¬ãã«ã®ã¢ã¯ã»ã¹ã«äŸåãããšæããŸãã ããªããç®±ããåºããŠèšãããã«ãããã¯ãã ã®JSã§ãã ãã ããwasmã®å
æ¬çãªç®æšã¯ãå¯èœãªéãæ©æ¢°ã®éå±ã«æãè¿ããã®ã®ããã§ãã ã°ããŒãã«ã«å¶åŸ¡ããããã®CSPãã£ã¬ã¯ãã£ãããããšäŸ¿å©ã§ãã
æéã®çµéãšãšãã«ãä»ã®æ©èœãžã®ãããã现ããã¢ãããŒããæ¹åãããã§ãããã
ä»ã®çŽæ¥çãªå¯èœæ§ã¯ãä»ã®äœã¬ãã«ã®ã¢ã¯ã»ã¹ã«ã¢ã¯ã»ã¹èš±å¯APIãå©çšããããšã§ãã
ãŸããããã©ãŒãã³ã¹ã®æå³ã§éå±ã«è¿ãã ã»ãã¥ãªãã£ãæš©éããµã³ãããã¯ã¹ã®èŠ³ç¹ãããWebAssemblyãJSããåå²ãããããšã«ã€ããŠã®è°è«ã¯ãããŸããã
ããã¯ç§ããã¹ãMVPãšãã¬ã³ãã³ã¢ã€ã¯ã®çºè¡šã®äž¡æ¹ããåŸãæèŠã§ã¯ãããŸããã§ãããã倧äžå€«ã§ãïŒ+1ïŒ
ããªããèšåããŠããã®ã¯ãMVPåŸã®WebAssemblyã»ãã³ãã£ã¯ã¹ãJSã§å¹ççã«ããªãã£ã«ã§ãããã®ãšã¯ç°ãªãããšãèš±å¯ãããããšã«åæãããšããããšã ãšæããŸãã ãã®çžéã¯ãã»ãã¥ãªãã£/èš±å¯ãšã¯é¢ä¿ãªããèšç®æ©èœã«é¢ãããã®ã§ãã ã€ãŸããããããå¹ççã«ããªãã£ã«ããããšã¯ã§ããŸããã§ããããJSïŒ Emterpreterã¹ã¿ã€ã«ïŒã§èšè¿°ãããWebAssemblyã€ã³ã¿ãŒããªã¿ãŒã«ãã£ãŠæ°ããæ©èœãã·ãã¥ã¬ãŒãããããšãã§ããŸããã ãã®å¹æã«ã¡ã¢ãè¿œå ããŠããJSããã®åå²ãã®æå³ãå¶éãããšããã§ãããã
ãããããã¯ç¢ºãã«ããã¥ã¡ã³ãã®è¯ãæ¡åŒµã«ãªãã§ããããç§ã¯ããã¥ã¡ã³ããããŸãã«ãéãèªãã ãããããŸããããããã¯ãããæ確ã«ããªãããã§ããã
ã¹ã¬ããæ©èœãšã¡ã¢ãªæ©èœãè¿œå ããããšã«ã€ããŠã®Eichsã®è©±ã®ã²ãšã€ã§ãwasmã«æ°ããæ©èœãè¿œå ããããšæããŸããã ããããJavaScriptã«è¿œå ãããå¯èœæ§ãé«ããéåžžã®æ°æ©èœã®ç²Ÿæ»ã®å¯Ÿè±¡ã«ãªããšæããŸãã
ãã»ãã¥ãªãã£POVãšJSã®éãã¯ãããŸããããWeb.mdã«è¿œå ãã
ç§ã¯ããããã®åºå¥ããããã説æããããšæããŸãã JSãåç §ããããšã¯ãèªç«ã®èŠ³ç¹ããã¯ããŸãè¯ããããŸãããå®éã«ã¯ãJSãæã€ã»ãã¥ãªãã£ã®è¡šé¢ç©ãæžãããããšæããŸãïŒããšãã°ãã¯ãã¹ãªãªãžã³ã¹ã¯ãªãããªã©ïŒã
CppConã§è©±ãããã®ã§ãããã«ã€ããŠèª¬æããŸã:-)
æå·åå®è£ ã®ã¿ãŒã²ãããšããŠWebAssemblyã䜿çšããããšã«é¢å¿ãããå Žåã¯ãåºå®æéå®è£ ã®ãµããŒãã«é¢ããŠJS / asm.jsJITãšWebAssemblyJITã®éãã詳ãã説æãããšäŸ¿å©ã§ãã ç¹ã«ããããã·ãããJITåŸã®ãã©ã³ããæ¡ä»¶ä»ããžã£ã³ããã«ãã¯ã¢ããããŸãã¯ã¿ã€ãã³ã°ãªãŒã¯ãåŒãèµ·ããå¯èœæ§ã®ããJITã«ãããã®ä»ã®å€æŽãªã©ã®æäœã«ã€ããŠèããŠããŸãã
éçºè ãWebAssemblyãasm.jsã§ãã§ã«æã£ãŠãããã®ãããåºå®æéã®å®è£ ãããé©åã«ãµããŒãããããšãæåŸ ããŠããªãå Žåã¯ãã¢ããªã±ãŒã·ã§ã³èšèšã«å¯ŸããWebAssemblyã®ã»ãã¥ãªãã£ãžã®åœ±é¿ã詳ãã説æããäžç°ãšããŠåœ¹ç«ã€ãšè¿°ã¹ãŠãã ããã WebAssemblyããçŸåšååšãããã®ãããã¢ããªã±ãŒã·ã§ã³ã匷åããããã®äœããã®æ段ãæäŸããã®ã§ããã°ïŒçŸåšããŸãã¯MVPã®åŸã§ãä»æ§ã詳ããèªãã§ããŸããïŒãããã«ã€ããŠã詳ãã説æããã®ã¯çŽ æŽãããããšã§ãã https://github.com/jedisct1/libsodium.js/issues/24#issuecomment -128002942ã«ã¯ãã¯ã©ã€ã¢ã³ãåŽã®JavaScriptæå·ã«é¢ããæ¢åã®åé¡ã«é¢ãã詳现ããããŸãã
ã¡ãªã¿ã«ãããã¯ãã¹ãŠéåžžã«ãšããµã€ãã£ã³ã°ã§ãã ïŒNS
@dconnollyã«ãã£ãŠææ¡ãããæ確ãªã¹ããŒãã¡ã³ããå¿ èŠã§ããããšã«åæããŸããã ä»ã®ãšãããMVPã®å ŽåãJITãå®è¡ã§ããããšãå®è¡ã§ããªãããšã¯ä¿èšŒãããŠããããå°ãªããšãMVPã®å Žåãå®æ°æéã¢ã«ãŽãªãºã ã¯wasmã®é©åãªäœ¿çšæ³ã§ã¯ãªããšããè°è«ããããŸããã ããã¯å°æ¥å€æŽãããå¯èœæ§ããããŸãã
ç§ã®çŸåšã®èŠè§£ã¯ãé©åãªäžå®æéã®ã³ãŒããäœæããã«ã¯ããã€ã¯ãã¢ãŒããã¯ãã£ã®ã¢ã»ã³ããªãšååãªç解ãå¿ èŠã«ãªãããšãå€ããããå€éšAPIïŒWebãã©ãããã©ãŒã ãªã©ã®ãšã³ããããŒã«ãã£ãŠæäŸãããïŒããã®ãããªä¿èšŒãæäŸããã®ã«é©ããŠãããšããããšã§ãã åçãã€ããªå€æãå®è¡ããCPUã®æ¥µç«¯ãªäŸãèããŠã¿ãŸããããWebAssemblyã¯ãCPUãå®è¡ã§ããããš/å®è¡ã§ããªãããšãä¿èšŒã§ããŸããã ç§ã®èŠè§£ã§ã¯ãWebAssemblyã¯æœè±¡åã¬ãã«ãé«ãããŠãçã®äžå®æéã³ãŒããè¡šçŸã§ããŸããã
ãã£ãããã説æããŠãããŠããããšãã Webãã©ãããã©ãŒã APIã¯ããã®çš®ã®ãã®ãç¹ã«ããªããã£ãã«æé©ãªå Žæã§ããããšã«åæããŸããïŒ ã¡ã¢ãä»ããæ°ããæ¥åæ²ç·ãªã©ã®å°æ¥ã®è¿œå ã®äœå°ããããåºæ¬ããµããŒãããŠã
@ jfbastien ãwasmã®ã¿ã€ãã³ã°ä¿èšŒã«ã€ããŠããªããèšã£ãããšã¯ãã¹ãŠä»æ¥ã§ãåœãŠã¯ãŸããŸããïŒ
çŸåšã®ããã¥ã¡ã³ãã§ã¯ãå®æ°æéã¢ã«ãŽãªãºã ã«å¯ŸããŠæœåšçã«ããžãã£ãã«èããããææžåããããšããžã±ãŒã¹ã®å°ããªãªã¹ããé€ããŠã決å®è«çå®è¡ãç®æšã§ããããšãããããŸãã ãã ãã webassembly.org / docs / securityã¯ãã¿ã€ãã³ã°æ»æã®å¯èœæ§ãèªããŠãããå°æ¥ã®æœåšçãªç·©åçãããã€ã瀺ããŠããŸãããããã°ã®ããCã³ãŒããéæ³ã®ããã«ä¿®æ£ãããªã...ãŸã ããŸãã¯ãéåžžã®Cã³ã³ãã€ã©ã§ã¯çºçããªããµã€ããã£ãã«ã®è匱æ§ãå°å ¥ãããå¯èœæ§ããããŸããã
å³ããä¿èšŒã¯ããŠãããå°ãªããšããå®æ°æéã¢ã«ãŽãªãºã ã¯100ïŒ
確å®ã«å€±æããããšãclangã®ãã€ãã£ããã€ããªåºåã«å¹æµããã¿ã€ãã³ã°ç¹æ§ãåžžã«æåŸ
ããªãæ確ãªçç±ã¯ãªããã®éã«ããããšãç解ããããšã¯åœ¹ã«ç«ã¡ãŸãã @dconnollyã®ææã«'use asm'
ã¹ããŒãã¡ã³ããå®å
šã«å°éããFirefoxã®ãããªå®è£
ãšãå°ãç·©ãåçããChromeã®ãããªå®è£
ã®äž¡æ¹ãèæ
®ã«å
¥ãããšäŸ¿å©ã§ãã ã
@ buu700ã®ãã¹ãŠã®ãªãã³ãŒãã®æ±ºå®è«ççµæã¯ãã©ã®ãªãã³ãŒãã§ãã¿ã€ãã³ã°ãä¿èšŒãããŠããããšãæå³ãããã®ã§ã¯ãããŸããã Clangã¯äžå®æéã®å®è¡ãä¿èšŒããŸããããŸããæ å ±æŒããã®åœ±é¿ãåããããã³ãŒããäœæããŠããå Žåã¯ãäžå®æéã ãã§ã¯äžååã§ãã
çŸåšãWebAssemblyã¯infoleaksã«é¢ããŠäœãä¿èšŒããããšã¯ããŠããŸããã
äºè§£ããŸããã決å®è«@jfbastienã®ã»ã¯ã·ã§ã³ãæ確ã«ããŠããã ãããããšãããããŸãã
ã¿ã€ãã³ã°/ãµã€ããã£ãã«ïŒããã³ä¿èšŒãŸãã¯ãã®æ¬ åŠãç¡èŠããïŒã«é¢ããŠã¯ãçŸæç¹ã§ã¯ä»æ§ã«é¢é£ãããã®ã¯ãªããå®éã®å®è£ ãclangãšã©ã®ããã«æ¯èŒããããã«ã€ããŠã®æçšãªããŒã¿ã¯ãŸã ãªãããã§ãã 以åã®ã³ã¡ã³ããèªãã åŸãç§ãå®éã«åŸãã®ã¯ãwasmã®å®è£ ããã®é åã§gcc / clangãããåžžã«_æªã_ã§ãããšããåºæã®çç±ããããã©ããã§ãã æžå¿µäºé ãšããŠæœè±¡åã®ã¬ãã«ã«ã€ããŠèšåããŸãããããååã«è¯ããäžå®ã®ã¿ã€ãã³ã°ïŒãã€ãã£ãCãã¢ã»ã³ããªãããŒããŠã§ã¢ãªã©ïŒã®ããŒã¹ã©ã€ã³æ¯èŒãšããŠäœã䜿çšããŠããããæ確ã§ã¯ãããŸããã§ããã
èšãæããã°ãclangã§ã€ã³ãã©ãªãŒã¯ã«ææãªã³ãŒããå®è¡ããããä»æ¥ã®WebAssemblyä»æ§ã®ä»®æ³çãªæè¯/æãæçãã/æãã€ã³ãã©ãªãŒã¯ã匷åãããå®è£ ã®ã©ã¡ãããéžæããå Žåãããªãã®ç解ã«åºã¥ããŠãåè ãæããã«å¥œãŸããŸããïŒ
çŸæç¹ã§ã¯ãinfoleakã«ææãªã³ãŒãã«ã€ããŠã¯ãclangã«ãWebAssemblyã«ãäŸåããŠããŸããã ç§ãæãä¿èšŒãå®éã«åŸãããã«çŸåšç§ãç¥ã£ãŠããå¯äžã®æ¹æ³ã¯ãç§ãã¿ãŒã²ããã«ããŠããç¹å®ã®CPUã®ããã¥ã¢ã«ãèªãã¢ã»ã³ããªãäœæããã«ãŒãã«ãšç·å¯ã«é£æºããããšã§ãã æ¬åœã«ã¿ã€ãã³ã°ã«äŸåããªãããã«ãããå Žåã¯ããx86ããŸãã¯ãARM64ããç¥ã£ãŠããã ãã§ã¯ååã§ã¯ãããŸããã
äžéšã®ã³ã³ãã€ã©/èšèªã§ããã€ãã®ä¿èšŒãåŸãããšãã§ããŸãããã³ãŒããç¡å¹ã«ããããã«å¿ èŠãªæ å ±ãªãŒã¯ã1ã€ã ãã®å Žåããäžéšãã§ã¯ååãªä¿èšŒã¯ãããŸããã
å®ç§ã§ããããããšãããããç§ã®è³ªåã«çãããšæããŸãã äžè¬çãªã€ã³ãã©ãªãŒã¯è åšã¢ããªã³ã°ã«é¢ãããã¹ãŠã®ç¹ã§åæããŸããã wasmãä»ã®ïŒasmããªãŒã®ïŒCã³ã³ãã€ã«ã¿ãŒã²ããããããªãŒã¯ãå€ããšèŠãªãã¹ããã©ãããç¥ãããã£ãã ãã§ãããå¿ ãããããã§ã¯ãªããšããããšã§ããïŒ
ããã£ãšæŒããããããšããã®ã¯åœ¹ã«ç«ããªããšæããŸãã ææšã¯ãæŒãã¯ãããŸãããïŒãã§ãã WebAssemblyãclangãC ++ãããã³Cã®çãã¯ãã¯ããã§ãã
ç¹ã«ãç§ã念é ã«çœ®ããŠããã®ã¯ã@ dconnollyã«ãã£ãŠãªã³ã¯ãããlibsodium / NaClã®äŸãªã©ãçŽç²ãªCå®è£ ã§ç¹å®ã®ãµã€ããã£ãã«æµæç¹æ§ãå®çŸããããã«èšèšãããã¢ã«ãŽãªãºã ã§ããã èãããããã¹ãŠã®æ»æã·ããªãªã§äœããçãæ®ãããšãã§ããã°ç¢ºãã«çæ³çã§ããã2ã€ã®ãã®ã®éã®ãã«ã¿ãç¥ãããšã圹ç«ã¡ãŸãïŒäž¡æ¹ãåžãå Žåã§ããããçšåºŠåžãããšã«ãã£ãŠïŒããã®å ŽåãLinuxABIã®ä»£ããã«WebAssemblyã䜿çšãããã©ããã¿ãŒã²ããã¯ãlibsodiumã®æå³ãããè åšã¢ãã«ãç Žãå¯èœæ§ããããŸãã
libsodiumã®åé¡ã¹ã¬ããã«é¢ãããªã³ã¯ãããã³ã¡ã³ãã¯ãã©ã€ãã©ãªãasm.jsãšã©ã®ããã«çžäºäœçšãããã«ã€ããŠéåžžã«æçã§ãããå°é家ã§ã¯ãªãããããã®ç¹å®ã®åæãWebAssemblyçšã«æžãçŽãããããã«èããããã©ããã¯ããããŸããïŒi64ãµããŒããšãã©ãŠã¶ãŒãasm.jsãããwasmã®åŠçã®äžè²«æ§ããããŸãïŒã
ãããããšã«ãããç§ã¯ããªãã®å ã®ãã€ã³ãã1幎åããäœã§ãã£ãããç解ããŠããŸãããããŠç§ãæ¬åœã«å¿é ããã®ã¯ããªããå®éããã匷ãçºèšãããŠãããã©ããã ãã§ããïŒããã¯ä»æ§ãç¹å®ã®æ°ãããµã€ããã£ãã«ã®åŒ±ç¹ãå°å ¥ããããšãç¥ãããŠããŸããã©ã¡ããäžè¬çã«ãã®ç®çã«é©ããŠããªãã®ãšã¯å¯Ÿç §çã«ãæšæºã®C / clangã«ã¯ãããŸããïŒããããæ確ã«ããŠãããŠããããšãã
>>
ããã£ãšæŒããããããšããã®ã¯åœ¹ã«ç«ããªããšæããŸãã
@jfbastien ãå®éçã»ãã¥ãªãã£ã¯ã
ããã äžè¬çãªã¡ããªãã¯ã¯ãæ å ±ã®ãããæ°ã
æ»æã®æå-1ããããš32ãããã¯ãããšãã°ã倧ããªéããçã¿ãŸãïŒãããŠ
ç·Žç¿ã»ãšãã©ãã¹ãŠã®ã·ã¹ãã ã«ã¯ãåŽé¢ããã®å°ããªæœåšçãªæŒãããããŸã
ãã£ãã«ïŒã ãã ãããã®ãããªå®éåã¯ããªãé£ããããšããããããŸãã
>>
ããã£ãšæŒããããããšããã®ã¯åœ¹ã«ç«ããªããšæããŸãã
@jfbastien ãå®éçã»ãã¥ãªãã£ã¯ã
ããã äžè¬çãªã¡ããªãã¯ã¯ãæ å ±ã®ãããæ°ã
æ»æã®æå-1ããããš32ãããã¯ãããšãã°ã倧ããªéããçã¿ãŸãïŒãããŠ
ç·Žç¿ã»ãšãã©ãã¹ãŠã®ã·ã¹ãã ã«ã¯ãåŽé¢ããã®å°ããªæœåšçãªæŒãããããŸã
ãã£ãã«ïŒã ãã ãããã®ãããªå®éåã¯ããªãé£ããããšããããããŸãã
ç§ã¯ãããèªèããŠããããªãŒã¯ã¯ãªãŒã¯ã§ããããããŸã£ããé¢å¿ããããŸããã éçºè ã«ãšã£ãŠéèŠãªå Žåã¯ãæçµçã«ã¯ç§ãã¡ïŒWebAssemblyã®å®è£ è ïŒã«åã¿ä»ãã§ãããã ä»ã®åªå äºé ãèãããšãWebAssemblyãããã«ãã®åé¡ã«åãçµãã¹ãã§ã¯ãªããšæããŸãããŸããWebCryptoã¯ãã§ã«åãçµã¿ãšããŠååšããŠããŸãïŒä»ã®æ¹æ³ã§ã¯æ¬ ç¹ããããããããŸãããããã®åé¡ã解決ããããšã¯ãçŸåšWebAssemblyãååšããå ŽåãããåªããŠããŸãã ïŒã ãã¡ãããèªç±ã«ãããæ¢çŽ¢ããããšãã§ããŸãã
@jfbastienã¯ããã®ãããã¯ã¯çŸåšåªå
ãããŠããªãããšã«åæããŸããã
Wasmã¯CããããªãŒã¯ãå€ããªããåãçµãããã®è¯ãæ¹æ³ãããããªãããš
ããã ããããããªãŒã¯ã¯ãªãŒã¯ã§ããã®ãããªé床ã®åçŽåã¯ããã®ç¹ã§ã¯åœ¹ã«ç«ã¡ãŸããã
åé¡-ãã¹ãŠã®ã·ã¹ãã ãããçšåºŠãªãŒã¯ããŠããã®ã§ãå®éã«ã¯éã¯ãã¹ãŠã§ã
ããã¯éèŠã§ãã ãããŠãããããç§ãã¡ãåãããŸã§åŸ
ã€ããšã¯ãæŠç¥ã§ã¯ãããŸãã
æ¬åœã®æœåšçãªç ç²è
ã®éã§å€ãã®èªä¿¡ãåºæ¿ããã€ããã§ããããªãã¡
ãã©ãŠã¶ãŠãŒã¶ãŒã
åæããŸãã... Wasmã¯CããããªãŒã¯ãå°ãªãããã§ã¯ãããŸãã
ãããããé¡ãããŸããæ瀺çã«ç¢ºèªããŠããã ãããããšãããããŸãã ãããç§ãããã«æ¥ããã¹ãŠã§ãïŒããããæŒããªãããã©ããã®ä¿èšŒã§ã¯ãªããç§ããããæ¯èŒãã¹ããã®ã®äžè¬çãªæèŠã
@ rossberg-chromiumç§ã¯wasmãCããããªãŒã¯ãå°ãªããšããèãã«åæãããšã¯æããªããçµå±ããã¯åãšã³ãžã³ããã¹ãŠãã©ã®ããã«å®è£ ãããã«äŸåããã ããšãã°ãJavaScriptCoreã¯ã³ãŒããéå±€åããå®è¡å¯èœã¡ã¢ãªãäžè¶³ãããšã³ãŒãã®éå±€åãåæ¢ããŸãã ããã¯ãCã³ãŒãã«ã¯ååšããªããªãŒã¯ã§ãã wasmãšã³ãžã³ãããé«åºŠã«ãªãã«ã€ããŠãwasmã¯JVMã®ãããªãã®ãšåãããããªãŒã¯ããå¯èœæ§ãé«ããšæããŸãã æçµçã«ã¯ãç¹ã«ããã©ãŒãã³ã¹ãç ç²ã«ããããšãªããä»æ§ãå®è£ è ãæ å ±æŒããã®é²æ¢ã«å¯Ÿå¿ããããšåªåããå¯èœæ§ã¯äœããšæããŸãã