คอมไพเลอร์ภาษาโปรแกรม Vala เวอร์ชันใหม่ เวอร์ชัน 0.56.0 ได้เปิดตัวแล้ว Vala เป็นภาษาโปรแกรมเชิงวัตถุที่มีไวยากรณ์คล้ายกับ C# หรือ Java โค้ด Vala จะถูกแปลเป็นโปรแกรม C ซึ่งจะถูกคอมไพเลอร์ C ดั้งเดิมเป็นไฟล์ไบนารี และประมวลผลด้วยความเร็วเท่ากับแอปพลิเคชันที่คอมไพเลอร์เป็นออบเจ็กต์โค้ดดั้งเดิม โปรแกรมสามารถรันในโหมดสคริปต์ได้ ภาษานี้กำลังได้รับการพัฒนาภายใต้โครงการ GNOME โดยใช้ Gobject (Glib Object System) เป็นโมเดลออบเจ็กต์ โค้ดคอมไพเลอร์นี้ได้รับอนุญาตภายใต้ใบอนุญาต LGPLv2.1
ภาษานี้รองรับการตรวจสอบภายใน (introspection), ฟังก์ชันแลมบ์ดา, อินเทอร์เฟซ, ตัวแทนและการปิด, สัญญาณและสล็อต, ข้อยกเว้น, คุณสมบัติ, ชนิดข้อมูลที่ไม่สามารถเป็นค่าว่างได้ และการอนุมานชนิดข้อมูลสำหรับตัวแปรท้องถิ่น (var) การจัดการหน่วยความจำเป็นแบบนับการอ้างอิง ภาษานี้มีไลบรารีการเขียนโปรแกรมทั่วไปของ libgee ซึ่งช่วยให้สามารถสร้างคอลเลกชันสำหรับชนิดข้อมูลที่ผู้ใช้กำหนดได้ รองรับการแจงนับองค์ประกอบของคอลเลกชันโดยใช้คำสั่ง foreach การเขียนโปรแกรมกราฟิกทำได้โดยใช้ไลบรารีกราฟิก GTK
แพ็กเกจนี้ประกอบด้วยการผูกไลบรารี C จำนวนมาก คอมไพเลอร์ Vala รองรับภาษา Genie ซึ่งมีคุณสมบัติคล้ายคลึงกัน แต่มีไวยากรณ์ที่ได้รับแรงบันดาลใจจากภาษาโปรแกรม Python Vala ถูกใช้ในโปรแกรมต่างๆ เช่น ไคลเอนต์อีเมล Geary, ส่วนติดต่อผู้ใช้แบบกราฟิก Budgie, โปรแกรมจัดการไฟล์ภาพถ่ายและวิดีโอ Shotwell และอื่นๆ ภาษานี้ถูกนำมาใช้อย่างแพร่หลายในการพัฒนาระบบปฏิบัติการ Elementary
นวัตกรรมหลัก:
- เพิ่มการสนับสนุนสำหรับฟังก์ชัน main() แบบอะซิงโครนัส
- เพิ่มการสนับสนุนสำหรับฟังก์ชั่นที่ซ้อนกัน
- รูปแบบสำหรับการส่งออกคำเตือนและข้อผิดพลาดในระหว่างการคอมไพล์ได้รับการเปลี่ยนแปลง
- มีความสามารถในการทริกเกอร์สัญญาณแบบไดนามิก
- เพิ่มการสนับสนุนสำหรับคลาสบางส่วน—คลาสที่มีเนื้อหาอยู่ในไฟล์ต้นฉบับหลายไฟล์
- เพิ่มความสามารถในการระบุชนิดความยาวของอาร์เรย์ให้กับการผูกมัด ก่อนหน้านี้ อนุญาตให้ใช้ได้เฉพาะชนิดจำนวนเต็ม 32 บิตเท่านั้น
- เพิ่มการสนับสนุนสำหรับตัวดำเนินการ foreach สำหรับประเภท Glib.Sequence และ Glib.Array
- เพิ่มการผูกใหม่ libsoup, linux-media;
- ในระหว่างกระบวนการพอร์ต ไลบรารี gnome-desktop จะถูกแยกออกเป็น gnome-desktop-4, gnome-rr-4 และ gnome-bg-4
- คู่มือการเขียนโปรแกรมของ GNOME ได้รับการขยายเพื่อรวมตัวอย่าง Vala ไว้ด้วย
- เพิ่มหมายเหตุการเผยแพร่ใน Markdown
- อัปเดตการผูกมัด:
- gtk4 ถึงเวอร์ชัน 4.6.0+06ec4ec1;
- gstreamer ถึงเวอร์ชัน 1.21.0+ git master;
- gio-2.0 ถึงเวอร์ชัน 2.72;
- glib-2.0 ถึงเวอร์ชัน 2.72;
- gobject-2.0 ก่อนเวอร์ชัน 2.72;
- webkit2gtk-*.0 เป็นเวอร์ชัน 2.35.1
ที่มา: opennet.ru
