是否可以让 Node.js 使用 Rhino 作为 Javascript 引擎?

发布于 2024-10-06 04:23:43 字数 511 浏览 10 评论 0原文

我在网络应用程序上使用 Node.js 完成多项工作,到目前为止一切正常。

但 Node.js 使用 Google 的 V8 作为默认的 Javascript 引擎 (JSE),并且 V8 只能在 x86 和 ARM 指令集架构 (ISA) 上运行。

现在我有一台 PPC 处理器 Mac 计算机,我想在上面运行 Node.js 。

为此,建议我使用 Rhino + OpenJDK Shark 虚拟机 + 低级虚拟机 (LLVM< /a>) 作为 JIT 编译器。目前,这看起来是在 PPC ISA 上运行 Node.js 的最适用的方式。或者,有更好的方法吗?

您能否事先告知 Node.js 是否可以与 Rhino 一起使用?顺便说一句,Node.js 是用 C++ 编写的,我确实有 C++ 编程经验,也就是说,如果有必要,我可能会尝试重新编辑 Node.js 的代码。

谢谢。

I use Node.js for several jobs on my web apps and so far everthing's ok.

But the Node.js uses Google's V8 as the default Javascript engine (JSE) and V8 runs exlusively on the x86 and ARM Instruction Set Architectures (ISA).

Now I have a PPC processor Mac computer on which I want to run the Node.js .

To do that, I'm adviced to use the Rhino + OpenJDK Shark Virtual Machine + Low Level Virtual Machine (LLVM) as the JIT compiler. Currently, that looks like the most applicable way of running Node.js on the PPC ISA. Or, is there a better way to do it?

Could you tell beforehand if it would be possible to make Node.js work with Rhino? Btw, Node.js is written in C++ and I do have the C++ programming experience, i.e. I may attempt to re-edit the code of Node.js if I have to.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

ら栖息 2024-10-13 04:23:43

不,node.js 几乎在每个源文件中都与 V8 绑定,包括所有已编写的附加组件。即使您有 C++ 经验,进行转换也是一项艰巨的任务。

更何况,如果你独自走这条路,你也将独自维持它。 (而 Node.js 本身已经聚集了一个大型社区做出贡献。)

如果您确实想付出这种努力,请考虑在 上讨论它首先是邮件列表。或者,为 V8 的 PPC 移植积蓄动力。 (这也是一项同样艰巨的任务。)

对于开箱即用的使用 Rhino 的服务器端 JavaScript 引擎,请查看 Narwhal 项目。 (虽然看起来不太活跃。)

No, node.js is tied to V8, in almost every source file, and including all the add-ons that have been written. Even if you have the C++ experience, it would be a huge task to do the conversion.

Not to mention that, if you go down this path alone, you'll also be alone in maintaining it. (Whereas node.js itself has gathered a large community contributing.)

If you really want to put in that kind of effort, consider discussing it on the mailing list first. Or alternatively, gather momentum for a PPC port of V8. (An equally, if not more daunting task.)

For a server-side JavaScript engine that uses Rhino out of the box, take a look at the Narwhal project. (Though it seems less active.)

总以为 2024-10-13 04:23:43

MuleSoft 在 Rhino 上有一个名为 Rhinodo 的 Node.js 实现。

但您不再需要使用 Rhino 作为 Node.js 的后端 - 有一个最新的 Node.js 和 V8 for PowerPC,作者:Andrew Low (IBM)。

There is an implementation of Node.js on Rhino called Rhinodo by MuleSoft.

But you no longer have to use Rhino as a backend for Node.js - there is a recent port of Node.js and V8 for PowerPC by Andrew Low (IBM).

恰似旧人归 2024-10-13 04:23:43

这是不可能的,因为 Shtééf 已经说过 Node.js 与 V8 紧密相连,它到处都使用特定的 V8 方法,依赖性只会在不久的将来增长,有一些“黑客”可以进入 V8 的内部为了大幅提高将字符串写入套接字时的性能。

许多模块(断言、检查等)依赖于特定的 V8 功能。代码无法以任何方式在 V8 和其他服务器端 JS 引擎之间移植。

当 Shtééf 考虑各种选择时,我只看到一个解决方案:
摆脱 PPC 硬件。

如果你真的想让它在 Rhino 上运行,你最终会陷入维护噩梦,最终你将不得不编写两个不同的应用程序,或者为 Rhino 创建一个巨大的运行时层来尝试模拟 Node.js ,祝你好运,因为很多东西在 Rhino 中是不可用的。

此外,也不支持第三方库。

说真的,买另一台计算机,自己编写所有包装器等只会花费您的时间,您可以在其中编写很棒的 Node.js 东西。而且因为时间就是金钱...

This is impossible, as Shtééf already said Node.js is tightly tied to V8, it uses specific V8 methods all over the place, the dependency will only grow in the near future, there are "hacks" on the way to get into V8's internals in order to massively improve performance when writing strings to sockets.

Many modules (assert, inspect etc.) depend on specific V8 functions. There's no way code will be in any way portable between V8 and other server side JS engines.

While Shtééf considers options, I see only one solution:
Get rid of the PPC hardware.

If you really want to make it run on Rhino, you'll end up in a maintaining nightmare, in the end you'll have two write either two distinct applications, or create a giant runtime layer for Rhino which tries to emulate Node.js, good luck with that, since many things just won't be available in Rhino.

Also there will be no support for 3rd party libraries.

Seriously, get another computer, writing all the wrappers etc. on your own will only cost your time, in which you could have written awesome Node.js stuff. And since time is money...

执手闯天涯 2024-10-13 04:23:43

将源自 Google 的 V8 JavaScript 引擎移植到 PowerPC 架构的项目。

https://github.com/ic/v8-powerpc

Project to port the V8 JavaScript engine originated at Google to the PowerPC architecture.

https://github.com/ic/v8-powerpc

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文