Можно ли сделать Node.js использовать Rhino как движок Javascript?

Я использую Node.js для нескольких заданий в своих веб-приложениях и до сих пор все в порядке.

Но Node.js использует Google V8 как механизм Javascript по умолчанию (JSE), а V8 работает исключительно на архитектуре набора инструкций x86 и ARM (ISA).

Теперь у меня есть компьютер Mac с процессором PPC, на котором я хочу запустить Node.js.

Для этого мне рекомендуется использовать виртуальную машину Shino Virtual Machine + Low Level Virtual Machine (LLVM), чтобы использовать JIT-компилятор. В настоящее время это выглядит как наиболее подходящий способ запуска Node.js в PPC ISA. Или, есть ли лучший способ сделать это?

Не могли бы вы сказать заранее, можно ли сделать работу Node.js с Rhino? Btw, Node.js написано на С++, и у меня есть опыт программирования на С++, т.е. Я могу попытаться повторно отредактировать код Node.js, если мне нужно.

Спасибо.

Ответы

Ответ 1

Существует реализация Node.js на Rhino, называемая Rhinodo от MuleSoft.

Но вам больше не нужно использовать Rhino в качестве backend для Node.js - есть последний порт Node.js и V8 для PowerPC от Andrew Low (IBM).

Ответ 2

Нет, node.js привязан к V8 почти в каждом исходном файле и включает все надписи, которые были написаны. Даже если у вас есть опыт на С++, было бы огромной задачей сделать преобразование.

Не говоря уже о том, что, если вы пойдете по этому пути в одиночку, вы также останетесь одни в его сохранении. (В то время как node.js сам собрал большое сообщество, способствующее.)

Если вы действительно хотите предпринять такие усилия, сначала обсудите его в списке рассылки. Или, наоборот, собирайте импульс для порта PPC V8. (В равной степени, если не более сложная задача.)

Для серверного механизма JavaScript, который использует Rhino из коробки, посмотрите проект Narwhal. (Хотя кажется менее активным.)

Ответ 3

Это невозможно, поскольку Shtééf уже сказал, что Node.js тесно связан с V8, он использует определенные методы V8 повсюду, зависимость будет расти только в ближайшем будущем, есть "хаки" на пути чтобы войти в внутренние компоненты V8, чтобы значительно повысить производительность при записи строк в сокеты.

Многие модули (утверждать, проверять и т.д.) зависят от конкретных функций V8. Никакой путь не будет каким-либо образом переносимым между V8 и другими JS-серверами на стороне сервера.

Пока Shtééf рассматривает варианты, я вижу только одно решение:
Избавьтесь от оборудования PPC.

Если вы действительно хотите, чтобы он работал на Rhino, вы в конечном итоге поддерживаете кошмар, в конце концов у вас будет две записи либо двух разных приложений, либо создайте гигантский уровень времени выполнения для Rhino, который пытается подражать Node.js, удачи в этом, так как многие вещи просто не будут доступны в Rhino.

Также не будет поддержки сторонних библиотек.

Серьезно, получить другой компьютер, написать все обертки и т.д. по своему усмотрению будет стоить только ваше время, в котором вы могли бы написать потрясающий материал Node.js. А так как время - деньги...

Ответ 4

Проект для переноса движка JavaScript V8, созданного в Google, в архитектуру PowerPC.

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