写点什么

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

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

关注

评论

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

模块分解-微服务,组件设计原则,领域驱动开发

garlic

极客大学架构师训练营

第六周作业

willson

极客大学架构师训练营

架构师训练营week10总结

FG佳

身为一名优秀的程序员,如何避免满屏的写 if else!

Java架构师迁哥

Week 6 学习总结

evildracula

学习 架构

架构师训练营 1 期 - 第十周作业(vaik)

行之

极客大学架构师训练营

week 6 学习笔记

willson

【架构师训练营第 1 期 10 周】 学习总结

Bear

极客大学架构师训练营

第10周作业

alpha

极客大学架构师训练营

第十周 模块分解作业

蓝黑

极客大学架构师训练营

Architecture Phase1 Week10:HomeWork

phylony-lu

极客大学架构师训练营

第六周作业总结

hunk

极客大学架构师训练营

架构师训练营week10

FG佳

架构师一期

成为架构师 - 架构师训练营第 06 周

陈永龙Vincent

第 6 周 系统架构作业

心在那片海

《Python数据科学入门》PDF免费下载

计算机与AI

Python 学习 数据科学

第十周作业

wanlinwang

极客大学架构师训练营

架构师训练营第十周课程笔记及心得

Airs

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

文智

极客大学架构师训练营

第十周作业 (作业二)

Geek_83908e

架构师一期

面试被问Mybatis底层实现:你连这个知识点都说不明白?

小Q

Java 编程 程序员 架构 mybatis

架构一期第十周作业

Airs

第 6 周 系统架构总结

心在那片海

第十周作业 (作业一)

Geek_83908e

架构师一期

Week_10 作业

golangboy

极客大学架构师训练营

第十周作业

熊桂平

极客大学架构师训练营

架构师训练营 1 期 -- 第十周作业

曾彪彪

第10周总结

alpha

极客大学架构师训练营

六、CAP

Geek_28b526

第六周作业

hunk

极客大学架构师训练营

架构2期-第六周作业(1)

浮生一梦

极客大学架构师训练营 2组 第六周作业

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