فالا هو برنامج مفتوح المصدر ومجاني وحديث للبرامج والبرمجة مصمم من الإزاحة لتقديم ميزات برمجة جديدة لمطوري GNOME. وهو مترجم لنظام نوع GObject ، مما يسمح لمطوّري GNOME بإنشاء تطبيقات مذهلة.
الميزات في لمحة
تشتمل الميزات الأساسية على واجهات ، وخصائص ، وإشارات ، و foreach ، وتعبيرات lambda ، واستخلاص الأنواع للمتغيرات المحلية ، والأدوية الجنسية ، وأنواع غير خالية ، وإدارة الذاكرة المدعومة ، ومعالجة الاستثناءات ، بالإضافة إلى الوحدات النمطية للنماذج a.k.a.
جهد كتابة التعليمات البرمجية الموجهة للكائنات المعقدة
باستخدام مترجم Vala ، ستتمكن ، كمطور ، من كتابة التعليمات البرمجية المعقدة الموجهة للكائنات بدون أدنى جهد مع الحفاظ على انخفاض متطلبات الذاكرة والمحافظة على معيار AB ABI و API.
يتيح الوصول إلى مكتبات C الحالية
تم تصميم هذا المشروع بطريقة تسمح بالوصول إلى مكتبات C الحالية ، وخاصة المكتبات القائمة على GObject ، دون الحاجة إلى ارتباطات وقت التشغيل.
إنها مثالية لـ GTK + و GNOME
فالا هي مترجم سطر أوامر ولغات برمجة. سيتمكن المطورون الذين يعملون مع GTK + و GNOME من استخدام Vala لكتابة الشفرة وتجميعها.
إنها متأثرة بـ C ++ و C و C # و Python و D و Java
لقد تأثرت لغة برمجة Vala بلغات برمجة C و C ++ و D و Python و C # و Java المستخدمة على نطاق واسع. وهو برنامج متعدد المنصات يمكن نقله بسهولة على أنظمة تشغيل أخرى.
مدعومة من قبل مجموعة واسعة من برامج IDE
ميزة أخرى مثيرة للاهتمام هي التوافق مع مختلف برامج IDE (بيئة التطوير المتكاملة) ، بما في ذلك Anjuta ، فالنسيا ، Geany ، Emacs ، MonoDevelop ، NetBeans ، Val (a) IDE ، Sublime Text ، Vim ، Vala Toys for Gedit ، Euclide ، RedCar و TextMate و Valama.
التوفر والأبنية المدعومة
يتم توزيع Vala فقط كأرشيف مصدر. هذا يعني أنه يجب على المستخدم تكوين وترجمة الشفرة قبل التثبيت. بالطبع ، يمكن تثبيته بسهولة على أي توزيعة جنو / لينكس من مستودعات البرامج الافتراضية. يتم دعم معمارية 32 بت و 64 بت في هذا الوقت.
ما هو الجديد في هذا الإصدار:
إصلاحات أخطاء متنوعة:
codegen: Call ref_sink على الكائنات التي تم تمريرها إلى النوع العام [# 655]
codegen: أخطاء مجانية بعد إرجاعها على GDBusMethodInvocation [# 657]
girparser: في الواقع حل وسائط النوع لتكون قادرة على مربع لهم إذا لزم الأمر
vala: إضافة الثوابت / الطرق لاسترداد وتحقق نسخة المكتبة [# 304]
الربط:
glib-2.0: إضافة Array.remove * () التفاف لتجنب تسرب عناصر عامة
glib-2.0: إضافة (u) long.parse / try_parse () [# 649]
gstreamer: تحديث من 1.15 + بوابة رئيسية
gtk + -3.0: التحديث إلى 3.23.2 + 6b6e53fd
gtk + -4.0: التحديث إلى 3.94.0 + 4e868584
ما هو الجديد في الإصدار 0.40.7:
تحسينات مختلفة وإصلاحات للأخطاء:
تحديث روابط bugtracker إلى https://gitlab.gnome.org/GNOME/vala/issues
codegen:
تعامل مع الخاصية delegate_target للحقول [# 520]
العناصر العامة المجانية للمجموعات اللامعة [# 694765]
إصلاح تحذير لمعلمة source_funcs من g_source_new ()
في الواقع تعامل GLib.Source كفئة مدمجة
يتم التعامل مع الأساليب المجردة المخصصة لـ GLib.Source بشكل مختلف [# 641]
استخدم gpointer باستمرار لأهداف التفويض
توحيد بعض أنماط التحقق من نوع المفوض
استخدم default_init بدلاً من base_init عند تسجيل الواجهات [# 699550]
girparser: إضافة دعم bool delegate_target [# 520]
girwriter:
تم إيقاف الناتج = & quot؛ 1 & quot؛
خصائص البناء فقط لا تملك طريقة تعيين
لا تكتب أي سمات مخصصة [# 608]
valadoc: فيكس TreeBuilder.create_array () للصفيف مكدسة
الربط:
سطحي 2.0:
لا تضع علامة على معلمات out-type بسيطة مثل nullable [# 634]
استخدم Source.attach () استخدم الافتراضي MainContext افتراضياً
جعل Bytes.slice () استخدام Bytes.from_bytes () [- 638] كفاءة الذاكرة
إصلاح Bytes.with_free_func ()
جيو-2.0:
وضع علامة على حقول ActionEntry.parameter_type / state باعتبارها nullable [# 632]
لا تحتوي حقول تفويض DBus * VTable على حقول هدف ضمنية
تطبيق delegate_target = false على الاستدعاءات ActionEntry وجعلها ضعيفة [# 630]
أضف الافتراضي إلى جميع المعلمات io_priority
gstreamer: Cherry-pick بعض الإصلاحات من 0.42 ، إضافة gst-editing-services-1.0
gtk + -3.0: التحديث إلى 3.22.30 + 9ac7f906
gtk + -4.0: التحديث إلى 3.93.0 + 29fee2e8
webkit2gtk-4.0: التحديث إلى 2.21.4
تحديث ارتباطات GIR-
ما هو الجديد في الإصدار:
إصلاحات أخطاء متنوعة:
إصلاح انحدار السلسلة مع معلمات بنية غير فارغة فارغة [# 791785]
تحرير المراجع التي تم اتخاذها إلى CodeContext بعد استخدامه [# 712694] والاحتفاظ بالدعوات المخصصة من parse_file () ممكن [# 791936]
محلل: قبول قائمة مفصولة بفواصل في عبارات الحالة للمفاتيح [# 614015]
الربط:
إزالة الارتباطات التي يتم شحنها المنبع لبضع سنوات
gedit 3 [# 776021] ، مفتاح مفاتيح libgnome-keyring [# 776022] ،
gtksourceview-3.0 [# 776023] ، libgdata [# 776024] ، librsvg-2.0 [# 776025]
glib-2.0: أضف GLib.OPTION_REMAINING و GLib.OptionFlags.NONE
gstreamer-1.0: Update from 1.13+ git master
gtk + -2.0: معلمة منشئ MessageDialog ، message_format ، كـ nullable [# 791570]
gtk + -4.0: التحديث إلى 3.93.0 + 6aeae2c8
webkit2gtk-4.0: التحديث إلى 2.19.3
الجديد في الإصدار 0.39.1:
يسلط الضوءالإبلاغ عن تحذير إذا كان نوع الخاصية غير متوافق مع GLib.Object [# 693932]
السماح بتمرير الموفدين المتوافقين إلى signal.connect () [# 787521]
السماح بقيم التعداد غير المُعرَّفة حيثما أمكن
تجنب استخدام temp-var لبعض المتصلين بإرجاع ValueType وللوصول إلى معلمات in / ref [# 789071]
Reformat إنشاء تعريفات وتعريفات المصدر للحصول على إمكانية قراءة أفضل [# 688447]
إصلاحات أخطاء متنوعة:
استخدم array_length_cexpr لدعم المصفوفات الثابتة لقيم الإرجاع [# 784691]
تحليل الحجج بشكل صحيح لوضع فالبا بين [# 663070]
فرض طول الاسم & gt؛ = 3 للبنى باستخدام برنامج GType [# 764041]
الإبلاغ عن خطأ لمعلمة type مفقودة على نوع الإرفاق [# 587905]
إضافة boolean "use_inplace" ccode-attribute للأساليب [# 750840]
تحسين معالجة تكرارات الكلمة الرئيسية غير المملوكة / المملوكة
تحتاج الطرق إلى التخلص من خطأ متوافق إذا قام أحد المندوبين المستهدفين بإلقاء أحد الأخطاء
اكتشاف حق وصول غير صالح إلى حقل المثيل [# 790903]
تحسين إخراج الخطأ من عدم تجاوز طرائق
Valadoc
الإقرار بالخصائص المحتملة في البنية [# 784705]
إصلاح الخطأ المطبعي الفادح في GtkdocRenderer.visit_symbol_link () [# 790266]
الربط:
glib-2.0: استخدم type-id / marshaller-type لـ (u) int16 / (u) قصيرة من (u) int32 [# 693932]
glib-2.0: إضافة معلمة اختيارية "غير مثبتة" إلى * .try_parse () [# 774124]
gobject-2.0: إضافة بعض الرموز المفقودة
gstreamer-1.0: ربط GST_TIME_ARGS و GST_STIME_ARGS من وحدات الماكرو [# 750840]
gstreamer-1.0: ربط GST_DEBUG_BIN_TO_DOT_FILE / * _ WITH_TS [# 785215]
gstreamer-1.0: Update from 1.13+ git master
gtk + -3.0: التحديث إلى 3.22.26 + 9ce824d3
gtk + -4.0: Split Gsk.RenderNode إلى عدة فئات
gtk + -4.0: التحديث إلى 3.93.0 + 2d797dd8
webkit2gtk-4.0: التحديث إلى 2.19.2
الجديد في الإصدار 0.38.3:
إصلاحات أخطاء متنوعة:
codegen: تحديد أولوية "array_length = true" فوق "array_null_terminated = true" [# 788775]
codegen: تجنب التعارضات المحتملة مع الخاصية / الإشارة الداخلية التي تعرّف [# 788964]
الربط:
gio-2.0: Expose g_task_get_source_object as Task.get_unowned_source_object
gstreamer-1.0: Update from 1.13+ git master
gtk + -4.0: التحديث إلى 3.92.1
libxml-2.0: إضافة طرق DTD [# 789442]
الجديد في الإصدار 0.38.2:
تحديثات الروابط المختلفة:
gstreamer-1.0، gtk + -3.0، gtk + -4.0: Update from git master
gnutls: إصلاح سمة ccode-free من الشهادة [# 788181]
الجديد في الإصدار 0.38.1:
إصلاحات أخطاء متنوعة:
valadoc: لا تستخدم "stderr" كاسم متغير [# 787305]
codegen: حاول استخدام تعريف داخلي فريد أكثر للخصائص [# 787436]
vala: تحديث قائمة السمات المستخدمة
method: استخدم prototype-string لتقارير أخطاء عدم التطابق من نوع الإرجاع
الربط:
glib-2.0: إصلاح MainContext.check () ، يتم إنهاء المعلمات OptionEntry [] خالية null ، Bind g_convert_with_fallback () و g_convert_with_iconv ()
الجديد في الإصدار 0.37.1:
يسلط الضوء:
لا تحذر من الرموز الموقوفة إذا كان install_version أقدم
إضافة - الخيار Gresourcesdir [# 783133]
إصلاحات أخطاء متنوعة:
gdbus: لا تسرّب HashTable متداخلة على إلغاء تسلسل [# 782719]
إصلاح أخيراً القطع ذات العوائد غير المتزامنة [# 741929]
التعامل مع غير صفرية في تعبير موحد [# 611223]
ضع علامة task_complete لـ & lt؛ 2.44 أكثر تشابهًا لـ & gt؛ = 2.44 [# 783543]
يتطلب ValueType Nullable POINTER كتوقيع marshaller [# 783897]
خاصية NoAccessorMethod مسموح بها لخصائص gobject فقط
girparser: إصلاح تحليل أسماء المندوبين - بدون اسم مستهدف
المحول البرمجي: استخدم API_VERSION بدلاً من تجريد PACKAGE_SUFFIX
girwriter: كتابة معلمات طول صفائف مع رتبة & GT. 1 [# 758019]
الربط:
gio-2.0: استخدم الافتراضي 'length = null' لـ DataInputStream.read_line_utf8 * [# 783351]
gobject-2.0: إضافة GLib.ParamSpecPointer
poppler-glib: التحديث إلى 0.54.0
gstreamer-1.0: إصلاحات ملزمة مختلفة
الجديد في الإصدار 0.36.3:
إصلاحات أخطاء متنوعة:
الماسح الضوئي: إصلاح حساب قيمة العمود للرموز بعد التعليق متعدد الأسطر [# 652899]
codegen: Unref GLib.AsyncResult on uncaught errors in coroutines [# 641171]
حافظ على تهيئة متغير النتيجة لمنشئات الإنشاء [# 782056]
الجديد في الإصدار 0.36.1:
إصلاحات أخطاء متنوعة:
فكر دائمًا في طريقة متوافقة مع نفسه [# 773135]
إجراء التحقق من الحجج مقابل التوقيع .end () الفعلي للتوقيع [# 684208]
تحسن طفيفًا خطأ تعبير lamdba في عدم تطابق نوع الهدف
إصلاح مُهيئ المفوض لحقول المثال [# 683925]
عدم تسرب الهدف المرجعي عند إرسال / تعيين المندوبين المملوكين [# 780426]
محلل GIR والكاتب:
girparser: إضافة وسيطة تدمير للبيانات الوصفية [# 750838]
vapigen: إضافة - خيار nostdpkg مثل في valac
الربط:
gstreamer-1.0: Fix Pad.set _ * _ function () bindings [# 750838]
glib-2.0: إضافة إصدار ماكرو وثوابت مفقودة ، لا يُرجع unichar.to_string فارغًا
gtk + -2.0، gtk + -3.0: علامة "تقاطع" علامة من Widget.intersect () على النحو التالي
gtk + -4.0: التحديث إلى 3.90.0
لم يتم العثور على التعليقات