Il fondatore di QEMU e FFmpeg ha pubblicato il motore JavaScript QuickJS

Il matematico francese Fabrice Bellard, fondatore dei progetti QEMU e FFmpeg, nonché creatore della formula più veloce per calcolare il numero Pi e sviluppatore del formato delle immagini BPG, ha pubblicato il primo rilascio di un nuovo motore JavaScript. QuickJSIl motore è caratterizzato da compattezza ed è orientato all'integrazione in altri sistemi. Il codice del progetto è scritto in linguaggio C e viene distribuito sotto licenza MIT. È disponibile anche una build del motore, compilata in WebAssembly tramite Emscripten e adatta per l'esecuzione nei browser.

Implementazione di JavaScript supporta rispetta la specifica ES2019, inclusi moduli, generatori asincroni e proxy. Supporto opzionale per funzioni matematiche non standard estensione per JavaScript, come i tipi BigInt e BigFloat, oltre a sovraccarico degli operatori. In termini di prestazioni, QuickJS risulta significativamente gli superiore ai motori esistenti, ad esempio nel test
bench-v8, che supera il motore XS del 35%, DukTape di oltre il doppio, JerryScript per tre volte, e MuJS di sette volte.

Oltre alla libreria per integrare il motore nelle applicazioni, il progetto offre anche un interprete qjs, utilizzabile per eseguire codice JavaScript dalla riga di comando. Inoltre, è disponibile un compilatore qjsc, capace di generare file eseguibili autonomi, privi di dipendenze esterne.

Caratteristiche principali:

  • Compattezza e facilità di integrazione in altri progetti. Il codice include solo pochi file in linguaggio C, senza la necessità di dipendenze esterne per la compilazione. L'applicazione più semplice compilata occupa circa 190 KB;
  • Prestazioni molto elevate e tempi di avvio ridotti. Il completamento di 56.000 test di compatibilità con ECMAScript richiede circa 100 secondi su un singolo core di un normale PC desktop. L'inizializzazione del runtime richiede meno di 300 microsecondi;
  • Quasi pieno supporto per la specifica ES2019 e pieno supporto per l'app "B", che definisce componenti per la compatibilità con le vecchie applicazioni web;
  • Completamento completo di tutti i test del set ECMAScript Test Suite;
  • Supporto per la compilazione di codice JavaScript in file eseguibili senza dipendenze esterne;
  • Raccolta dei rifiuti basata sul conteggio dei riferimenti senza esecuzione di pulizia ciclica, che ha consentito di ottenere un comportamento prevedibile e una riduzione del consumo di memoria;
  • Set di estensioni per calcoli matematici in linguaggio JavaScript;
  • Un'interfaccia per l'esecuzione di codice in modalità a riga di comando, che supporta l'evidenziazione della sintassi;
  • Una libreria standard compatta con un'interfaccia sopra la libreria C.

Il progetto sviluppa anche tre librerie C complementari, utilizzate in QuickJS e adatte per un uso separato:

  • libregexp — un'implementazione rapida di espressioni regolari, completamente compatibile con la specifica Javascript ES 2019;
  • libunicode — una libreria compatta per lavorare con Unicode;
  • libbf — un'implementazione di operazioni in virgola mobile di precisione arbitraria e funzioni trascendenti con arrotondamento preciso.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster