Rilis penerjemah bahasa pemrograman Vala 0.54.0

Versi baru penerjemah bahasa pemrograman Vala 0.54.0 telah dirilis. Bahasa Vala adalah bahasa pemrograman berorientasi objek yang menyediakan sintaksis mirip dengan C# atau Java. Kode Vala diterjemahkan ke dalam program C, yang kemudian dikompilasi oleh kompiler C standar menjadi file biner dan dieksekusi dengan kecepatan aplikasi yang dikompilasi ke dalam kode objek platform target. Dimungkinkan untuk menjalankan program dalam mode skrip. Bahasa ini sedang dikembangkan di bawah naungan proyek GNOME. Gobject (Glib Object System) digunakan sebagai model objek. Kode kompiler didistribusikan di bawah lisensi LGPLv2.1.

Bahasa ini memiliki dukungan untuk introspeksi, fungsi lambda, antarmuka, delegasi dan penutupan, sinyal dan slot, pengecualian, properti, tipe non-null, tipe inferensi untuk variabel lokal (var). Manajemen memori dilakukan berdasarkan penghitungan referensi. Perpustakaan pemrograman umum libgee telah dikembangkan untuk bahasa tersebut, yang menyediakan kemampuan untuk membuat koleksi untuk tipe data khusus. Pencacahan elemen koleksi menggunakan pernyataan foreach didukung. Pemrograman program grafis dilakukan dengan menggunakan perpustakaan grafis GTK.

Kit ini dilengkapi dengan sejumlah besar pengikatan ke perpustakaan dalam bahasa C. Penerjemah Vala menyediakan dukungan untuk bahasa Genie, yang menyediakan kemampuan serupa, tetapi dengan sintaks yang terinspirasi oleh bahasa pemrograman Python. Program seperti klien email Geary, shell grafis Budgie, program pengorganisasian file foto dan video Shotwell, dan lainnya ditulis dalam bahasa Vala. Bahasa ini secara aktif digunakan dalam pengembangan distribusi OS Dasar.

Inovasi utama:

  • Menambahkan dukungan untuk delegasi dengan sejumlah parameter yang bervariasi;
  • Menambahkan profil LIBC, yang identik dengan profil POSIX;
  • Peningkatan generasi dalam mode profil POSIX;
  • Menambahkan kemampuan untuk mendeklarasikan variabel yang dapat memiliki nilai null dengan tipe inferensi (var?);
  • Menambahkan kemampuan untuk mendeklarasikan kelas yang dilarang untuk diwariskan (disegel);
  • Menambahkan operator akses aman ke bidang kelas yang dapat berupa null (a.?b.?c);
  • Inisialisasi isi struktur diperbolehkan ke null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Operasi resize() dilarang untuk array konstan;
  • Menambahkan keluaran peringatan saat mencoba melakukan panggilan fungsi ke void ((void)not_void_func(););
  • Menghapus batasan pada tipe elemen GLib.Array;
  • Memperbaiki pewarisan kepemilikan "var yang tidak dimiliki" dalam pernyataan foreach();
  • Pengikatan ke webkit2gtk-4.0 telah diperbarui ke versi 2.33.3;
  • Pengikatan ke gstreamer telah diperbarui ke versi 1.19.0+ git master;
  • Pengikatan ke gtk4 telah diperbarui ke versi 4.5.0~e681fdd9;
  • Binding untuk gtk+-3.0 telah diperbarui ke versi 3.24.29+f9fe28ce
  • Pengikatan ke gio-2.0,glib-2.0 telah diperbarui ke versi 2.69.0;
  • Untuk linux, binding ke SocketCAN telah ditambahkan;
  • Perbaikan pada binding untuk 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, webkit2gtk-web- ekstensi-4.0, x11, zlib, gnutls;
  • Menghapus binding gedit-2.20 dan webkit-1.0;
  • Binding yang diperbarui berdasarkan GIR;
  • Kemampuan untuk memeriksa kode C yang dihasilkan telah ditambahkan ke sistem pengujian;
  • Peningkatan girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Akumulasi kesalahan dan kekurangan berbagai komponen kompiler telah diperbaiki.

Sumber: opennet.ru

Tambah komentar