لائو 5.4

ٻن سالن جي ترقي کان پوء، 29 جون تي، Lua پروگرامنگ ٻولي جو هڪ نئون نسخو، 5.4، خاموشي ۽ خاموشيء سان جاري ڪيو ويو.

Lua هڪ سادي، تشريح ڪيل پروگرامنگ ٻولي آهي جيڪا آساني سان ايپليڪيشنن ۾ ضم ٿي سگهي ٿي. انهن خاصيتن جي ڪري، لوا وڏي پيماني تي پروگرامن جي ترتيب کي وڌائڻ يا بيان ڪرڻ لاء هڪ ٻولي طور استعمال ڪيو ويندو آهي (خاص طور تي، ڪمپيوٽر جي راندين). Lua MIT لائسنس تحت ورهايو ويو آهي.

پوئين ورزن (5.3.5) 10 جولاءِ 2018 تي جاري ڪيو ويو.

نئين نسخي ۾ مکيه تبديليون

  • نئون نسل ڪچرو ڪليڪٽر. گڏ ڪرڻ واري ڪم ۾، سيٽپز ۽ سيٽ اسٽيپمول پيرا ميٽرز کي ختم ڪيو ويو آهي ۽ ان جي بدران واڌارو پيراميٽر سفارش ڪئي وئي آهي؛

  • انهن جي ڊسپلي کي غير فعال ڪرڻ جي صلاحيت سان ڊيڄاريندڙ ڊيڄاريندڙ جاري ڪرڻ لاء هڪ نئون فنڪشن؛

  • math.random جو نئون نفاذ مهيا ڪيل libc جي بدران xoshiro256** الورورٿم استعمال ڪري ٿو ۽ جنريٽر کي بي ترتيب نمبر سان شروع ڪري ٿو.

  • مسلسل متغير؛

  • "بند ٿيڻ لاءِ" متغير مقامي مستقل آھن جن لاءِ __close طريقو عمل ڪيو ويندو آھي جڏھن دائري کي ڇڏي ڏيو؛

  • نئون فنڪشن lua_resetthread - اسٽيڪ کي صاف ڪري ٿو ۽ سڀني "بند" متغيرن کي بند ڪري ٿو؛

  • نئون فنڪشن coroutine.close - مخصوص ڪوروٽين کي بند ڪري ٿو ۽ ان جي سڀني "بند" متغيرن کي؛

  • يوزر ڊيٽا انڊيڪس ذريعي پهچايل قدرن جو هڪ سيٽ تي مشتمل ٿي سگھي ٿو. انهن سان ڪم ڪرڻ لاءِ نوان فنڪشن متعارف ڪرايا ويا آهن: lua_newuserdatauv, lua_setiuservalue ۽ lua_getiuservalue؛

  • پيرا ميٽرز بابت ڊيبگنگ معلومات ۽ افعال جي واپسي جي قيمت موجود آهي؛

  • جيڪڏهن هڪ انٽيجر انڊيڪس لوپ لاءِ استعمال ٿئي ٿو ۽ اوور فلو ٿئي ٿو، لوپ ختم ٿي ويندو آهي؛

  • هڪ اختياري دليل string.gmatch فنڪشن ۾ شامل ڪيو ويو آهي، ميلن جي ڳولا لاءِ اسٽرنگ جي شروعات کان آفسٽ بيان ڪندي؛

  • اسٽرنگ کي انگن ۾ غير واضح طور تي تبديل ڪرڻ لاءِ افعال اسٽرنگ لائبريري ۾ منتقل ڪيا ويا آھن، ۽ انھن جو رويو تبديل ٿي ويو آھي. مثال طور، آپريشن جو نتيجو "1" + "2" ھاڻي ھڪڙو عدد آھي بجاءِ سچل پوائنٽ نمبر؛

  • ميموري مختص ڪرڻ جي فنڪشن ۾، هڪ غلطي ٿي سگھي ٿي جڏهن ميموري بلاڪ کي گھٽائڻ؛

  • string.format فنڪشن ۾ نئين فارميٽنگ جي علامت - %p (پوائنٽ لاءِ)؛

  • utf8 لائبريري 2³¹ تائين ڪردارن جا ڪوڊ قبول ڪري ٿي (جيڪڏهن هڪ خاص پرچم بيان ڪيو ويو آهي، ان کان سواءِ صرف 0x10FFFF تائين ڪوڊس جي اجازت آهي ۽ سروگيٽس جي اجازت ناهي)؛

  • قدرن جي حد کان ٻاهر انٽيجر مستقل کي سچل نمبرن ۾ تبديل ڪيو ويو آهي (اڳ ۾ بٽ ڪلپنگ ٿي چڪي هئي)؛

  • __lt metamethod هاڻي __le metamethod کي نقل ڪرڻ لاءِ استعمال نه ڪيو ويو آهي؛ جيڪڏهن ضروري هجي ته، __le metamethod کي واضح طور تي بيان ڪيو وڃي.

  • گوٽو بيان لاءِ هڪ ليبل ٺاهي نٿو سگهجي جيڪڏهن ساڳئي نالي سان هڪ ليبل اڳ ۾ ئي موجوده دائري ۾ موجود آهي (جيتوڻيڪ اها ٻاهرين دائري ۾ وضاحت ڪئي وئي هئي)؛

  • __gc metamethod صرف هڪ فنڪشن کان وڌيڪ ٿي سگهي ٿو. جيڪڏهن هڪ طريقو ڪال ڪرڻ جي ڪوشش ناڪام ٿئي ٿي، هڪ ڊيڄاريندڙ پرنٽ ڪيو ويندو؛

  • پرنٽ فنڪشن هر دليل لاءِ ٽوسٽرنگ کي ڪال نٿو ڪري، پر پنهنجي اندروني تبديلين کي استعمال ڪري ٿو.

  • io.lines فنڪشن هڪ جي بدران چار قدرن جو هڪ سيٽ موٽائي ٿو؛ پراڻي رويي کي نقل ڪرڻ لاءِ، ڪال کي قوس ۾ بند ڪريو جيڪڏهن توهان ان کي ٻئي فنڪشن ڪال ڏانهن پيراميٽر طور منتقل ڪري رهيا آهيو.

جو ذريعو: linux.org.ru

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