限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

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

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

关注

评论

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

Doris Manager 24.3 版本正式发布,增强集群巡检能力

SelectDB

Apache 数据库 数据分析 实时数仓 OLAP

借助 CodeBuddy,我轻松开发出三分钟读书 App

繁依Fanyi

借助 CodeBuddy,我见证了一款在线代码格式化神器的诞生

繁依Fanyi

《算法导论(第4版)》阅读笔记:p95-p100

codists

算法

我如何和 CodeBuddy 搭建「Gradia」渐变配色神器 —— 一场流动色彩的创造之旅

繁依Fanyi

模型蒸馏:“学神”老师教出“学霸”学生

Baihai IDP

程序员 AI LLM 模型蒸馏

等保测评流程

黑龙江陆陆信息测评部

永久免费!专为 Apache Doris 打造的可视化数据管理工具 SelectDB Studio V1.1.0 重磅发布!

SelectDB

数据库 大数据 数据分析 实时数仓 可视化工具

「今日一句」情绪签语 App:一次与 CodeBuddy 的共创之旅

繁依Fanyi

【线下沙龙】NineData x Apache Doris x 阿里云联合举办数据库技术Meetup,5月24日深圳见!

NineData

阿里云 Doris NineData 数据实时分析 数据同步迁移

Coze扣子文档解析 VS. 专业OCR工具,RAG知识库性能评测!

合合技术团队

人工智能 OCR #大数据 文档解析

《算法导论(第4版)》阅读笔记:p91-p94

codists

算法

【HarmonyOS 5】鸿蒙星闪NearLink详解

GeorgeGcs

通义灵码2.5智能体模式联合MCP:打造自动化菜品推荐平台,实现从需求到部署的全流程创新

穿过生命散发芬芳

MCP 通义灵码2.5

借助 CodeBuddy,轻松打造「一分钟冥想」App

繁依Fanyi

华为邀您相聚KubeCon China 2025,共绘云原生新一个十年

华为云原生团队

云计算 容器 云原生

鸿蒙电脑正式发布!新机用户专享“鸿蒙有礼”,800元权益礼包限时领取

最新动态

Nuxt的SEO实践

溪抱鱼

typescript nuxt

ES 调优帖:关于索引合并参数 index.merge.policy.deletePctAllowed 的取值优化

极限实验室

Elastic Search

打造一款属于我的在线加密实验室 —— CodeBuddy 实现 CryptoXLab 项目实录

繁依Fanyi

打卡习惯,记录坚持:我用 CodeBuddy 做了个毛玻璃风格的习惯打卡小应用

繁依Fanyi

我的 PDF 工具箱:CodeBuddy 打造 PDFMagician 的全过程记录

繁依Fanyi

借助 CodeBuddy,我轻松打造了图像滤镜工厂

繁依Fanyi

融云上线智能回复助手,可丝滑融入业务流的 IM+AI 能力

融云 RongCloud

一次对话,让我10分钟打造一款拥有玻璃拟态风格的二维码生成大师

繁依Fanyi

基于亚马逊云科技构建音视频直播审核方案

亚马逊云科技 (Amazon Web Services)

淘宝图片搜索API秘籍!轻松获取相似商品数据

tbapi

淘宝API 淘宝图片搜索接口 淘宝图片搜索API 天猫图片搜索接口 淘宝图片api

Arthas 全攻略:让调试变得简单

刘大猫

人工智能 算法 监控 Arthas 监控工具

2025杭州人形机器人展会|加快推动人形机器人产业创新发展

AIOTE智博会

机器人展 智能机器人展 人形机器人展

「10秒发现,5分钟定位」- 阿里云EMAS应用监控引领全链路智能监控新时代

移动研发平台EMAS

监控 崩溃分析 应用性能监控产品 应用监控 应用性能监控

区块链DApp的开发流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

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