NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

AntDB数据库参加开源数据库技术沙龙,分享全栈业务能力

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

又爆神作!阿里首发并发编程神仙笔记,差距不止一点点

做梦都在改BUG

Java 并发编程

JMeter笔记7 | JMeter脚本回放

测试 Jmeter 性能测试 自动化测试 接口测试

JMeter笔记8 | JMeter关联

测试 Jmeter 性能测试 自动化测试 接口测试

胜面试官半子!阿里SpringBoot全栈笔记首发,源码实战齐飞

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

SpringBoot 中实现定时任务的几种方式

做梦都在改BUG

Java Spring Boot

火山引擎多云安全平台,破解多云异构场景下的安全挑战

科技热闻

开源赋能 普惠未来|铜锁/Tongsuo诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

开源

百度工程师移动开发避坑指南——Swift语言篇

百度Geek说

swift 移动端 开发语言 企业号 5 月 PK 榜

涅槃重生!字节大牛力荐大型分布式手册,凤凰架构让你浴火成神

Java你猿哥

架构 Kubernetes 分布式 架构师 分布式架构

40亿个QQ号,限制1G内存,如何去重?

Java你猿哥

Java ssm 布隆过滤器 BitMap 过滤器

GitHub上13个高赞Java项目推荐,会一个就能跟面试官谈笑风生

Java你猿哥

Java 微服务 秒杀系统 网约车项目 java项目

为什么老有人想让我们“程序员”失业?征文获奖作品合集

InfoQ写作社区官方

技术专题合集 热门活动 三周年征文

使用 PAI-Blade 优化 Stable Diffusion 推理流程(二)

阿里云大数据AI技术

人工智能 优化 推理 Stable Diffusion 企业号 5 月 PK 榜

嘉为蓝鲸CMP多云管理平台解决方案成功入选!

嘉为蓝鲸

多云管理 IT运维 蓝鲸

嘉为蓝鲸DevOps流水线工具如何为企业研发赋能?

嘉为蓝鲸

DevOps 流水线 蓝鲸

面试官:怎么保证Kafka的消息不丢失

做梦都在改BUG

Java kafka 面试 消息队列 消息中间件

【云计算】谷歌云是国外的吗?是公有云还是私有云?

行云管家

公有云 私有云 谷歌云

背完这套Java面试八股文,自动解锁面试牛逼症被动技能

Java你猿哥

MySQL redis java面试 java基础 分布式微服务

发挥数据价值!数据驱动的日志解析与异常检测方法介绍!

嘉为蓝鲸

日志分析 管理日志 日志统计

开源赋能 普惠未来|XuperCore诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

开源

阿里SpringBoot实战手册横空出世!从此不再是易学难精

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

我用ChatGPT,给RabbitMQ加了个连接池

Java你猿哥

Java 源码 ssm RabbitMQ ChatGPT

现代应用开发模式:PWA vs 小程序

Onegun

小程序 PWA

实例解读华为云数字工厂平台的逻辑模型编排器

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

Velocity不用愁!Velocity系统的前端工程化之路 | 京东云技术团队

京东科技开发者

Java 前端工程化 Web H5 Velocity.js 企业号 5 月 PK 榜

还在服务器上捞日志?试试这款可视化监控系统吧,真香!

Java你猿哥

Java 日志 ssm 监控系统 Frostmourne

不吹不黑!阿里新产微服务架构进阶笔记我粉了!理论实战齐飞

做梦都在改BUG

Java 架构 微服务 Spring Cloud

理解JVM工作机制(二) 对象的创建

ue4

Java JVM Java web

软件测试丨SeleniumIDE 自动化用例录制、测试用例结构分析

测试人

软件测试 自动化测试 测试开发 测试用例 selenium

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