QEMU ndi FFmpeg Woyambitsa Amasindikiza QuickJS JavaScript Engine

Katswiri wa masamu wa ku France Fabrice Bellard, yemwe poyamba anayambitsa ntchito za QEMU ndi FFmpeg, ndipo adapanganso njira yofulumira kwambiri yowerengera pi ndikupanga mawonekedwe azithunzi. Zamgululi, adasindikiza kutulutsa koyamba kwa injini yatsopano ya JavaScript QuickJS. Injiniyo ndi yaying'ono ndipo imayang'ana kwambiri kuyika mu machitidwe ena. Khodi ya polojekitiyi idalembedwa mu C ndikugawidwa pansi pa layisensi ya MIT. Likupezekanso ndi gulu la injini lomwe linapangidwa ku WebAssembly pogwiritsa ntchito Emscripten ndipo liyenera kuchitidwa mu asakatuli.

Kukhazikitsa JavaScript zogwiriziza Mafotokozedwe a ES2019, kuphatikiza ma module, majenereta asynchronous, ndi ma proxies. Masamu osakhazikika amathandizidwa mwachisawawa. kukulitsa kwa JavaScript, monga mitundu ya BigInt ndi BigFloat, komanso kuchuluka kwa opareta. Pankhani ya magwiridwe antchito, QuickJS ndiyofunikira kuposa ma analogi omwe alipo, mwachitsanzo, mu mayeso
bench-v8 ili patsogolo pa injini XS pa 35%, duktape kuposa kawiri jerryscript katatu ndi MuJS kasanu ndi kawiri.

Kuphatikiza pa laibulale yophatikizira injini mumapulogalamu, pulojekitiyi imaperekanso womasulira wa qjs, yemwe angagwiritsidwe ntchito kuyendetsa JavaScript code kuchokera pamzere wolamula. Kuphatikiza apo, compiler ya qjsc ilipo, yomwe imatha kupanga mafayilo okhazikika omwe safuna kudalira kunja.

Mfundo zazikulu:

  • Yophatikizika komanso yosavuta kuphatikiza muma projekiti ena. Khodiyo imaphatikizapo mafayilo ochepa a C omwe safuna kudalira kunja kuti apange. Ntchito yosavuta yophatikizidwa imatenga pafupifupi 190 KB;
  • Kuchita bwino kwambiri komanso nthawi yochepa yoyambira. Kudutsa mayeso a 56 zikwizikwi a ECMAScript kumatenga pafupifupi masekondi 100 akamachitidwa pakatikati pa PC wamba. Kuyambitsa nthawi yothamanga kumatenga ma microseconds osakwana 300;
  • Pafupifupi chithandizo chonse cha ES2019 ndi chithandizo chonse cha Annex B, chomwe chimatanthawuza zigawo zomwe zimagwirizana ndi mapulogalamu akale a intaneti;
  • Kupambana kwathunthu kwa mayeso onse kuchokera ku ECMAScript Test Suite;
  • Thandizo lolemba Javascript code mu mafayilo omwe angathe kuchitidwa popanda kudalira kunja;
  • Wosonkhanitsa zinyalala wowerengeredwa popanda kuyeretsa njinga, zomwe zinapangitsa kuti pakhale khalidwe lodziwikiratu komanso kuchepetsa kukumbukira kukumbukira;
  • Gulu lazowonjezera zowerengera masamu muchilankhulo cha JavaScript;
  • Chigoba chochitira kachidindo mu mzere wamalamulo womwe umathandizira kuwunikira kwachidziwitso;
  • Laibulale yokhazikika yokhazikika yokhala ndi zomangira pa laibulale ya C.

Pulojekitiyi ikupanganso ma library ena atatu a C omwe akukhudzidwa ndi QuickJS komanso oyenera kugwiritsa ntchito padera:

  • libregexp ndikukhazikitsa mwachangu mawu okhazikika omwe amagwirizana kwathunthu ndi mafotokozedwe a Javascript ES 2019;
  • libunicode - laibulale yaying'ono yogwira ntchito ndi Unicode;
  • libbf ndikukhazikitsa magwiridwe antchito amalo oyandama mokhazikika komanso zozungulira zenizeni.

Source: opennet.ru

Kuwonjezera ndemanga