写点什么

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

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

关注

评论

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

鸿蒙应用示例:DevEco Studio实用技巧

zhongcx

曲面LED屏:视觉革新与使用优势的深入分析

Dylan

技术 视觉 LED display LED显示屏 市场

鸿蒙应用示例:跨组件通信实践父组件调用子组件方法及状态共享

zhongcx

鸿蒙应用示例:NEXT 中 Map 类型的使用及注意事项

zhongcx

鸿蒙应用示例:实现文本高亮与自动换行

zhongcx

云栖实录 | 智能运维年度重磅发布及大模型实践解读

阿里云大数据AI技术

运维 云原生 gitops 智能运维 大模型

鸿蒙应用示例:ArkTS中实现一键置灰功能

zhongcx

鸿蒙应用示例: flexGrow 与 layoutWeight 布局属性比较

zhongcx

鸿蒙开发案例:实现一个带AI的井字游戏(Tic Tac Toe)

zhongcx

【论文速读】| AutoSafeCoder:通过静态分析和模糊测试保障LLM代码生成安全的多智能体框架

云起无垠

鸿蒙应用示例:应用开发中的动态获取属性与调用方法技巧

zhongcx

鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景

zhongcx

鸿蒙开发案例:实现数字华容道游戏

zhongcx

鸿蒙应用示例:API功能集成示例及注意事项

zhongcx

鸿蒙应用示例:舒尔特方格游戏实现

zhongcx

鸿蒙应用示例:ArkTS中设置颜色透明度与颜色渐变方案探讨

zhongcx

鸿蒙应用示例:工作中常用的日期时间处理方法

zhongcx

鸿蒙应用示例:镂空效果实现教程

zhongcx

鸿蒙开发案例:HarmonyOS NEXT语法实现2048

zhongcx

公开课 | 金九银十,测试开发面试秘籍大公开!

测试人

软件测试

鸿蒙应用示例:状态管理与UI刷新机制从@State到@ObservedV2的进阶

zhongcx

鸿蒙应用示例:键盘管理从避免遮挡到显示监听的方案实践

zhongcx

NocoBase 与 Appsmith:哪个低代码平台更适合你?

NocoBase

低代码 开发工具 无代码

鸿蒙应用示例:Java与ArkTS中的方法重载及数值类型对比

zhongcx

鸿蒙应用示例:ArkTS UI框架中的文本缩进技巧

zhongcx

鸿蒙开发案例:一个简单的扫雷游戏应用

zhongcx

首届中国室内AI设计大赛启动,美学与科技助力,助力产业新增长!

Geek_2d6073

别分管理与实践,质量体系是一个整体

BY林子

质量管理 软件质量 质量体系

实测9款AI文件助手!原来最好用的并不是全网称赞的谷歌NotebookLM...

可信AI进展

人工智能、

鸿蒙应用示例:基于 promptAction 封装全局弹窗工具类

zhongcx

鸿蒙应用示例:单例工具类实现防抖动策略

zhongcx

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