Vala 是一个开源,免费和现代的编程语言和软件项目,从偏移量设计,为GNOME开发人员带来了新的编程功能。它是GObject类型系统的编译器,允许GNOME开发人员创建令人惊讶的应用程序。
功能一目了然
主要功能包括接口,属性,信号,foreach,lambda表达式,局部变量的类型推断,泛型,非null类型,辅助内存管理,异常处理,以及类型模块a.k.a. plugins。
轻松编写复杂的面向对象代码
使用Vala编译器,作为开发人员,您将能够毫不费力地编写复杂的面向对象代码,同时保持较低的内存要求,并维护标准的C ABI和API。
允许访问现有的C库
该项目的设计方式允许访问现有的C库,尤其是基于GObject的库,而无需运行时绑定。
它非常适合GTK +和GNOME
Vala是一种命令行编译器和编程语言。使用GTK +和GNOME的开发人员将能够使用Vala编写代码并进行编译。
它受C ++,C,C#,Python,D和Java的影响
Vala编程语言受到众所周知且广泛使用的C,C ++,D,Python,C#和Java编程语言的影响。它是一种跨平台的软件,可以轻松移植到其他操作系统上。
它受到各种IDE程序的支持
另一个有趣的功能是兼容各种IDE(集成开发环境)程序,包括Anjuta,Valencia,Geany,Emacs,MonoDevelop,NetBeans,Val(a)IDE,Sublime Text,Vim,Vala Toys for Gedit,Euclide, RedCar,TextMate和Valama。
可用性和支持的体系结构
Vala仅作为源存档分发。这意味着用户必须在安装之前配置和编译代码。当然,它也可以很容易地安装在默认软件存储库的任何GNU / Linux发行版上。目前支持32位和64位架构。
此版本中的新功能:
- 各种错误修复:
- codegen:对传递给泛型类型[#655] 的对象调用ref_sink
- codegen:在GDBusMethodInvocation上返回后出现免费错误[#657]
- girparser:实际上解决了类型参数,以便能够在需要时将它们装箱
- vala:添加consts /方法以检索和检查库版本[#304]
- 绑定:
- glib-2.0:添加Array.remove *()包装以避免泄漏通用元素
- glib-2.0:添加(u)long.parse / try_parse()[#649]
- gstreamer:从1.15+ git master 更新
- gtk + -3.0:更新至3.23.2 + 6b6e53fd
- gtk + -4.0:更新至3.94.0 + 4e868584
版本0.40.7中的新功能:
- 各种改进和错误修复:
- 更新错误跟踪链接至https://gitlab.gnome.org/GNOME/vala/issues
- 代码生成:
- 处理字段[#520] 的delegate_target属性
- glib集合的免费通用元素[#694765]
- 修复g_source_new() 的source_funcs参数警告
- 实际上将GLib.Source视为紧凑类
- GLib.Source的自定义抽象方法的处理方式不同[#641]
- 始终使用gpointer代表目标
- 统一一些委托类型检查模式
- 注册接口时使用default_init而不是base_init [#699550]
- girparser:添加对bool delegate_target的支持[#520]
- girwriter:
- 弃用输出=" 1"
- 仅构造属性没有setter方法
- 不要写任何自定义属性[#608]
- valadoc:修复堆叠数组的TreeBuilder.create_array()
- 绑定:
- 油嘴-2.0:
- 不要将简单类型的out-parameters标记为可为空[#634]
- Make Source.attach()默认使用默认的MainContext
- Make Bytes.slice()使用内存效率高的Bytes.from_bytes()[#638]
- 修复Bytes.with_free_func()
- GIO-2.0:
- 将ActionEntry.parameter_type / state字段标记为可为空[#632]
- DBus * VTable的委托字段没有隐式目标字段
- 在ActionEntry回调中应用delegate_target = false并使它们变弱[#630]
- 为所有io_priority参数添加默认值
- gstreamer:Cherry-从0.42中挑选一些修复,添加gst-editing-services-1.0
- gtk + -3.0:更新至3.22.30 + 9ac7f906
- gtk + -4.0:更新至3.93.0 + 29fee2e8
- webkit2gtk-4.0:更新至2.21.4
- 更新基于GIR的绑定
版本中的新功能:
- 各种错误修复:
- 使用真正的非null结构参数修复链式回归[#791785]
- 在使用[#712694]后释放对CodeContext的引用并保持parse_file()的自定义调用[#791936]
- parser:在开关的case-statement [#614015] 中接受以逗号分隔的列表
- 绑定:
- 删除上游运输多年的绑定
- gedit 3 [#776021],libgnome-keyring [#776022],
- gtksourceview-3.0 [#776023],libgdata [#776024],librsvg-2.0 [#776025]
- glib-2.0:添加GLib.OPTION_REMAINING和GLib.OptionFlags.NONE
- gstreamer-1.0:从1.13+ git master 更新
- gtk + -2.0:将Message MessageDialog构造函数参数message_format标记为可为空[#791570]
- gtk + -4.0:更新至3.93.0 + 6aeae2c8
- webkit2gtk-4.0:更新至2.19.3
版本0.39.1中的新功能:
- 亮点
- 如果属性类型与GLib.Object [#693932] 不兼容,则报告警告
- 允许将兼容的委托传递给signal.connect()[#787521]
- 尽可能允许未范围的枚举值
- 避免对返回ValueType的某些calla使用temp-var并访问/ ref参数[#789071]
- 重新格式化生成的源声明和定义以提高可读性[#688447]
- 各种错误修复:
- 使用array_length_cexpr支持返回值的固定数组[#784691]
- 正确解析vala interpeter-mode的参数[#663070]
- 使用GType [#764041] 对结构体强制使用名称长度> = 3
- 在封闭类型[#587905] 上报告缺少类型参数的错误
- 为方法添加布尔“use_inplace”ccode-attribute [#750840]
- 改善无主/拥有关键字出现的处理
- 如果目标委托抛出一个 ,则方法需要抛出兼容错误
- 发现无效的成员访问实例字段[#790903]
- 改善不匹配覆盖方法的错误输出
- Valadoc
- 确认结构中的可能属性[#784705]
- 修复GtkdocRenderer.visit_symbol_link()中的致命拼写错误[#790266]
- 绑定:
- glib-2.0:使用type-id / marshaller-type for(u)int16 /(u)short from(u)int32 [#693932]
- glib-2.0:将可选的'未解析'参数添加到* .try_parse()[#774124]
- gobject-2.0:添加一些缺少的符号
- gstreamer-1.0:绑定GST_TIME_ARGS,GST_STIME_ARGS宏[#750840]
- gstreamer-1.0:绑定GST_DEBUG_BIN_TO_DOT_FILE / * _ WITH_TS [#785215]
- gstreamer-1.0:从1.13+ git master 更新
- gtk + -3.0:更新至3.22.26 + 9ce824d3
- gtk + -4.0:将Gsk.RenderNode拆分为多个类
- gtk + -4.0:更新至3.93.0 + 2d797dd8
- webkit2gtk-4.0:更新至2.19.2
版本0.38.3中的新功能:
- 各种错误修复:
- codegen:优先于“array_null_terminated = true”优先“array_length = true”[#788775]
- codegen:避免与内部属性/信号定义[#788964] 发生冲突
- 绑定:
- gio-2.0:将g_task_get_source_object公开为Task.get_unowned_source_object
- gstreamer-1.0:从1.13+ git master 更新
- gtk + -4.0:更新至3.92.1
- libxml-2.0:添加DTD方法[#789442]
版本0.38.2中的新功能:
- 各种绑定更新:
- gstreamer-1.0,gtk + -3.0,gtk + -4.0:从git master更新
- gnutls:修复证书[#788181] 的free_function ccode-attribute
版本0.38.1中的新功能:
- 各种错误修复:
- valadoc:不要使用'stderr'作为变量名[#787305]
- codegen:尝试为属性使用更独特的内部定义[#787436]
- vala:更新已使用属性的列表
- 方法:使用prototype-string进行返回类型不匹配的错误报告
- 绑定:
- glib-2.0:修复MainContext.check(),OptionEntry []参数以空值终止,绑定g_convert_with_fallback()和g_convert_with_iconv()
版本0.37.1中的新功能:
- 亮点:
- 如果installed_version较旧,请不要警告已弃用的符号
- 添加--gresourcesdir选项[#783133]
- 各种错误修复:
- gdbus:不要在反序列化时泄漏嵌套的HashTable [#782719]
- 使用异步收益率[#741929] 修复finally块
- 处理合并表达式中的非空值[#611223]
- 为<制作task_complete标志2.44更类似于> = 2.44 [#783543]
- Nullable ValueType需要POINTER作为编组人签名[#783897]
- 仅限gobject-properties 允许使用NoAccessorMethod属性
- girparser:修复无目标 的委托别名解析
- 编译器:使用API_VERSION而不是剥离PACKAGE_SUFFIX
- girwriter:写入秩为>的数组的长度参数1 [#758019]
- 绑定:
- gio-2.0:对DataInputStream.read_line_utf8使用默认的'length = null'* [#783351]
- gobject-2.0:添加GLib.ParamSpecPointer
- poppler-glib:更新至0.54.0
- gstreamer-1.0:各种绑定修复
版本0.36.3中的新功能:
- 各种错误修复:
- scanner:修复多行注释[#652899] 后令牌列值的计算
- codegen:解析协同程序中未被捕获的错误的GLIR.AsyncResult [#641171]
- 继续初始化结构构造函数的结果变量[#782056]
版本0.36.1中的新功能:
- 各种错误修复:
- 始终考虑与自身兼容的方法[#773135]
- 对实际的.end()方法签名[#684208] 执行参数检查
- 略微改善目标类型不匹配的lamdba表达式错误
- 修复实例字段的代理初始值设定项[#683925]
- 在投射/分配拥有的代表时,不要泄漏目标参考[#780426]
- GIR解析器和编写器:
- girparser:为元数据添加destroy参数[#750838]
- vapigen:像在valac中一样添加--nostdpkg选项
- 绑定:
- gstreamer-1.0:修复Pad.set _ * _ function()绑定[#750838]
- glib-2.0:添加缺少的版本宏和常量,unichar.to_string不返回null
- gtk + -2.0,gtk + -3.0:将Widget.intersect()的“交集”参数标记为
- gtk + -4.0:更新至3.90.0
评论没有发现