写点什么

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

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

关注

评论

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

2024年区块链钱包现状与未来趋势分析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

全景图拼接制作工具PTGui Pro for Mac

Mac相关知识分享

总奖金高达10万元!华为算法精英实战营“亲和任务调度系统”来啦!

华为云开发者联盟

cpu 芯片设计 任务调度

通过MySQL Workbench 将 SQL Server 迁移到GreatSQL

GreatSQL

(cdr平面设计) CorelDRAW Graphics Suite 2023 for mac 序列号分享

理理

A股牛市来袭,资本涌动:加密市场的出路与机遇

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

数据驱动决策:低代码平台如何助力智能化业务分析

天津汇柏科技有限公司

数据驱动 低代码平台

【解决方案】基于数据库驱动的自定义 TypeHandler 处理器

EquatorCoco

Java 数据库

万界星空科技MES数据的集成方式

万界星空科技

制造业 mes 万界星空科技 万界星空科技mes

用JS实现简单的屏幕录像机

京东科技开发者

「算力包」璀璨亮相2024中国算力大会!

九章云极DataCanvas

Little Snitch:你的网络安全守护者,时刻在线

理理

HPE Aruba Networking Central扩展AI自动化能力 推出第三方设备及终端用户体验监控功能

科技热闻

探讨微服务治理场景中,Sermant Backend如何管理插件动态配置

华为云开发者联盟

Backend Developer javaagent 微服务、 sermant

RPA在物流企微私域场景的应用

京东科技开发者

音乐创作编辑软件Studio One 7 Pro for mac

Mac相关知识分享

软件

高效开发最佳实践全面指南

Immerse

“元脑企智”EPAI:企业AI应用从“手工作坊”到“工厂高精产线”

脑极体

AI

打通前后端流程,案例解读华为云开源低代码引擎解决方案

华为云开发者联盟

软件开发 低代码, TinyEngine

Java面试题及答案整理(2024年金九银十最新版,持续更新)

架构师之道

Java 面试 #编程

Illustrator 2024(AI2024)的核心优势和特点

理理

Autodesk Flame v2025.1.2最新激活版 支持Intel/M1/M2/M3

理理

万界星空科技MES系统与各大系统的集成

万界星空科技

系统集成 mes 万界星空科技mes 生产管理MES系统

AirPods耳机管理软件 AirBuddy 3 for mac激活文件分享

理理

功能强大的 VNC 远程控制软件VNC Server for Mac

Mac相关知识分享

软件

DoYourClone for Mac(磁盘克隆工具)

Mac相关知识分享

如何用AI快速开发一个小程序?

FinFish

小程序开发 AI技术开发 AI生成小程序

Kubernetes的Pod调度:让你的应用像乘坐头等舱!

不在线第一只蜗牛

Kubernetes 容器 云原生

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