为什么 truffleruby 需要 C 扩展?
Why does truffleruby need C extensions?
Current status of truffleruby
says:
TruffleRuby is progressing fast but is currently probably not ready for you to try running your full Ruby application on. Support for critical C extensions such as OpenSSL and Nokogiri is missing.
为什么 truffleruby
需要 C 扩展?它建立在 GraalVM 之上,GraalVM 建立在 JVM 之上,it is in fact a fork of JRuby:
TruffleRuby is a fork of JRuby, combining it with code from the Rubinius project, and also containing code from the standard implementation of Ruby, MRI.
他们不能使用 JRuby world gems 而不是依赖于他们的 C 变体吗?
EDIT link 到 issue on github
运行 C 扩展很难,因为 C 扩展 API 只是作为头文件公开的 MRI 的整个内部结构。您不是针对干净的 API 进行编程 - 您是针对 MRI 的所有实现细节和内部设计决策进行编程。
JRuby 的 Java 扩展有完全相同的问题! JRuby Java 扩展 API 只是 JRuby 的全部内部结构,您不是针对 API 进行编程,而是针对 JRuby 的所有实现细节和设计决策进行编程.
我们计划最终以相同的方式解决这两个问题 - 即使用解释器在 C 或 Java 代码上添加另一个抽象级别,我们可以在需要时拦截和重定向,以便它认为它 运行 反对 MRI 或 JRuby 内部,但实际上我们将这些重定向到我们的内部。
我们认为 C 扩展更重要,所以我们首先处理这些。我们还没有真正开始 Java 扩展,但是我们已经启动了我们将要使用的 Java 的底层解释器。
这个视频解释了所有
项目负责人已经给你很好的回答,但我想提供一个不同的观点:
Why does truffleruby need C extensions?
它不需要它们。但它们确实存在并且有使用它们的代码,能够 运行 该代码肯定很好。
Current status of truffleruby
says:
TruffleRuby is progressing fast but is currently probably not ready for you to try running your full Ruby application on. Support for critical C extensions such as OpenSSL and Nokogiri is missing.
为什么 truffleruby
需要 C 扩展?它建立在 GraalVM 之上,GraalVM 建立在 JVM 之上,it is in fact a fork of JRuby:
TruffleRuby is a fork of JRuby, combining it with code from the Rubinius project, and also containing code from the standard implementation of Ruby, MRI.
他们不能使用 JRuby world gems 而不是依赖于他们的 C 变体吗?
EDIT link 到 issue on github
运行 C 扩展很难,因为 C 扩展 API 只是作为头文件公开的 MRI 的整个内部结构。您不是针对干净的 API 进行编程 - 您是针对 MRI 的所有实现细节和内部设计决策进行编程。
JRuby 的 Java 扩展有完全相同的问题! JRuby Java 扩展 API 只是 JRuby 的全部内部结构,您不是针对 API 进行编程,而是针对 JRuby 的所有实现细节和设计决策进行编程.
我们计划最终以相同的方式解决这两个问题 - 即使用解释器在 C 或 Java 代码上添加另一个抽象级别,我们可以在需要时拦截和重定向,以便它认为它 运行 反对 MRI 或 JRuby 内部,但实际上我们将这些重定向到我们的内部。
我们认为 C 扩展更重要,所以我们首先处理这些。我们还没有真正开始 Java 扩展,但是我们已经启动了我们将要使用的 Java 的底层解释器。
这个视频解释了所有
项目负责人已经给你很好的回答,但我想提供一个不同的观点:
Why does truffleruby need C extensions?
它不需要它们。但它们确实存在并且有使用它们的代码,能够 运行 该代码肯定很好。