【发布时间】:2017-10-24 13:09:39
【问题描述】:
我偶然发现了这个:
https://trello.com/c/yGGIM3Hl/32-nodejs-interface-for-rebol-to-pave-the-way-for-red
虽然 Red 不是基于标准工具链构建的,也不是您可以作为原生 node.js NPM 包添加的东西,但 Rebol 今天可以做到这一点(如果有人愿意做一些工作!)然后是这样的:
npm install rebol-eval接着是一些愚蠢的东西;给它一个字符串,取回一个字符串:
var rebolEval = require("rebol-eval"); rebolEval.newContext(function (err, rebol) { if (err) { console.error("context alloc failure: " + err); return; } rebol.eval("1 + 1", function (err, res)) { if (err) { console.err("Evaluation failed " + err); } else { console.log(res); } } }
是关于能够从 nodeJs 调用 rebol 吗?为什么 rebol 能够而不是红色,因为我认为红色应该与 rebol 兼容。
【问题讨论】:
-
似乎有人已经完成了编写 node.js 接口的工作,因此您可以从 node.js 中调用 rebol 代码,但显然(根据您的说法)有人没有为 red 这样做。即使 red 是 rebol 语言的另一种实现,它仍然需要它自己的 node.js 接口实现才能从 node.js 中使用,因为它是一个独立于 rebol 的二进制文件。
-
您在此处找到的是一个提案,尚未完成。理论上,鉴于 libRed 作为 C API,与 C++ 工具链交互的两种语言之间并没有太大区别。在实践中,存在一些影响外部接口的模糊问题。请参阅 handle lifetime 和 handle mutability。如果这是您了解的领域,我鼓励您参与进来。