ڪرسٽل 1.16 پروگرامنگ ٻولي جو رليز شايع ڪيو ويو آهي، جنهن جا ڊولپرز ڪوشش ڪري رهيا آهن ته روبي ٻولي ۾ ترقي جي سهولت کي سي ٻولي جي اعلي ايپليڪيشن ڪارڪردگي خاصيت سان گڏ. ڪرسٽل جو نحو ويجھو آھي، پر روبي سان مڪمل طور تي مطابقت نٿو رکي، جيتوڻيڪ ڪجھ روبي پروگرام بغير ترميم جي ھلندا آھن. گڏ ڪرڻ وارو ڪوڊ ڪرسٽل ۾ لکيل آهي ۽ Apache 2.0 لائسنس تحت ورهايو ويو آهي.
ٻولي جامد قسم جي چڪاس استعمال ڪري ٿي، جيڪا ڪوڊ ۾ متغيرن جي قسمن ۽ طريقن جي دليلن کي واضح طور تي بيان ڪرڻ جي ضرورت کان سواءِ لاڳو ڪئي ويندي آهي. ڪرسٽل پروگرامن کي ايگزيڪيوٽو فائلن ۾ مرتب ڪيو ويندو آهي، ميڪرو جو جائزو ورتو ويندو آهي ۽ ڪوڊ مرتب وقت تي تيار ڪيو ويندو آهي. ڪرسٽل پروگرامن ۾، سي ۾ لکيل بائنڊنگز کي ڳنڍڻ ممڪن آهي. ڪوڊ ايگزيڪيوشن جي متوازي "اسپون" ڪي ورڊ استعمال ڪندي ڪئي ويندي آهي، جيڪا توهان کي بنيادي ٿريڊ کي بلاڪ ڪرڻ کان سواءِ غير مطابقت واري موڊ ۾ پس منظر جو ڪم هلائڻ جي اجازت ڏئي ٿي، هلڪي وزن واري ٿريڊز جي صورت ۾ جنهن کي فائبر سڏيو ويندو آهي.
معياري لائبريري عام ڪمن جو هڪ سيٽ مهيا ڪري ٿي، جنهن ۾ CSV، YAML، ۽ JSON پروسيسنگ لاءِ اوزار، HTTP سرور ٺاهڻ لاءِ جزا ۽ WebSocket سپورٽ شامل آهن. ڊولپمينٽ دوران، توهان "ڪرسٽل پلي" ڪمانڊ استعمال ڪري سگهو ٿا، جيڪو ڪرسٽل ڪوڊ جي انٽرايڪٽو عمل لاءِ هڪ ويب انٽرفيس (لوڪل هوسٽ: 8080 ڊفالٽ طور) پيدا ڪري ٿو.
مکيه تبديليون:
- الڳ الڳ ايگزيڪيوشن ڪنٽيڪسٽس (ايگزيڪيوشن ڪنٽيڪسٽس) ۾ هلڪي وزن وارن ٿريڊز (فائبر) کي هلائڻ لاءِ تجرباتي سپورٽ شامل ڪئي وئي، جيڪا ڪمن جي وڌيڪ ڪارآمد متوازي عملدرآمد جي اجازت ڏئي ٿي - هڪ حوالي سان ٿريڊز کي بلاڪ ڪرڻ سان ٻئي ۾ ايگزيڪيوشن اسٽاپ نه ٿيندو آهي. mt_context = فائبر::ايڪسيڪيوشنڪونٽڪس::ملٽيٿريڊڊ.نيو ("ورڪر-ٿريڊز"، 4) 10. ڀيرا mt_context.spawn do do_something end end gtk = فائبر::ايڪسيڪيوشنڪونٽڪس::آئسوليٽڊ.نيو ("جي ٽي ڪي") do Gtk.main end gtk.wait
- Slice.literal طريقو هاڻي سلائس ۾ موجود عنصرن لاءِ قسم جو اندازو فراهم ڪري ٿو، ۽ هڪ مترجم ۾ ڪم ڪرڻ لاءِ سپورٽ شامل ڪري ٿو.
- sizeof ۽ alignof ميڪروز مستحڪم قسمن بابت معلومات مهيا ڪن ٿا.
- معياري لائبريري ۾ نوان طريقا شامل ڪيا ويا آهن: انڊيڪسيبل#فنڊ، #فنڊ!، ايونٽ لوپ#واٽ_ريڊ ايبل، ۽ #واٽ_رائيٽبل.
- ڪمپائلر ۾ "-o" آپشن، "--output" جو هڪ ڊگهو نسخو آهي، ۽ فائل جي بدران ڊاريڪٽري بيان ڪرڻ جي صلاحيت لاڳو ڪئي وئي آهي (فائل جو نالو ڪوڊ سان گڏ فائل جي نالي جي مطابق چونڊيو ويندو).
- دستاويزي جنريٽر هاڻي دستاويزي ۾ خانگي ۽ محفوظ شيون شامل ڪرڻ جي صلاحيت رکي ٿو، انهي سان گڏ لائبريري بائنڊنگز ۾ شيون (lib، fun، union، cstruct، external، type).
- "File.match؟" ۾؟ طريقو هڪ نئون فائل رستو ميچنگ الگورتھم لاڳو ڪيو ويو آهي، جنهن ڪجهه مسئلن ۽ حدن کي ختم ڪري ڇڏيو آهي. مثال طور، ڪردار فرار ("\\t" ماسڪ "\t" سان ملندو آهي پر "t" ڪردار سان نه)، رستو ورهائڻ ("a**" ماسڪ "ab" سان ملندو آهي پر "ab/c" لاءِ ناڪام ٿيندو آهي، جڏهن ته "**/a" ماسڪ "a" سان ملندو آهي)، نيسٽڊ پيٽرن ("{[}]}" ماسڪ "}" سان ملندو آهي)، ۽ رينجز ("[a-]" ماسڪ "-" سان ملندو آهي) هاڻي صحيح طريقي سان سنڀاليا ويا آهن.
- لاحقا "؟" تعريفن (defs)، ميڪروز، ۽ بلاڪس ۾ پيرا ميٽرز جي نالن ۾ ختم ڪيو ويو آهي. ۽ "!".
- شمارياتي # رقم ۽ # پيداوار طريقن ۾، جيڪڏهن عنصر جو قسم هڪ يونين آهي ته واپسي جي قسم جو خودڪار تعين ختم ڪيو ويو آهي. جڏهن انهن طريقن کي ڪال ڪيو وڃي، ته هاڻي توهان کي واضح طور تي قسم بيان ڪرڻ جي ضرورت آهي، مثال طور، "[1, 10000000000_u64].sum" جي بدران توهان کي "[1, 10000000000_u64].sum(0_u64)" لکڻ گهرجي.
- HTTP::Request URL حصن جي صحيح تجزيي کي يقيني بڻائي ٿي.
- LLVM 20 ڪمپائلر سوٽ لاءِ سپورٽ شامل ڪئي وئي.
- LLVM::ABI ۽ LLVM::TargetMachine#abi ڏانهن ڪالون ختم ڪيون ويون آهن.
جو ذريعو: opennet.ru
