Выпуск ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии транслятора языка программирования Vala 0.51.1

Π’Ρ‹ΡˆΠ»Π° новая вСрсия транслятора языка программирования Vala 0.51.1. Π―Π·Ρ‹ΠΊ Vala являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования, прСдоставляСт синтаксис, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ языкам C# ΠΈΠ»ΠΈ Java. Π’ качСствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Gobject (Glib Object System). Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ осущСствляСтся Π½Π° основании подсчёта ссылок.

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Vala Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² прСдставлСниС Π½Π° языкС C, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ компилятором для языка C. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сцСнария. Вранслятором Vala осущСствляСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка Genie, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ возмоТности, Π½ΠΎ с синтаксисом, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΌ языком программирования Python.

Π―Π·Ρ‹ΠΊ Vala развиваСтся ΠΏΠΎΠ΄ эгидой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNOME. На Vala написаны Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Geary, графичСская ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Budgie, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° управлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ Ρ„ΠΎΡ‚ΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Shotwell ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Vala Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Linux-дистрибутива Elementary OS.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° автоматичСского привСдСния Ρ‚ΠΈΠΏΠΎΠ² (type narrowing) Π² выраТСниях; if (x is Foo){ x.SomeFooField // Π½Π΅Ρ‚ нСобходимости явного привСдСния «x» ΠΊ «Foo» }
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π·ΠΎΠ²Π° Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ конструкторов для шаблонов;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° вСрсии libvala Π² процСссС выполнСния;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° «Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ…» (opaque) ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Ρ… классов;
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²-массивов Π² конструкторах;
  • Π’ girparser Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ»ΠΈ сигналами;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² valadoc, libvaladoc ΠΈ girwriter;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ SDL 2.x, ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΈΠ½Π΄ΠΈΠ½Π³Π° SDL 1.x;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ Enchant 2.x;
  • УстранСна ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти ΠΏΡ€ΠΈ явном ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ массивов, использовании Glib.Value, пСрСносС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π² «ΠšΡƒΡ‡Π΅» структуры Π½Π° стСк;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ gdk-pixbuf-2.0 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 2.42.3;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getopt_long() ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ GNU;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ libunwind-generic;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ ΠΊ cairo, gobject-2.0, pango, goocanvas-2.0, curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, fuse, libxml-2.0;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ gio-2.0 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 2.67.3;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ gobject-2.0 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 2.68;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ gstreamer ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 1.19.0+ git master;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ gtk4 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 4.1.0+2712f536;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ ΠΊ API рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для POSIX, GNU ΠΈ BSD;
  • Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ ΠΊ webkit2gtk-4.0 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 2.31.1;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ накопившиСся ошибки ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ компилятора.

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