Κυκλοφόρησε μια νέα έκδοση του μεταφραστή γλώσσας προγραμματισμού Vala 0.56.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.
Βασικές καινοτομίες:
- Προστέθηκε υποστήριξη για τη συνάρτηση ασύγχρονης main().
- Προστέθηκε υποστήριξη για ένθετες λειτουργίες.
- Η μορφή για την εμφάνιση προειδοποιήσεων και σφαλμάτων κατά τη μεταγλώττιση έχει αλλάξει.
- Παρέχεται η δυνατότητα δυναμικής κλήσης σημάτων.
- Προστέθηκε υποστήριξη για μερικές κλάσεις - κλάσεις των οποίων τα περιεχόμενα βρίσκονται σε πολλά αρχεία πηγής.
- Για τις συνδέσεις, έχει προστεθεί η δυνατότητα καθορισμού τύπων μήκους πίνακα. Προηγουμένως, επιτρεπόταν μόνο ο ακέραιος τύπος 32-bit.
- Προστέθηκε υποστήριξη για τον τελεστή foreach για τους τύπους Glib.Sequence και Glib.Array.
- Προστέθηκαν νέα bindings 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