Genie是Vala编译器的另一种语法。它是作为一个可选的lexer和parser实现的,内置于
libvala
.
valac
命令行前端是否
利巴拉
. 是的,它们是集成技术。如果您想了解更多有关精灵如何实现的信息,请阅读
Developing Genie
. 该页面上有指向精灵源文件的链接。
精灵与Vala具有相同的依赖性,Vala只依赖GLib。也有人试图消除对油嘴滑舌的依赖。例如
posixvala
和
avr-vala
.
Vala与GTK+有很好的绑定,这些绑定与GTK+开发保持同步。也许这就是为什么你认为Vala依赖于完整的GNOME堆栈。Vala确实提供了更高级别的代码生成例程,例如转换到GVariant;这个
[GtkTemplate]
,
[GtkChild]
和
[GtkCallback]
用于使用GtkBuilder UI模板的属性;使用
[DBus]
用于生成D-Bus接口的属性和
async
和
yield
用于处理GIO异步回调和一般回调的关键字。“Vala”指的是Vala编译器,而不是语法。因此,Vala和Genie语法都可以使用这些特性。精灵在某些部分的开发程度略低,但这可以由贡献者来解决。这是一个开源/自由软件项目。