写点什么

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

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

关注

评论

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

AI遇上强迫症,大脑与情绪的羁绊有解了

脑极体

Log4j 爆发“核弹级”漏洞、工信部力推开源软件发展、“龙腾计划”启动|开源月报 Vol. 02

腾源会

开源

进击与危机同在,对抗与成长共存:2021年开源圈大事件盘点

腾源会

开源

16 Prometheus之Exporter详解

穿过生命散发芬芳

Prometheus 1月月更

LeetCode 每日一题 No.382 链表随机节点

DawnMagnet

c++ rust LeetCode 力扣

040022-week9-design

InfoQ_70156470130f

模块五作业

whoami

「架构实战营」

王者荣耀商城异地多活架构设计

drizzle

「架构实战营」

陈梓立tison:投身开源,需要持之以恒的热爱与贡献

腾源会

开源

云原生课程总结

dll

Apache 首位华人董事吴晟:开源里的“偷懒”学

腾源会

开源

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

loT

聊聊 Kafka:如何避免消费组的 Rebalance

老周聊架构

kafka

电商秒杀系统架构设计

stars

架构训练营

云原生-模块三-作业

hunk

Linux之ln命令

入门小站

Linux

毕业设计

Geek_1d37ea

架构实战营

更快的Maven构建工具mvnd和Gradle哪个更快?

王磊

毕业设计项目

忘记喝水的猫

架构训练营

微服务通信设计模式

俞凡

架构 微服务

在线条码生成器

入门小站

工具

架构实战营 - 毕业设计

唐敏

「架构实战营」

毕业总结

Geek_1d37ea

架构训练营

毕业设计项目-电商秒杀系统

小朱

架构实战营

好家伙!你这网络基础可以啊!2️⃣

XiaoLin_Java

1月日更

无服务器应用DevOps最新实践(内附完整演讲+视频)

亚马逊云科技 (Amazon Web Services)

计算

2022 年十大 AI 开源工具和框架

腾源会

开源

腾讯开源企业级设计体系 TDesign

腾源会

040022-week3-algorithm

InfoQ_70156470130f

彻底理解对象内存分配及Minor GC和Full GC全过程

JavaEdge

1月月更

模块九作业 - 设计电商秒杀系统

渐行渐远

架构实战营

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