EXPORTHOW 和 DECLARE - 它们是什么?

art*_*sow 8 rakudo raku

我读过 Jonathan Worthington 写的一篇关于元编程的文章。\n他写道:

\n
\n

为此,我们将其粘贴在 EXPORTHOW 模块中,名称为\n\xe2\x80\x9cclass\xe2\x80\x9d。导入程序会特别注意此模块(如果存在)。

\n
\n

同时,乔纳森在这里DECLARE使用。\n有关于该内容和其他类似内容的文档吗?应该使用什么以及何时使用?进口商还寻找哪些其他特殊物品?

\n

我尝试搜索官方文档但未能找到任何内容。

\n

先感谢您!

\n

rai*_*iph 4

我们至少可以在哪里看到所有可能的事情?

Aiui Rakudo 编译器的源代码非常好。

在我看来,就像在这里进行处理EXPORTHOW,特别是在这里,作为 的一部分。DECLAREWorld.nqp

AfaikWorld班级是:

  • Rakudo 的内部实现具体细节。它不是 Raku 语言的一部分。这不是你可以依赖的东西。它不受官方支持。

  • 用nqp写的。nqp 不是 Raku。它本质上是 Raku 的一个小子集,专注于成为编写编译器的良好编程语言。

  • 请注意,RakuAST 分支中不存在“World.nqp”,该分支今年将成为 Rakudo 的主要分支。它的所有逻辑都将合并到 RakuAST 类中。因此,请从“World.nqp”中的概念学习,而不是从代码中学习!:-) (3认同)
  • 不。首先,请知道我的答案是触发[在编译器源代码中搜索“EXPORTHOW”](https://github.com/rakudo/rakudo/search?p=3&q=exporthow ),浏览匹配列表,单击可能的潜在客户,在每个匹配项中搜索“DECLARE”,然后决定提供两个“World”链接。对于“COMPOSE”,我看到“NYI('EXPORTHOW::COMPOSE')”并且知道“NYI”意味着“尚未实现”。[搜索“SUPERSEDE”](https://github.com/rakudo/rakudo/search?q=supersede)也显示了“.NYI”,并且“Exception”匹配表明它用于覆盖现有的声明符。 (2认同)