HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

MacRuby 综述:0.7 发布、基于 GCD 的 Web 服务器以及 BridgeSupport

  • 2010-11-07
  • 本文字数:1054 字

    阅读完需:约 3 分钟

近日,MacRuby 0.7 发布了(实际上是 0.7.1),该版本包含了众多的 Bug 修复并改进了对 Ruby 的兼容性

MacRuby 0.7 是 MacRuby 首个支持 Ruby 1.9.2 的版本,因此该版本重新实现了众多的新特性并提供了向后的修复(backport)。 此次发布通过了 90% 的 RubySpecs,而上一版本则为 82%。

MacRuby 0.7.1 借助于 BridgeSupport 工具的支持可以提供对 Cocoa、Objective-C 以及 C 的完整脚本支持。之前的版本在某些地方还是存在着缺陷,比如不支持 Apple 向 Objective-C 中所添加的块(blocks)特性。现在开发者可以向接收 C 块的 API 传递 Ruby Proc 了,反之亦然。

之所以不支持这些特性的原因在于缺少元数据的支持,而 BridgeSupport 则是这一问题的解决方案。由于构建在 LLVM 的 Clang 解析器上,它可以 查看到库的源代码并生成 MacRuby 所能使用的元数据,之后 MacRuby 可以使用这些元数据获悉库接收的到底是什么,比如块、符号等等。 BridgeSupport 的源代码表明了Clang 决定并生成元数据的方式。

MacRuby 支持并发的 Ruby 线程(也就是没有 GIL),这对于 Mac OS X Snow Leopard 系统范围的线程池系统Grand Central Dispatch(GCD)非常有帮助。

能够说明MacRuby 与GCD 集成的示例就是全新的Web 服务器ControlTower,它使用MacRuby 编写。由于构建在Rack 之上,它可以通过将请求委托给GCD 队列对其进行处理,而队列则可以按照顺序或并发的方式来处理请求。 ControlTower 的发布声明给出了其架构概览,同时还有与 Thin 服务器对比的性能参数。

虽然 ControlTower 支持 Rack,但 Rails 用户还是会有些失望——MacRuby 0.7.1 并不支持 Rails 3。团队期望 MacRuby 的下一版本能够支持 Rails。

MacRuby 0.7 所支持的另一个 Mac OS X 特性就是 Sandbox,它可以限制 OS 进程的权限。我们可以对 Sandbox 进行设定以拒绝网络访问、文件系统访问等等。但它并非 MacRuby 所独享的特性——其他的 Ruby 实现也可以通过 Playpen 扩展使用 Mac OS X Sandbox 特性。

最后,MacRuby 发布声明还提及了加快各种 Ruby 代码运行速度的一些小技巧:

我们实现了一个基本的解释器,通过简单的启发式方法在编译期计算代码中不常经过的路径。比如说,使用简单的#eval 声明来创建代码已经成为 Ruby 库的常见使用方式,现在它的运行速度已经得到了极大的提升。

想要上手 MacRuby 的开发者们应该读一读“ MacRuby: The Definitive Guid ”这本书,它是 Matt Aimonetti 为 O’Reilly 所编写的,网上有免费的版本。

查看英文原文: MacRuby Roundup: 0.7 Released, GCD-based Web Server, BridgeSupport

2010-11-07 01:03904
用户头像

发布了 88 篇内容, 共 262.4 次阅读, 收获喜欢 8 次。

关注

评论

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

GitHub获百万推荐的面试涨薪秘籍(Java岗)惨遭封杀?

钟奕礼

Java 后端 java面试 后端架构

软件测试 | 测试开发 | Web自动化之Selenium安装

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 一道大厂测试开发面试真题,你需要几分钟解答?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验

测吧(北京)科技有限公司

测试

小程序容器,组装式应用的一种方案

Geek_99967b

小程序

从规模化平台工程实践,我们学到了什么?

SOFAStack

概述服务网格的优劣势

穿过生命散发芬芳

服务网格 9月月更

八家知名大厂联合手写的Java面试手册刚上线!竟就到达巅峰?

钟奕礼

Java 架构 后端 java面试

数据治理的核心:维度建模下的数仓构建

小鲸数据

数据仓库 维度建模 维度 数仓分层 分层划域

软件测试 | 测试开发 | Web测试方法与技术之JavaScript 讲解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | WEB 端常见 Bug 解析

测吧(北京)科技有限公司

测试

面试凉凉,阿里学长甩我一份24w字Java核心技术面试手册,真香

钟奕礼

Java 架构 后端 java面试

阿里面试官内部题库,阿里发布2022年Java岗(正式版)面试题

程序知音

Java java面试 后端技术 秋招 Java面试八股文

阿里被转载上100W次的Java面试题教程!已助我拿下9家大厂offer!

钟奕礼

Java 架构 后端 java面试

软件测试 | 测试开发 | 测试环境搭建

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Web测试方法与技术之CSS讲解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试面试真题|抖音的广告系统前后台,该如何测试?

测吧(北京)科技有限公司

测试

公司内部分享文档应该怎么写?看这篇就够了

Baklib

从融云社交泛娱乐出海白皮书,看「社交+X」的全球攻略

融云 RongCloud

即时通讯 白皮书 泛娱乐社交

2021 金三银四面试必备?体系化带你学习:分布式进阶技术手册

钟奕礼

Java 架构 后端 java面试

测试开发面试真题 | 测试老兵进阶突破,成功挑战大厂 P7 Offer!

测吧(北京)科技有限公司

测试

BATJ互联网月薪38K的Java岗面试题首曝光,掌握这些大厂Offer指定跑不了

程序知音

Java java面试 后端技术 秋招 Java面试八股文

软件测试 | 测试开发 | Web测试方法与技术实战演练

测吧(北京)科技有限公司

测试

自有APP小程序如何打通微信登陆体系

Geek_99967b

小程序 小程序生态

22年程序员更卷了,金九银十“面试必备小册”最新开源

程序知音

Java 阿里 后端技术 秋招 Java面试题

Java高手怎样炼成?阿里大牛一份火爆GitHub的1046页笔记帮你解决

钟奕礼

Java 程序员 架构 后端 java面试

软件测试 | 测试开发 | web前端的HTML浅析

测吧(北京)科技有限公司

测试

iMazing怎么恢复备份?iMazing恢复备份教程分享

淋雨

ios iphone

软件测试 | 测试开发 | Selenium 测试用例编写

测吧(北京)科技有限公司

测试

小程序怎样影响传媒产业的数字化

Geek_99967b

小程序

iMazing高效便捷的数据转移功能

淋雨

ios iphone

MacRuby综述:0.7发布、基于GCD的Web服务器以及BridgeSupport_Ruby_Werner Schuster_InfoQ精选文章