飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

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

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

关注

评论

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

电子商务怎么定义?电子商务公司哪些场景需要用到堡垒机?

行云管家

网络安全 IT 运维 电子商务

广东加速人工智能人才培养,和鲸Heywhale发布人工智能通识课解决方案助力快速开课

ModelWhale

Python 人工智能 大数据 R语言 通识课

智能排产能解 决工厂什么问题?

万界星空科技

mes 万界星空科技mes 自动排产 智能排产

Permute 3:一键转换,媒体文件轻松驾驭

Rose

京东商品详情API接口的开发、应用与收益探索

科普小能手

数据 电商 京东 API 接口 API 测试

AI智能决策赋能服装零售 实现精准商品计划与供需平衡

第七在线

集成自然语言理解服务,让应用 “听得懂人话”

HarmonyOS SDK

harmoyos

真实案例解析缓存大热key的致命陷阱

京东零售技术

后端

EndNote 21大客户授权版 Mac(最强文献管理软件) 永久激活版

Rose

iStat Menus 6中文 for Mac 最强大的macOS系统监控软件

Rose

生产管理用上自动排产,企业离智慧工厂又进了一步

万界星空科技

mes 万界星空科技 自动排产 生产计划 智能排产

提供方耗时正常,调用方毛刺频频

京东零售技术

后端

AIAPI - 转向AI原生检索

百度Geek说

API 编排 结构化数据 系统优化 AGI rag

如何理解符号引用和直接引用?

秃头小帅oi

Spring中的循环依赖是怎么个事?

伤感汤姆布利柏

Microsoft Office 2019 免激活最新版-mac/win

Rose

天津市级人工智能通识课超10w人学习,和鲸Heywhale人工智能通识课解决方案重磅上线!

ModelWhale

Python 人工智能 大数据

区块链 RWA 系统开发的技术难点

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

区块链技术 软件外包公司 RWA开发

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

阿里巴巴云原生

阿里云 云原生 可观测

Axure RP 11 for mac中文破解版 及安装教程

Rose

区块链 RWA 系统的主要功能

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

区块链技术 软件外包公司 RWA开发

智谱AI:引领国内开源大模型的创新与商业化

测试人

人工智能 软件测试

区块链RWA系统开发的技术框架

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

区块链技术 软件外包公司 RWA开发

六盘水正规等保测评机构有吗?在哪里?

行云管家

等保 等保测评 六盘水

WebGL 项目外包开发流程

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

软件外包公司 数字孪生开发 webgl开发

数字营销咨询,照亮企业营销数字化每一步

赛博威科技

营销数字化 数字营销 赛博威

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