ตัวแปลภาษาโปรแกรม Vala 0.54.0 เวอร์ชันใหม่เปิดตัวแล้ว ภาษา Vala เป็นภาษาการเขียนโปรแกรมเชิงวัตถุซึ่งมีไวยากรณ์คล้ายกับ C# หรือ Java รหัส Vala ได้รับการแปลเป็นโปรแกรม C ซึ่งในทางกลับกันจะถูกคอมไพล์โดยคอมไพเลอร์ C มาตรฐานเป็นไฟล์ไบนารีและดำเนินการด้วยความเร็วของแอปพลิเคชันที่คอมไพล์เป็นรหัสอ็อบเจ็กต์ของแพลตฟอร์มเป้าหมาย สามารถรันโปรแกรมในโหมดสคริปต์ได้ ภาษากำลังได้รับการพัฒนาภายใต้การอุปถัมภ์ของโครงการ GNOME Gobject (Glib Object System) ถูกใช้เป็นแบบจำลองวัตถุ รหัสคอมไพเลอร์ได้รับการเผยแพร่ภายใต้ใบอนุญาต LGPLv2.1
ภาษานี้รองรับวิปัสสนา ฟังก์ชันแลมบ์ดา อินเทอร์เฟซ ผู้รับมอบสิทธิ์และการปิด สัญญาณและช่อง ข้อยกเว้น คุณสมบัติ ประเภทที่ไม่ใช่ค่าว่าง การอนุมานประเภทสำหรับตัวแปรโลคัล (var) การจัดการหน่วยความจำดำเนินการตามการนับอ้างอิง ไลบรารีการเขียนโปรแกรมทั่วไป libgee ได้รับการพัฒนาสำหรับภาษา ซึ่งให้ความสามารถในการสร้างคอลเลกชันสำหรับชนิดข้อมูลที่กำหนดเอง รองรับการแจงนับองค์ประกอบคอลเลกชันโดยใช้คำสั่ง foreach การเขียนโปรแกรมโปรแกรมกราฟิกดำเนินการโดยใช้ไลบรารีกราฟิก GTK
ชุดนี้มาพร้อมกับการเชื่อมโยงไลบรารีในภาษา C จำนวนมาก นักแปล Vala ให้การสนับสนุนภาษา Genie ซึ่งมีความสามารถคล้ายกัน แต่มีไวยากรณ์ที่ได้รับแรงบันดาลใจจากภาษาการเขียนโปรแกรม Python โปรแกรมเช่นไคลเอนต์อีเมล Geary, เชลล์กราฟิก Budgie, โปรแกรมจัดระเบียบไฟล์ภาพถ่ายและวิดีโอ Shotwell และอื่น ๆ เขียนด้วยภาษา Vala ภาษานี้ถูกใช้อย่างแข็งขันในการพัฒนาการแจกจ่าย Elementary OS
นวัตกรรมหลัก:
- เพิ่มการสนับสนุนสำหรับผู้ได้รับมอบหมายด้วยจำนวนพารามิเตอร์ที่แปรผัน
- เพิ่มโปรไฟล์ LIBC ซึ่งตรงกันกับโปรไฟล์ POSIX
- ปรับปรุงการสร้างในโหมดโปรไฟล์ POSIX;
- เพิ่มความสามารถในการประกาศตัวแปรที่สามารถมีค่าว่างด้วยการอนุมานประเภท (var?);
- เพิ่มความสามารถในการประกาศคลาสที่ห้ามรับมรดก (ปิดผนึก);
- เพิ่มตัวดำเนินการเข้าถึงที่ปลอดภัยลงในฟิลด์คลาสที่สามารถเป็นโมฆะได้ (a.?b.?c);
- อนุญาตให้เริ่มต้นเนื้อหาโครงสร้างเป็นโมฆะ (const Foo[] BARS = { { "bar", 42 }, null };);
- ห้ามดำเนินการ resize() สำหรับอาร์เรย์คงที่
- เพิ่มเอาต์พุตคำเตือนเมื่อพยายามเรียกใช้ฟังก์ชันเป็นโมฆะ ((void)not_void_func(););
- ลบข้อจำกัดเกี่ยวกับประเภทองค์ประกอบ GLib.Array
- แก้ไขการสืบทอดความเป็นเจ้าของ "unowned var" ในคำสั่ง foreach ()
- การเชื่อมโยงกับ webkit2gtk-4.0 ได้รับการอัพเดตเป็นเวอร์ชัน 2.33.3;
- การผูกกับ gstreamer ได้รับการอัปเดตเป็นเวอร์ชัน 1.19.0+ git master
- การผูกกับ gtk4 ได้รับการอัปเดตเป็นเวอร์ชัน 4.5.0~e681fdd9;
- Binding สำหรับ gtk+-3.0 ได้รับการอัปเดตเป็นเวอร์ชัน 3.24.29+f9fe28ce
- การผูกกับ gio-2.0,glib-2.0 ได้รับการอัพเดตเป็นเวอร์ชัน 2.69.0;
- สำหรับ linux มีการเพิ่มการเชื่อมโยงกับ SocketCAN;
- แก้ไขการเชื่อมโยงสำหรับ glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, rest-0.7, libusb, libusb-1.0, pixman-1, webkit2gtk-web- ส่วนขยาย-4.0, x11, zlib, gnutls;
- ลบการเชื่อมโยง gedit-2.20 และ webkit-1.0;
- อัปเดตการเชื่อมโยงตาม GIR
- เพิ่มความสามารถในการตรวจสอบโค้ด C ที่สร้างขึ้นในระบบการทดสอบแล้ว
- ปรับปรุง girparser, girwriter, valadoc, libvaladoc/girimporter;
- ข้อผิดพลาดและข้อบกพร่องสะสมของส่วนประกอบคอมไพเลอร์ต่างๆ ได้รับการแก้ไขแล้ว
ที่มา: opennet.ru