阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

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

关注

评论

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

如何使用 Serverless Devs 部署静态网站到函数计算

阿里巴巴云原生

如何通过 Node 上传小程序代码,不会就看看吧

CRMEB

PlatoFarm生态NFT总量恒定,激励机制让Dao成员持续贡献

西柚子

EventBridge 与 FC 一站式深度集成解析

阿里巴巴云原生

走进直播间——智能自动化助力政企数字化转型

浪潮云

云计算

ironSource Luna 正式推出针对苹果搜索广告的自动化投放工具

Geek_2d6073

K8s 基于 EFK 的日志解决方案介绍

移动云大数据

elasticsearch Kibana Fluentd

TASKCTL的单机与分布式部署,如何启动服务和代理节点监听

TASKCTL

批量任务 调度引擎 ETL 自动化运维 调度任务

开个自助洗车要多少钱?主要费用有哪些?

共享电单车厂家

自助洗车加盟 开个自助洗车

自助洗车机洗车多少钱一次?利润有多少

共享电单车厂家

自助洗车加盟 自助洗车机洗车 自助洗车多少钱一次

首届全球基础软件创新大会明天开幕!

OpenAnolis小助手

开源 操作系统 龙蜥社区 国产 基础软件创新大会

TASKCTL 调度高可用架构服务与安装

TASKCTL

kettle 批量任务 调度引擎 ETL 调度任务

花14天梳理了3月份各大厂问得最多的50道Java基础面试题

北游学Java

Java 面试

PlatoFarm生态NFT总量恒定,激励机制让Dao成员持续贡献

小哈区块

线上活动| 阿里云、亚马逊云与MongoDB的大佬带你来涨知识!

MongoDB中文社区

mongodb

漏洞挖掘之Spring Cloud注入漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

直播预告 | PolarDB-X 动手实践系列——用 PolarDB-X 搭建一个高可用系统

阿里云数据库开源

MySQL 数据库 阿里云 开源 PolarDB-X

iOS编码规范

刁架构

规范 iOS编码规范

腾讯WeTest通过TMMi 3级认证

WeTest

怎么加盟6元自助洗车?一起来了解下

共享电单车厂家

自助洗车怎么加盟 6元自助洗车 加盟自助洗车 6元自助洗车项目

技术干货| 如何在MongoDB中轻松使用GridFS?

MongoDB中文社区

mongodb

Java运算符、输入、选择流程控制详细讲解

五分钟学大数据

Java 4月月更

生产到一半改工艺生产为另一个产品的业务方案探讨

秋去冬来春未远

生产改单 生产执行 生产拆单

基于数据技术全域流量协同优化是银行零售业务关键突破点

易观分析

银行 数据技术

快速了解日志概貌,详细解读13种日志模式解析算法

云智慧AIOps社区

算法 运维 安全 监控 日志

中兴通讯加入星策开源社区 携手推动企业智能化转型建设

星策开源社区

人工智能 机器学习 开源社区 企业转型

元宇宙背景下——内容生产传播商业价值分析2022

易观分析

元宇宙 内容生产传播

关于 RocketMQ Summit 的延期通知

阿里巴巴云原生

加盟自助洗车需要人工全天看守吗

共享电单车厂家

24小时无人自助洗车 加盟自助洗车

无人洗车店生意怎么样?想加盟自助洗车

共享电单车厂家

加盟自助洗车 无人自助洗车加盟 无人洗车店生意

模块三作业

HZ

架构实战营 #架构实战营

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