QEMU ja FFmpeg asutaja avaldas JavaScripti mootori QuickJS

Prantsuse matemaatik Fabrice Bellard, kes on asutanud projektid QEMU ja FFmpeg ning loonud kõige kiirema π-arvutamise valemi ja pildiformaadi BPG, avaldas uue JavaScript-mootori esimese väljaande QuickJS. Mootor on kompaktne ja suunatud integreerimisele teiste süsteemidega. Projekti kood on kirjutatud C keeles ja seda levitatakse MIT litsentsi alusel. Samuti on saadaval mootori versioon, mis on koostatud WebAssembly’ks Emscripteni abil ja sobib brauserites käitamiseks.

JavaScripti rakendus toetab vastab ES2019 spetsifikatsioonile, sealhulgas moodulitele, asünkroonsetele generaatoritele ja proksidele. Valikuliselt toetatakse mitte-standardseid matemaatilisi laiendust funktsioone JavaScriptis, nagu BigInt ja BigFloat tübid ning operaatorite ülekoormus. QuickJS ületab oluliselt konkurente, näiteks testis bench-v8 ületab mootori
bench-v8 опережает движок XS 35%, DukTape üle kahe korra, JerryScript kolme korra ning MuJS seitsme korra.

Rakenduste integreerimise juurde kuulub ka qjs tõlkija, mida saab kasutada JavaScripti koodi käitamiseks käsurealt. Lisaks on saadaval qjsc kompilaator, mis suudab genereerida sõltumatuks käivitamiseks vajalikke täidetavaid faile, mis ei vajad väliseid sõltuvusi.

Peamised omadused:

  • Kompaktsus ja lihtsus integreerimisel teistesse projektidesse. Kood sisaldab vaid mõnda C keeles kirjutatud faili, mis ei vaja kogumiseks väliseid sõltuvusi. Kompileeritud kõige lihtsam rakendus võtab umbes 190 Kb;
  • Väga kõrge jõudlus ja madal käivituse aeg. 56 000 ECMAScripti ühilduvuse testi läbimine võtab tavalise lauaarvuti ühel tuumal aega umbes 100 sekundit. Runtime'i initsialiseerimine võtab vähem kui 300 mikrosekundit;
  • Peaaegu täielik ES2019 spetsifikatsiooni tugi ja täielik rakenduse „B” tugi, mis määratleb komponendid vanemate veebirakendustega ühilduvuse tagamiseks;
  • Kõik ECMAScript Test Suite'i testid on täielikult läbitud;
  • Toetab JavaScripti koodi kompileerimist täidetavateks failideks ilma välistest sõltuvustest;
  • Viidete põhjal põhinev prügikorraldaja, mis ei tee tsüklilisi puhastusi, tagades ettearvatava käitumise ja vähendades mälutarvet;
  • JavaScripti matemaatiliste arvutuste laienduste komplekt;
  • Koodijooksukeskkond, mis toetab kontekstilist koodi esitlemist.
  • Kompaktne standardraamatukogu C-raamatukogude kohal.

Projekt arendab ka kolme juurdekuuluvat C-raamatukogu, mida kasutatakse QuickJS-is ja mis sobivad ka iseseisvaks kasutamiseks:

  • libregexp — kiire regulaaravaldiste rakenduse teostus, mis on täielikult ühilduv Javascripti ES 2019 spetsifikatsiooniga;
  • libunicode — kompaktne raamatukogu Unicode'i töötlemiseks;
  • libbf — muutuva täpsusega ujukomaarvude ja transsendentsete funktsioonide teostus täpse ümardamisega.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster