U fundatore di QEMU è FFmpeg hà publicatu u mutore JavaScript QuickJS

U matematicu francese Fabrice Bellard, chì hà fundatu i prughjetti QEMU è FFmpeg, hà ancu creatu a formula più veloce per calculà u numeru Pi è hà sviluppatu u formatu di l'imaghjini. PIB, hà publicatu a prima liberazione di u novu mutore JavaScript QuickJS. U mutore hè compactu è pensatu per l'integrazione in altri sistemi. U codice di u prughjettu hè scrittu in C è hè distribuitu sottu a licenza MIT. Una custruzzione di u mutore hè ancu dispunibule, cumpilata in WebAssembly cù Emscripten è adattatu per l'esekzione in i navigatori.

Implementazione JavaScript sustegnu Specificazione ES2019, cumpresi moduli, generatori asincroni è proxy. E matematiche non standard sò opzionalmente supportate ingrandamentu per JavaScript, cum'è tipi BigInt è BigFloat, è ancu sovraccarico di operatore. U rendiment di QuickJS hè significativu superiore à analogi dispunibili, per esempiu, in a prova
bench-v8 hè davanti à u mutore XS à 35%, duktape più di duie volte jerryscript trè volte è MuJS sette volte.

In più di a biblioteca per incrustà u mutore in l'applicazioni, u prughjettu prupone ancu un interprete qjs, chì pò esse usatu per eseguisce codice JavaScript da a linea di cummanda. Inoltre, u compilatore qjsc hè dispunibule, capace di generà fugliali eseguibili di output adattati per l'esecuzione stand-alone chì ùn necessitanu micca dipendenze esterne.

Principi caratteristiche:

  • Compact è faciule da integrà in altri prughjetti. U codice include solu uni pochi di schedari C chì ùn necessitanu micca dipendenze esterne per l'assemblea. L'applicazione compilata più simplice piglia circa 190 KB;
  • Rendimentu assai altu è tempu di startup brevi. Passà 56 mila teste di cumpatibilità ECMAScript dura circa 100 seconde quandu eseguite nantu à un core unicu di un PC desktop regulare. L'inizializazione di u runtime dura menu di 300 microsecondi;
  • Supportu quasi cumpletu per a specificazione ES2019 è supportu cumpletu per l'Appendice B, chì definisce cumpunenti per a cumpatibilità cù l'applicazioni web legacy;
  • Passà cumpletu di tutti i testi da a Suite di Test ECMAScript;
  • Supportu per a compilazione di codice Javascript in fugliali eseguibili senza dipendenze esterne;
  • Un cullettivu di basura basatu annantu à u cuntu di riferimentu senza pulizia ciclica, chì ci hà permessu di ottene un cumpurtamentu prevedibile è riduce u cunsumu di memoria;
  • Un inseme di estensioni per i calculi matematichi in JavaScript;
  • Una shell per eseguisce codice in modu di linea di cumanda, chì sustene l'evidenziazione di codice contextuale;
  • Libreria standard compatta cù wrappers sopra a biblioteca C.

U prughjettu sviluppa ancu trè biblioteche C accumpagnate implicate in QuickJS è adattate per l'usu individuale:

  • libregexp - implementazione rapida di espressioni regulari, cumplettamente cumpatibile cù a specificazione Javascript ES 2019;
  • libunicode - una biblioteca compatta per travaglià cù Unicode;
  • libbf - Implementazione di operazioni in virgola flottante di precisione arbitraria è funzioni trascendentali cù arrotondamentu esattu.

Source: opennet.ru

Add a comment