Grundaren av QEMU och FFmpeg har publicerat JavaScript-motorn QuickJS

Den franske matematikern Fabrice Bellard, som grundade projekten QEMU och FFmpeg, samt skapade den snabbaste formeln för att berÀkna talet Pi och utvecklade bildformatet BPG, har publicerat den första utgÄvan av en ny JavaScript-motor QuickJS. Motorn Àr kompakt och Àr inriktad pÄ att integreras i andra system. Projektkoden Àr skriven i C och distribueras under MIT-licensen. En version av motorn finns ocksÄ tillgÀnglig, kompilera till WebAssembly med hjÀlp av Emscripten och lÀmplig för körning i webblÀsare.

Implementation av JavaScript att specifikationen ES2019, inklusive moduler, asynkrona generatorer och proxies. Valfritt stöds icke-standardiserade matematiska tillÀgget funktioner för JavaScript, sÄsom typerna BigInt och BigFloat, samt operatörsoberoende. NÀr det gÀller prestanda övertrÀffar QuickJS vÀsentligt de befintliga alternativen ( befintliga alternativ, till exempel i testet
bench-v8 som övertrÀffar motorn med 35%, DukTape mer Àn dubbelt sÄ mycket, JerryScript tre gÄnger, och MuJS sju gÄnger). Projektet erbjuder ett bibliotek för att integrera motorn, tolk qjs för att köra JavaScript-kod frÄn kommandoraden och kompilatorn qjsc för att generera fristÄende körbara filer. Koden Àr skriven i C och med sju gÄnger.

Förutom biblioteket för att integrera motorn i applikationer, erbjuder projektet ocksÄ en tolk, qjs, som kan anvÀndas för att köra JavaScript-kod frÄn kommandoraden. Dessutom finns en kompilator, qjsc, som kan generera körbara filer som kan köras fristÄende utan externa beroenden.

Huvudfunktioner:

  • Kompakthet och enkel integration i andra projekt. Koden bestĂ„r endast av nĂ„gra fĂ„ C-filer som inte krĂ€ver externa beroenden för sammanstĂ€llning. Den sammanstĂ€llda enklaste applikationen tar upp cirka 190 Kb;
  • Mycket hög prestanda och kort starttid. Genomförande av 56 000 tester för kompatibilitet med ECMAScript tar cirka 100 sekunder vid körning pĂ„ en kĂ€rna av en vanlig skrivborddator. Initiering av runtime tar mindre Ă€n 300 mikrosekunder;
  • NĂ€stan fullstĂ€ndig support för ES2019-specifikationen och fullstĂ€ndig support för applikation "B", som definierar komponenter för kompatibilitet med Ă€ldre webbapplikationer;
  • FullstĂ€ndig genomföring av alla tester frĂ„n ECMAScript Test Suite;
  • Stöd för kompilering av JavaScript-kod till körbara filer utan externa beroenden;
  • En skrĂ€psamling baserad pĂ„ referensrĂ€kning utan cyklisk stĂ€dning, vilket möjliggör förutsĂ€gbart beteende och minskad minnesanvĂ€ndning;
  • Ett antal tillĂ€gg för matematiska berĂ€kningar i JavaScript;
  • Ett skriptmiljö för att köra kod i kommandoradslĂ€ge med stöd för syntaxmarkering.
  • En kompakt standardbibliotek med bindningar till C-biblioteket.

Projektet utvecklar ocksÄ tre relaterade C-bibliotek som anvÀnds i QuickJS och Àr lÀmpliga för separat anvÀndning:

  • libregexp — en snabb implementation av reguljĂ€ra uttryck som Ă€r helt kompatibla med JavaScript ES 2019-specifikationen;
  • libunicode — ett kompakt bibliotek för att arbeta med Unicode;
  • libbf — en implementation av operationer med flyttal av godtycklig precision och transcendentala funktioner med exakt avrundning.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster