هيئر پروگرامنگ ٻولي جو رليز 0.26

سوئي يوزر ماحول، ايرڪ اي ميل ڪلائنٽ، ۽ سورس هٽ ڪوليبرٽو ڊولپمينٽ پليٽ فارم جي ليکڪ، ڊريو ڊيوولٽ، هيئر پروگرامنگ ٻولي جو نسخو 0.26.0 جاري ڪيو آهي. هيئر کي سي سان ملندڙ جلندڙ سسٽم پروگرامنگ ٻولي طور بل ڪيو ويو آهي پر سي کان سادو آهي. ڪمپائلر ۽ ٽول چين سورس ڪوڊ GPLv3 تحت لائسنس يافته آهن، ۽ معياري لائبريري ڪوڊ MPL (موزيلا پبلڪ لائسنس) تحت لائسنس يافته آهي.

ٻولي گهٽ سطحي مسئلن کي حل ڪرڻ لاءِ بهتر ڪئي وئي آهي جيئن ته ترقي ڪندڙ آپريٽنگ سسٽم، ڪمپيلرز، نيٽ ورڪ ايپليڪيشنون ۽ سسٽم يوٽيلٽيز جن کي وڌ ۾ وڌ ڪارڪردگي ۽ عمل تي مڪمل ڪنٽرول جي ضرورت هوندي آهي. ٻولي دستي ياداشت جي انتظام ۽ هڪ جامد قسم جي سسٽم کي استعمال ڪري ٿي، جنهن ۾ هر متغير واضح طور تي هڪ مخصوص قسم مقرر ڪيو وڃي.

ايپليڪيشن کي هلائڻ لاء، گهٽ ۾ گهٽ رن ٽائم فراهم ڪيو ويندو آهي، ۽ ترقي لاء، فنڪشن جي هڪ معياري لائبريري ورهايو ويندو آهي، آپريٽنگ سسٽم جي بنيادي انٽرفيس تائين رسائي فراهم ڪندي، انهي سان گڏ معياري الگورتھم، پروٽوڪول ۽ فارميٽس سان ڪم ڪرڻ لاء ڪم پيش ڪرڻ، بشمول. باقاعده اظهار ۽ انڪرپشن استعمال ڪرڻ جا اوزار. گرافڪ ايپليڪيشنن جي ترقيءَ لاءِ، hare-wayland ٽول ڪٽ تيار ڪئي پئي وڃي، ۽ گڏوگڏ GTK، Vulkan، OpenGL، SDL3 ۽ libui جي صلاحيتن تائين رسائي لاءِ پابند.

نئين نسخي ۾:

  • "for(…){…} else {…}" لوپ جي تعمير ۽ هڪ متغير "item = for(…){…}" کي قدر تفويض ڪرڻ لاءِ هڪ اظهار جي طور تي لوپ استعمال ڪرڻ جي صلاحيت شامل ڪئي وئي. متغير کي تفويض ڪيل قدر واپس ڪري سگهجي ٿي جڏهن لوپ "break value" اظهار ذريعي ٽوڙيو ويندو آهي يا لوپ سان ڳنڍيل "else{…}" بلاڪ ۾ "yield default_value" بيان ڪندي، جنهن کي سڏيو ويندو آهي جيڪڏهن لوپ بريڪ ذريعي نه ٽوڙيو وڃي. const item = for (let sample .. items) { if (item.key == key) { break item; }; } else { yield -1; };
  • غلطي جي سنڀال کي نظرانداز ڪرڻ لاءِ "_" ويليو اسائنمينٽ استعمال ڪرڻ جي صلاحيت شامل ڪئي وئي (جيڪڏهن ڪا غلطي ٿئي ٿي، ته ڪو به دعويٰ نه ڪيو ويندو). _ = os::remove(«/some/file»);
  • ساختن ۾ بي نام فيلڊ ٺاهڻ لاءِ "_" ويليو استعمال ڪرڻ جي صلاحيت شامل ڪئي وئي. اهڙا فيلڊ اضافي پيڊنگ لاءِ استعمال ڪري سگھجن ٿا. ايڪسپورٽ ٽائپ my_struct = struct @packed { x: u32, // offset: 0 _: u8, // offset: 4 y: u64, // offset: 5 };
  • هاڻي اهو ممڪن آهي ته متغيرن ۽ شعبن کي بناوٽ ۾ غير شروعاتي حالت ۾ "@undefined" جي قدر تفويض ڪندي واضح طور تي ڇڏڻ. اڳي، ٻولي سڀني مقامي ۽ عالمي متغيرن کي تخليق جي وقت تي شروع ڪرڻ جي ضرورت هئي. انهن کي غير شروعاتي ڇڏڻ ضروري ٿي سگهي ٿو جڏهن هڪ متغير کي بعد ۾ شروع ڪرڻ جي ضرورت هجي، نه ته اعلان جي وقت تي، مثال طور، جڏهن هڪ متغير ڏانهن هڪ پوائنٽر جيڪو فنڪشن کي شروع ڪرڻ گهرجي هڪ فنڪشن ڏانهن منتقل ڪيو وڃي ٿو. اچو ته x: my_object = @undefined;
  • ڊريگن فلائي بي ايس ڊي آپريٽنگ سسٽم لاءِ سپورٽ شامل ڪئي وئي آهي. اڳ ۾، لينڪس، فري بي ايس ڊي، نيٽ بي ايس ڊي، ۽ اوپن بي ايس ڊي سپورٽ ڪيا ويا هئا.

جو ذريعو: opennet.ru

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