写点什么

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

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

关注

评论

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

天命人,如何轻松利用仿真技术打造出属于你的“金箍棒”?

Altair RapidMiner

人工智能 设计 仿真 altair 黑神话悟空

解读 Story Protocol:IP 与区块链的潜力与障碍

TechubNews

再获殊荣!MIAOYUN获评“2024新一代信息技术应用优秀案例”

MIAOYUN

云计算 云原生 超融合 新一代信息技术 优秀案例

TikTok云手机:实现多账号矩阵运营

Ogcloud

云手机 海外云手机 tiktok云手机 矩阵运营 TikTok矩阵运营

袋鼠云数据资产平台:数据模型标准化建表重构升级

袋鼠云数栈

TikTok多账号运营:云手机的选择与注意事项

Ogcloud

云手机 海外云手机 tiktok云手机 矩阵运营 TikTok矩阵运营

华为云分布式缓存服务Redis®版9月企业版、灵活的购买方式全新上市

分布式缓存 华为云

推荐一款Python接口自动化测试数据提取分析神器!

不在线第一只蜗牛

Python

京东金融APP的鸿蒙之旅:技术、挑战与实践

京东科技开发者

主动元数据,让数据管理“看得清、管得住、治得动”

Aloudata

元数据 全链路数据血缘 数据血缘 数据链路

MiniMax、商汤科技、面壁智能、西湖心辰、声网都来了!RTE 大会「实时互动和大模型」专场开启报名

声网

在Bamboo上怎么使用iOS的单元测试

京东科技开发者

活动指南 | 一文盘点 Pencils Protocol 近期不可错过的市场活动

石头财经

NAS部署Alist、Nextcloud、File Browser,贝锐花生壳实现远程访问

贝锐

NAS Docker 镜像

澳鹏大模型数据服务,赋能AGI智能涌现

澳鹏Appen

数据标注 大模型 数据服务 AGI AI 智能体

HAP官方力作:MEGA进销存应用正式上线

明道云

探索 Snowflake 与 Databend 的云原生数仓技术与应用实践

Databend

望繁信科技CTO李进峰受邀在上海外国语大学开展流程挖掘专题讲座

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能

关于Pencils Protocol 近期市场活动,通读这篇就够!

BlockChain先知

【YashanDB知识库】YMP迁移oracle不兼容给用户授权高级包

YashanDB

yashandb 崖山数据库 yashandb知识库

【YashanDB知识库】decode函数中的子查询被不必要地多次执行

YashanDB

yashandb 崖山数据库 yashandb知识库

“AI+Security”系列第3期(五):AI技术在网络安全领域的本地化应用与挑战

云起无垠

精准测试之探索

京东科技开发者

什么是ETL?什么是ELT?怎么区分它们使用场景

RestCloud

数据处理 应用场景 ETL 数据集成 ELT

国产游戏出海火热另一面:AI和API快速成长引发网络安全挑战

网络安全服务

DDoS 安全防护 API 接口 游戏安全 DDoS 攻击

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