50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

Java面试题及答案整理(金九银十突击版)

Geek_Yin

Java 程序员 java面试 Java面试题

JAVA实现读取最后几行日志

电子尖叫食人鱼

Java

大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece

武子康

大数据 hadoop mapreduce hive

Spring AI Alibaba + Nacos 动态 MCP Server 代理方案

阿里巴巴云原生

阿里云 微服务 云原生 Spring AI Alibaba

DeepSeek-R1-0528正式上线网心科技算力云平台

网心科技

Web前端入门:JavaScript 各种对象定义与对象取值方法

不在线第一只蜗牛

JavaScript 前端 Web

在鸿蒙开发中实现自定义进度条

幽蓝计划

做「长期主义者」的技术人们

京东科技开发者

接口重试的7种常用方案!

量贩潮汐·WholesaleTide

php 服务器

揭秘区块链浏览器开发:从架构到落地的全链路指南

区块链软件开发推广运营

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

工作三年Java程序员的一点点体会与建议

Geek_Yin

Java 程序员 java面试 Java面试题

解剖DeepSeek四把刀,一场深到源码,大到行业,细到人心的手术盛宴

京东科技开发者

欢迎新朋友,通义灵码 AI IDE 来了 | 附 QA 答疑

阿里云云效

ide 通义千问 通义灵码

基于YOLOv8的坐姿标准姿态检测项目【完整源码数据集+PyQt5界面+完整训练流程+开箱即用!】

申公豹

yolo

狄耐克与鸿蒙生态深度战略合作 并启动“百城万户鸿蒙社区家庭战略”

新消费日报

Python打包

安信无限

Python 打包工具

一文简述:低代码是什么?低代码开发平台的分类、功能与构成

优秀

低代码 低代码开发平台 低代码平台

微店商品详情API接口指南

tbapi

微店商品API接口 微店API 微店详情接口

报名|清华大学大数据产业论坛——航空航天专场

Apache IoTDB

Taro on Harmony C-API 版本正式开源

京东科技开发者

欢迎新朋友,通义灵码 AI IDE 来了 | 附 QA 答疑

阿里巴巴云原生

ide 通义灵码

什么是链游,链游系统开发价格以及方案

区块链软件开发推广运营

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

如何在 DataGrip 中 连接 Databend

Databend

Redis持久化机制

量贩潮汐·WholesaleTide

redis

1688寻原通API接口攻略

tbapi

1688寻原通 1688寻原通API 1688寻原通系统

TextIn OCR Frontend前端开源组件库发布!

合合技术团队

人工智能 算法 #大数据

备战金九银十,Java面试题总结,苦战30天拿下高薪Java岗!

程序员高级码农

Java 程序员 java面试

区块链交易所开发:开启数字货币交易新时代

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 公链开发 代币开发

产品更新丨谷云科技ETLCloud 3.9.3 版本发布

谷云科技RestCloud

API 组件 ETL 数据集成工具

11Labs 发布对话式 AI 2.0,集成话轮转换和知识库,多语言多角色多模态;通义公布空间音频生成模型 OmniAudio

声网

2025 StartDT Day 发布会全回顾

奇点云

AI

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