Κυκλοφορία πειραματικής έκδοσης του μεταφραστή γλώσσας προγραμματισμού Vala 0.51.1

Κυκλοφόρησε μια νέα έκδοση του μεταφραστή γλώσσας προγραμματισμού Vala 0.51.1. Η γλώσσα Vala είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού που παρέχει μια σύνταξη παρόμοια με την C# ή την Java. Το Gobject (Glib Object System) χρησιμοποιείται ως μοντέλο αντικειμένου. Η διαχείριση της μνήμης πραγματοποιείται με βάση την καταμέτρηση αναφοράς.

Η γλώσσα έχει υποστήριξη για ενδοσκόπηση, συναρτήσεις λάμδα, διεπαφές, πληρεξούσιους και κλεισίματα, σήματα και υποδοχές, εξαιρέσεις, ιδιότητες, μη μηδενικούς τύπους, συμπέρασμα τύπου για τοπικές μεταβλητές (var). Μια γενικευμένη βιβλιοθήκη προγραμματισμού libgee έχει αναπτυχθεί για τη γλώσσα, η οποία παρέχει τη δυνατότητα δημιουργίας συλλογών για προσαρμοσμένους τύπους δεδομένων. Υποστηρίζεται η απαρίθμηση στοιχείων συλλογής με χρήση της δήλωσης foreach. Ο προγραμματισμός των προγραμμάτων γραφικών πραγματοποιείται χρησιμοποιώντας τη βιβλιοθήκη γραφικών GTK+. Το κιτ συνοδεύεται από μεγάλο αριθμό βιβλιοθηκών στη γλώσσα C.

Τα προγράμματα Vala μεταφράζονται σε αναπαράσταση C και στη συνέχεια μεταγλωττίζονται από έναν τυπικό μεταγλωττιστή C. Είναι δυνατή η εκτέλεση προγραμμάτων σε λειτουργία σεναρίου. Ο μεταφραστής Vala παρέχει υποστήριξη για τη γλώσσα Genie, η οποία παρέχει παρόμοιες δυνατότητες, αλλά με σύνταξη εμπνευσμένη από τη γλώσσα προγραμματισμού Python.

Η γλώσσα Vala αναπτύσσεται υπό την αιγίδα του έργου GNOME. Το Vala χρησιμοποιείται για τη σύνταξη προγραμμάτων όπως το πρόγραμμα-πελάτη ηλεκτρονικού ταχυδρομείου Geary, το γραφικό κέλυφος Budgie, το πρόγραμμα διαχείρισης συλλογής φωτογραφιών και βίντεο Shotwell και άλλα. Το Vala χρησιμοποιείται ενεργά στην ανάπτυξη στοιχείων της διανομής Linux Elementary OS.

Στη νέα έκδοση:

  • Προστέθηκε υποστήριξη για αυτόματη στένωση τύπων στις εκφράσεις. if (x is Foo){ x.SomeFooField // δεν χρειάζεται να μεταδοθεί ρητά το "x" στο "Foo" }
  • Προστέθηκε υποστήριξη για την κλήση αλυσίδων κατασκευαστών για πρότυπα.
  • Προστέθηκε έλεγχος έκδοσης libvala κατά το χρόνο εκτέλεσης.
  • Προστέθηκε υποστήριξη για αδιαφανείς συμπαγείς κατηγορίες.
  • Διευρυμένη υποστήριξη για παραμέτρους πίνακα σε κατασκευαστές.
  • Προστέθηκε επεξεργασία ανώνυμων εκπροσώπων που δεν υποστηρίζεται από εικονικές μεθόδους ή σήματα στο girparser.
  • Διορθώθηκαν σφάλματα σε valadoc, libvaladoc και girwriter.
  • Προστέθηκε δέσμευση στο SDL 2.x, η υποστήριξη για δέσμευση SDL 1.x διακόπηκε.
  • Προστέθηκε δέσιμο στο Enchant 2.x.
  • Διορθώθηκε μια διαρροή μνήμης κατά τη ρητή αντιγραφή πινάκων, χρησιμοποιώντας Glib.Value ή μετακίνηση μιας δομής που εκχωρήθηκε στο Heap στη στοίβα.
  • Η σύνδεση στο gdk-pixbuf-2.0 έχει ενημερωθεί στην έκδοση 2.42.3.
  • Προστέθηκε δέσμευση της συνάρτησης getopt_long() και πολλών άλλων συναρτήσεων GNU.
  • Προστέθηκε δέσμευση στο libunwind-generic.
  • Διορθώθηκαν δεσίματα για cairo, gobject-2.0, pango, goocanvas-2.0, κατάρες, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0ml, f. -4;
  • Η σύνδεση στο gio-2.0 έχει ενημερωθεί στην έκδοση 2.67.3.
  • Η σύνδεση στο gobject-2.0 έχει ενημερωθεί στην έκδοση 2.68.
  • Η σύνδεση στο gstreamer έχει ενημερωθεί στην έκδοση 1.19.0+ git master.
  • Η σύνδεση στο gtk4 έχει ενημερωθεί στην έκδοση 4.1.0+2712f536.
  • Προστέθηκαν δεσμεύσεις στο API κανονικής έκφρασης για POSIX, GNU και BSD.
  • Η σύνδεση στο webkit2gtk-4.0 έχει ενημερωθεί στην έκδοση 2.31.1.
  • Τα συσσωρευμένα σφάλματα και οι ελλείψεις του μεταγλωττιστή έχουν διορθωθεί.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο