GraalVM 19.1.0 发布,高性能跨语言虚拟机

2019年07月09日

GraalVM 19.1.0 发布了。GraalVM 是高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和 C++。

GraalVM 消除了编程语言之间的隔离,并支持共享运行时的互操作性。它可以独立运行,也可以在 OpenJDK、Node、Oracle 或者 MySQL 上运行。

此版本更新内容包括:

Java

  • 提高了 GraalVM 中 JIT 编译的速度。
  • 在构建编译器的 AOT(ahead-of-time)镜像时应用配置文件引导优化(PGO,profile-guided optimization)。

Native image

修复了一些 GitHub 上报告的问题。

JavaScript

  • 添加了一个实验性选项 js.locale,以设置区域设置敏感操作的默认语言环境。
  • 允许使用 sourceURL 指令在内部创建评估源,方法是在 URL 前加上 internal,如://# sourceURL = internal: myname.js。
  • 使用 ContextPolicy.SHARED 在线程之间启用代码共享。

LLVM interpreter

  • 在嵌入式上下文中调用 exit(...) 现在是一个可捕获的 PolyglotException。
  • 跳过不允许访问的源路径条目。

Ruby

此版本中的 GraalVM Ruby 实现主要进行了性能和兼容性改进,并带来了一些新特性,修复了多个 bug。rb_str_cat 现在更快,因为 C 字符串现在连接前不需要先被转换为 Ruby 字符串或检查其编码。

R

  • 字符串 -Inf、+NaN 和 -NaN 被正确解析为双精度数,包括忽略前导和尾随空格。
  • For 循环创建并初始化控制变量,即使没有迭代。
  • 更新了内置输出功能。
  • 对于外部可执行文件,is.function 返回 true。

Python

  • Python 标准库从 3.7.0 更新到 3.7.3 版本。
  • 改进抛出异常的性能。
  • 修复了原生镜像中核心源的缓存,其中包含用于预构建镜像和 libpolyglot 快速启动的预初始化上下文。
  • 实现对 pwd.getpwuid、os.exec、os.execv 和 os.execlmodules 的支持。

更新说明:

https://www.graalvm.org/docs/release-notes/#1910

展开阅读全文
15 收藏
分享
加载中
精彩评论
解决那些说java写的代码又臭又长的人,给你们一个自己发明语法优美的语言的机会
2019-07-11 09:45
1
举报
最新评论 (13)
这玩艺想发展好,最好的办法应该是捐给社区 ,然后脱离oracle的掌控。Oracle除了数据库,搞啥死啥。
2019-07-13 16:26
0
回复
举报
LLVM变形嘛,有心的话直接贡献LLVM代码。让我们的java代码直接平移过去
2019-07-11 09:46
0
回复
举报
闲得蛋痛净搞这些没用的东西,解决用户什么痛点?码农拍脑袋凭想象搞个大杂烩解释器?
2019-07-11 09:21
0
回复
举报
解决那些说java写的代码又臭又长的人,给你们一个自己发明语法优美的语言的机会
2019-07-11 09:45
1
回复
举报
还能不同的编程语言混写,天方夜谭
2019-07-10 00:54
0
回复
举报
不同的编程语言最终都编译成java字节码,可以理解了吗?
2019-07-11 09:47
0
回复
举报
java用了它之后,不能用反射了。因为没用的代码都删除了
2019-07-09 23:34
0
回复
举报
上次试玩了下还写了篇简单的博客,很极客,玩一玩还是不错的。
2019-07-09 15:36
0
回复
举报
(感謝樓主提交,我前兩天提交後就忘記翻譯更新內容了
2019-07-09 10:53
0
回复
举报
性能如何啊
2019-07-09 09:55
0
回复
举报
啥时候发布正式版本支持windows,做数据服务很好用
2019-07-09 09:22
0
回复
举报
niubility
2019-07-09 08:47
0
回复
举报
更多评论
13 评论
15 收藏
分享
返回顶部
顶部