Выпуск транслятора языка программирования Vala 0.54.0

Π’Ρ‹ΡˆΠ»Π° новая вСрсия транслятора языка программирования Vala 0.54.0. Π―Π·Ρ‹ΠΊ Vala являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования, прСдоставляСт синтаксис, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ языкам C# ΠΈΠ»ΠΈ Java. Код Π½Π° Vala транслируСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C, которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, компилируСтся ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ Π‘ΠΈ-компилятором Π² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ выполняСтся со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ прилоТСния, ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сцСнария. Π―Π·Ρ‹ΠΊ развиваСтся ΠΏΠΎΠ΄ эгидой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNOME. Π’ качСствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Gobject (Glib Object System). Код компилятора распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ LGPLv2.1.

Π’ языкС имССтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° интроспСкции, лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, интСрфСйсов, Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ² ΠΈ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΉ, сигналов ΠΈ слотов, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, свойств, Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², вывСдСния Ρ‚ΠΈΠΏΠΎΠ² для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (var). Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ осущСствляСтся Π½Π° основании подсчёта ссылок. Для языка Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ программирования libgee, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ пСрСчислСниС элСмСнтов ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° foreach. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ графичСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ графичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GTK.

Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ поставляСтся большоС количСство Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ Π½Π° языкС C. Вранслятором Vala осущСствляСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка Genie, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ возмоТности, Π½ΠΎ с синтаксисом, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΌ языком программирования Python. На языкС Vala написаны Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Geary, графичСская ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Budgie, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΠΎΡ‚ΠΎ ΠΈ Π²ΠΈΠ΄ΠΈΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² Shotwell ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π―Π·Ρ‹ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ дистрибутива Elementary OS.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ² с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ числом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ LIBC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся синонимом ΠΊ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ POSIX;
  • Π”ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π° гСнСрация Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ профиля POSIX;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² (var?);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ объявлСния классов Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… для наслСдования (sealed);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзопасного доступа ΠΊ полям класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ null (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;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ 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, webkit2gtk-web-extension-4.0, x11, zlib, gnutls;
  • Π£Π΄Π°Π»Π΅Π½Ρ‹ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ gedit-2.20 ΠΈ webkit-1.0;
  • ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ основанныС Π½Π° GIR;
  • Π’ систСму тСстирования Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ C-ΠΊΠΎΠ΄Π°;
  • Π”ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ накопившиСся ошибки ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² компилятора.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru