在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

关于测试内容的基于覆盖率的测试手段

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

测试

等保三级对日志审计的要求是什么?有堡垒机还需要日志审计系统吗?

行云管家

堡垒机 日志审计 等保三级

AI推理服务平台升级,阿里云机器学习PAI推出新规格

阿里云大数据AI技术

人工智能 机器学习 模型 在线服务

多层嵌套 if-else 代码优化重构的几种方案

Java你猿哥

Java ssm Java工程师 if-else

吃透阿里2023版Java性能优化小册后,我让公司系统性能提升了200%

三十而立

Java 程序员 IT 面试资料

面试必问:说一下 Java 虚拟机的内存布局?

Java JVM 虚拟机

关于测试是否通过的基于评估的测试手段

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

测试

经验分享|如何用ChatGPT开发一个安卓应用

Onegun

人工智能 移动开发 ChatGPT

龙蜥白皮书精选:CentOS 迁移场景的平滑迁移方案

OpenAnolis小助手

Linux 开源 操作系统 CentOS迁移 龙蜥白皮书

想成为 Spring 大牛?先了解这 6 种添加 Bean 的方式

Java你猿哥

spring ssm Spring Bean

用工新趋势:“网讯电通+无影”让客服业务打破时空限制

云布道师

无影

硬核!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

三十而立

Java IT java面试 面试资料

知名度比较高的堡垒机有哪些?大家喜欢哪款?

行云管家

堡垒机 行云管家

软件测试/测试开发丨ChatGPT在软件测试领域的应用

测试人

软件测试 自动化测试 测试开发 ChatGPT

毕业设计 - 电商秒杀系统

架构实战营 「架构实战营」

免费广告效果监测服务,实现全链路营销效果跟踪

HarmonyOS SDK

HMS Core

对于处理高并发用户请求的一些思考

Java 架构 分布式 高并发

如何实现对 Oracle 的实时数据捕获和性能调优|Flink CDC 专题

Apache Flink

大数据 flink 实时计算

关注测试原因(针对风险测试)的基于问题的测试手段

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

测试

真香!阿里最新出品Java面试核心讲(终极版),Github已星标50K

三十而立

Java IT java面试 面试资料

基于 LowCodeEngine 的低代码组件体系建设和实践

阿里技术

前端 低代码

软件测试报告设计错误

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

测试

大厂在混沌工程领域的实践

老张

混沌工程 稳定性保障

如何针对重复问题创建测试矩阵

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

测试

OPPO大数据诊断平台“罗盘”正式开源

安第斯智能云

大数据 开源

人工智能实践: 基于T-S 模型的模糊推理

TiAmo

模糊推理 TS模型

KaiwuDB 亮相中国石油石化企业信息技术交流大会

KaiwuDB

数字能源 KaiwuDB 数据解决方案

开发板如何适配OpenHarmony 3.2

OpenHarmony开发者

Open Harmony

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