写点什么

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

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

关注

评论

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

软件测试丨什么是性能测试?

测试人

软件测试

企业需要SD-WAN的十大理由

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

win版iSpring Suite (PowerPoint转Flash工具) v11.7.0 Build 5 (x64)激活版下载

iMac小白

如何开展性能测试?性能测试的流程是什么样子?

测试人

软件测试 性能测试 自动化测试 测试开发

Flink 任务调度策略:Lazy from Sources 深入解析

木南曌

实时计算

基于向量检索服务与TextEmbedding实现语义搜索

DashVector

AI 向量检索 大模型 语义搜索

LLM实战:当网页爬虫集成gpt3.5

不在线第一只蜗牛

GPT LLM

NumPy 数组排序、过滤与随机数生成详解

不在线第一只蜗牛

Python 数组 排序 Numpy

如何提高python程序代码的健壮性

我再BUG界嘎嘎乱杀

Python 编程 后端 软件开发

第52期|GPTSecurity周报

云起无垠

AIGC LLMs

构建稳健、高效与安全的企业级API网关

RestCloud

API API网关 ipaas

Flink 任务调度策略:Eager 模式详解

木南曌

flink 实时计算

pyhttptest 实操指南:测试RESTful API的有效方法

Liam

测试 后端 测试工具 REST API pyhttptest

微店商品API接口:电商数据集成的新利器

Noah

PHP反射API与接口的动态分析

技术冰糖葫芦

API boy API 文档 API 性能测试

鸿蒙HarmonyOS实战-Stage模型(开发卡片事件)

EquatorCoco

microsoft 华为 鸿蒙系统

数据驱动选品:阿里巴巴商品详情API在电商选品中的应用

tbapi

阿里巴巴 阿里巴巴API接口 阿里巴巴商品详情数据接口

学Python的别告诉我你还不造celery是干嘛的

我再BUG界嘎嘎乱杀

Python 编程 后端 软件开发 celery

斯嘉丽·约翰逊指控 OpenAI 非法使用其声音;微软推出AI 工具「回顾」(Recall)丨RTE 开发者日报 Vol.208

声网

坚定投入核心软件!腾讯云数据库TDSQL荣获深圳市科技进步奖一等奖

Geek_2d6073

OpenAI“杀疯了”,GPT–4o模型保姆级使用教程!一遍就会!

快乐非自愿限量之名

openai GPT

关于接口协议,你必须要知道这些!

霍格沃兹测试开发学社

视频标注已上线,支持视频分类、多目标检测|ModelWhale 版本更新

ModelWhale

计算机视觉

互联网行业,什么人看起来“必成大器”?

秃头小帅oi

3CX的介绍

cts喜友科技

通信 通讯 云通讯 通信通讯

AI 新质生产力创新先锋 焱融科技入选中国生成式AI企业TOP50

焱融科技

人工智能 高性能存储 软件定义存储 新质生产力

一文看懂分布式链路追踪

乘云数字DataBuff

应用性能监控 分布式链路追踪

如何提升金融业务效率的同时保障身份认证安全和用户体验(一)

芯盾时代

金融 手机银行 iam 统一身份认证 银行业

华为云CodeArts 12大安全防护机制,端到端全面保障软件供应链安全!

华为云PaaS服务小智

云计算 软件开发 华为云

低代码开发在医疗健康领域中的应用研究

EquatorCoco

低代码 医疗健康

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