QuickJS - μια ελαφριά μηχανή JavaScript που αναπτύχθηκε από τον ιδρυτή της QEMU και της FFmpeg

το JavaScript

Γάλλος μαθηματικός Fabrice Bellard, ο οποίος ίδρυσε τα έργα QEMU και FFmpeg και που δημιούργησε επίσης τον ταχύτερο τύπο υπολογισμού του αριθμού Pi και ανέπτυξε τη μορφή εικόνας BPG.

Ο Fabrice Bellard είναι πιο γνωστός ως ο κύριος προγραμματιστής του QEMU (ένας εξομοιωτής που μιμείται διάφορες αρχιτεκτονικές υλικού) και ο Tiny C Compiler (tcc), ένας πολύ μικρός αλλά περιεκτικός μεταγλωττιστής C, αρχικά γραμμένος για να κερδίσει τον «Διεθνή Διαγωνισμό Κωδικού Γ.

Τώρα πρόσφατα μοιράστηκε στο κοινό την πρώτη έκδοση του νέου του έργου που είναι σε JavaScript και αυτό είναι μια νέα μηχανή που ονομάζεται JavaScript QuickJS.

Σχετικά με το JavaScript QuickJS

Η μηχανή JavaScript QuickJS είναι συμπαγές και σχεδιασμένο για ενσωμάτωση σε άλλα συστήματα. Ο κωδικός του έργου Είναι γραμμένο σε C και διανέμεται με άδεια MIT. Διατίθεται επίσης μια κατασκευή κινητήρα που έχει μεταγλωττιστεί στο WebAss Assembly χρησιμοποιώντας το Emscripten και είναι κατάλληλο για εκτέλεση σε προγράμματα περιήγησης.

Η εφαρμογή JavaScript υποστηρίζει τις προδιαγραφές ES2019, συμπεριλαμβανομένων των ενοτήτων, των ασύγχρονων γεννητριών και των διακομιστών μεσολάβησης.

Στη μηχανή JavaScript του QuickJS Υποστηρίζονται προαιρετικές μη τυπικές επεκτάσεις μαθηματικών για JavaScript, όπως οι τύποι BigInt και BigFloat, καθώς και η υπερφόρτωση του χειριστή.

Απόδοσης, το QuickJS ξεπερνά σημαντικά τα διαθέσιμα ανάλογαΓια παράδειγμα, στη δοκιμή bench-v8, ο κινητήρας XS είναι 35% μπροστά, ο DukTape υπερδιπλασιάστηκε, ο JerryScript τρεις φορές και ο MuJS επτά φορές.

Εκτός από τη βιβλιοθήκη για την ενσωμάτωση του κινητήρα στην εφαρμογή, το έργο προσφέρει επίσης τον διερμηνέα qjs, που μπορεί να χρησιμοποιηθεί για την εκτέλεση κώδικα JavaScript από τη γραμμή εντολών.

Επιπλέον, ο μεταγλωττιστής qjsc είναι διαθέσιμος και μπορεί να εξάγει εκτελέσιμα αρχεία που μπορούν να εκτελεστούν ξεχωριστά και ότι αυτά δεν απαιτούν εξωτερικές εξαρτήσεις.

Από τα κύρια χαρακτηριστικά της μηχανής QuickJS JavaScript ξεχωρίζουν τα ακόλουθα σημεία:

  • Συμπαγής και εύκολη ενσωμάτωση σε άλλα έργα. Ο κώδικας περιλαμβάνει μόνο λίγα αρχεία C που δεν απαιτούν την κατασκευή εξωτερικών εξαρτήσεων. Μια απλή μεταγλωττισμένη εφαρμογή παίρνει περίπου 190 Kb
  • Πολύ υψηλή απόδοση και γρήγοροι χρόνοι εκκίνησης. Περνώντας 56 χιλιάδες δοκιμές συμβατότητας ECMAScript χρειάζονται περίπου 100 δευτερόλεπτα όταν εκτελείτε μια κανονική επιφάνεια εργασίας σε έναν πυρήνα. Η προετοιμασία χρόνου εκτέλεσης διαρκεί λιγότερο από 300 μικροδευτερόλεπτα
  • Σχεδόν πλήρης υποστήριξη για τις προδιαγραφές ES2019 και πλήρης υποστήριξη για την εφαρμογή "B", η οποία καθορίζει τα στοιχεία για συμβατότητα με παλαιότερες εφαρμογές ιστού
  • Ολοκληρώστε το πέρασμα όλων των δοκιμών του ECMAScript Test Suite
  • Υποστήριξη για τη σύνταξη κώδικα Javascript σε εκτελέσιμα αρχεία χωρίς εξωτερικές εξαρτήσεις
  • Ο συλλέκτης απορριμμάτων βασίζεται στην καταμέτρηση αναφοράς χωρίς κυκλικό καθαρισμό, επιτρέποντας προβλέψιμη συμπεριφορά και μειωμένη κατανάλωση μνήμης
  • Ένα σύνολο επεκτάσεων για μαθηματικούς υπολογισμούς στη γλώσσα JavaScript
  • Ένα κέλυφος για την εκτέλεση κώδικα σε λειτουργία γραμμής εντολών, το οποίο υποστηρίζει επισήμανση κώδικα με βάση τα συμφραζόμενα
  • Συμπαγής τυπική βιβλιοθήκη μέσω βιβλιοθήκης C.

Επιπλέον, Από την άλλη πλευρά, το έργο αναπτύσσει επίσης τρεις βιβλιοθήκες Γ συνδεδεμένα μέρη που εμπλέκονται στο QuickJS και είναι κατάλληλα για ατομική χρήση:

  1. freegexp: μια μικρή και γρήγορη βιβλιοθήκη regex που συμμορφώνεται με τις προδιαγραφές JavaScript ES2019
  2. libunicode: μια μικρή βιβλιοθήκη Unicode που υποστηρίζει μετατροπή πεζών-κεφαλαίων, ομαλοποίηση Unicode, αιτήματα σεναρίων Unicode, ερωτήματα γενικής κατηγορίας Unicode και όλες τις δυαδικές ιδιότητες Unicode
  3. libbf: Αυτή είναι επίσης μια μικρή βιβλιοθήκη που υλοποιεί λειτουργίες κινητής υποδιαστολής IEEE 754 και υπερβατικές λειτουργίες με ακριβή στρογγυλοποίηση. Διατηρείται ως ξεχωριστό έργο.

Πώς να αποκτήσετε το SavaScript QuickJS;

Η λήψη του πηγαίου κώδικα για τη συλλογή μπορεί να γίνει από τον ακόλουθο σύνδεσμο. Μετά την εγκατάσταση, παρέχεται ένα Makefile για τη μεταγλώττιση του κινητήρα σε Linux ή Mac OS / X.

Στον ίδιο σύνδεσμο μπορείτε να συμβουλευτείτε την τεκμηρίωση QuickJS Για περισσότερες πληροφορίες. Παρέχει επίσης στοιχεία αναφοράς που δείχνουν την απόδοση του QuickJS με τον κινητήρα V8 της Google και μια σύγκριση μεταξύ αυτού και άλλων εργαλείων στην ίδια κατηγορία.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.