QEMU və FFmpeg-in qurucusu JavaScript mühərriki QuickJS-i dərc etdi

Fransız riyaziyyatçısı Fabrice Bellard, QEMU və FFmpeg layihələrini təsis edən və ən sürətli Pi hesablaması formulunu yaradan şəxsdir. BPG, yeni JavaScript mühərrikinin ilk nəşrini dərc etdi QuickJS. Mühərrik kiçik ölçüsə malikdir və digər sistemlərə inteqrasiya üçün nəzərdə tutulub. Layihənin kodu C dilində yazılıb və MIT lisenziyası altında yayılır. Həmçinin, Emscripten vasitəsilə WebAssembly-yə tərcümə edilmiş mühərrikin toplusu da mövcuddur, bu da brauzerlərdə işə salınmağa uyğundur.

JavaScript-in icrası dəyəri ES2019 spesifikasiyasını, o cümlədən modulları, asinxron generatorları və proxy-ləri dəstəkləyir. İstehsaldan xaric olan qeyri-standart riyazi uzantılar JavaScript üçün, məsələn, BigInt və BigFloat tipləri, eləcə də operatorların yüklənməsi. Performansa görə QuickJS əhəmiyyətli dərəcədə üstünlük təşkil edir mövcud analoqlara, məsələn, bench-v8 testində
XS mühərrikini 35%-dən daha çox qabaqlayır, DukTape iki dəfə, JerryScript üç dəfə, və MuJS yeddi dəfə. yedi kat daha hızlıdır. Proje, motoru gömmek için bir kütüphane, komut satırından JavaScript kodunu çalıştırmak için qjs yorumlayıcısı ve bağımsız çalıştırılabilir dosyalar oluşturmak için qjsc derleyicisi sunuyor. Kod C dilinde yazılmıştır ve Bundan əlavə, tətbiqlərə mühərriki daxil etmək üçün kitabxana ilə yanaşı, JavaScript kodunu komanda xəttindən işlətmək üçün istifadə oluna bilən qjs adlı bir interpretator təklif olunur. Həmçinin, xarici asılılıqlara ehtiyac olmadan müstəqil iş üçün icra edilə bilən faylları yarada bilən qjsc adlı bir kompilyator mövcuddur.

Digər layihələrə inteqrasiya üçün kiçik ölçüsü. Kod yalnız bir neçə C dilində fayl ehtiva edir, xarici asılılıqlara ehtiyac duymur. Sıfırdan toplanmış ən sadə tətbiq təxminən 190 kB yer tutur;

Əsas xüsusiyyətlər:

  • Çox yüksək performans və az işə salma müddəti. ECMAScript uyğunluğu üzrə 56 min testin keçirilməsi adi masaüstü kompüterin bir nüvəsində təxminən 100 saniyə çəkir. Runtime-in başlanması 300 mikrosekunddan azdır;
  • ES2019 spesifikasiyasının demək olar ki, tam dəstəyi və köhnə veb tətbiqləri ilə uyğunluğu təmin edən "B" tətbiqinin tam dəstəyi;
  • ECMAScript Test Suite-in bütün testlərindən tam keçid;
  • Xarici asılılıqlar olmadan JavaScript kodunun müstəqil icra edilən fayllara çevrilməsinin dəstəyi;
  • Döngü əməliyyatını təkrarlanmayan referans sayımı əsasında olan zibil toplayıcı, proqnozlaşdırılan davranışı və yaddaş istehlakının azalmasını təmin edir;
  • JavaScript-də riyazi hesablamalar üçün uzantılar paketi;
  • Kontekstə uyğun kodu vurğulayan komanda xəttində kodu icra etmək üçün bir qabıq;
  • C kitabxanası üzərində bağlama ilə standart kitabxana.
  • Layihə, QuickJS-də ifa olunan və ayrı tətbiq üçün uyğun olan üç əlavə C kitabxanasını da inkişaf etdirir:

Layihə, QuickJS-də istifadə olunan və ayrıca tətbiq üçün yararlı olan üç köməkçi C kitabxanasının inkişafını da nəzərdə tutur:

  • libregexp — JavaScript ES 2019 spesifikasiyasını tam uyğun olan sürətli müntəzəm ifadələrin tətbiqi;
  • libunicode — Unicode ilə işləmək üçün kompakt kitabxana;
  • libbf — dəqiqliklə yuvarlaqlaşdırılma ilə istənilən dəqiqlikdə onluq nöqtə əməliyyatları və transcendental funksiyalarının icrası.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster