WebAssemblyã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒææ¡ã«ããããªããžã§ã¯ãã°ã©ãåæãšã¡ã¢ãªåç §è¿œè·¡ã®è©³çްãªè§£èª¬ãææ³ã課é¡ãå°æ¥ã®æ¹åæ§ã«ã€ããŠè§£èª¬ããŸãã
WebAssembly GCãªããžã§ã¯ãã°ã©ãåæïŒã¡ã¢ãªåç §è¿œè·¡
WebAssemblyïŒWasmïŒã¯ãããŸããŸãªãã©ãããã©ãŒã ã§é«æ§èœã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®åŒ·åã§æ±çšæ§ã®é«ããã¯ãããžãŒãšããŠç»å ŽããŸãããWebAssemblyãžã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã®å°å ¥ã¯ãèªåã¡ã¢ãªç®¡çã«å€§ããäŸåããJavaãCïŒãKotlinãªã©ã®èšèªã«ãšã£ãŠãWasmãããã«é åçãªã¿ãŒã²ããã«ããããã®éèŠãªäžæ©ãšãªããŸãããã®ããã°æçš¿ã§ã¯ãWebAssembly GCã®ã³ã³ããã¹ãã«ããããªããžã§ã¯ãã°ã©ãåæãšã¡ã¢ãªåç §è¿œè·¡ã®è€éãªè©³çްã«ã€ããŠæãäžããŸãã
WebAssembly GCã®çè§£
ãªããžã§ã¯ãã°ã©ãåæã«å ¥ãåã«ãWebAssembly GCã®åºç€ãçè§£ããããšãéèŠã§ããæåã¡ã¢ãªç®¡çãŸãã¯JavaScriptã§å®è£ ãããå€éšã¬ããŒãžã³ã¬ã¯ã¿ãŒã«äŸåããåŸæ¥ã®WebAssemblyãšã¯ç°ãªããWasm GCææ¡ã¯ããã€ãã£ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³æ©èœãWasmã©ã³ã¿ã€ã ã«çŽæ¥å°å ¥ããŸããããã«ãããããã€ãã®å©ç¹ããããŸãã
- ããã©ãŒãã³ã¹ã®åäžïŒãã€ãã£ãGCã¯ãã©ã³ã¿ã€ã ãšã®ç·å¯ãªçµ±åãšäœã¬ãã«ã®ã¡ã¢ãªç®¡çããªããã£ããžã®ããè¯ãã¢ã¯ã»ã¹ã«ãããJavaScriptããŒã¹ã®GCãããåªããŠããããšããããããŸãã
- éçºã®ç°¡çŽ åïŒGCã«äŸåããèšèªã¯ãè€éãªåé¿çãå€éšäŸåé¢ä¿ãå¿ èŠãšããã«ãWasmã«çŽæ¥ã³ã³ãã€ã«ã§ããŸãã
- ã³ãŒããµã€ãºã®åæžïŒãã€ãã£ãGCã¯ãWasmã¢ãžã¥ãŒã«å ã«åå¥ã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒã©ã€ãã©ãªãå«ããå¿ èŠæ§ãæé€ããå šäœçãªã³ãŒããµã€ãºãåæžã§ããŸãã
ãªããžã§ã¯ãã°ã©ãåæïŒGCã®åºç€
ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¯ããã®æ žå¿ã«ãããŠãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããªããªã£ãã¡ã¢ãªãç¹å®ããŠåå©çšããããšã§ãããããå®çŸããã«ã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ã¡ã¢ãªå ã®ãªããžã§ã¯ãéã®é¢ä¿ãçè§£ããå¿ èŠããããŸããããããªããžã§ã¯ãã°ã©ããšããŠç¥ãããŠããŸãããªããžã§ã¯ãã°ã©ãåæã«ã¯ããã®ã°ã©ããèµ°æ»ããŠãã©ã®ãªããžã§ã¯ããå°éå¯èœïŒã€ãŸãããŸã 䜿çšãããŠããïŒã§ãã©ã®ãªããžã§ã¯ããå°éäžå¯èœïŒã€ãŸããã¬ããŒãžïŒã§ãããã倿ããããšãå«ãŸããŸãã
WebAssembly GCã®ã³ã³ããã¹ãã§ã¯ããªããžã§ã¯ãã°ã©ãåæã¯ç¬èªã®èª²é¡ãšæ©äŒãæç€ºããŸããWasm GCææ¡ã¯ãç¹å®ã®ã¡ã¢ãªã¢ãã«ãšãªããžã§ã¯ãã¬ã€ã¢ãŠããå®çŸ©ããŠãããã¬ããŒãžã³ã¬ã¯ã¿ãŒããªããžã§ã¯ãã°ã©ããå¹ççã«èµ°æ»ããæ¹æ³ã«åœ±é¿ãäžããŸãã
ãªããžã§ã¯ãã°ã©ãåæã®äž»èŠãªæŠå¿µ
- ã«ãŒãïŒã«ãŒãã¯ããªããžã§ã¯ãã°ã©ãã®èµ°æ»ã®éå§ç¹ã§ãããããã¯ãåç¶ããããšãããã£ãŠãããªããžã§ã¯ãã衚ããéåžžã¯ã¬ãžã¹ã¿ãã¹ã¿ãã¯ããŸãã¯ã°ããŒãã«å€æ°ã«é 眮ãããŸããäŸãšããŠã¯ã颿°å ã®ããŒã«ã«å€æ°ããã¢ããªã±ãŒã·ã§ã³å šäœã§ã¢ã¯ã»ã¹å¯èœãªã°ããŒãã«ãªããžã§ã¯ãããããŸãã
- åç §ïŒåç §ã¯ããããªããžã§ã¯ãããå¥ã®ãªããžã§ã¯ããžã®ãã€ã³ã¿ã§ãããããã¯ãªããžã§ã¯ãã°ã©ãã®ãšããžãå®çŸ©ããã°ã©ããèµ°æ»ããŠå°éå¯èœãªãªããžã§ã¯ããç¹å®ããããã«éèŠã§ãã
- å°éå¯èœæ§ïŒãªããžã§ã¯ãã¯ãã«ãŒããããã®ãªããžã§ã¯ããžã®ãã¹ãããå Žåãå°éå¯èœãšèŠãªãããŸããå°éå¯èœæ§ã¯ããªããžã§ã¯ããåç¶ããããã©ããã倿ããããã®åºæ¬çãªåºæºã§ãã
- å°éäžå¯èœãªãªããžã§ã¯ãïŒã©ã®ã«ãŒããããå°éã§ããªããªããžã§ã¯ãã¯ã¬ããŒãžãšèŠãªãããã¬ããŒãžã³ã¬ã¯ã¿ãŒã«ãã£ãŠå®å šã«åå©çšã§ããŸãã
ã¡ã¢ãªåç §è¿œè·¡æè¡
广çãªã¡ã¢ãªåç §è¿œè·¡ã¯ãæ£ç¢ºã§å¹ççãªãªããžã§ã¯ãã°ã©ãåæã«äžå¯æ¬ ã§ããåç §ã远跡ããå°éå¯èœãªãªããžã§ã¯ããèå¥ããããã«ãããã€ãã®ææ³ã䜿çšãããŠããŸãããããã®ææ³ã¯ã倧ãŸãã«ãã¬ãŒã¹ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãšåç §ã«ãŠã³ãã®2ã€ã®ã«ããŽãªã«åé¡ã§ããŸãã
ãã¬ãŒã¹ã¬ããŒãžã³ã¬ã¯ã·ã§ã³
ãã¬ãŒã¹ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ã¯ãã«ãŒãããéå§ããŠãªããžã§ã¯ãã°ã©ãã宿çã«èµ°æ»ãããã¹ãŠã®å°éå¯èœãªãªããžã§ã¯ããããŒã¯ããããšã«ãã£ãŠæ©èœããŸããèµ°æ»åŸãããŒã¯ãããŠããªããªããžã§ã¯ãã¯ã¬ããŒãžãšèŠãªãããåå©çšã§ããŸãã
äžè¬çãªãã¬ãŒã¹ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ã«ã¯ã次ã®ãã®ããããŸãã
- ããŒã¯ã¢ã³ãã¹ã€ãŒãïŒããã¯ãå°éå¯èœãªãªããžã§ã¯ããããŒã¯ããããŒã¯ãã§ãŒãºãšãããŒã¯ãããŠããªããªããžã§ã¯ããåå©çšããã¹ã€ãŒããã§ãŒãºã®2ã€ã®ãã§ãŒãºãå«ããå€å žçãªãã¬ãŒã¹ã¢ã«ãŽãªãºã ã§ãã
- ã³ããŒGCïŒã³ããŒGCã¢ã«ãŽãªãºã ã¯ãã¡ã¢ãªã¹ããŒã¹ã2ã€ã®é åã«åå²ããã©ã€ããªããžã§ã¯ããäžæ¹ã®é åããããäžæ¹ã®é åã«ã³ããŒããŸããããã«ãããæçåãè§£æ¶ãããããã©ãŒãã³ã¹ãåäžããŸãã
- äžä»£å¥GCïŒäžä»£å¥GCã¢ã«ãŽãªãºã ã¯ãã»ãšãã©ã®ãªããžã§ã¯ãã®å¯¿åœãçããšãã芳å¯ãå©çšããŸããã¡ã¢ãªã¹ããŒã¹ãäžä»£ã«åå²ããã¬ããŒãžãå«ãŸããŠããå¯èœæ§ãé«ããããè¥ãäžä»£ãããé »ç¹ã«åéããŸãã
äŸïŒããŒã¯ã¢ã³ãã¹ã€ãŒãã®åäœ
3ã€ã®ãªããžã§ã¯ãïŒAãBãCïŒãæã€åçŽãªãªããžã§ã¯ãã°ã©ããæ³åããŠãã ããããªããžã§ã¯ãAã¯ã«ãŒãã§ãããªããžã§ã¯ãAã¯ãªããžã§ã¯ãBãåç §ãããªããžã§ã¯ãBã¯ãªããžã§ã¯ãCãåç §ããŸããããŒã¯ãã§ãŒãºã§ã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ãªããžã§ã¯ãAïŒã«ãŒãïŒããéå§ããå°éå¯èœãšããŠããŒã¯ããŸããæ¬¡ã«ãAããBãžã®åç §ããã©ããBãå°éå¯èœãšããŠããŒã¯ããŸããåæ§ã«ãBããCãžã®åç §ããã©ããCãå°éå¯èœãšããŠããŒã¯ããŸããããŒã¯ãã§ãŒãºã®åŸããªããžã§ã¯ãAãBãCã¯ãã¹ãŠå°éå¯èœãšããŠããŒã¯ãããŸããã¹ã€ãŒããã§ãŒãºã§ã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ã¡ã¢ãªã¹ããŒã¹å šäœãå埩åŠçããããŒã¯ãããŠããªããªããžã§ã¯ããåå©çšããŸãããã®å Žåããã¹ãŠã®ãªããžã§ã¯ããå°éå¯èœã§ããããããªããžã§ã¯ãã¯åå©çšãããŸããã
åç §ã«ãŠã³ã
åç §ã«ãŠã³ãã¯ãåãªããžã§ã¯ãããããæãåç §ã®æ°ãç¶æããã¡ã¢ãªç®¡çæè¡ã§ãããªããžã§ã¯ãã®åç §ã«ãŠã³ãããŒãã«ãªããšãä»ã®ãªããžã§ã¯ãããããåç §ããŠããªãããšãæå³ããå®å šã«åå©çšã§ããŸãã
åç §ã«ãŠã³ãã¯å®è£ ãç°¡åã§ã峿ã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãæäŸã§ããŸãããã ããæ¬¡ã®ãããªããã€ãã®æ¬ ç¹ããããŸãã
- ãµã€ã¯ã«æ€åºïŒåç §ã«ãŠã³ãã¯ããªããžã§ã¯ããäºãã«åç §ããŠããããã©ã®ã«ãŒããããå°éã§ããªããªããžã§ã¯ãã®ãµã€ã¯ã«ãæ€åºããŠåå©çšã§ããŸããã
- ãªãŒããŒãããïŒåç §ã«ãŠã³ãã®ç¶æã¯ãç¹ã«ãªããžã§ã¯ãã®äœæãšåé€ãé »ç¹ã«è¡ãããã¢ããªã±ãŒã·ã§ã³ã§ã¯ã倧ããªãªãŒããŒãããã«ãªãå¯èœæ§ããããŸãã
äŸïŒåç §ã«ãŠã³ã
2ã€ã®ãªããžã§ã¯ããAãšBãèããŸãããªããžã§ã¯ãAã¯ãæåã¯ã«ãŒãã«ãã£ãŠåç §ãããŠãããããåç §ã«ãŠã³ãã1ã§ãããªããžã§ã¯ãBãäœæãããAã«ãã£ãŠåç §ãããBã®åç §ã«ãŠã³ãã1ã«å¢ããŸããã«ãŒããAã®åç §ã忢ãããšãAã®åç §ã«ãŠã³ãã¯0ã«ãªããAã¯ããã«åå©çšãããŸããAã¯Bãåç §ããå¯äžã®ãªããžã§ã¯ãã§ãã£ããããBã®åç §ã«ãŠã³ãã0ã«ãªããBãåå©çšãããŸãã
ãã€ããªããã¢ãããŒã
å®éã«ã¯ãå€ãã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ããã¬ãŒã¹ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãšåç §ã«ãŠã³ãã®é·æãçµã¿åããããã€ããªããã¢ãããŒãã䜿çšããŠããŸããããšãã°ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ãåçŽãªãªããžã§ã¯ãã®å³æåå©çšã«åç §ã«ãŠã³ãã䜿çšããããè€éãªãªããžã§ã¯ãã°ã©ãã®ãµã€ã¯ã«æ€åºãšåå©çšã«ãã¬ãŒã¹ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã䜿çšããå ŽåããããŸãã
WebAssembly GCãªããžã§ã¯ãã°ã©ãåæã®èª²é¡
WebAssembly GCææ¡ã¯ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ããã®ç¢ºåºããåºç€ãæäŸããŸãããå¹ççã§æ£ç¢ºãªãªããžã§ã¯ãã°ã©ãåæãå®è£ ããã«ã¯ãããã€ãã®èª²é¡ãæ®ã£ãŠããŸãã
- æ£ç¢ºãªGCãšä¿å®çãªGCïŒæ£ç¢ºãªGCã§ã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒãã¡ã¢ãªå ã®ãã¹ãŠã®ãªããžã§ã¯ãã®æ£ç¢ºãªåãšã¬ã€ã¢ãŠããç¥ãå¿ èŠããããŸããäžæ¹ãä¿å®çãªGCã¯ããªããžã§ã¯ãã®åãšã¬ã€ã¢ãŠãã«ã€ããŠä»®å®ãè¡ããŸããããã«ããã誀æ€åºãçºçããå¯èœæ§ããããŸãïŒã€ãŸããå°éå¯èœãªãªããžã§ã¯ããã¬ããŒãžãšããŠèª€ã£ãŠèå¥ããŸãïŒãæ£ç¢ºãªGCãšä¿å®çãªGCã®ã©ã¡ããéžæãããã¯ãããã©ãŒãã³ã¹ãšç²ŸåºŠã®ãã¬ãŒããªãã«ãã£ãŠç°ãªããŸãã
- ã¡ã¿ããŒã¿ç®¡çïŒã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ããªããžã§ã¯ãã®ãµã€ãºãåãä»ã®ãªããžã§ã¯ããžã®åç §ãªã©ããªããžã§ã¯ãã«é¢ããã¡ã¿ããŒã¿ãå¿ èŠãšããŸãããã®ã¡ã¿ããŒã¿ãå¹ççã«ç®¡çããããšã¯ãããã©ãŒãã³ã¹ã«ãšã£ãŠéèŠã§ãã
- åæå®è¡ãšäžŠååŠçïŒææ°ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã©ãŒãã³ã¹ãåäžãããããã«åæå®è¡ãšäžŠååŠçããã䜿çšãããŸããã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ãç«¶åç¶æ ãããŒã¿ã®ç ŽæãåŒãèµ·ããããšãªãããªããžã§ã¯ãã°ã©ããžã®åæã¢ã¯ã»ã¹ãåŠçã§ããå¿ èŠããããŸãã
- æ¢åã®Wasmæ©èœãšã®çµ±åïŒWasm GCææ¡ã¯ãç·åœ¢ã¡ã¢ãªã颿°åŒã³åºããªã©ãæ¢åã®Wasmæ©èœãšã·ãŒã ã¬ã¹ã«çµ±åããå¿ èŠããããŸãã
Wasm GCã®æé©åæè¡
WebAssembly GCã®ããã©ãŒãã³ã¹ãåäžãããããã«ãããã€ãã®æé©åæè¡ã䜿çšã§ããŸãã
- æžã蟌ã¿ããªã¢ïŒæžã蟌ã¿ããªã¢ã¯ããªããžã§ã¯ãã°ã©ããžã®å€æŽã远跡ããããã«äœ¿çšãããŸããåç §ããªããžã§ã¯ãã«æžã蟌ãŸãããã³ã«åŒã³åºãããåç §ã«ãŠã³ããæŽæ°ããããåŸã§åŠçããããã«ãªããžã§ã¯ããããŒãã£ãšããŠããŒã¯ãããããããã«äœ¿çšã§ããŸãã
- èªã¿åãããªã¢ïŒèªã¿åãããªã¢ã¯ããªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ã远跡ããããã«äœ¿çšãããŸãããªããžã§ã¯ãã«å¯Ÿããããã¯ãçŸåšä¿æããŠããªãã¹ã¬ããããªããžã§ã¯ãã«ã¢ã¯ã»ã¹ããŠããå Žåãæ€åºããããã«äœ¿çšã§ããŸãã
- ãªããžã§ã¯ãå²ãåœãŠæŠç¥ïŒã¡ã¢ãªå ã®ãªããžã§ã¯ãã®å²ãåœãŠæ¹æ³ã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸããããšãã°ãåãåã®ãªããžã§ã¯ããè¿ãã«å²ãåœãŠãããšã§ããã£ãã·ã¥ã®å±ææ§ãåäžããããªããžã§ã¯ãã°ã©ããèµ°æ»ããã³ã¹ããåæžã§ããŸãã
- ã³ã³ãã€ã©ã®æé©åïŒãšã¹ã±ãŒãåæããããã³ãŒãåé€ãªã©ã®ã³ã³ãã€ã©ã®æé©åã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã§ç®¡çããå¿ èŠã®ãããªããžã§ã¯ãã®æ°ãæžããããšãã§ããŸãã
- ã€ã³ã¯ãªã¡ã³ã¿ã«GCïŒã€ã³ã¯ãªã¡ã³ã¿ã«GCã¢ã«ãŽãªãºã ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ããã»ã¹ãããå°ããªã¹ãããã«åå²ããã¬ããŒãžãåéãããŠããéãã¢ããªã±ãŒã·ã§ã³ãå®è¡ãç¶ããããšãã§ããŸããããã«ãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«äžãã圱é¿ã軜æžã§ããŸãã
WebAssembly GCã®å°æ¥ã®æ¹åæ§
WebAssembly GCææ¡ã¯ãŸã éçºäžã§ãããå°æ¥ã®ç ç©¶ãšé©æ°ã®æ©äŒããããããããŸãã
- é«åºŠãªGCã¢ã«ãŽãªãºã ïŒåæå®è¡GCã䞊åGCãªã©ãããé«åºŠãªGCã¢ã«ãŽãªãºã ãæ€èšããããšã§ãããã©ãŒãã³ã¹ãããã«åäžãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ã«äžãã圱é¿ã軜æžã§ããŸãã
- èšèªåºæã®æ©èœãšã®çµ±åïŒã¬ããŒãžã³ã¬ã¯ã¿ãŒãç¹å®ã®èšèªæ©èœã«åãããããšã§ãããã©ãŒãã³ã¹ãåäžãããéçºãç°¡çŽ åã§ããŸãã
- ãããã¡ã€ãªã³ã°ããã³ãããã°ããŒã«ïŒã¬ããŒãžã³ã¬ã¯ã¿ãŒã®åäœã«é¢ããæŽå¯ãæäŸãããããã¡ã€ãªã³ã°ããã³ãããã°ããŒã«ãéçºããããšã§ãéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ãæé©åã§ããŸãã
- ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ïŒã¬ããŒãžã³ã¬ã¯ã¿ãŒã®ã»ãã¥ãªãã£ã確ä¿ããããšã¯ãè匱æ§ã鲿¢ããæªæã®ããæ»æããä¿è·ããããã«éèŠã§ãã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
WebAssembly GCãå®éã®ã¢ããªã±ãŒã·ã§ã³ã§ã©ã®ããã«äœ¿çšã§ãããã®å®è·µçãªäŸãããã€ãèããŠã¿ãŸãããã
- Webã²ãŒã ïŒWebAssembly GCã䜿çšãããšãéçºè ã¯CïŒãUnityãªã©ã®èšèªã䜿çšããŠãããè€éã§ããã©ãŒãã³ã¹ã®é«ãWebã²ãŒã ãæ§ç¯ã§ããŸãããã€ãã£ãGCã¯ã¡ã¢ãªç®¡çã®ãªãŒããŒããããåæžããéçºè ã¯ã²ãŒã ããžãã¯ãšã²ãŒã ãã¬ã€ã«éäžã§ããŸãã倿°ã®ãªããžã§ã¯ããšåçã¡ã¢ãªå²ãåœãŠãåããè€éãª3Dã²ãŒã ãæ³åããŠãã ãããWasm GCã¯ã¡ã¢ãªç®¡çãã·ãŒã ã¬ã¹ã«åŠçããJavaScriptããŒã¹ã®GCãšæ¯èŒããŠãããã¹ã ãŒãºãªã²ãŒã ãã¬ã€ãšããåªããããã©ãŒãã³ã¹ãå®çŸããŸãã
- ãµãŒããŒåŽã¢ããªã±ãŒã·ã§ã³ïŒWebAssemblyã䜿çšããŠã髿§èœãšã¹ã±ãŒã©ããªãã£ãå¿ èŠãšãããµãŒããŒåŽã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸããWebAssembly GCã¯ãèªåã¡ã¢ãªç®¡çãæäŸããããšã§ããããã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åã§ããŸããããšãã°ã倿°ã®åæãªã¯ãšã¹ããåŠçããJavaã§èšè¿°ããããµãŒããŒåŽã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŸããããWasm GCã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã¯ã¡ã¢ãªãå¹ççã«ç®¡çããé«ãã¹ã«ãŒããããšäœãã¬ã€ãã³ã·ã確ä¿ã§ããŸãã
- çµã¿èŸŒã¿ã·ã¹ãã ïŒWebAssemblyã䜿çšããŠããªãœãŒã¹ãéãããŠããçµã¿èŸŒã¿ã·ã¹ãã çšã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸããWebAssembly GCã¯ãã¡ã¢ãªãå¹ççã«ç®¡çããããšã§ããããã®ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªãããããªã³ããåæžããã®ã«åœ¹ç«ã¡ãŸããRAMãéãããŠããçµã¿èŸŒã¿ããã€ã¹ã§ãè€éãªã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŠãããšæ³åããŠãã ãããWasm GCã¯ã¡ã¢ãªäœ¿çšéãæå°éã«æããã¡ã¢ãªãªãŒã¯ãé²ããå®å®ããä¿¡é Œæ§ã®é«ãåäœãä¿èšŒããŸãã
- ç§åŠèšç®ïŒWebAssemblyã䜿çšããŠã髿§èœãšæ°å€ç²ŸåºŠãå¿ èŠãšããç§åŠèšç®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸããWebAssembly GCã¯ãèªåã¡ã¢ãªç®¡çãæäŸããããšã§ããããã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åã§ããŸããããšãã°ãè€éãªã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããFortranã§èšè¿°ãããç§åŠã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŸããããFortranã³ãŒããWebAssemblyã«ã³ã³ãã€ã«ããGCãå©çšããããšã§ãéçºè ã¯ã¡ã¢ãªç®¡çãç°¡çŽ åããªãããé«ãããã©ãŒãã³ã¹ãå®çŸã§ããŸãã
éçºè åãã®å®è¡å¯èœãªã€ã³ãµã€ã
WebAssembly GCã®äœ¿çšã«é¢å¿ã®ããéçºè åãã®å®è¡å¯èœãªã€ã³ãµã€ããæ¬¡ã«ç€ºããŸãã
- é©åãªèšèªãéžæããïŒCïŒãJavaãKotlinãªã©ãWebAssembly GCããµããŒãããèšèªãéžæããŸãã
- GCã¢ã«ãŽãªãºã ãçè§£ããïŒéžæããèšèªãšãã©ãããã©ãŒã ã§äœ¿çšãããŠããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ãçè§£ããŠãã ããã
- ã¡ã¢ãªäœ¿çšéãæé©åããïŒã¡ã¢ãªå²ãåœãŠãšè§£æŸãæå°éã«æããã³ãŒããäœæããŸãã
- ã¢ããªã±ãŒã·ã§ã³ããããã¡ã€ã«ããïŒãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãã¡ã¢ãªãªãŒã¯ãšããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŸãã
- ææ°æ å ±ãå ¥æããïŒWebAssembly GCã®ææ°ã®éçºç¶æ³ãåžžã«ææ¡ããŠãã ããã
çµè«
WebAssembly GCã¯ãWebAssemblyãã¯ãããžãŒã®å€§ããªé²æ©ã衚ããŠãããéçºè ã¯èªåã¡ã¢ãªç®¡çã«äŸåããèšèªã䜿çšããŠãããè€éã§ããã©ãŒãã³ã¹ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãããªããžã§ã¯ãã°ã©ãåæãšã¡ã¢ãªåç §è¿œè·¡ãçè§£ããããšã¯ãWebAssembly GCã®å¯èœæ§ãæå€§éã«æŽ»çšããããã«éèŠã§ããWebAssembly GCã«ãã£ãŠæç€ºããã課é¡ãšæ©äŒãæ éã«æ€èšããããšã§ãéçºè ã¯å¹ççã§ä¿¡é Œæ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã