QEMU மற்றும் FFmpeg நிறுவனர் QuickJS JavaScript இன்ஜினை வெளியிடுகின்றனர்

பிரெஞ்சு கணிதவியலாளர் ஃபேப்ரிஸ் பெல்லார்ட், ஒரு காலத்தில் QEMU மற்றும் FFmpeg திட்டங்களை நிறுவினார், மேலும் pi ஐ கணக்கிடுவதற்கான வேகமான சூத்திரத்தையும் உருவாக்கி, பட வடிவமைப்பை உருவாக்கினார். பிபிஜி, புதிய ஜாவாஸ்கிரிப்ட் இயந்திரத்தின் முதல் வெளியீட்டை வெளியிட்டது QuickJS. இயந்திரம் கச்சிதமானது மற்றும் பிற அமைப்புகளில் உட்பொதிப்பதில் கவனம் செலுத்துகிறது. திட்டக் குறியீடு C இல் எழுதப்பட்டு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது. எம்ஸ்கிரிப்டனைப் பயன்படுத்தி WebAssembly க்கு தொகுக்கப்பட்ட இயந்திரத்தின் அசெம்பிளியும் கிடைக்கிறது மற்றும் உலாவிகளில் செயல்படுத்துவதற்கு ஏற்றது.

ஜாவாஸ்கிரிப்ட் செயல்படுத்தல் ஆதரிக்கிறது தொகுதிகள், ஒத்திசைவற்ற ஜெனரேட்டர்கள் மற்றும் ப்ராக்ஸிகள் உட்பட ES2019 விவரக்குறிப்பு. தரமற்ற கணிதம் விருப்பமாக ஆதரிக்கப்படும். விரிவாக்கம் ஜாவாஸ்கிரிப்ட்டுக்கு, பிக்இன்ட் மற்றும் பிக்ஃப்ளோட் வகைகள், அத்துடன் ஆபரேட்டர் ஓவர்லோடிங். செயல்திறன் அடிப்படையில், QuickJS குறிப்பிடத்தக்கது மேலானது ஏற்கனவே உள்ள ஒப்புமைகள், எடுத்துக்காட்டாக, சோதனையில்
பெஞ்ச்-வி8 இன்ஜினுக்கு முன்னால் உள்ளது XS 35%இல், டக்டேப் இரண்டு முறைக்கு மேல் ஜெர்ரிஸ்கிரிப்ட் மூன்று முறை மற்றும் மு.ஜே.எஸ் ஏழு முறை.

பயன்பாடுகளில் இயந்திரத்தை உட்பொதிப்பதற்கான நூலகத்துடன் கூடுதலாக, திட்டமானது qjs மொழிபெயர்ப்பாளரையும் வழங்குகிறது, இது கட்டளை வரியிலிருந்து JavaScript குறியீட்டை இயக்க பயன்படுகிறது. மேலும், qjsc கம்பைலர் கிடைக்கிறது, வெளிப்புற சார்புகள் தேவையில்லாத தனியாக இயங்கக்கூடிய கோப்புகளை உருவாக்கும் திறன் கொண்டது.

Основные:

  • மற்ற திட்டங்களுடன் ஒருங்கிணைக்க சிறிய மற்றும் எளிதானது. குறியீட்டில் வெளிப்புற சார்புகள் தேவைப்படாத சில C கோப்புகள் மட்டுமே உள்ளன. தொகுக்கப்பட்ட எளிய பயன்பாடு சுமார் 190 KB எடுக்கும்;
  • மிக அதிக செயல்திறன் மற்றும் குறைந்த தொடக்க நேரம். ஒரு பொதுவான டெஸ்க்டாப் பிசியின் ஒற்றை மையத்தில் செயல்படுத்தப்படும் போது 56 ஆயிரம் ECMAScript இணக்கத்தன்மை சோதனைகளில் தேர்ச்சி பெற 100 வினாடிகள் ஆகும். இயக்க நேர துவக்கம் 300 மைக்ரோ விநாடிகளுக்கு குறைவாக எடுக்கும்;
  • ES2019 விவரக்குறிப்புக்கு கிட்டத்தட்ட முழு ஆதரவு மற்றும் Annex B க்கான முழு ஆதரவு, இது பழைய இணைய பயன்பாடுகளுடன் இணக்கத்திற்கான கூறுகளை வரையறுக்கிறது;
  • ECMAScript சோதனைத் தொகுப்பிலிருந்து அனைத்து சோதனைகளிலும் தேர்ச்சி பெறுதல்;
  • வெளிப்புற சார்புகள் இல்லாமல் இயங்கக்கூடிய கோப்புகளில் ஜாவாஸ்கிரிப்ட் குறியீட்டை தொகுப்பதற்கான ஆதரவு;
  • சுத்திகரிப்பு சைக்கிள் ஓட்டுதல் இல்லாமல் குறிப்பு-எண்ணப்பட்ட குப்பை சேகரிப்பான், இது யூகிக்கக்கூடிய நடத்தை மற்றும் குறைக்கப்பட்ட நினைவக நுகர்வுக்கு அனுமதித்தது;
  • ஜாவாஸ்கிரிப்ட் மொழியில் கணித கணக்கீடுகளுக்கான நீட்டிப்புகளின் தொகுப்பு;
  • கட்டளை வரி பயன்முறையில் குறியீட்டை இயக்குவதற்கான ஷெல், சூழல்சார் குறியீடு சிறப்பம்சத்தை ஆதரிக்கிறது;
  • C நூலகத்தின் மீது பிணைப்புகளுடன் கூடிய ஒரு சிறிய நிலையான நூலகம்.

இந்த திட்டம் QuickJS இல் ஈடுபட்டுள்ள மூன்று துணை C- நூலகங்களையும் உருவாக்குகிறது மற்றும் ஒரு தனி பயன்பாட்டிற்கு ஏற்றது:

  • libregexp என்பது ஜாவாஸ்கிரிப்ட் ES 2019 விவரக்குறிப்புடன் முழுமையாக இணங்கக்கூடிய வழக்கமான வெளிப்பாடுகளை விரைவாக செயல்படுத்துவதாகும்;
  • libunicode - யூனிகோடுடன் வேலை செய்வதற்கான ஒரு சிறிய நூலகம்;
  • libbf என்பது தன்னிச்சையான துல்லியமான மிதக்கும் புள்ளி செயல்பாடுகள் மற்றும் துல்லியமான ரவுண்டிங் ஆழ்நிலை செயல்பாடுகளை செயல்படுத்துவதாகும்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்