写点什么

使用 Haskell 和 Hubris 加强 Ruby

  • 2009-09-01
  • 本文字数:595 字

    阅读完需:约 2 分钟

在 Ruby 或者 Rails 应用中嵌入 C 代码是解决性能瓶颈的办法之一, RubyInline 大大简化了这个过程。Ruby 社区也紧紧地和其他的函数语言社区联系在一起,包括 Erlang、Caml 和 Haskell: Erlectricity 已经成为和 Erlang 连接的纽带,而 rocaml 则可以与 Objective Caml 进行交互。Apache 的 Thrift 则是以另外一种方式(通过 PRC 和序列化格式)与其他语言交互。

Mark Wotton 编写了 Hubris ,使得在 Ruby 中调用 Haskell 代码成为可能。你只需要安装 Haskell 平台所带的 ghc 来兼容 jhc (John 的 Haskell 编译器),不过你必须注意的是,jhc 只能运行在 Linux 或者 Mac 平台下。

一旦你有这些需求,你需要首先编写一个 Haskell 文件,在自定义的函数处添加额外的调用导出命令,例如 Test.hs

复制代码
fibonacci :: Int -> Int
fibonacci n = fibs !! n
where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

然后你需要调用jhc_builder.sh Test.hs来创建动态库(libdynhs.so)。
接下来你可以放心大胆地编写 Ruby 代码,并且使用 Ruby/DL 加载动态库调用导出的函数了。

复制代码
require 'dl/import'
module HaskyPants
extend DL::Importable
dlload "./libdynhs.so"
extern "int fibonacci_hs(int)"
end
puts HaskyPants.fibonacci_hs(12)

Mark 将会在九月份举办的 rorosyd 做一个关于 Hubris 的讲座。尽管只是初步意向,但是这个讲座肯定会吸引一些 Haskell 的用户。

查看英文原文: Empower Your Ruby With Haskell And Hubris

2009-09-01 01:023681
用户头像

发布了 90 篇内容, 共 39.1 次阅读, 收获喜欢 5 次。

关注

评论

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

tidb server的oom问题优化探索

TiDB 社区干货传送门

性能调优 故障排查/诊断

tidb server的oom问题优化探索

TiDB 社区干货传送门

性能调优 故障排查/诊断

Data Migration运维常见问题

TiDB 社区干货传送门

迁移

网易这么牛的迁移方案你学会了吗?【DDB迁移TiDB方案设计】

TiDB 社区干货传送门

PointGet的一生

TiDB 社区干货传送门

开发语言 TiDB 底层架构 TiDB 源码解读 TiKV 源码解读 TiKV 底层架构

Raft-rs 最佳实践与使用

TiDB 社区干货传送门

TiKV 源码解读

TiDB的HATP对我们来说意味着什么?

TiDB 社区干货传送门

数据库前沿趋势

从2018到2022: 一个大数据工程师眼中的TiDB

TiDB 社区干货传送门

社区活动

国产化浪潮下TiDB解决的痛点问题

TiDB 社区干货传送门

数据库架构设计

【征文大赛】TiDB 社区专栏第一届征文大赛,快来一次性集齐所有周边吧!

TiDB 社区干货传送门

Data Migration高可用演练

TiDB 社区干货传送门

迁移 实践案例 集群管理

TiDB 中的高可用实践

TiDB 社区干货传送门

实践案例 管理与运维 安装 & 部署

干货 | 分布式数据库TiDB在携程的实践

TiDB 社区干货传送门

文盘Rust -- 生命周期问题引发的 static hashmap 锁

TiDB 社区干货传送门

开发语言

生产环境TiDB集群混合部署实践

TiDB 社区干货传送门

安装 & 部署 数据库架构设计

TiHC Alpha 1.0 版本试用简介,欢迎来玩!

TiDB 社区干货传送门

监控 管理与运维

TiDB Lightning使用实践

TiDB 社区干货传送门

管理与运维 安装 & 部署 备份 & 恢复

raft-rs 示例程序源码解读

TiDB 社区干货传送门

TiKV 源码解读

TiDB 社区技术月刊来了!故障解读,诊断及最佳实践,发版计划...你想知道的都在这里~

TiDB 社区干货传送门

性能调优 版本升级 版本测评 故障排查/诊断

在线校验两个tidb系统的数据一致性

TiDB 社区干货传送门

迁移 版本升级 管理与运维

关于 TiDB 37 个知识点

TiDB 社区干货传送门

TiDB集群恢复之TiKV集群不可用

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 故障排查/诊断

从单点到分布式的哲学启蒙

TiDB 社区干货传送门

数据库前沿趋势

黄东旭: 关于基础软件产品价值的思考

TiDB 社区干货传送门

TiDB4PG 中 TiDB 版本升级至 v5.3.0

TiDB 社区干货传送门

新版本/特性发布 数据库架构设计

TiDB Binlog使用实践

TiDB 社区干货传送门

实践案例 安装 & 部署 备份 & 恢复

Data Migration功能测试

TiDB 社区干货传送门

迁移 版本测评

新经济 DTC 转型,一个简单而强大的数据平台至关重要

TiDB 社区干货传送门

TiDB-最小实践 Cluster111

TiDB 社区干货传送门

实践案例

TiDB TiCDC使用实践

TiDB 社区干货传送门

迁移 管理与运维 安装 & 部署

TiDB DM使用实践

TiDB 社区干货传送门

迁移 实践案例 管理与运维 安装 & 部署

使用Haskell和Hubris加强Ruby_Ruby_Sebastien Auvray_InfoQ精选文章