QEMU un FFmpeg dibinātājs publicējis JavaScript dzinēju QuickJS

Francijas matemātiÄ·is Fabriss Bellards (Fabrice Bellard), kurÅ” savulaik dibināja projektus QEMU un FFmpeg, kā arÄ« izstrādāja ātrāko formulu skaitļa Pi aprēķināŔanai un attÄ«stÄ«ja attēlu formātu BPG, publicēja pirmo laidienu jaunajam JavaScript dzinējam QuickJS. Dzinējs izceļas ar kompakto izmēru un ir domāts iekŔējo sistēmu integrācijai. Projekta kods ir uzrakstÄ«ts C valodā un izplatÄ«ts ar MIT licenci. Pieejama arÄ« dzinēja versija, kas sagriezta WebAssembly, izmantojot Emscripten, un piemērota palaiÅ”anai pārlÅ«kprogrammās.

JavaScript implementācija atbalsta atbilst ES2019 specifikācijai, tostarp moduļiem, asinhroniem Ä£eneratoriem un proksi. Optiski tiek atbalstÄ«ti nestandarta matemātiskie paplaÅ”inājums JavaScript, piemēram, BigInt un BigFloat tipi, kā arÄ« operatoru pārslogoÅ”ana. AttiecÄ«bā uz veiktspēju QuickJS ir ievērojami pārsniedz pārspēj esoÅ”os analogus, piemēram, testā
bench-v8, kas pārspēj dzinēju XS par 35%, DukTape vairāk nekā divreiz, JerryScript trīs reizes, bet MuJS septiņas reizes.

Papildus bibliotēkai dzinēja iebÅ«vēŔanai aplikācijās projekts arÄ« piedāvā interpretatoru qjs, kuru var izmantot JavaScript koda uzsākÅ”anai no komandrindas. Vairāk nekā tam pieejams kompilators qjsc, kas var Ä£enerēt izpildāmos failus, kas ir piemēroti izolētai palaiÅ”anai, neprasot ārējās atkarÄ«bas.

Galvenās iezīmes:

  • Kompaktums un vienkārÅ”a iebÅ«vēŔana citos projektos. Kods ietver tikai dažus failus C valodā, kuriem nav nepiecieÅ”amas ārējās atkarÄ«bas, lai tos kompilētu. Sagriezta pamata aplikācija aizņem aptuveni 190 kB;
  • Ä»oti augsta veiktspēja un neliels palaiÅ”anas laiks. 56 tÅ«kstoÅ”i testu saderÄ«bas ar ECMAScript nomaina aptuveni 100 sekundes uz vienu kodolu standarta galddatorā. Runtime inicializācija aizņem mazāk par 300 mikrosekundēm;
  • GandrÄ«z pilnÄ«ga ES2019 specifikācijas atbalsts un pilnÄ«gs aplikācijas "B" atbalsts, kas nosaka komponentus saderÄ«bai ar vecajiem web aplikācijām;
  • PilnÄ«ga visiem testiem no ECMAScript Test Suite;
  • Atbalsts Javascript koda kompilēŔanai izpildāmos failos bez ārējām atkarÄ«bām;
  • Atkritumu savācējs, kas balstÄ«ts uz atsauču skaitīŔanu, bez cikliskas tÄ«rīŔanas izpildes, kas ļāva sasniegt prognozējamu uzvedÄ«bu un samazināt atmiņas patēriņu;
  • PaplaÅ”inājumu komplekts matemātisko aprēķinu veikÅ”anai Javascript valodā;
  • Koda izpildes apvalks komandrindā, kas atbalsta koda sintaktisko izcelÅ”anu;
  • Kompakta standarta bibliotēka ar C bibliotēku apvalkiem.

Projekts attÄ«sta arÄ« trÄ«s blakus esoŔās C bibliotēkas, kas tiek izmantotas QuickJS un ir piemērotas atseviŔķai izmantoÅ”anai:

  • libregexp — ātra regulāro izteiksmju realizācija, kas pilnÄ«bā atbilst Javascript ES 2019 specifikācijai;
  • libunicode — kompakta bibliotēka darbam ar Unicode;
  • libbf — operāciju ar mainÄ«gu precizitāti un transcendentālajām funkcijām ar precÄ«zu noapaļoÅ”anu realizācija.

Avots: opennet.lv

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster