写点什么

OCaml 已经做好 iOS 开发准备

  • 2016-01-31
  • 本文字数:1383 字

    阅读完需:约 5 分钟

近日,来自旧金山的程序员 Edgar Aroutiounian 为 OCamliOS( Jeffrey A. Scofield 不久前推出的一个面向 iOS 的 OCamml 交叉编译器创建了一个程序包。InfoQ 就此对他进行了采访。

Scofield解释说,许多年来,他一直维护着一系列针对OCaml 编译器的补丁。近日,在Gerd Stolpmann 的帮助下,这些补丁进入了 OCaml 官方 GitHub 库的一个分支。按照 Scofield 的说法,在某个时候,该分支应该合并到 OCaml 正式版本中。

基于 Scofield 和 Stolpmann 的工作,Aroutiounian 将 OCamliOS 封装成一个 OPAM 程序包,使开发人员更容易安装它。他提供了一个简单的例子,展示如何将OCmal 代码集成到iOS Objective-C 应用里。下面的OCaml 代码片段将注册一个回调函数,并稍后从Objective-C 调用:

复制代码
let make_string () =
print_endline "Hello Word from OCaml";
"Hello World "
let () =
Callback.register "make_string" make_string
复制代码
#define CAML_NAME_SPACE
#import <foundation foundation.h="">
#include <caml callback.h="">
#include <caml mlvalues.h="">
int main (int argc, char **argv)
{
caml_startup(argv);
caml_callback(*caml_named_value("make_string"), Val_unit);
NSLog(@"Now using objective-c code");
return 0;
}</caml></caml></foundation>

OCaml 代码可以编译成一个独立的 iOS 可执行文件(不适合创建通过应用商店发布的应用)或者一个 C 静态库。目前,唯一可以在 OCaml 中使用的程序包是它的标准库。将来会增加对其他程序包的支持。

为了了解更多有关 opam-ios 和 OCaml for iOS 的信息,InfoQ 采访了 Aroutiounian。

opam-ios 究竟带来了什么?

它为程序员带来了方便。OPAM 是一个高级的 OCaml 包管理器。我想让 iOS OCaml 编译器成为 OCaml 世界的一等公民。

使用 opam-ios 能够为 iOS 应用开发带来什么好处?按照您的设想,通过 opam-ios 使用 OCaml 的 iOS 应用是个什么样子?

好处是,OCaml 是一种真正的函数式编程语言,从创建之初就遵循这一理念。它非常灵活,需要的话,可以使用 C 调用 Objective-C,实现某些已有代码的重用,例如 GUI 代码。按照我的设想,使用 OCaml 实现业务逻辑,Objective-C 仅用于 GUI 展示,虽然 OCaml 也支持面向对象编程,而我也可以将 Objective-C 对象封装成 OCmal 对象。

可以认为 OCaml 对 iOS 的支持已经成熟了吗?您接下来计划增加什么特性?

我并没有做为这个 iOS 编译器编写补丁这种艰苦的工作。基本情况是,苹果使用了一个老版本的 ARM 汇编编译器,从根本上讲,还是一个派生版本。因此,与 Linux 汇编编译器生成的 ARM 程序相比,他们的 ARM 汇编程序略有不同。所以,Gerd Stolpmann 及来自 Psellos.com 的朋友们才是真正的英雄,是他们提供的编译器和补丁让它可以投入使用并具备了重现性。所以现在,这还是该编译器的一个补丁版本,但很快它将正式成为该编译器的一部分。

所以,我接下来准备增加的特性是为每个版本创建更多的程序包。例如,现在仅能支持到 iOS SDK 8.3,但我可以增加更多的编译器,比如说,支持到 SDK 9.2。Jeff 在 Psellos 已经完成了令人惊叹的工作。他刚刚又有新的发布,这次是 OCaml 4.02.3,那是最新最棒的版本,适用于 iOS SDK 9.2。基本上是最先进的。

OCamliOS 运行在 OS X 10.11 上,生成 iOS 7.0+ 代码。Opam-ios 可以从 OCaml 包管理器 OPAM 安装。

查看英文原文: OCaml Now Ready for iOS Development

2016-01-31 18:002971
用户头像

发布了 1008 篇内容, 共 398.2 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

IPv4与IPv6的区别终于有人讲清楚了!

IPIDEA全球HTTP

IP地址

如何做好一场老外露脸出镜的币安直播AMA?

区块链项目一站式包装孵化

从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署

华为云开发者联盟

云原生 华为云 gitops 华为云开发者联盟 企业号2024年7月PK榜

全过程的区块链项目包装孵化都包含啥?

区块链项目一站式包装孵化

区块链媒体宣发,区块链项目推广,一站式宣发能提供哪些服务?

区块链项目一站式包装孵化

泛娱乐出海新风口,视频云技术需要怎样的融合创新?

阿里云CloudImagine

云计算 音视频 视频云 泛娱乐出海 AIGC

Minitab Express for Mac(数据分析统计软件)v1.5.0版

Mac相关知识分享

数据分析

区块链开发:区块链软件开发包装相关解析

区块链项目一站式包装孵化

比特币相比其他投资产品,有何区别?

区块链项目一站式包装孵化

如何通过币安玩转币圈【适合新手小白】

区块链项目一站式包装孵化

「多模态大模型」解读 | 突破单一文本模态局限

Baihai IDP

程序员 AI LLMs 企业号 7 月 PK 榜 多模态大模型

企业数智化首选!上半年,众多头部民营企业选择用友!

用友BIP

软文发稿:雅虎媒体套餐投放内容有哪些

区块链项目一站式包装孵化

区块链工程专业

区块链开发团队DappNetWork

推特(twitter)涨粉提高关注量应该怎么做?如何让Twitter账号涨粉推特怎么涨粉?Discord怎么拉人?telegram怎么拉人?ins,油管,脸书怎么涨粉?有没有运营的比较成功的twitter大帐号?

区块链项目一站式包装孵化

一个万倍meme币是如何诞生的?

区块链项目一站式包装孵化

区块链项目孵化:关键步骤与重要内容

区块链项目一站式包装孵化

纳斯达克大屏投放:品牌塑造的开始一环!

区块链项目一站式包装孵化

如何在币圈抓住新叙事,牛市的布局策略!

区块链项目一站式包装孵化

腾讯会议如何补充人数(充场)?大会议室如何建立?

区块链项目一站式包装孵化

项目利用宣传片等视频进行宣发有何优势?

区块链项目一站式包装孵化

“内卷”的电商江湖:拼服务才有出路

Alter

加入运动健康数据开放平台,共赢鸿蒙未来

HarmonyOS SDK

HarmonyOS

软工智库|低代码篇(三)——低代码开发平台如何实现?

电子标准院软工研究室

区块链常见的软文推广媒体宣发方式有哪些?

区块链项目一站式包装孵化

备战牛市主升浪,我对本轮周期的阶段性思考

区块链项目一站式包装孵化

推特是否能够买粉买赞?

区块链项目一站式包装孵化

币圈项目为什么要做cmc+cg(双c)?

区块链项目一站式包装孵化

TP钱包如何上代币、收录LOGO(TokenPocket)tp钱包上传代币LOGO

区块链项目一站式包装孵化

给刚进入币圈的新人小白的几点建议

区块链项目一站式包装孵化

OCaml已经做好iOS开发准备_移动_Sergio De Simone_InfoQ精选文章