Keluaran penterjemah bahasa pengaturcaraan Vala 0.54.0

Versi baharu penterjemah bahasa pengaturcaraan Vala 0.54.0 telah dikeluarkan. Bahasa Vala ialah bahasa pengaturcaraan berorientasikan objek yang menyediakan sintaks yang serupa dengan C# atau Java. Kod Vala diterjemahkan ke dalam program C, yang seterusnya, disusun oleh pengkompil C biasa ke dalam fail binari dan dilaksanakan pada kelajuan aplikasi yang disusun ke dalam kod objek platform sasaran. Ia adalah mungkin untuk menjalankan program dalam mod skrip. Bahasa ini dibangunkan di bawah naungan projek GNOME. Gobject (Glib Object System) digunakan sebagai model objek. Kod pengkompil diedarkan di bawah lesen LGPLv2.1.

Bahasa ini mempunyai sokongan untuk introspeksi, fungsi lambda, antara muka, perwakilan dan penutupan, isyarat dan slot, pengecualian, sifat, jenis bukan sifar, jenis inferens untuk pembolehubah tempatan (var). Pengurusan memori adalah berdasarkan pengiraan rujukan. Pustaka pengaturcaraan generik libgee telah dibangunkan untuk bahasa, yang menyediakan keupayaan untuk mencipta koleksi untuk jenis data tersuai. Ia disokong untuk menghitung elemen koleksi menggunakan pernyataan foreach. Program grafik diprogramkan menggunakan perpustakaan grafik GTK.

Kit ini dilengkapi dengan sejumlah besar pengikatan kepada perpustakaan dalam bahasa C. Penterjemah Vala menyokong bahasa Genie, yang menyediakan ciri yang serupa, tetapi dengan sintaks yang diilhamkan oleh bahasa pengaturcaraan Python. Program seperti klien mel Geary, cangkerang grafik Budgie, pengatur fail foto dan video Shotwell, dan lain-lain ditulis dalam bahasa Vala. Bahasa ini digunakan secara aktif dalam pembangunan pengedaran OS Elementary.

Inovasi utama:

  • Menambah sokongan untuk perwakilan dengan bilangan parameter yang berubah-ubah;
  • Menambah profil LIBC, yang sinonim dengan profil POSIX;
  • Penjanaan yang lebih baik dalam mod profil POSIX;
  • Menambah keupayaan untuk mengisytiharkan pembolehubah yang boleh mempunyai nilai nol dengan jenis inferens (var?);
  • Menambah keupayaan untuk mengisytiharkan kelas dilarang untuk warisan (dimeterai);
  • Menambahkan pengendali akses selamat ke medan kelas yang boleh menjadi batal (a.?b.?c);
  • Ia dibenarkan untuk memulakan kandungan struktur kepada null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Untuk tatasusunan malar, operasi resize() adalah dilarang;
  • Menambahkan amaran apabila cuba menghantar panggilan fungsi ke void ((void)not_void_func();
  • Mengeluarkan sekatan pada jenis elemen GLib.Array;
  • Memperbaiki warisan pemilikan "unowned var" dalam pernyataan foreach();
  • Mengikat kepada webkit2gtk-4.0 dikemas kini kepada versi 2.33.3;
  • Mengikat kepada gstreamer dikemas kini kepada versi 1.19.0+ git master;
  • Binding untuk gtk4 dikemas kini kepada versi 4.5.0~e681fdd9;
  • Mengikat kepada gtk+-3.0 dikemas kini kepada versi 3.24.29+f9fe28ce
  • Mengikat kepada gio-2.0,glib-2.0 dikemas kini kepada versi 2.69.0;
  • Menambah pengikatan pada SocketCAN untuk linux;
  • Membetulkan pengikatan kepada 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- sambungan-4.0, x11, zlib, gnutls;
  • Binding gedit-2.20 dan webkit-1.0 dialih keluar;
  • Pengikatan yang dikemas kini berdasarkan GIR;
  • Keupayaan untuk menyemak kod C yang dihasilkan telah ditambahkan pada sistem ujian;
  • Girparser, girwriter, valadoc, libvaladoc/giriimporter dipertingkat;
  • Memperbaiki ralat terkumpul dan kekurangan pelbagai komponen penyusun.

Sumber: opennet.ru

Tambah komen