WebAssembly 2.0 معياري ڏيک دستياب

W3C هڪ نئين وضاحت جو هڪ مسودو شايع ڪيو آهي جيڪو WebAssembly 2.0 Middleware ۽ ان سان لاڳاپيل API کي معياري بڻائي ٿو، اعلي ڪارڪردگي واري ايپليڪيشنن جي تخليق کي فعال ڪري ٿو جيڪي برائوزرن ۽ هارڊويئر پليٽ فارمن تي پورٽبل آهن. WebAssembly مختلف پروگرامنگ ٻولين مان مرتب ڪيل ايپليڪيشنن کي هلائڻ لاءِ برائوزر-آزاد، آفاقي، گھٽ-سطح وچولي ڪوڊ مهيا ڪري ٿو. WebAssembly لاءِ JIT استعمال ڪندي، توھان حاصل ڪري سگھوٿا ڪارڪردگي جي سطح مقامي ڪوڊ جي ويجهو.

WebAssembly ٽيڪنالاجي کي برائوزر ۾ اعليٰ ڪارڪردگيءَ وارا ڪم سرانجام ڏيڻ لاءِ استعمال ڪري سگھجي ٿو، جيئن وڊيو انڪوڊنگ، آڊيو پروسيسنگ، گرافڪس ۽ 3D مينيپوليشن، گيم ڊولپمينٽ، ڪرپٽوگرافڪ آپريشنز ۽ رياضياتي حساب ڪتاب کي اجازت ڏيڻ سان گڏ ڪيل ٻولين ۾ ڪوڊ لکڻ جي اجازت ڏيندي جيئن C/C++ .

WebAssembly جي مکيه مقصدن ۾ پورٽيبلٽي کي يقيني بڻائڻ، پيش گوئي جي رويي ۽ مختلف پليٽ فارمن تي هڪجهڙائي واري ڪوڊ جي عملدرآمد کي يقيني بڻائڻ آهي. تازو، WebAssembly کي پڻ ترقي ڏني وئي آهي هڪ آفاقي پليٽ فارم جي طور تي ڪوڊ کي محفوظ طريقي سان عمل ڪرڻ لاءِ ڪنهن به انفراسٽرڪچر، آپريٽنگ سسٽم ۽ ڊيوائس تي، صرف برائوزرن تائين محدود ناهي.

W3C شايع ڪيو آهي ٽي ڊرافٽ وضاحتون WebAssembly 2.0 لاءِ:

  • WebAssembly Core - WebAssembly وچولي ڪوڊ هلائڻ لاءِ گھٽ سطح واري ورچوئل مشين کي بيان ڪري ٿو. WebAssembly سان لاڳاپيل وسيلا هڪ ".wasm" فارميٽ ۾، جاوا ۾ ".class" فائلن وانگر، جامد ڊيٽا ۽ ڪوڊ حصن تي مشتمل آهن انهي ڊيٽا سان ڪم ڪرڻ لاءِ.
  • WebAssembly JavaScript انٽرفيس - JavaScript سان انضمام لاءِ هڪ API مهيا ڪري ٿو. توهان کي قدر حاصل ڪرڻ جي اجازت ڏئي ٿي ۽ پيٽرولر کي WebAssembly افعال ڏانهن منتقل ڪريو. WebAssembly جي عملداري جاوا اسڪرپٽ سيڪيورٽي ماڊل جي پيروي ڪري ٿي ۽ مکيه سسٽم سان سڀني ڳالهين کي ساڳئي طريقي سان ڪيو ويندو آهي جيئن جاوا اسڪرپٽ ڪوڊ تي عمل ڪرڻ.
  • WebAssembly Web API - ".wasm" وسيلن جي درخواست ۽ عمل ڪرڻ لاءِ وعدي جي ميڪانيزم جي بنياد تي هڪ پروگرامنگ انٽرفيس جي وضاحت ڪري ٿو. WebAssembly وسيلن جي فارميٽ کي بهتر ڪيو ويو آهي ته عمل شروع ڪرڻ لاءِ فائل جي مڪمل لوڊ ٿيڻ جو انتظار ڪرڻ کان سواءِ، جيڪو ويب ايپليڪيشنن جي ردعمل کي بهتر بڻائي ٿو.

معيار جي پهرين ورزن جي مقابلي ۾ WebAssembly 2.0 ۾ بنيادي تبديليون:

  • v128 ویکٹر جي قسم ۽ لاڳاپيل ویکٹر هدايتون لاءِ سپورٽ جيڪي توهان کي متوازي ۾ ڪيترن ئي عددي قدرن تي عمل ڪرڻ جي اجازت ڏين ٿيون (SIMD، سنگل هدايتون گھڻن ڊيٽا).
  • درآمد ۽ برآمد ڪرڻ جي قابليت تبديل ٿيندڙ عالمي متغير، قدرن جي عالمي پابند جي اجازت ڏئي ٿي جيئن ته C++ ۾ اسٽيڪ پوائنٽرز.
  • int تبادلي جي هدايتن تي نئون فلوٽ، جيڪو نتيجو اوور فلو ٿيڻ تي استثنا ڏيڻ بدران، گھٽ ۾ گھٽ يا وڌ ۾ وڌ ممڪن قدر واپس آڻيو (SIMD لاءِ ضروري).
  • انٽيجرز جي نشاني جي توسيع لاءِ هدايتون (سائنس ۽ قدر کي برقرار رکڻ دوران انگ جي بٽ ڊيپٿ کي وڌائڻ).
  • ڪيترن ئي قدرن کي موٽڻ واري بلاڪ ۽ افعال لاءِ سپورٽ (گھڻن پيرا ميٽرن کي افعال ۾ منتقل ڪرڻ کان علاوه).
  • BigInt64Array ۽ BigUint64Array جاوا اسڪرپٽ افعال جو نفاذ BigInt JavaScript قسم ۽ WebAssembly 64-bit انٽيجرز جي نمائندگي جي وچ ۾ تبديل ڪرڻ لاءِ.
  • حوالن جي قسمن لاءِ سپورٽ (funcref ۽ externref) ۽ انهن سان لاڳاپيل هدايتون (منتخب، 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

تبصرو شامل ڪريو