写点什么

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

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

关注

评论

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

Amazon Q 从入门到精通 – 测试与重构

亚马逊云科技 (Amazon Web Services)

LED显示屏与OLED显示屏的天壤之别

Dylan

技术 LED LED display OLED LED屏幕

如何用好“对话式编程”?牢记这十二条策略

Baihai IDP

程序员 AI LLM AI Agent AI 编程

Ascend的aclgraph(一)aclgraph是什么?torchair又是怎么成图的?

zjun

Ascend pytroch aclgraph

Ascend的aclgraph(二)_npu_backend中还有些什么秘密?

zjun

Ascend pytroch aclgraph

Ascend的aclgraph(七)AclConcreteGraph:capture_begin

zjun

PyTorch Ascend aclgraph

易安联完成C1轮融资,加速领跑国内零信任安全市场化

权说安全

零信任

Ascend的aclgraph(八)AclConcreteGraph:capture_end

zjun

PyTorch Ascend aclgraph

时序数据库、实时数据库与实时数仓:如何为实时数据场景选择最佳解决方案?

镜舟科技

数据分析 数据处理 时序数据库 实时数据库 实时数据仓库

腾讯云COS MCP Server + CodeBuddy ,让你的idea 不止停留在想象中...

六月的雨在InfoQ

MCP MCP Server MCP头号玩家

10K Stars 成就达成,StarRocks 开启下一个里程碑!

StarRocks

数据库 AI OLAP StarRocks

2025 StartDT Day 产品发布会,5月20日见!

奇点云

大模型

Ascend的aclgraph(四)AOT Autograd

zjun

PyTorch Ascend aclgraph

Ascend的aclgraph(九)e2e执行aclgraph

zjun

PyTorch Ascend aclgraph

StarRocks MCP Server 开源发布:为 AI 应用提供强大分析中枢

StarRocks

数据分析 OLAP StarRocks MCP Server

Nagarro发布多项财年业绩

财见

MES如何破解工厂交期困局?MES让设备主动报工,生产过程实时可控!

万界星空科技

数字化 制造业 智能制造 mes 万界星空科技mes

Ascend的aclgraph(三)TorchDynamo

zjun

PyTorch Ascend aclgraph

【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit (3)

HarmonyOS SDK

harmoyos

通义灵码新增Inline Chat能力,代码问题即时提问

阿里云云效

AI 通义灵码

《算法导论(第4版)》阅读笔记:p83-p85

codists

算法

区块链ETF系统的开发步骤

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

区块链技术 软件外包公司 区块链ETF

海量文件一键“电子收纳”,合合信息扫描全能王“AI工具箱”获律师群体青睐

合合技术团队

文档管理 #人工智能 #大数据

Ascend的aclgraph(六)AclConcreteGraph

zjun

PyTorch Ascend aclgraph

Ascend的aclgraph(十)另外一种成图方式GeConcreteGraph

zjun

PyTorch Ascend aclgraph

StarRocks Community Monthly Newsletter (Apr)

StarRocks

数据库 数据分析 存算分离 StarRocks 数据查询

等保测评2025 版新报告模板,是以哪个时间节点为准?

黑龙江陆陆信息测评部

通义灵码新增Inline Chat能力,代码问题即时提问

阿里巴巴云原生

通义灵码 通义灵码2.0

你知道什么是中间件吗?国产中间件有哪些品牌?

行云管家

中间件 信创 堡垒机 国产化

Ascend的aclgraph(五)PrimTorch & TorchInductor

zjun

PyTorch Ascend aclgraph

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