【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

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

关注

评论

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

传销组织的CTO | 法庭上的CTO(4)

赵新龙

CTO 传销 法庭上的CTO

自营电商渠道转化率的简单设计思路

boshi

推广

智慧公安大屏可视化决策系统搭建

t13823115967

智慧公安 智慧大屏可视化

福利 | 这些网站有免费代理IP!

前嗅大数据

大数据 代理IP 网站反爬 免费代理ip 封ip

软件开发中的防呆方法总结

张明云

DevOps 软件开发 技术架构 防呆 模式

蕃茄田宋姝梦:科技赋能时代,儿童在线艺术教育的思考

ZEGO即构

架构师视角 | 分布式缓存如何选择 ?

Java架构师迁哥

甲方日常 63

句子

工作 随笔杂谈 日常

区块链防伪溯源平台开发解决方案

t13823115967

区块链+ 区块链产品溯源

话题讨论 | Vue凭什么成为2020的一匹黑马?

黑马腾云

话题讨论

JVM垃圾回收?全面详细安排!

程序员的时光

JVM GC

我摊牌了,大厂面试Linux就这5个问题

艾小仙

Java Linux 面试 大厂

程序员有必要读研吗?

Java架构师迁哥

架构师训练营第十一周命题作业

一马行千里

极客大学架构师训练营 命题作业

vivo官方商城架构演进之路

vivo互联网技术

中台 架构演进 服务化

大型团队实践敏捷开发管理的挑战与应对

万事ONES

敏捷开发 研发管理 敏捷开发管理 开发管理

让战略不再”空虚“的战略描述

Alan

战略思考 战略

架构师训练营第十一周学习笔记

一马行千里

学习 极客大学架构师训练营

K8s 将弃用 Docker;TypeScript 超越 C++ 成第四大语言

京东科技开发者

程序人生

LeetCode题解:45. 跳跃游戏 II,贪心正向查找,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

系统稳定性建设实践总结

架构精进之路

系统架构 自我思考 系统稳定性

二、关于大型复杂系统

数列科技杨德华

苦修月余,斩获bigo、腾讯offer,面经奉上!

艾小仙

Java 腾讯 面试 腾讯大厂

《程序员数学:使用Python进行3D图形,机器学习和仿真》PDF免费下载

计算机与AI

Python 学习 数学

计算机网络基础

Minar Kotonoha

node.js 大前端 计算机网络 HTTP

架构师训练营第三周学习总结

Geek_xq

Redis 为什么这么快?这才是最完美的回答

Java架构师迁哥

DeFi质押挖矿APP系统开发|DeFi质押挖矿软件开发

系统开发

分布式搜索引擎Elasticsearch的架构分析

vivo互联网技术

elasticsearch 分布式 分布式搜索引擎

线上数据被回滚两次我都做了哪些不正确的操作

Gopher指北

MySQL 后端

Spock单元测试框架实战指南三 - f esle 多分支场景测试

Java老k

单元测试 spock

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