Lansarea traducătorului limbajului de programare Vala 0.56.0

A fost lansată o nouă versiune a traducătorului limbajului de programare Vala 0.56.0. Limbajul Vala este un limbaj de programare orientat pe obiecte care oferă o sintaxă similară cu C# sau Java. Codul Vala este tradus într-un program C, care, la rândul său, este compilat de un compilator C standard într-un fișier binar și executat la viteza unei aplicații compilate în codul obiect al platformei țintă. Este posibil să rulați programe în modul script. Limbajul este dezvoltat sub auspiciile proiectului GNOME. Gobject (Glib Object System) este folosit ca model de obiect. Codul compilatorului este distribuit sub licența LGPLv2.1.

Limbajul are suport pentru introspecție, funcții lambda, interfețe, delegați și închideri, semnale și sloturi, excepții, proprietăți, tipuri non-null, inferență de tip pentru variabilele locale (var). Gestionarea memoriei se realizează pe baza numărării referințelor. O bibliotecă de programare generalizată libgee a fost dezvoltată pentru limbaj, care oferă posibilitatea de a crea colecții pentru tipuri de date personalizate. Este acceptată enumerarea elementelor de colecție folosind instrucțiunea foreach. Programarea programelor de grafică se realizează folosind biblioteca de grafică GTK.

Kitul vine cu un număr mare de legături la biblioteci în limbajul C. Traducatorul Vala oferă suport pentru limbajul Genie, care oferă capabilități similare, dar cu o sintaxă inspirată din limbajul de programare Python. Asemenea programe precum clientul de e-mail Geary, shell-ul grafic Budgie, programul de organizare a fișierelor foto și video Shotwell și altele sunt scrise în limba Vala. Limbajul este utilizat în mod activ în dezvoltarea distribuției elementare OS.

Principalele inovații:

  • S-a adăugat suport pentru funcția asincronă main();
  • S-a adăugat suport pentru funcții imbricate;
  • Formatul de afișare a avertismentelor și erorilor în timpul compilării a fost modificat;
  • Este oferită capacitatea de a apela dinamic semnale;
  • S-a adăugat suport pentru clase parțiale - clase al căror conținut se află în mai multe fișiere sursă;
  • Pentru legături, a fost adăugată capacitatea de a specifica tipurile de lungime ale matricei. Anterior, era permis doar tipul întreg pe 32 de biți;
  • S-a adăugat suport pentru operatorul foreach pentru tipurile Glib.Sequence și Glib.Array;
  • S-au adăugat noi legături libsoup, linux-media;
  • În timpul procesului de portare, biblioteca gnome-desktop a fost împărțită în gnome-desktop-4, gnome-rr-4 și gnome-bg-4.
  • Manualele de programare GNOME sunt extinse cu exemple în Vala.
  • S-au adăugat Note de lansare în limbajul de marcare Markdown.
  • Legături actualizate:
    • gtk4 până la versiunea 4.6.0+06ec4ec1;
    • gstreamer până la versiunea 1.21.0+ git master;
    • gio-2.0 până la versiunea 2.72;
    • glib-2.0 înainte de versiunea 2.72;
    • gobject-2.0 înainte de versiunea 2.72;
    • webkit2gtk-*.0 înainte de versiunea 2.35.1.

Sursa: opennet.ru

Adauga un comentariu