我现在可以将JIT用于要通过商店分发的iOS应用程序吗?

Ste*_*ont 6 smalltalk appstore-approval ios

几年前,出现了同样的问题,Apple是否更新了提交规则以允许JITters提交提交的应用程序?opensmalltalk-vm比非JITting版本快大约十倍,甚至Apple Watch也有足够的内存来轻松运行它。

Ber*_*erg 6

苹果的政策没有改变。需要PROT_WRITE | PROT_EXEC页面的应用未获准用于商店,而JIT则需要。

我看到两种解决方法:

  1. 使用AOT而不是JIT:修改Cog,以便它可以将jitted代码存储到文件中。在为您的应用运行覆盖测试时,在开发机上执行此操作。那应该清除所有代码。将代码文件放入App捆绑包中。在运行时,将文件加载到PROT_READ | PROT_EXEC 页面中并执行在那里找到的所有方法。所有其他都需要解释。

  2. 有是一种方式来运行你的应用程序一个JIT:苹果的JavaScript JIT。它是目前所有移动平台上最快的。您可以帮助使SqueakJS的代码生成器生成更有效的JS代码。这将允许在JIT上运行所有Smalltalk代码,甚至是新方法。