Il matematico francese Fabrice Bellard, che una volta fondò i progetti QEMU e FFmpeg, creò anche la formula più veloce per calcolare pi greco e sviluppò il formato dell'immagine
Implementazione JavaScript
bench-v8 è davanti al motore
Oltre alla libreria per incorporare il motore nelle applicazioni, il progetto offre anche l'interprete qjs, che può essere utilizzato per eseguire codice JavaScript dalla riga di comando. Inoltre è disponibile il compilatore qjsc, in grado di generare file eseguibili standalone che non necessitano di dipendenze esterne.
Caratteristiche principali:
- Compatto e facile da integrare in altri progetti. Il codice include solo pochi file C che non richiedono la compilazione di dipendenze esterne. La semplice applicazione compilata occupa circa 190 KB;
- Prestazioni molto elevate e tempi di avvio ridotti. Il superamento di 56mila test di compatibilità ECMAScript richiede circa 100 secondi se eseguito su un singolo core di un tipico PC desktop. L'inizializzazione del runtime richiede meno di 300 microsecondi;
- Supporto quasi completo per la specifica ES2019 e supporto completo per l'allegato B, che definisce i componenti per la compatibilità con le applicazioni Web precedenti;
- Superamento completo di tutti i test della ECMAScript Test Suite;
- Supporto per la compilazione di codice Javascript in file eseguibili senza dipendenze esterne;
- Garbage Collector con conteggio dei riferimenti senza ciclo di pulizia, che ha consentito un comportamento prevedibile e un consumo di memoria ridotto;
- Un insieme di estensioni per calcoli matematici nel linguaggio JavaScript;
- Una shell per l'esecuzione di codice in modalità riga di comando che supporta l'evidenziazione contestuale del codice;
- Una libreria standard compatta con binding sulla libreria C.
Il progetto sviluppa anche tre librerie C complementari coinvolte in QuickJS e adatte per un'applicazione separata:
- libregexp è un'implementazione veloce di espressioni regolari completamente conforme alla 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 trascendentali di arrotondamento esatto.
Fonte: opennet.ru