WebAssembly 2.0 Standard Preview ကို ရနိုင်ပါသည်။

W3C သည် WebAssembly 2.0 အလယ်တန်းဆော့ဖ်ဝဲနှင့် ၎င်း၏ဆက်စပ် API ကို စံသတ်မှတ်ထားသည့် သတ်မှတ်ချက်အသစ်မူကြမ်းကို ထုတ်ပြန်ခဲ့ပြီး ဘရောက်ဆာများနှင့် ဟာ့ဒ်ဝဲပလပ်ဖောင်းများတစ်လျှောက် သယ်ဆောင်ရလွယ်ကူသော စွမ်းဆောင်ရည်မြင့်အက်ပ်လီကေးရှင်းများကို ဖန်တီးနိုင်စေခဲ့သည်။ WebAssembly သည် အမျိုးမျိုးသော ပရိုဂရမ်းမင်းဘာသာစကားများမှ စုစည်းလုပ်ဆောင်သည့် အပလီကေးရှင်းများအတွက် ဘရောက်ဆာ-အမှီအခိုကင်းသော၊ ကမ္ဘာလုံးဆိုင်ရာ၊ အဆင့်နိမ့် အလယ်အလတ်ကုဒ်ကို ပံ့ပိုးပေးပါသည်။ WebAssembly အတွက် JIT ကိုအသုံးပြုခြင်းဖြင့်၊ သင်သည် မူရင်းကုဒ်နှင့် နီးစပ်သော စွမ်းဆောင်ရည်အဆင့်များကို ရရှိနိုင်သည်။

WebAssembly နည်းပညာကို ဗီဒီယိုကုဒ်သွင်းခြင်း၊ အသံလုပ်ဆောင်ခြင်း၊ ဂရပ်ဖစ်နှင့် 3D ခြယ်လှယ်ခြင်း၊ ဂိမ်းဖွံ့ဖြိုးတိုးတက်မှု၊ C/C++ ကဲ့သို့သော စုစည်းထားသော ဘာသာစကားများဖြင့် ရေးသားထားသော ကုဒ်များကို ခွင့်ပြုခြင်းဖြင့် WebAssembly နည်းပညာကို အသုံးပြုနိုင်သည်။ .

WebAssembly ၏ အဓိကပန်းတိုင်များထဲတွင် မတူညီသောပလပ်ဖောင်းများတွင် သယ်ဆောင်ရလွယ်ကူမှု၊ ကြိုတင်မှန်းဆနိုင်သော အပြုအမူနှင့် ထပ်တူကျသော ကုဒ်များလုပ်ဆောင်မှုကို သေချာစေရန်ဖြစ်သည်။ မကြာသေးမီက၊ WebAssembly သည် ဘရောက်ဆာများတွင် အကန့်အသတ်မရှိသော မည်သည့်အခြေခံအဆောက်အဦ၊ လည်ပတ်မှုစနစ်နှင့် စက်ပစ္စည်းများတွင်မဆို ကုဒ်ကို လုံခြုံစွာလုပ်ဆောင်ရန်အတွက် universal platform တစ်ခုအနေဖြင့်လည်း မြှင့်တင်ထားပါသည်။

W3C သည် WebAssembly 2.0 အတွက် မူကြမ်းသတ်မှတ်ချက်သုံးခုကို ထုတ်ပြန်ထားသည်။

  • WebAssembly Core - WebAssembly အလယ်အလတ်ကုဒ်ကို အသုံးပြုရန်အတွက် အဆင့်နိမ့် virtual machine တစ်ခုကို ဖော်ပြသည်။ WebAssembly နှင့်ဆက်စပ်သောအရင်းအမြစ်များကို Java ရှိ ".class" ဖိုင်များနှင့်ဆင်တူသော ".wasm" ဖော်မတ်ဖြင့် ပေးပို့သည်၊ ထိုဒေတာနှင့်အလုပ်လုပ်ရန်အတွက် static data နှင့် code အပိုင်းများပါရှိသည်။
  • WebAssembly JavaScript Interface - JavaScript နှင့် ပေါင်းစည်းရန်အတွက် API တစ်ခုကို ပေးပါသည်။ သင့်အား တန်ဖိုးများကို ရယူပြီး ကန့်သတ်ဘောင်များကို WebAssembly လုပ်ဆောင်ချက်များသို့ ဖြတ်သန်းခွင့်ပြုသည်။ WebAssembly ၏လုပ်ဆောင်မှုသည် JavaScript လုံခြုံရေးပုံစံကိုလိုက်နာပြီး ပင်မစနစ်နှင့် အပြန်အလှန်တုံ့ပြန်မှုအားလုံးကို JavaScript ကုဒ်ကိုလုပ်ဆောင်ခြင်းကဲ့သို့ပင် လုပ်ဆောင်သည်။
  • WebAssembly Web API - ".wasm" အရင်းအမြစ်များကို တောင်းဆိုခြင်းနှင့် လုပ်ဆောင်ခြင်းအတွက် Promise ယန္တရားအပေါ် အခြေခံ၍ ပရိုဂရမ်းမင်း အင်တာဖေ့စ်ကို သတ်မှတ်သည်။ WebAssembly ရင်းမြစ်ဖော်မတ်သည် ဖိုင်အပြည့်တင်ရန် မစောင့်ဆိုင်းဘဲ စတင်လုပ်ဆောင်ရန် အကောင်းဆုံးဖြစ်ပြီး၊ ဝဘ်အက်ပ်လီကေးရှင်းများ၏ တုံ့ပြန်မှုကို ပိုမိုကောင်းမွန်စေသည်။

WebAssembly 2.0 တွင် အဓိကပြောင်းလဲမှုများသည် စံ၏ပထမဗားရှင်းနှင့် နှိုင်းယှဉ်ပါက-

  • v128 vector အမျိုးအစားနှင့် ဆက်စပ် vector ညွှန်ကြားချက်များအတွက် ပံ့ပိုးကူညီမှု (SIMD၊ တစ်ခုတည်းသော ညွှန်ကြားချက်မျိုးစုံ ဒေတာ) တွင် လုပ်ဆောင်ချက်များကို လုပ်ဆောင်နိုင်စေပါသည်။
  • C++ ရှိ stack pointers များကဲ့သို့သော တန်ဖိုးများအတွက် global binding ကိုခွင့်ပြု၍ ပြောင်းလဲနိုင်သော global variable များကို တင်သွင်းခြင်းနှင့် တင်ပို့ခြင်း
  • ရလဒ်ပိုလျှံလာသောအခါ ခြွင်းချက်တစ်ခုအား ပစ်ချမည့်အစား အနည်းဆုံး သို့မဟုတ် ဖြစ်နိုင်ချေအများဆုံးတန်ဖိုး ( SIMD အတွက် လိုအပ်သည်) ကို ပြန်ပေးမည့် float သို့ int ပြောင်းလဲခြင်းဆိုင်ရာ ညွှန်ကြားချက်အသစ်။
  • ကိန်းပြည့်များ၏ နိမိတ်ချဲ့ခြင်းအတွက် ညွှန်ကြားချက်များ (နိမိတ်လက္ခဏာနှင့် တန်ဖိုးကို ထိန်းသိမ်းထားစဉ် ဂဏန်းတစ်ခု၏ အတိမ်အနက်ကို တိုးမြှင့်ခြင်း)။
  • တန်ဖိုးများစွာကို ပြန်ပေးသည့် blocks နှင့် functions များအတွက် ပံ့ပိုးမှု (လုပ်ဆောင်ချက်အများအပြားမှ parameters များကို ဖြတ်သန်းခြင်းအပြင်)။
  • BigInt JavaScript အမျိုးအစားနှင့် 64-bit integers များ၏ WebAssembly ကိုယ်စားပြုမှုကြားသို့ ပြောင်းရန် BigInt64Array နှင့် BigUint64Array JavaScript လုပ်ဆောင်ချက်များကို အကောင်အထည်ဖော်ခြင်း။
  • အကိုးအကားအမျိုးအစားများ (funcref နှင့် externref) နှင့် ၎င်းတို့၏ဆက်စပ်ညွှန်ကြားချက်များ (ရွေးချယ်ပါ၊ ref.null၊ ref.func နှင့် ref.is_null)။
  • Memory.copy၊ memory.fill၊ memory.init နှင့် data.drop ညွှန်ကြားချက်များ သည် မှတ်ဉာဏ်နယ်မြေများကြား ဒေတာကို ကူးယူခြင်းနှင့် မမ်မိုရီဒေသများကို ရှင်းလင်းခြင်း
  • ဇယားများကို တိုက်ရိုက်ဝင်ရောက်ခြင်းနှင့် ပြင်ဆင်ခြင်းအတွက် ညွှန်ကြားချက်များ (table.set, table.get, table.size, table.grow)။ မော်ဂျူးတစ်ခုတွင် ဇယားအများအပြားကို ဖန်တီးခြင်း၊ တင်သွင်းခြင်းနှင့် ထုတ်ယူခြင်း စွမ်းရည်။ အသုတ်မုဒ်တွင် ဇယားများကို ကူးယူခြင်း/ဖြည့်ခြင်းအတွက် လုပ်ဆောင်ချက်များ (table.copy၊ table.init နှင့် elem.drop)။

source: opennet.ru

မှတ်ချက် Add