写点什么

Mac 和 Ruby 综述:MacRuby AOT,用 ChocTop 创建 DMG 文件

  • 2009-07-22
  • 本文字数:884 字

    阅读完需:约 3 分钟

相比较 JRuby 或者 IronRuby 与其所属平台的集成而言,MacRuby 与 Cocoa 平台的结合更为紧密,这也是 MacRuby 的价值所在。MacRuby 似乎是 Mac 开发者使用 Ruby 开发客户端应用的最佳选择。最近在 MacRuby 的试验性分支上,引入了预编译(Ahead of Time,简称为 AOT)技术:

引入了 macrubyc,一个命令行工具,作为 AOT 编译器的接口。 macrubyc 允许你将一个给定的 Ruby 文件编译成 Mach-O 目标文件,并且还可以生成最终的可执行文件。

尽管现在使用 MacRuby 编写和部署 Ruby 应用已经可行,但这些应用依然需要携带 MacRuby 运行时一同发布。实现 AOT 的目标是为了解决如下问题:

所生成的 Mach-O 目标是真正的目标文件。它们可以用来生成 MacRuby 的可执行文件,你也可以在 Objective-C 的项目中通过 MacRuby 的 Objective-C API 来使用它们。 所生成的可执行文件嵌入了所有已编译的 Ruby 代码,当然也包括静态编译的 MacRuby。它可以独立发布,不需要依赖任何 MacRuby 或者 LLVM 运行时。因为 Ruby 源代码已经编译成了原生机器码(正如我们使用 JIT 编译器在运行时所做的一般),因此这也是混淆代码的一个不错的方式。最终的二进制文件看上去和 Objective-C 的二进制文件很像(当然体积要更大一些)。

举个例子, Chris Wanstrath 的 BaconDrop 工具使用 MacRuby 开发。尽管这个工具很小,但是在捆绑了 MacRuby 之后,它的体积达到了 15MB。如果借助于 AOT 编译成二进制文件的话,应该会更小一些。

BaconDrop 也展示了基于 Ruby 的工具是如何辅助 Mac 开发的。BaconDrop 以 Mac DMG 文件的形式发布,这是由 Dr Nic 开发的一个叫做 ChocTop 的工具来创建的。这个工具对所有的 Cocoa 应用都可以使用,自动创建 DMG 文件,并且会安装 Sparkle (用于处理软件更新)。ChocTop 拥有一套 DSL 化的配置系统,并在你的 rake 文件中添加一些任务。

一旦所有的 MacRuby 应用都可以使用 AOT 编译,在 OS X 应用开发方面,Ruby 便可成为 Objective-C 的有力竞争者(也许在 iPhone 开发方面还不会,因为 iPhone 的 Objective-C 运行时不支持垃圾回收)。

查看英文原文: Mac and Ruby Roundup: MacRuby AOT, DMGs with ChocTop

2009-07-22 11:441875
用户头像

发布了 80 篇内容, 共 23.1 次阅读, 收获喜欢 5 次。

关注

评论

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

软件测试 | 奇安信秋招面试题1

测吧(北京)科技有限公司

测试

软件测试 | 奇安信秋招面试题2

测吧(北京)科技有限公司

测试

软件测试 | 奇安信秋招面试题3

测吧(北京)科技有限公司

测试

极光笔记 | 聊一聊推送系统中事件驱动架构的应用

极光GPTBots-极光推送

代理价格监控和分布式价格监控有什么不同点?

巨量HTTP

http代理 分布式代理

AI在生活中的惊人应用

测吧(北京)科技有限公司

测试

2023英特尔on技术创新大会:英特尔研究院展示多项技术“魔法”

E科讯

真香!为什么设计行业流行部署云桌面?

青椒云云电脑

云桌面

未来PC将是云电脑? 算力优势成为关键

青椒云云电脑

云电脑

《异构融合计算技术白皮书》正式发布,龙蜥助力新一代信息技术发展

OpenAnolis小助手

开源 白皮书 龙蜥社区 世界计算大会 异构融合计算

人工智能 | ChatGPT账号注册

测吧(北京)科技有限公司

测试

Vue3中的Ref与Reactive:深入理解响应式编程

互联网工科生

前端框架 Vue 3

英特尔研究院副总裁、英特尔中国研究院院长宋继强:英特尔技术为全行业带来卓越贡献

E科讯

【聚梦想 创非凡】2023荣耀开发者沙龙 ● 广州站 精彩回顾

荣耀开发者服务平台

互联网 用户增长 云服务 生态合作 行业经验

人工智能:走向智能化生活

测吧(北京)科技有限公司

测试

文心一言 VS 讯飞星火 VS chatgpt (101)-- 算法导论9.3 7题

福大大架构师每日一题

福大大架构师每日一题

定义现代化实时数据仓库,SelectDB 全新产品形态全面发布

SelectDB

数据库 大数据 数据湖 数据分析 云数据库

雨天出行也安心!用华为天气一眼便知未来雨势

最新动态

RTC才是物联网企业的杀手锏!

X2Rtc

音视频 物联网 IoT RTC

流量治理的基石——基于字节码增强的全链路流量标签透传

华为云开源

微服务 微服务架构 字节码

2024成都电子展|成都国际电子信息展览会

AIOTE智博会

电子信息展 成都电子展 电子信息博览会

你眼中的程序员 vs 程序员眼中的自己,是时候打破刻板印象了丨KubeCon 主题活动

阿里巴巴云原生

阿里云 容器 云原生 AIGC

【架构篇】Supabase的Postgrest组件架构介绍

张文平

数据库 postgresql 缓存 多表联查 Postgrest

AI带来的新创浪潮

测吧(北京)科技有限公司

测试

开始报名!龙蜥社区走进 Arm MeetUp 议程硬核剧透来了

OpenAnolis小助手

开源 操作系统 arm Meetup 龙蜥社区

大厂旗下的APP们成为自研大模型的“磨刀石”|TE洞察

TE智库

人工智能 BAT 大模型

Mac和Ruby综述:MacRuby AOT,用ChocTop创建DMG文件_Ruby_Werner Schuster_InfoQ精选文章