A QEMU és FFmpeg alapítója közzétette a QuickJS JavaScript-motort

A francia matematikus Fabrice Bellard, aki egykor létrehozta a QEMU és FFmpeg projekteket, valamint a Pi számának leggyorsabb kiszámítási képletét alkotta és létrehozta a képfájl-formátumot BPG, közzétette az új JavaScript-motor első kiadását QuickJS. A motor tömör és más rendszerekbe való beágyazásra lett kifejlesztve. A projekt kódja C nyelven íródott és MIT licenc alatt terjesztik. Ezen kívül elérhető a motor WebAssembly-re fordított változata Emscripten segítségével, amely böngészőkben való futásra alkalmas.

A JavaScript támogatja implementációja az ES2019 szabványt tartalmazza, beleértve a modulokat, aszinkron generátorokat és proxykat. Opcionálisan támogatja a nem szabványos matematikai kiterjesztés JavaScript számára, mint például a BigInt és BigFloat típusok, valamint operátorok túlterhelése. Teljesítményben a QuickJS jelentősen felülmúlja a meglévő alternatívákat, például a bench-v8 tesztben 35%-kal megelőzi a
XS motort, DukTape-t több mint kétszer, JerryScript-t háromszor, míg MuJS-t hetedszer. A projekt kínál egy qjs nevű interpretert is, amely lehetővé teszi JavaScript kód futtatását parancssorból. Továbbá elérhető a qjsc fordító is, amely képes önálló végrehajtható fájlokat generálni külső függőségek nélkül.

Kompakt és könnyen beágyazható más projektekbe. A kód mindössze néhány C nyelvű fájlt tartalmaz, amelyek építéshez nem igényelnek külső függőségeket. A legkisebb kompakt alkalmazás körülbelül 190 Kb-ot foglal el;

Főbb jellemzők:

  • Nagyon magas teljesítmény és alacsony indítási idő. A 56 ezer teszt végrehajtása az ECMAScript kompatibilitás alapelveivel körülbelül 100 másodpercet vesz igénybe egy szokásos asztali számítógép egy magján. A runtime inicializálás kevesebb mint 300 mikrosecondot igényel;
  • Szinte teljes támogatás az ES2019 specifikációhoz és teljes támogatás az "B" alkalmazás számára, ami a régi webalkalmazásokkal való kompatibilitási összetevőket határoz meg;
  • A teljes ECMAScript Test Suite összes tesztjének sikeres teljesítése;
  • Támogatja a JavaScript kód végrehajtható fájlokká való fordítását külső függőségek nélkül;
  • A hivatkozás-számlálás alapú szemétgyűjtő, amely megakadályozza a ciklikus tisztítás végrehajtását, lehetővé tette a kiszámítható viselkedést és a memóriafelhasználás csökkentését;
  • Hivatkozás-számláláson alapuló szemétgyűjtő ciklikus tisztítási végrehajtás nélkül, amely előre látható működést és memóriafelhasználás csökkentést tett lehetővé;
  • JavaScript nyelven végzett matematikai számításokhoz készült bővítménycsomag;
  • Parancssori kódvégrehajtó környezet, amely támogatja a kód kiemelését;
  • Kompakt standard könyvtár, amely C könyvtáron alapul.

A projekthez három kapcsolódó C könyvtár is tartozik, amelyek a QuickJS-ben használatosak és külön alkalmazásra is alkalmasak:

  • libregexp — gyors, a Javascript ES 2019 specifikációjával teljes mértékben kompatibilis reguláris kifejezések megvalósítása;
  • libunicode — kompakt könyvtár Unicode kezelésére;
  • libbf — tetszőleges pontosságú lebegőpontos műveletek és transzcendens függvények megvalósítása pontos kerekítéssel.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster