发布编程语言翻译器 Vala 0.54.0

新版本的编程语言翻译器 Vala 0.54.0 已发布。 Vala 语言是一种面向对象的编程语言,提供类似于 C# 或 Java 的语法。 Vala 代码被翻译为 C 程序,而 C 程序又由标准 C 编译器编译为二进制文件,并以编译为目标平台目标代码的应用程序的速度执行。 可以在脚本模式下运行程序。 该语言是在 GNOME 项目的支持下开发的。 Gobject(Glib 对象系统)用作对象模型。 编译器代码根据 LGPLv2.1 许可证分发。

该语言支持内省、lambda 函数、接口、委托和闭包、信号和槽、异常、属性、非空类型、局部变量 (var) 的类型推断。 内存管理是基于引用计数进行的。 已经为该语言开发了通用编程库 libgee,它提供了为自定义数据类型创建集合的能力。 支持使用 foreach 语句枚举集合元素。 图形程序的编程是使用GTK图形库进行的。

该套件附带了大量与 C 语言库的绑定。Vala 翻译器提供对 Genie 语言的支持,该语言提供类似的功能,但其语法受到 Python 编程语言的启发。 Geary 电子邮件客户端、Budgie 图形 shell、Shotwell 照片和视频文件组织程序等程序都是用 Vala 语言编写的。 该语言被积极用于 Elementary OS 发行版的开发。

主要创新点:

  • 添加了对具有可变数量参数的委托的支持;
  • 添加了 LIBC 配置文件,它与 POSIX 配置文件同义;
  • 改进了 POSIX 配置文件模式下的生成;
  • 添加了通过类型推断声明可以具有空值的变量的功能(var?);
  • 添加了声明禁止继承的类(密封)的功能;
  • 为可以为 null 的类字段添加了安全访问运算符 (a.?b.?c);
  • 允许将结构内容初始化为 null (const Foo[] BARS = { { "bar", 42 }, null };);
  • 对于常量数组禁止resize()操作;
  • 添加了尝试将函数调用转换为 void ((void)not_void_func();) 时的警告输出
  • 删除了对 GLib.Array 元素类型的限制;
  • 修复了 foreach() 语句中的“unowned var”所有权继承;
  • 与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- 的绑定扩展 4.0、x11、zlib、gnutls;
  • 删除了 gedit-2.20 和 webkit-1.0 绑定;
  • 基于GIR更新了绑定;
  • 测试系统增加了检查生成的C代码的能力;
  • 改进了 girparser、girwriter、valadoc、libval​​adoc/girimporter;
  • 各种编译器组件累积的错误和缺点已得到修复。

来源: opennet.ru

添加评论