写点什么

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

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

关注

评论

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

阿里独家!GitHub上点击量超百万的「操作系统和计算机网络」PDF震撼开源

Java 程序员 面试 计算机 Alibaba

Alibaba竟流出全套的Java核心技术手册,看过的人都说好!

Java 程序员 架构 面试 计算机

【重磅】Apache InLong(incubating) 发布 0.10.0 版本

腾源会

Apache 开源 InLong

如何做竞品分析?

石云升

产品经理 产品思维 9月日更 产品分析

Nebula Graph 源码解读系列 | Vol.01 Nebula Graph Overview

NebulaGraph

redis--数据库实现

en

工业互联网的两种极端想法和两点反思

iNeuOS工业互联网操作系统

大数据 物联网 智能制造 iNeuOS工业互联网

深入探讨区块链价值及其对世界的影响

CECBC

DPDK分析学习之全网唯一的DPDK教学课程丨虚拟化高性能专家之路

Linux服务器开发

网络协议 虚拟化 Linux服务器开发 DPDK 高性能网络

20+互联网公司Java面试考点大全,全网首发,应有尽有

Java 程序员 编程语言 java面试

2021下半年全新京东商城亿级并发架构设计,不学习你就OUT了!!

Java 程序员 面试 计算机 京东

如何高效掌控K8s资源变化?K8s Informer实现机制浅析

腾源会

云原生 k8s

丧心病狂!阿里内部Spring Cloud高薪笔记流失,GitHub夜获星百万

Java 程序员 面试 计算机 阿里巴巴‘

如何用时序数据库 CTSDB 与 TARS 结合,解决海量监控数据难题

腾源会

数据库 大数据 开源 TARS CTSDB

我的9年开源之路:395 Patch、20+Feature,背后只有努力与热爱

腾源会

腾讯云 开源 虚拟化 Linux内核 kvm

中小企业自媒体为何难做:定位不准期望值过高

石头IT视角

T-BOX专业分享

SOA开发者

被 Docker 日志坑惨了

AlwaysBeta

Docker 容器 运维

支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯

腾源会

腾讯云 开源 APISIX OTeam

数字化的田亩里,华为正写一首陶渊明的诗

脑极体

将进一步提高数字人民币的可得性 构建分布式数字身份认证体系

CECBC

2022前端react面试题汇总

buchila11

React

云信小课堂 | 聊天室内容审核很头疼?3步解决!

网易云信

人工智能 AI 视频

Micro Focus 发布年度安全运营报告,洞察后疫情时代企业安全运营新趋势

直播报名 | 超低延时直播架构解析

百度开发者中心

最佳实践 方法论 活动 直播

芯慌遇上造车热,国产芯片的机会到了?

脑极体

腾讯圆梦,我整理收集了这份“2021常见Java面试真题汇总”

Java 架构 编程语言 java面试

进程和处理机管理中的进程控制

Regan Yue

操作系统 进程 9月日更 进程控制

python之深浅拷贝

秦时明月

大众汽车迟到的软件优先思维

SOA开发者

从技术到商业:2021 DEMO CHINA创新中国峰会正式开启

创业邦

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