2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

JRuby 1.4 RC1 发布:增加了 Windows 安装包、1.8.7 支持及新的嵌入式 API

  • 2009-10-18
  • 本文字数:899 字

    阅读完需:约 3 分钟

JRuby 1.4 RC1 发布了(点击此处查看JRuby 1.4 RC1 的所有版本)。

JRuby 1.4 RC1 进行了大量的改进,如对Ruby 1.8.7 的支持及新的Java 集成支持(此前InfoQ 曾进行过报道)

Windows 用户可能会对新的 JRuby 安装包情有独钟,该安装包是个.exe 文件,可从 JRuby 1.4 下载点下载

对于那些想在应用中嵌入 JRuby 进行脚本编程或是想从 Java 代码中调用 JRuby 的开发者来说有个好消息,现在可以使用“Red Bridge”或是 org.jruby.embed 了,这是一个新的嵌入式 API,将在 JRuby 的未来版本中替换掉 JavaEmbedUtils。

Red Bridge 的创建者 Yoko Harada 解释到

在 JRuby 1.4 RC1 发布后,用户可能会被 JRuby 的 JavaEmbedUtils 和 Red Bridge 搞晕了,到底应该用哪个呢?毫无疑问,新用户应该首选 Red Bridge,因为其使用简单且功能强大。现在我们正在商讨如何废弃 JavaEmbedUtils 以及与嵌入式相关的其他接口。很多包(包括 JRuby Rack)都使用到了 JavaEmbedUtils 以及其他嵌入式 API,因此这是一个牵一发而动全身的事情,需要谨慎行事。

Red Bridge 和其他嵌入式 API 修复了一些问题,像是如何跨越对 JRuby 的不同调用查看调用变量等。新的 org.jruby.embed.ScriptingContainer 文档中写到:

第三个示例介绍了如何在多个赋值语句之间保持局部变量。该特性模拟了 JRuby 的 BSF 引擎。在 Ruby 语义下,一旦赋值结束,局部变量就失效了。因此,该特性是可选的,同时在容器实例化时用户需要指定 LocalVariableBehvior.PERSISTEN。

示例代码:

复制代码
ScriptingContainer container = new ScriptingContainer(LocalVariableBehavior.PERSISTENT);
container.runScriptlet("p = 42");
container.runScriptlet("puts #{p}");

如果没有指定 LocalVariableBehavior.PERSISTENT,那么在第二次调用 container.runScriptlet 时变量 p 就失效了,因此需要将其声明为全局变量而非局部变量。

我们希望大家都来试用 JRuby 1.4 RC1,有问题请及时报告。

最后,对 JRuby 感兴趣的用户可以阅读 R.J. Lorimer 关于 JRuby 内核的系列文章,最新的文章深入分析了 JRuby JIT。

查看英文原文: JRuby 1.4RC1 Released, Adds Windows Installer, 1.8.7 Support, New Embedding API

2009-10-18 21:40675
用户头像

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

关注

评论

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

Python-计算机视觉-OpenCV-Image

Aldeo

Python OpenCV 计算机视觉

Three.js杂记(四)—— 更好的运动:TweenMax

空城机

大前端 3D渲染 3D可视化 three. webg

全球视野下的云上“夺旗赛”:京东云飞驰在产业赛道

脑极体

DCGM:监控Kubernetes集群的GPU资源

DCOS

kubernetest

moviepy简介及安装

老猿Python

Python 编程语言 音视频 Moviepy PyQt

第九周作业

yoki

Three.js杂记(六)——3D模型

空城机

大前端 WebGL 3D模型 3D可视化 three.js

Three.js杂记(七)—— 全景效果制作·上(含python爬虫偷碎图,canvas重组图片)

空城机

大前端 WebGL 3D渲染 3D可视化 three.js

Three.js杂记(九)—— 练习:地球

空城机

大前端 WebGL 3D可视化 three.js

Three.js杂记(八)—— 文本几何体

空城机

大前端 WebGL 3D渲染 3D可视化 three.js

网页长截图如此简单

Python研究所

浏览器 实用技巧 截图

[Thinkphp6.0 零基础到前后分离实战]一

重庆柯一网络有限公司

js逐步教实现表单系统(html逻辑 css逻辑 js逻辑)

工程方法事例实战

风翱

软件工程 3月日更

js逐步教实现音乐系统(html逻辑 css逻辑 js逻辑)

js

js逐步教你实现原生古诗匹配系统(html逻辑 css逻辑 js逻辑)

js

JS逐步教你做(自己版本)的视频播放器(html逻辑 css逻辑 js逻辑)

js

Three.js杂记(十一)—— 精灵与粒子(绘制中国地图)

空城机

大前端 WebGL 3D渲染 3D可视化 three.js

js逐步实现原生控制系统(html逻辑 css逻辑 js逻辑)

js

Three.js杂记(十)——贴图

空城机

大前端 WebGL 3D渲染 3D可视化 three.js

js逐步教你实现原生电影院系统(html逻辑 css逻辑 js逻辑)

js

C语言性能优化:移除循环体中的重复运算

1

缓存 编程 程序员 性能优化 C语言

go训练营毕业总结

伊灵

Prophecis 0.2.0 版本发布

WeDataSphere

机器学习 大数据 学习 WeDataSphere

我提升开发效率的经验

流沙

程序员 成长笔记 成长与思考

从一道美团春招笔试题目出发,揭开树DP的神秘面纱

面鲸

面试 数据结构与算法 笔试题

Three.js杂记(五)——坐标轴、光源

空城机

大前端 WebGL 3D渲染 3D可视化 three.js

机器学习(一):5分钟理解机器学习并上手实践

caiyongji

机器学习

高阶文件操作

Python研究所

Python 文件处理

js逐步实现原生flex系统(html逻辑 css逻辑 js逻辑)

js

h5逐步实现 <<canvas系统>>(html逻辑 css逻辑 js逻辑)

js

JRuby 1.4 RC1发布:增加了Windows安装包、1.8.7支持及新的嵌入式 API_Java_Werner Schuster_InfoQ精选文章