การเปิดตัวโปรแกรมแปลภาษา Vala 0.54.0

ตัวแปลภาษาโปรแกรม 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

เพิ่มความคิดเห็น