写点什么

Mac OS X Leopard:具备 DTrace、XCode 和 Interface Builder 支持的 Ruby 开发环境

  • 2007-11-01
  • 本文字数:1592 字

    阅读完需:约 5 分钟

经历漫长的等待之后,Mac OS X Leopard操作系统终于发布,并在其中提供了对于Ruby编程开发的广泛支持。在 Wiki 站点 MacOSForge.org 之上列出了 Leopard 系统中新提供的 Ruby 特性。

Ruby 环境已升级到 1.8.6 p36 版本,这是我们可以获取的最新 Ruby 稳定版。此外我们又针对部分重要改进,将 p36 版本之后发现的重要 Bug 的补丁包也纳入进来。但这些在当时并不属于 Ruby 的官方补丁发布版中的一部分(这些补丁在后来已经包含进了官方补丁发布版,但是已经超出了我们系统发布的截止日期)。 [……]

包含程序解释器内核的 Ruby libruby.1.dylib 类库,以四种形式的二进制代码发布,支持 ppc,i386,ppc64 以及 x86_64 四种体系结构。因此开发者可以在 64 位的应用程序中加入 Ruby 代码。所有的 C 语言扩展对于 32 位和 64 位体系架构均可用,只有 Tk 脚本不能在 64 位的环境下使用。因此,Ruby 解释器的加载路径 /usr/bin/ruby 仍然保持为 32 位的形式,使得脚本可以使用 Tk 扩展,或其他依赖于 32 位运行的机制。

在默认情况下,Ruby 的 C 语言扩展可以面向 ppc 和 i386 两种目标平台发布。如果在链接到非通用类库(比如 mysql.com 为每个处理器架构定制的二进制文件)的情况下,开发者可以设定 ARCHFLAGS 环境变量来配置扩展的编译。

除了上述内容之外,Ruby 解释器的另一个有趣拓展是对于静态探针的支持。动态跟踪DTrace技术原先是由 Sun 公司为 Solaris 开发的,但是目前已经被移植到其他的 Unix 平台之上。DTrace 允许开发者对应用程序甚至操作系统的代码进行低开销的跟踪概览。Mac OS X 的 Ruby 解释器包含下面这些探针

探针

目前 Ruby-DTrace 之中所包含的探针

探针名称 描述 function-entry 当 Ruby 方法调用时被激活 function-return 当 Ruby 方法返回时激活 raise 当 Ruby 代码抛出异常时激活 rescue 当 Ruby 代码异常得到处理时激活 line 每一行 Ruby 代码执行时激活 gc-begin 在垃圾回收周期开始时激活 gc-end 在垃圾回收周期完成之后激活 object-create-start 在 Ruby 对象被分配之前激活 object-create-done 在 Ruby 对象完成分配之后激活 object-free 在每次 Ruby 对象释放之后激活 ruby-probe 可以在 Ruby 代码中调用的探针(请关注下文)

这些是从 Joyents Ruby DTrace 项目之中引入。Mac OS X Leopard 同样也包含被称作 Instrument 的工具,用来将跟踪和分析进行可视化展示。

苹果公司同样也为 XCode以及 GUI 设计器 Interface Builder提供了 Ruby 语言的支持:

在 Leopard 之中,Xcode 与 RubyCocoa 项目模板一同出现,但同时也具备一个模板来生成 Test/Unit 目标。在 BridgeSupport 机制的帮助之下,Xcode 为 Ruby 语言提供了更好的代码补全支持。 Interface Builder 目前对 Ruby 语言提供了官方支持。比方说,开发者可以在 Xcode 中编写 Ruby 的类,通过 outlets 或者 actions,所有要素都会自动出现在 Interface Builder 之中。Interface Builder 使用 RubyCocoa 的 rb_nibtool 工具来同步元数据。在另一方面,你可以在 Interface Builder 中手工定义 outlets 或 actions,并拖拽到 Xcode 的 Ruby 文件中,随后相应的 Ruby 代码就会被粘帖到其中。

Mac OS X Leopard 还包含有一个名为 Scripting Bridge 的崭新框架,这个框架允许使用脚本来编写应用,同时也支持 Ruby 语言:

ScriptingBridge 是一个新的 Leopard 框架,为基于 AppleScript 实现的 AppleEvent 基础设施提供了访问途径。 ScriptingBridge 将会动态生成一个 Objective-C 语言接口,与指定程序的脚本化字典相对应。开发者可以通过 Obective-C 语言接口来发送消息并且控制应用程序。 多亏了 RubyCocoa 项目,使得通过 Ruby 语言使用 ScriptingBridge 成为可能。尽管某些脚本元素目前并不支持,比方说 enumerations,但是大部分功能对于开发者来说都是可用的。

查看英文原文: Ruby on Mac OS X Leopard with DTrace, XCode and Interface Builder support

2007-11-01 19:006365
用户头像

发布了 74 篇内容, 共 14.5 次阅读, 收获喜欢 3 次。

关注

评论

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

人工智能丨当AI三小时"抄作业"成真:测试工程师的护城河该往哪挖

测试人

人工智能

IP纯净度检测工具Scamalytics使用指南

Ogcloud

海外直播 海外社媒运营 海外IP代理 海外IP节点

YashanDB USERS_AIM表空间集管理

YashanDB

YashanDB USERS表空间集管理

YashanDB

数据库 yashandb

产教融合、科教融汇激发世界级成果,西安交通大学鲲鹏昇腾科教创新孵化中心揭牌

极客天地

米哈游蔡浩宇新游戏:角色语音、情绪、动作实时生成;Argmax 端侧说话人分离框架:10M 大小 1 秒识别 4 分钟音频丨日报

声网

【Redis技术进阶之路】「原理分析系列开篇」揭秘分析客户端和服务端网络通信交互实现(客户端篇)

码界西柚

redis 底层原理 网络通信

企业要如何做好内容风控管理

易成研发中心

全球汽车轻量化巅峰对决!Altair Enlighten Award 征集启动,谁将引领绿色出行新时代?

Altair RapidMiner

汽车 仿真 产品的可持续发展 altair hyperworks

Sandisk闪迪发布首款车规级UFS 4.1存储解决方案,助力先进车载AI系统创新

极客天地

YashanDB用户表空间管理

YashanDB

yashandb

MongoDB 可观测性最佳实践

观测云

mongodb

1688拍立淘图片搜索接口全攻略

tbapi

1688API 1688图片搜索接口 1688拍立淘接口

社区动态 | KWDB 体验官火热招募中

KaiwuDB

招募 数据库、 KaiwuDB

什么是大数据风控

易成研发中心

WebGL开发VR软件的注意事项

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

VR开发 软件外包公司 webgl开发

Netty基础—Netty实现RPC服务

不在线第一只蜗牛

Netty

依赖倒置 DIP、依赖注入 DI、控制反转 IoC 和工厂模式

不在线第一只蜗牛

依赖

.NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

秃头小帅oi

人工智能丨AI质量攻坚战:2025年测试工程师的生存法则

测试人

人工智能

如何在手机上绘制CAD虚线?

在路上

cad cad看图 CAD看图王

压测实战 | 微信小程序商城“双11”的压测实践

优测云服务平台

小程序 性能测试 接口测试 接口测试工具 压力测试、

摆脱电子表格固有思维,采用现代化的预算管理软件

智达方通

数字转型 全面预算管理 财务管理

YashanDB表的闪回

YashanDB

数据库 yashandb

YashanDB表的存储空间

YashanDB

数据库 yashandb

MySQL查询建表规范

秃头小帅oi

Mac OS X Leopard:具备DTrace、XCode和Interface Builder支持的Ruby开发环境_Ruby_Werner Schuster_InfoQ精选文章