QEMU နှင့် FFmpeg ကိုတည်ထောင်သူသည် QuickJS JavaScript အင်ဂျင်ကိုထုတ်ဝေခဲ့သည်။

QEMU နှင့် FFmpeg ပရောဂျက်များကို တည်ထောင်ခဲ့သူ ပြင်သစ်သင်္ချာပညာရှင် Fabrice Bellard သည် Pi တွက်ချက်မှုအတွက် အမြန်ဆုံးဖော်မြူလာကို ဖန်တီးပြီး ပုံဖော်မတ်ကို တီထွင်ခဲ့သည်။ ဂျီဒီပီJavaScript အင်ဂျင်အသစ်၏ ပထမဆုံးဖြန့်ချိမှုကို ထုတ်ဝေခဲ့သည်။ QuickJS. အင်ဂျင်သည် ကျစ်လျစ်ပြီး အခြားစနစ်များနှင့် ပေါင်းစပ်ရန်အတွက် ဒီဇိုင်းထုတ်ထားသည်။ ပရောဂျက်ကုဒ်ကို C ဖြင့် ရေးသားထားပြီး MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ Emscripten ကို အသုံးပြု၍ WebAssembly တွင် စုစည်းထားပြီး ဘရောက်ဆာများတွင် လုပ်ဆောင်ရန် သင့်လျော်သော အင်ဂျင်တည်ဆောက်မှုကိုလည်း ရရှိနိုင်သည်။

JavaScript အကောင်အထည်ဖော်ခြင်း။ အထောက်အပံ့များ modules၊ asynchronous generator နှင့် proxy များအပါအဝင် ES2019 သတ်မှတ်ချက်။ စံမဟုတ်သော သင်္ချာများကို စိတ်ကြိုက်ရွေးချယ်နိုင်သည် တိုးချဲ့ BigInt နှင့် BigFloat အမျိုးအစားများကဲ့သို့ JavaScript အတွက် အော်ပရေတာ overloading. QuickJS ၏ စွမ်းဆောင်ရည်သည် သိသာထင်ရှားပါသည်။ သာလွန်သည် စမ်းသပ်မှုတွင် ရနိုင်သော analogues များ ဥပမာ
bench-v8 သည် အင်ဂျင်ရှေ့တွင်ရှိသည်။ XS ၂၄.၉%၊ DukTape နှစ်ဆကျော် jerryscript သုံးကြိမ်နှင့် MuJS ခုနစ်ကြိမ်။

အင်ဂျင်ကို အပလီကေးရှင်းများတွင် ထည့်သွင်းရန်အတွက် စာကြည့်တိုက်အပြင်၊ ပရောဂျက်သည် command line မှ JavaScript ကုဒ်ကို run ရန် အသုံးပြုနိုင်သည့် qjs စကားပြန်ကိုလည်း ပေးပါသည်။ ထို့အပြင်၊ qjsc compiler သည် ပြင်ပမှီခိုမှုမလိုအပ်သော stand-alone execution အတွက်သင့်လျော်သော output executable files များကိုထုတ်ပေးနိုင်စွမ်းရှိသည်။

အဓိကအင်္ဂါရပ်များ:

  • ကျစ်လစ်ပြီး အခြားပရောဂျက်များတွင် ပေါင်းစပ်ရန် လွယ်ကူသည်။ ကုဒ်တွင် စည်းဝေးပွဲအတွက် ပြင်ပမှီခိုမှုမလိုအပ်သော C ဖိုင်အနည်းငယ်သာ ပါဝင်ပါသည်။ အရိုးရှင်းဆုံးစုစည်းထားသော application သည် 190 KB ခန့်ကြာသည်။
  • အလွန်မြင့်မားသောစွမ်းဆောင်ရည်နှင့်စတင်ချိန်တို။ 56 ECMAScript လိုက်ဖက်ညီသော စမ်းသပ်မှုများကို ကျော်ဖြတ်ခြင်းသည် ပုံမှန် desktop PC ၏ core တစ်ခုတည်းတွင် လုပ်ဆောင်သောအခါ 100 စက္ကန့်ခန့် ကြာသည်။ Runtime အစပြုခြင်းသည် 300 မိုက်ခရိုစက္ကန့်ထက်နည်းသည်။
  • ES2019 သတ်မှတ်ချက်အတွက် အပြည့်အဝပံ့ပိုးမှုနီးပါးနှင့် အမွေအနှစ်ဝဘ်အက်ပ်လီကေးရှင်းများနှင့် လိုက်ဖက်ညီမှုအတွက် အစိတ်အပိုင်းများကို သတ်မှတ်ပေးသည့် နောက်ဆက်တွဲ B အတွက် အပြည့်အဝပံ့ပိုးမှုနီးပါး၊
  • ECMAScript Test Suite မှ စာမေးပွဲများအားလုံးကို အပြီးအပြတ် ဖြတ်တောက်ပါ။
  • ပြင်ပမှီခိုမှုမရှိဘဲ Javascript ကုဒ်ကို executable files များအဖြစ် စုစည်းခြင်းအတွက် ပံ့ပိုးမှု။
  • ကျွန်ုပ်တို့အား ကြိုတင်မှန်းဆနိုင်သော အမူအကျင့်များရရှိစေရန်နှင့် မှတ်ဉာဏ်သုံးစွဲမှုကို လျှော့ချနိုင်စေသည့် စက်ဝိုင်းသန့်ရှင်းရေးမပါဘဲ ရည်ညွှန်းရေတွက်ခြင်းအပေါ် အခြေခံထားသည့် အမှိုက်စုဆောင်းသူ။
  • JavaScript ရှိ သင်္ချာတွက်ချက်မှုများအတွက် တိုးချဲ့မှုအစုတစ်ခု၊
  • ဆက်စပ်ကုဒ်မီးမောင်းထိုးပြခြင်းကို ပံ့ပိုးပေးသည့် အမိန့်ပေးစာကြောင်းမုဒ်တွင် ကုဒ်ကို အကောင်အထည်ဖော်ရန်အတွက် shell တစ်ခု။
  • C စာကြည့်တိုက်တွင် ထုပ်ပိုးထားသော စံပြစာကြည့်တိုက်။

ပရောဂျက်သည် QuickJS တွင်ပါ၀င်သော C libraries သုံးခုကိုလည်း ဖော်ဆောင်နေပြီး တစ်ဦးချင်းအသုံးပြုရန်အတွက် သင့်လျော်သည်-

  • libregexp - ပုံမှန်အသုံးအနှုန်းများကို လျင်မြန်စွာအကောင်အထည်ဖော်ခြင်း၊ Javascript ES 2019 သတ်မှတ်ချက်နှင့် အပြည့်အဝလိုက်ဖက်ပါသည်။
  • libunicode - ယူနီကုဒ်နှင့်အလုပ်လုပ်ရန်အတွက် ကျစ်လစ်သောစာကြည့်တိုက်၊
  • libbf - တိကျသောအလှည့်ဖြင့် မထင်သလို တိကျမှုရှိသော floating point လုပ်ဆောင်ချက်များနှင့် အဘိညာဉ်ဆိုင်ရာလုပ်ဆောင်ချက်များကို အတိအကျလှည့်ပတ်ခြင်း။

source: opennet.ru

မှတ်ချက် Add