WebAssembly 2.0 நிலையான முன்னோட்டம் கிடைக்கிறது

W3C ஆனது WebAssembly 2.0 மிடில்வேர் மற்றும் அதனுடன் தொடர்புடைய API ஐ தரநிலையாக்கும் புதிய விவரக்குறிப்பின் வரைவை வெளியிட்டுள்ளது, இது உலாவிகள் மற்றும் வன்பொருள் தளங்களில் சிறியதாக இருக்கும் உயர் செயல்திறன் பயன்பாடுகளை உருவாக்க உதவுகிறது. WebAssembly பல்வேறு நிரலாக்க மொழிகளிலிருந்து தொகுக்கப்பட்ட பயன்பாடுகளை இயக்குவதற்கு உலாவி-சுயாதீனமான, உலகளாவிய, குறைந்த-நிலை இடைநிலை குறியீட்டை வழங்குகிறது. WebAssemblyக்கு JITஐப் பயன்படுத்துவதன் மூலம், நேட்டிவ் குறியீட்டிற்கு நெருக்கமான செயல்திறன் நிலைகளை நீங்கள் அடையலாம்.

C/C++ போன்ற தொகுக்கப்பட்ட மொழிகளில் எழுதப்பட்ட குறியீட்டை அனுமதிப்பதன் மூலம் உலாவியில் வீடியோ குறியாக்கம், ஆடியோ செயலாக்கம், கிராபிக்ஸ் மற்றும் 3D கையாளுதல், கேம் மேம்பாடு, கிரிப்டோகிராஃபிக் செயல்பாடுகள் மற்றும் கணிதக் கணக்கீடுகள் போன்ற உயர் செயல்திறன் பணிகளைச் செய்ய WebAssembly தொழில்நுட்பத்தைப் பயன்படுத்தலாம். .

WebAssembly இன் முக்கிய குறிக்கோள்களில் பெயர்வுத்திறன், யூகிக்கக்கூடிய நடத்தை மற்றும் வெவ்வேறு தளங்களில் ஒரே மாதிரியான குறியீடு செயல்படுத்தல் ஆகியவற்றை உறுதி செய்வதாகும். சமீபத்தில், WebAssembly ஆனது உலாவிகளுக்கு மட்டுப்படுத்தப்படாமல், எந்தவொரு உள்கட்டமைப்பு, இயக்க முறைமை மற்றும் சாதனம் முழுவதும் குறியீட்டை பாதுகாப்பாக செயல்படுத்துவதற்கான உலகளாவிய தளமாகவும் விளம்பரப்படுத்தப்பட்டுள்ளது.

WebAssembly 3க்கான மூன்று வரைவு விவரக்குறிப்புகளை W2.0C வெளியிட்டுள்ளது:

  • WebAssembly கோர் - WebAssembly இடைநிலை குறியீட்டை இயக்குவதற்கான குறைந்த-நிலை மெய்நிகர் இயந்திரத்தை விவரிக்கிறது. WebAssembly உடன் தொடர்புடைய ஆதாரங்கள் ".wasm" வடிவத்தில் வழங்கப்படுகின்றன, ஜாவாவில் உள்ள ".class" கோப்புகளைப் போலவே, அந்தத் தரவுடன் பணிபுரியும் நிலையான தரவு மற்றும் குறியீடு பிரிவுகள் உள்ளன.
  • WebAssembly JavaScript இடைமுகம் - JavaScript உடன் ஒருங்கிணைக்க API வழங்குகிறது. மதிப்புகளைப் பெறவும், WebAssembly செயல்பாடுகளுக்கு அளவுருக்களை அனுப்பவும் உங்களை அனுமதிக்கிறது. WebAssembly ஐ செயல்படுத்துவது ஜாவாஸ்கிரிப்ட் பாதுகாப்பு மாதிரியைப் பின்பற்றுகிறது மற்றும் முக்கிய அமைப்புடனான அனைத்து தொடர்புகளும் ஜாவாஸ்கிரிப்ட் குறியீட்டை இயக்குவது போலவே மேற்கொள்ளப்படுகின்றன.
  • WebAssembly Web API - ".wasm" ஆதாரங்களைக் கோருவதற்கும் செயல்படுத்துவதற்கும் உறுதிமொழி பொறிமுறையின் அடிப்படையில் ஒரு நிரலாக்க இடைமுகத்தை வரையறுக்கிறது. WebAssembly ஆதார வடிவம் கோப்பு முழுவதுமாக ஏற்றப்படும் வரை காத்திருக்காமல் செயல்படுத்தலைத் தொடங்க உகந்ததாக உள்ளது, இது வலை பயன்பாடுகளின் வினைத்திறனை மேம்படுத்துகிறது.

தரநிலையின் முதல் பதிப்போடு ஒப்பிடும்போது WebAssembly 2.0 இல் முக்கிய மாற்றங்கள்:

  • v128 திசையன் வகை மற்றும் தொடர்புடைய திசையன் வழிமுறைகளுக்கான ஆதரவு, இது பல எண் மதிப்புகளில் இணையாக செயல்களைச் செய்ய உங்களை அனுமதிக்கிறது (SIMD, ஒற்றை அறிவுறுத்தல் பல தரவு).
  • மாற்றக்கூடிய உலகளாவிய மாறிகளை இறக்குமதி செய்து ஏற்றுமதி செய்யும் திறன், C++ இல் உள்ள ஸ்டாக் பாயிண்டர்கள் போன்ற மதிப்புகளுக்கு உலகளாவிய பிணைப்பை அனுமதிக்கிறது.
  • புதிய float to int மாற்றும் வழிமுறைகள், முடிவு நிரம்பி வழியும் போது விதிவிலக்கைக் கொடுப்பதற்குப் பதிலாக, குறைந்தபட்ச அல்லது அதிகபட்ச சாத்தியமான மதிப்பை (SIMDக்குத் தேவையானது) வழங்கும்.
  • முழு எண்களின் குறி விரிவாக்கத்திற்கான வழிமுறைகள் (அடையாளம் மற்றும் மதிப்பை பராமரிக்கும் போது எண்ணின் பிட் ஆழத்தை அதிகரிப்பது).
  • பல மதிப்புகளை வழங்கும் தொகுதிகள் மற்றும் செயல்பாடுகளுக்கான ஆதரவு (பல அளவுருக்களை செயல்பாடுகளுக்கு அனுப்புவதுடன்).
  • BigInt64Array மற்றும் BigUint64Array ஜாவாஸ்கிரிப்ட் செயல்பாடுகளை செயல்படுத்துதல், BigInt JavaScript வகை மற்றும் 64-பிட் முழு எண்களின் WebAssembly பிரதிநிதித்துவம் ஆகியவற்றுக்கு இடையே மாற்றுவதற்கு.
  • குறிப்பு வகைகளுக்கான ஆதரவு (funcref மற்றும் externref) மற்றும் அவற்றுடன் தொடர்புடைய வழிமுறைகள் (select, ref.null, ref.func மற்றும் ref.is_null).
  • Memory.copy, memory.fill, memory.init மற்றும் data.drop நினைவகப் பகுதிகளுக்கு இடையே தரவை நகலெடுப்பதற்கும் நினைவகப் பகுதிகளை அழிக்கும் வழிமுறைகள்.
  • அட்டவணைகளை நேரடியாக அணுகுவதற்கும் மாற்றியமைப்பதற்கும் வழிமுறைகள் (table.set, table.get, table.size, table.grow). ஒரு தொகுதியில் பல அட்டவணைகளை உருவாக்க, இறக்குமதி மற்றும் ஏற்றுமதி செய்யும் திறன். தொகுப்பு முறையில் அட்டவணைகளை நகலெடுக்க/நிரப்புவதற்கான செயல்பாடுகள் (table.copy, table.init மற்றும் elem.drop).

ஆதாரம்: opennet.ru

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