إطلاق مترجم لغة البرمجة Vala 0.54.0

تم إصدار نسخة جديدة من مترجم لغة البرمجة Vala 0.54.0. لغة Vala هي لغة برمجة موجهة للكائنات توفر بناء جملة مشابهًا لـ C# أو Java. تتم ترجمة كود Vala إلى برنامج C، والذي بدوره يتم تجميعه بواسطة مترجم C القياسي إلى ملف ثنائي ويتم تنفيذه بسرعة التطبيق الذي تم تجميعه في رمز الكائن للنظام الأساسي المستهدف. من الممكن تشغيل البرامج في وضع البرنامج النصي. يتم تطوير اللغة تحت رعاية مشروع جنوم. يتم استخدام Gobject (نظام كائن Glib) كنموذج كائن. يتم توزيع رمز المترجم بموجب ترخيص LGPLv2.1.

تدعم اللغة الاستبطان، ووظائف لامدا، والواجهات، والمفوضين والإغلاقات، والإشارات والفتحات، والاستثناءات، والخصائص، والأنواع غير الخالية، واستدلال النوع للمتغيرات المحلية (var). تتم إدارة الذاكرة بناءً على العد المرجعي. تم تطوير مكتبة برمجة عامة libgee للغة، والتي توفر القدرة على إنشاء مجموعات لأنواع البيانات المخصصة. يتم دعم تعداد عناصر المجموعة باستخدام عبارة foreach. تتم برمجة برامج الرسومات باستخدام مكتبة الرسومات GTK.

تأتي المجموعة مع عدد كبير من الارتباطات للمكتبات في لغة C. يوفر مترجم Vala الدعم للغة Genie، التي توفر إمكانات مماثلة، ولكن مع بناء جملة مستوحى من لغة برمجة Python. برامج مثل عميل البريد الإلكتروني Geary، وBudgie Graphic Shell، وبرنامج تنظيم ملفات الصور والفيديو Shotwell، وغيرها مكتوبة بلغة Vala. يتم استخدام اللغة بنشاط في تطوير توزيع نظام التشغيل الأولي.

الابتكارات الرئيسية:

  • تمت إضافة دعم للمندوبين بعدد متغير من المعلمات؛
  • تمت إضافة ملف تعريف LIBC، وهو مرادف لملف تعريف POSIX؛
  • تحسين الجيل في وضع الملف الشخصي POSIX؛
  • تمت إضافة القدرة على الإعلان عن المتغيرات التي يمكن أن تحتوي على قيمة فارغة مع نوع الاستدلال (var؟);
  • تمت إضافة القدرة على إعلان الطبقات المحظورة للميراث (مختومة)؛
  • تمت إضافة عامل الوصول الآمن إلى حقول الفئة التي يمكن أن تكون فارغة (a.?b.?c);
  • السماح بتهيئة محتويات البنية إلى قيمة خالية (const Foo[] BARS = { { "bar"، 42 }, null };);
  • عملية تغيير الحجم () محظورة للمصفوفات الثابتة؛
  • تمت إضافة إخراج تحذير عند محاولة إرسال استدعاء دالة إلى void ((void)not_void_func(););
  • تمت إزالة القيود المفروضة على أنواع عناصر GLib.Array؛
  • تم إصلاح وراثة ملكية "var غير المملوكة" في عبارة foreach();
  • تم تحديث الارتباط بـ webkit2gtk-4.0 إلى الإصدار 2.33.3؛
  • تم تحديث الربط بـ gstreamer إلى الإصدار 1.19.0+ git master؛
  • تم تحديث الربط بـ gtk4 إلى الإصدار 4.5.0~e681fdd9؛
  • تم تحديث ملزمة gtk+-3.0 إلى الإصدار 3.24.29+f9fe28ce
  • تم تحديث الربط بـ gio-2.0,glib-2.0 إلى الإصدار 2.69.0؛
  • بالنسبة لنظام التشغيل Linux، تمت إضافة الارتباطات إلى SwitchCAN؛
  • إصلاحات في الارتباطات الخاصة بـ 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

إضافة تعليق