QEMU və FFmpeg Təsisçisi QuickJS JavaScript Mühərrikini Nəşr edir

Bir vaxtlar QEMU və FFmpeg layihələrini quran, həmçinin pi hesablanması üçün ən sürətli düstur yaradan və şəkil formatını inkişaf etdirən fransız riyaziyyatçısı Fabrice Bellard ÜDM, yeni JavaScript mühərrikinin ilk buraxılışını nəşr etdi QuickJS. Mühərrik kompaktdır və digər sistemlərə yerləşdirməyə yönəlib. Layihə kodu C dilində yazılmışdır və MIT lisenziyası altında paylanmışdır. Emscripten istifadə edərək WebAssembly üçün tərtib edilmiş və brauzerlərdə icra üçün uyğun olan mühərrik yığılması da mövcuddur.

JavaScript Tətbiqi dəstəkləyir modullar, asinxron generatorlar və proksilər daxil olmaqla ES2019 spesifikasiyası. Qeyri-standart riyaziyyat isteğe bağlı olaraq dəstəklənir. genişlənməsi BigInt və BigFloat növləri kimi JavaScript üçün, həmçinin operatorun həddindən artıq yüklənməsi. Performans baxımından QuickJS əhəmiyyətlidir üstündür mövcud analoqlar, məsələn, testdə
bench-v8 mühərriki qabaqlayır XS 35%, duktape iki dəfədən çox jerryscript üç dəfə və MuJS yeddi dəfə.

Mühərrikin tətbiqlərə daxil edilməsi üçün kitabxanadan əlavə, layihə həmçinin komanda xəttindən JavaScript kodunu işə salmaq üçün istifadə oluna bilən qjs tərcüməçisini təklif edir. Bundan əlavə, xarici asılılıq tələb etməyən müstəqil icra edilə bilən fayllar yarada bilən qjsc kompilyatoru mövcuddur.

Əsas xüsusiyyətlər:

  • Kompakt və digər layihələrə inteqrasiya etmək asandır. Koda xarici asılılıqların qurulmasını tələb etməyən yalnız bir neçə C faylı daxildir. Tərtib edilmiş sadə proqram təxminən 190 KB tutur;
  • Çox yüksək performans və aşağı başlanğıc vaxtı. 56 min ECMAScript uyğunluğu testindən keçmək, tipik bir masaüstü kompüterin bir nüvəsində icra edildikdə, təxminən 100 saniyə çəkir. İş vaxtının işə salınması 300 mikrosaniyədən az vaxt aparır;
  • ES2019 spesifikasiyası üçün demək olar ki, tam dəstək və köhnə veb tətbiqləri ilə uyğunluq üçün komponentləri müəyyən edən Əlavə B üçün tam dəstək;
  • ECMAScript Test Suite-dən bütün testlərdən tam keçmək;
  • Javascript kodunu xarici asılılıqlar olmadan icra edilə bilən fayllara tərtib etmək üçün dəstək;
  • Proqnozlaşdırıla bilən davranışa və azaldılmış yaddaş istehlakına imkan verən təmizləmə velosipedi olmadan istinadla hesablanmış zibil toplayıcısı;
  • JavaScript dilində riyazi hesablamalar üçün əlavələr dəsti;
  • Kontekstual kodun işıqlandırılmasını dəstəkləyən əmr xətti rejimində kodun icrası üçün qabıq;
  • C kitabxanası üzərində bağlamaları olan kompakt standart kitabxana.

Layihə həmçinin QuickJS-də iştirak edən və ayrıca tətbiq üçün uyğun olan üç C-kitabxananı hazırlayır:

  • libregexp Javascript ES 2019 spesifikasiyasına tam uyğun gələn müntəzəm ifadələrin sürətli tətbiqidir;
  • libunicod - Unicode ilə işləmək üçün kompakt kitabxana;
  • libbf ixtiyari dəqiqlikli üzən nöqtə əməliyyatlarının və dəqiq yuvarlaqlaşdırma transsendental funksiyalarının həyata keçirilməsidir.

Mənbə: opennet.ru

Добавить комментарий