Κυκλοφορία του μεταφραστή γλώσσας προγραμματισμού 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).
  • Επιτρέπεται η προετοιμασία των περιεχομένων της δομής σε null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Η λειτουργία resize() απαγορεύεται για σταθερούς πίνακες.
  • Προστέθηκε έξοδος προειδοποίησης όταν προσπαθείτε να μεταδώσετε μια κλήση συνάρτησης στο void ((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, webkit2gt-we επέκταση-4.0, x11, zlib, gnutls;
  • Καταργήθηκαν οι δεσμεύσεις gedit-2.20 και webkit-1.0.
  • Ενημερωμένες δεσμεύσεις με βάση το GIR.
  • Η δυνατότητα ελέγχου του παραγόμενου κώδικα C έχει προστεθεί στο σύστημα δοκιμών.
  • Βελτιωμένος girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Τα συσσωρευμένα σφάλματα και οι ελλείψεις των διαφόρων στοιχείων μεταγλωττιστή έχουν διορθωθεί.

Πηγή: opennet.ru

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