写点什么

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

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

关注

评论

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

这问题巧了,SpringMVC 不同参数处理机制引发的思考 | 京东云技术团队

京东科技开发者

spring springmvc HTTP 请求方式 企业号 6 月 PK 榜

看数智底座如何助力大型车企向世界一流汽车企业迈进

用友BIP

数智底座 Pass平台

低代码平台的核心能力有哪些?

力软低代码开发平台

Serverless函数计算介绍

天翼云开发者社区

云计算 函数计算

云游世界NFT卷轴游戏dapp系统开发合约定制

开发微hkkf5566

聊聊缓存世界的扫地僧

勇哥java实战分享

焱融构建多云数据存储平台 重塑云中数据活力

焱融科技

文件存储 高性能存储 #分布式文件存储

一文梳理清楚低代码开发平台

高端章鱼哥

低代码 低代码开发平台 可视化开发

云原生时代数据治理的变革与创新

酷克数据HashData

一套管理工具构建敏捷、多维、高效的全面预算管理

用友BIP

全面预算

聊聊信仰的力量

互联网工科生

程序员 信仰

跨架构平台在云计算中的应用

天翼云开发者社区

云计算 架构

探秘AI算力革命与低代码平台:引领人工智能狂潮

不在线第一只蜗牛

低代码 数智化 AI算力

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法(二)——仅适用于Location 6.7.0.300及之后的版本

HarmonyOS SDK

HMS Core

手把手教你实战TDD

快乐非自愿限量之名

TDD 开发框架

纵横贯通的全面预算管理体系,从这里开始!

用友BIP

全面预算

软件开发不需要会编码,谈谈我的开发捷径

互联网工科生

软件开发 低代码 开发

什么是算力网络

天翼云开发者社区

云计算 边缘计算 算力网络

opencv目标检测之canny算法

高端章鱼哥

OpenCV

使用 ProcessBuilder API 优化你的流程

快乐非自愿限量之名

数据库 框架开发 开发语言 process

报名开启!2023大模型应用创新挑战赛来啦

飞桨PaddlePaddle

人工智能 百度 paddle

软件测试/测试开发丨Git常用命令学习笔记

测试人

git 程序员 软件测试 测试开发

低代码开发平台:解锁无限创新,演绎科技新奇

EquatorCoco

低代码 科技创新

千亿资产去哪了,资产管理如何摸清家底?

用友BIP

资产云

JavaScript 实践+理论(总结篇):作用域、闭包、this、对象原型

Immerse

闭包 原型链 作用域 this 原型模式

【直播预告】HarmonyOS极客松赋能直播第二期:数据库与网络连接开发

HarmonyOS开发者

HarmonyOS

Web3架构之思 - Direc Exhcange Mesh 项目介绍(一)

Joe

Web 3.0 分布式结构 多运行时

[Paddle] ERNIE-Layout 使用测试 - 文心多语言跨模态布局增强文档智能大模型

alexgaoyh

paddle engine-layout 电子文档 提取

前端文件上传的几种交互造轮子 | 京东云技术团队

京东科技开发者

前端 Vue3 文件上传 文件上传下载 企业号 6 月 PK 榜

修改SD WebUI为kitchen-theme

IT蜗壳-Tango

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