【问题标题】:Why can't red interface with node.js while rebol can?为什么 red 不能与 node.js 接口,而 rebol 可以?
【发布时间】: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 lifetimehandle mutability。如果这是您了解的领域,我鼓励您参与进来。

标签: node.js rebol red


【解决方案1】:

为什么rebol能够而不是红色,因为我认为红色应该与rebol兼容。

没有人进行这种整合并不意味着它不能完成。此外,您提到的“兼容性”是在语言级别,而不是工具链级别。

实际上,实现与 Node.js 的集成应该相当简单,这要归功于 libRed API,它允许 Red 的运行时和解释器几乎嵌入到 any software 中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多