15

我在我的网络应用程序上使用 Node.js 完成了几项工作,到目前为止一切都很好。

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

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

为此,建议我使用 Rhino + OpenJDK Shark Virtual Machine + Low Level Virtual Machine ( LLVM ) 作为 JIT 编译器。目前,这看起来是在 PPC ISA 上运行 Node.js 的最适用方式。或者,有没有更好的方法来做到这一点?

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

谢谢。

4

4 回答 4

19

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

更不用说,如果你独自走这条路,你也将独自一人维护它。(而 node.js 本身已经聚集了一个大型社区贡献。)

如果您真的想付出这种努力,请考虑先在邮件列表中进行讨论。或者,为 V8 的 PPC 端口收集动力。(同样,如果不是更艰巨的任务。)

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

于 2010-12-04T11:07:40.043 回答
6

在 Rhino 上有一个 Node.js 的实现,由 MuleSoft 称为Rhinodo

但是您不再需要使用 Rhino 作为 Node.js 的后端 - Andrew Low (IBM) 最近为 PowerPC移植了Node.jsV8 。

于 2013-10-17T21:31:19.353 回答
4

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

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

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

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

也将不支持 3rd 方库。

说真的,买另一台电脑,自己编写所有的包装器等只会花费你的时间,你可以在其中写出很棒的 Node.js 东西。既然时间就是金钱...

于 2010-12-04T11:27:12.807 回答
0

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

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

于 2011-10-05T18:34:22.883 回答