Der französische Mathematiker Fabrice Bellard, der einst die Projekte QEMU und FFmpeg gründete, außerdem die schnellste Formel zur Berechnung von Pi entwickelte und das Bildformat entwickelte
JavaScript-Implementierung
Der Bank-V8 ist dem Motor voraus
Neben der Bibliothek zur Einbettung der Engine in Anwendungen bietet das Projekt auch den qjs-Interpreter, mit dem sich JavaScript-Code über die Kommandozeile ausführen lässt. Darüber hinaus ist der qjsc-Compiler verfügbar, der eigenständige ausführbare Dateien generieren kann, die keine externen Abhängigkeiten erfordern.
Hauptmerkmale:
- Kompakt und einfach in andere Projekte integrierbar. Der Code enthält nur wenige C-Dateien, für deren Erstellung keine externen Abhängigkeiten erforderlich sind. Die kompilierte einfache Anwendung benötigt etwa 190 KB;
- Sehr hohe Leistung und kurze Startzeit. Das Bestehen von 56 ECMAScript-Kompatibilitätstests dauert etwa 100 Sekunden, wenn es auf einem einzelnen Kern eines typischen Desktop-PCs ausgeführt wird. Die Laufzeitinitialisierung dauert weniger als 300 Mikrosekunden;
- Nahezu vollständige Unterstützung für die ES2019-Spezifikation und vollständige Unterstützung für Anhang B, der Komponenten für die Kompatibilität mit älteren Webanwendungen definiert;
- Vollständiges Bestehen aller Tests der ECMAScript Test Suite;
- Unterstützung für das Kompilieren von Javascript-Code in ausführbare Dateien ohne externe Abhängigkeiten;
- Referenzgezählter Garbage Collector ohne Bereinigungszyklus, der ein vorhersehbares Verhalten und einen reduzierten Speicherverbrauch ermöglichte;
- Eine Reihe von Erweiterungen für mathematische Berechnungen in der JavaScript-Sprache;
- Eine Shell zum Ausführen von Code im Befehlszeilenmodus, die kontextbezogene Codehervorhebung unterstützt;
- Eine kompakte Standardbibliothek mit Bindungen über die C-Bibliothek.
Das Projekt entwickelt außerdem drei begleitende C-Bibliotheken, die an QuickJS beteiligt sind und für eine separate Anwendung geeignet sind:
- libregexp ist eine schnelle Implementierung regulärer Ausdrücke, die vollständig mit der Javascript ES 2019-Spezifikation kompatibel ist;
- libunicode – eine kompakte Bibliothek für die Arbeit mit Unicode;
- libbf ist eine Implementierung von Gleitkommaoperationen mit beliebiger Genauigkeit und transzendenten Funktionen zur exakten Rundung.
Source: opennet.ru