当前位置:  开发笔记 > 后端 > 正文

为什么truffleruby需要C扩展?

如何解决《为什么truffleruby需要C扩展?》经验,为你挑选了1个好方法。

目前的状态truffleruby说:

TruffleRuby正在快速发展,但目前可能尚未准备好尝试运行完整的Ruby应用程序.缺少对OpenSSL和Nokogiri等关键C扩展的支持.

为什么truffleruby需要C扩展?它建立在构建于JVM之上的GraalVM之上,它实际上是JRuby的一个分支:

TruffleRuby是JRuby的一个分支,它将它与Rubinius项目的代码结合在一起,并且还包含来自Ruby,MRI标准实现的代码.

难道他们不能使用JRuby世界宝石而不是依赖于他们的C变种吗?

编辑链接到github上的问题



1> 小智..:

运行C扩展很难,因为C扩展API只是作为头文件暴露的整个MRI内部.您没有针对干净的API编程 - 您正在针对MRI的所有实现细节和内部设计决策进行编程.

JRuby的Java扩展具有完全相同的问题!JRuby Java扩展API只是JRuby的整个内部结构,并且您不是针对API进行编程,而是针对JRuby的所有实现细节和设计决策进行编程.

我们计划最终以同样的方式解决这两个问题 - 即使用解释器在C或Java代码上添加另一个抽象级别,我们可以在需要时拦截和重定向,以便它认为它是针对MRI或JRuby内部运行的,但我们确实将这些重定向到我们的内部.

我们认为C扩展更重要,所以我们首先解决这些问题.我们还没有真正开始使用Java扩展,但是我们已经开始使用我们将使用的Java底层解释器.

这个视频解释了所有

https://youtu.be/YLtjkP9bD_U?t=1562

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有