50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:441886
用户头像

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

关注

评论

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

【架构】— 写在前面的话

不二架构

总结 感悟 极客大学架构师训练营

食堂就餐卡系统设计 UML

Kun

极客大学架构师训练营

架构师训练营第一周总结

好名字

总结 极客大学架构师训练营

作业二

姜 某某

for 语句

Hello

TypeScript:重新发明一次 JavaScript

LeanCloud

Java node.js typescript 大前端

Flink 1.10 Container 环境实战

Apache Flink

大数据 flink 流计算 实时计算

redis线程模型

wjchenge

架构师训练营第一周命题作业

whiter

极客大学架构师训练营

第一周作业1-食堂就餐系统设计

Geek_10

直播 | 阿里、快手、Databricks、网易云音乐...国内外大数据大佬齐聚一堂要聊啥?

Apache Flink

大数据 flink 流计算 实时计算

【练习】食堂就餐卡系统设计

张金峰

极客大学架构师训练营

食堂就餐卡系统架构设计

时来运转

极客大学架构师训练营

架构师是怎样炼成的

彭阿三

架构

第一周学习感想

heeeeeeyZ25

第一周作业二:架构师第一周上课总结

Geek_10

作业一

姜 某某

01.食堂就餐卡系统简要设计以及学习总结

昵称

食堂就餐卡系统设计

互金从业者X

01周-就餐卡系统设计

dao

极客大学架构师训练营 实验品

数仓系列 | Flink 窗口的应用与实现

Apache Flink

大数据 flink 流计算 实时计算

第一周学习总结

Thrine

软件设计方法论

Dark

学习 思维导图 软件设计 设计实践

驳《阿里「Java开发手册」中的1个bug》?

王磊

Java 性能优化 性能

架构设计文档的一些心得

elfkingw

食堂就餐卡系统设计

heeeeeeyZ25

极客时间架构课Week01-作业一:食堂就餐卡系统设计

yulyulcl

架构师训练营-第一章 心得总结

Linkin

架构师训练营第一周学习总结

时来运转

极客大学架构师训练营

架构师 week 1 作业二

iLeGeND

如何从 0 到 1 参与 Flink 社区?

Apache Flink

大数据 flink 流计算 实时计算

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