Electron 未找到动态变量@*INC
所以我一直在尝试让electron和Perl6一起工作,看起来在我所有的黑客努力让它们工作之后,它只是不想做它想做的事情。我使用了以下脚本(git上的electron repo中的一个示例): 运行时出现以下错误:Electron 未找到动态变量@*INC,electron,raku,Electron,Raku,所以我一直在尝试让electron和Perl6一起工作,看起来在我所有的黑客努力让它们工作之后,它只是不想做它想做的事情。我使用了以下脚本(git上的electron repo中的一个示例): 运行时出现以下错误: Dynamic variable @*INC not found in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line
Dynamic variable @*INC not found
in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 54
in method instance at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
Actually thrown at:
in method throw at C:\rakudo/share/perl6/runtime/CORE.setting.moarvm line 1
in block at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 55
in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 48
in method instance at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
未找到动态变量@*INC
在子方法中,在C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA行54处初始化
在C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA第33行的方法实例中
在测试p6第9行的块中
实际上是针对:
在C:\rakudo/share/perl6/runtime/CORE.setting.moarvm第1行的方法中抛出
在C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA第55行的块中
在子方法中,在C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA行48处初始化
在C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA第33行的方法实例中
在测试p6第9行的块中
在查看子方法后,我注意到这是perl6的电子模块的一部分,似乎不喜欢在模块内使用@*INC
是否有人成功地将电子模块与Perl6一起使用?还有其他人遇到过这个错误吗?有没有简单的办法
我可能可以修改模块以使其编译和运行,但我不知道从何处开始替换@*INC
$*REPO是Perl 5中@INC的6.c替换
在Perl 5中,@INC
变量是Perl查找模块时要搜索的路径的全局数组(类似于许多操作系统用于包含该操作系统查找程序时要搜索的路径的PATH变量)
直到最近,Perl 6还有一个相应的@*INC
变量
考虑到Perl6模块存储库机制引入的并发模块加载和高级模块选择特性,为此使用数组不适合6.c
大约在6.c之前一到两个月,一名开发主管(Stefan Seifert aka nine)通过一种新的$*repo
标量切换模块加载,使用链式回购方法,并淘汰了include数组
出于各种原因,他们这样做没有一个反对期
任何直接提到@*INC
的6.c版本之前的模块都需要更新,有些模块还没有得到更新。电子模块就是这样一个——直到你提交了一个问题(谢谢!),模块的作者回答说
我不知道
$*REPO
的任何“官方”设计或最终用户文档。最好的信息可能是通过询问freenode IRC通道上的用户九(perl6工具链(;)。如果您在6.c之前使用过Perl 6,您可能需要从头开始<代码>@*INC在此之前已被删除,任何关于它的提及都必须处理。好的,那么模块可能需要更新,是吗?考虑到模块中正在使用@*INC
,我假设情况就是这样。你能给我一些如何处理的建议吗?比如说,有没有一种方法可以使用其他东西,或者让它被“发现”呢?我想这只是一个快速解决办法。我建议你在freenode IRC频道提交一个问题,并于6月访问该频道,并询问@*INC的替代品是$*回购。但我对这两种功能都不太了解,因此不知道如何修复electron代码。它需要做更多的工作。实际上,它还需要在任何时候使用新的语法,而不是常规的循环。(这只是我发现需要更改的第一件事)Perl 6实际上在上次修改后的几个月内发生了很大的变化。
Dynamic variable @*INC not found
in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 54
in method instance at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9
Actually thrown at:
in method throw at C:\rakudo/share/perl6/runtime/CORE.setting.moarvm line 1
in block at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 55
in submethod initialize at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 48
in method instance at C:\rakudo\share\perl6\site\sources\42D84B59BC3C5A414EA59CC2E3BC466BBAF78CDA line 33
in block <unit> at test.p6 line 9