QEMU සහ FFmpeg නිර්මාතෘ QuickJS JavaScript එන්ජිම ප්‍රකාශයට පත් කරයි

QEMU සහ FFmpeg ව්‍යාපෘති ආරම්භ කළ ප්‍රංශ ගණිතඥයෙකු වන Fabrice Bellard, Pi අංකය ගණනය කිරීම සඳහා වේගවත්ම සූත්‍රය නිර්මාණය කර රූප ආකෘතිය නිර්මාණය කළේය. බීපීජී, නව JavaScript එන්ජිමෙහි පළමු නිකුතුව ප්‍රකාශයට පත් කරන ලදී QuickJS. එන්ජිම සංයුක්ත වන අතර අනෙකුත් පද්ධති සමඟ ඒකාබද්ධ කිරීම සඳහා නිර්මාණය කර ඇත. ව්යාපෘති කේතය C වලින් ලියා ඇති අතර MIT බලපත්රය යටතේ බෙදා හරිනු ලැබේ. එම්ස්ක්‍රිප්ටන් භාවිතයෙන් WebAssembly වෙත සම්පාදනය කරන ලද සහ බ්‍රවුසරවල ක්‍රියාත්මක කිරීම සඳහා සුදුසු එන්ජිමේ ගොඩනැගීමක් ද ඇත.

JavaScript ක්‍රියාත්මක කිරීම සහයෝගය දක්වයි මොඩියුල, අසමමුහුර්ත ජනක යන්ත්‍ර සහ ප්‍රොක්සි ඇතුළුව ES2019 පිරිවිතර. සම්මත නොවන ගණිතය විකල්ප වශයෙන් සහාය දක්වයි පුළුල් කිරීම BigInt සහ BigFloat වර්ග වැනි JavaScript සඳහා මෙන්ම ක්රියාකරු අධික ලෙස පැටවීම. QuickJS හි කාර්ය සාධනය සැලකිය යුතු ය වඩා උසස් ලබා ගත හැකි ඇනෙලොග්, උදාහරණයක් ලෙස, පරීක්ෂණයේදී
Bench-v8 එන්ජිමට වඩා ඉදිරියෙන් ඇත XS 35%දී, ඩක්ටේප් දෙගුණයකටත් වඩා වැඩි විය ජෙරීස්ක්‍රිප්ට් තුන් වරක් සහ මුජේඑස් සත් වරක්.

යෙදුම් වලට එන්ජිම කාවැද්දීම සඳහා පුස්තකාලයට අමතරව, ව්‍යාපෘතිය qjs පරිවර්තකයක් ද ලබා දෙයි, එය විධාන රේඛාවෙන් JavaScript කේතය ධාවනය කිරීමට භාවිතා කළ හැකිය. තවද, qjsc සම්පාදකය ලබා ගත හැකි අතර, බාහිර පරායත්තතා අවශ්‍ය නොවන තනිව ක්‍රියාත්මක කිරීම සඳහා සුදුසු ප්‍රතිදාන ක්‍රියාත්මක කළ හැකි ගොනු ජනනය කිරීමේ හැකියාව ඇත.

ප්රධාන ලක්ෂණ:

  • වෙනත් ව්‍යාපෘති සමඟ ඒකාබද්ධ කිරීමට සංයුක්ත සහ පහසුය. එකලස් කිරීම සඳහා බාහිර පරායත්තතා අවශ්‍ය නොවන C ගොනු කිහිපයක් පමණක් කේතයට ඇතුළත් වේ. සරලම සම්පාදනය කරන ලද යෙදුම 190 KB පමණ වේ;
  • ඉතා ඉහළ කාර්ය සාධනයක් සහ කෙටි ආරම්භක කාලය. සාමාන්‍ය ඩෙස්ක්ටොප් පරිගණකයක තනි හරයක් මත ක්‍රියාත්මක කරන විට ECMAScript අනුකූලතා පරීක්ෂණ 56ක් සමත් වීමට තත්පර 100ක් පමණ ගත වේ. ධාවන කාලය ආරම්භ කිරීම සඳහා මයික්‍රො තත්පර 300කට වඩා අඩු කාලයක් ගතවේ;
  • ES2019 පිරිවිතර සඳහා සම්පූර්ණ සහය සහ උපග්‍රන්ථ B සඳහා පූර්ණ සහාය, එය උරුම වෙබ් යෙදුම් සමඟ ගැළපීම සඳහා සංරචක නිර්වචනය කරයි;
  • ECMAScript පරීක්ෂණ කට්ටලයෙන් සියලුම පරීක්ෂණ සම්පූර්ණයෙන් සමත් වීම;
  • ජාවාස්ක්‍රිප්ට් කේතය බාහිර පරායත්තතා නොමැතිව ක්‍රියාත්මක කළ හැකි ගොනු බවට සම්පාදනය කිරීම සඳහා සහාය;
  • චක්‍රීය පිරිසිදු කිරීමකින් තොරව යොමු ගණන් කිරීම මත පදනම් වූ කසළ එකතු කරන්නෙකු, අපට පුරෝකථනය කළ හැකි හැසිරීම් සාක්ෂාත් කර ගැනීමට සහ මතක පරිභෝජනය අඩු කිරීමට ඉඩ සලසයි;
  • JavaScript හි ගණිතමය ගණනය කිරීම් සඳහා දිගු කට්ටලයක්;
  • විධාන රේඛා ආකාරයෙන් කේතය ක්‍රියාත්මක කිරීම සඳහා කවචයක්, සන්දර්භීය කේත උද්දීපනයට සහය දක්වයි;
  • C පුස්තකාලයට උඩින් දවටන සහිත සංයුක්ත සම්මත පුස්තකාලය.

මෙම ව්‍යාපෘතිය QuickJS හා සම්බන්ධ සහ තනි පුද්ගල භාවිතය සඳහා සුදුසු C පුස්තකාල තුනක් ද සංවර්ධනය කරමින් සිටී:

  • libregexp - නිත්‍ය ප්‍රකාශන වේගයෙන් ක්‍රියාත්මක කිරීම, Javascript ES 2019 පිරිවිතර සමඟ සම්පුර්ණයෙන්ම අනුකූල වේ;
  • libunicode - යුනිකෝඩ් සමඟ වැඩ කිරීම සඳහා සංයුක්ත පුස්තකාලයක්;
  • libbf - අත්තනෝමතික නිරවද්‍යතාවයෙන් යුත් පාවෙන ලක්ෂ්‍ය ක්‍රියාවන් සහ නිශ්චිත වටකුරු සහිත පාරභෞතික ශ්‍රිත ක්‍රියාත්මක කිරීම.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න