8

我只是在查看 Haxe 3.2.0-rc.2 的更改日志,并在新功能列表的末尾找到了这个:

cpp : inititial implementation of cppia scripting

谁能告诉我这是什么意思?我可以说它与 C++ 有关,但谷歌搜索这与编程/脚本无关,除非您计算与 Haxe 相关的结果。

4

2 回答 2

8

Cppia(读作“sepia”)是 Haxe 的 C++ 目标的一个新部分。从最基本的意义上说,它是 hxcpp 的“脚本”语言,无需使用 C++ 编译器即可编译和运行。一些官方文档可以在这里找到:

Haxe/Cppia 入门

为了编译为 cppia,您需要修改您的 hxml 构建文件。在您的构建中添加一个-D cppia标志并将输出更改为具有.cppia扩展名。这是一个例子。

-cpp out.cppia # the cppia output file
-main Main     # your Main.hx file
-D cppia       # this enables cppia compilation

完成此操作后,您可以像平常一样使用 Haxe 编译 hxml 文件。它将为您提供一个名为的文件out.cppia,然后可以使用命令通过 hxcpp 运行该文件haxelib run hxcpp out.cppia。这种方法的一个缺点是,如果不构建自己的 cppia 主机,就无法使用本机扩展。因此,如果您需要使用 OpenFL 或 Kha 运行某些东西,则必须等到它们支持 cppia。

根据我发现的信息,听起来 cppia 的运行速度与 Neko JIT 一样快。考虑到编译时间同样快,我可以看到这将成为未来 neko 目标的一个很好的替代品。

更多信息可以在创建者 Hugh Sanderson 在 WWX 2015 上的演讲幻灯片中找到。

http://gamehaxe.com/wwx/wwx2015.swf

于 2015-06-23T20:21:39.340 回答
6

一个简短的搜索只指出了一些 IRC 日志。其中一些是有用的。

似乎它是 Haxe 代码的一种特定输出格式,旨在用于开发以快速修改代码。比如说,在开发游戏时,每次进行最细微的更改时都需要重新编译和重新部署应用程序,这确实会减慢您的进度。人们报告这是 iOS 开发的一个问题。

Cppia 似乎使用特定的代码格式和基于 SLJIT 的 JIT 编译器来解决这个问题(在 hxcpp repo 中找到)。大概(我从上面引用的日志中得出结论),它允许您在运行时修改应用程序的某些部分。

也就是说,cppia 作为一种语言可能不是直接使用的,而是由编译器生成的。

这些是我能想到的最有力的线索,我肯定会遗漏一些细节。但由于该功能相当新,这些细节现在甚至可能不为人所知。

于 2015-05-02T23:58:20.677 回答