【问题标题】:Erlang as an embedded system within an application?Erlang 作为应用程序中的嵌入式系统?
【发布时间】:2011-05-23 09:16:49
【问题描述】:

我有很多用 Erlang 编写的代码,我想将它们包含在用 Objective-C 编写的应用程序中,例如在 iPad 上。理想情况下,我想要一个封装 Erlang 运行时的对象;然后可以像标准 Erlang shell 一样访问它,类似于:

ErlangRT *runtime = [[ErlangRT alloc] init];
ErlangValue *retval = [runtime execute:@"io:format(\"hello world~n\")"];

我不太关心性能等;我可以看到它是如何工作的,但是由于我对 Erlang VM 的实现方式了解不多,所以我不知道它是多么容易或困难,或者是否有人已经做过类似的事情。我知道在 Objective-C 和 Erlang 之间还有其他接口方式,但它们似乎假设在目标机器上独立安装了 Erlang 系统。我希望它像一个库,您只需将其与应用程序链接即可。

所以我的问题是:这相对容易吗,和/或有人已经在这方面工作了吗?

【问题讨论】:

  • 这里的陷阱是“虚拟机”。虽然工具规则已经放宽,但静态链接代码的要求并未放松。任何类型的 JITing/编译/VM - ERL、Flash、.NET/Mono 或其他方式都令人不悦。虽然我确信它是“可行的”,只要有足够的时间/金钱来从 Erlang 源创建针对 iOS 的 ERL 和运行时的嵌入式版本,但您不会被允许在 AppStore 中放入任何动态生成代码的东西。以此作为抑制因素,我怀疑是否有人承担了移植它的任务。
  • 嗯,我会吃点我的话-似​​乎sourceforge.net/projects/erlandstaticlib在这条路上...不确定它处于什么状态。规则仍然规定它只能出现在应用商店中是静态链接代码。
  • 我的理解是动态生成或下载代码是禁止的,而解释现有的(即AppStore-vetted)嵌入式代码是可以的。
  • 哦,谢谢你的链接!
  • 请注意,Apple 允许在商店中包含 Lua 脚本的应用程序。他们的规则的目的似乎是阻止任何人下载可执行代码(Javascript 除外),因此只要您的 Erlang VM 仅执行捆绑在应用程序中的内容,我希望您会没事的。 (但没有人知道 Apple 的审阅者会如何对任何事情做出裁决。)

标签: objective-c erlang


【解决方案1】:

作为我们的 Apache CouchDB for iOS 软件包的一部分,我们已经让 Erlang 在 iPhone 上工作(并被批准用于 App Store)。 Github 项目在这里:https://github.com/couchbaselabs/iOS-Couchbase

我们使用的 Erlang 在这里:https://github.com/couchbaselabs/iErl14

有关移动沙发底座的更多信息:http://www.couchbase.com/products-and-services/mobile-couchbase

享受吧!

克里斯

【讨论】:

    【解决方案2】:

    看起来http://sourceforge.net/projects/erlandstaticlib/ 是目前最好的选择。

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 2012-07-03
      • 2012-03-09
      • 1970-01-01
      相关资源
      最近更新 更多