问题标签 [rakudo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
169 浏览

raku - 为什么 Rakudo Star for Windows 仍然编译/链接到确切的 FS 位置 (c:\rakudo)?

应该怎么做才能使 Rakudo (Star) 不依赖于文件系统中的位置?

0 投票
3 回答
696 浏览

raku - Perl 6 可以在线工作吗?

这可能是一个天真的问题,甚至不是一个有效的问题......

我制作了一个Perl 6 程序(并希望制作其他几个程序),它分析本地数据并考虑到一些用户定义的参数。我的几个同事/同事需要定期输出程序的输出,所以他们将参数发送给我,我运行程序并将输出发回给他们。
由于整个过程不是很方便,我正在考虑可以做些什么来让每个人都更轻松。这是选项,它们似乎都不理想。

  • 在我同事的计算机上安装 Perl 6 并教他们如何使用它。他们中的大多数人没有任何编程经验,数据和程序本身应该在所有计算机上保持最新,程序应该在不同的系统上相同地工作等等,所以这可能会使事情变得更糟,而不是更好。
  • 制作程序的在线变体(使用JS等),以便我的同事可以在浏览器窗口中输入参数并获得结果。这对用户来说更容易(而且我已经为更简单的程序做了这样的事情),但我更喜欢使用Perl 6 ...

所以,我的问题是:是否有可能以某种方式使Perl 6在线工作?它可以在浏览器中运行吗?或者有没有其他解决方案?

0 投票
1 回答
431 浏览

raku - 为什么源文件名不是人类可读的?

我安装了 Perl6rakudobrew并想浏览已安装的文件以查看.~/.rakudobrew/moar-2018.08/install/share/perl6/site/sources~/.rakudobrew/moar-2018.08/install/share/perl6/sources/.

例如

这些文件包含包的来源,但感觉不是很容易访问。这样做的合理性是什么?

0 投票
1 回答
461 浏览

javascript - 如何使用新的 JS 后端从 Perl 6 调用 JavaScript 内置函数?

我知道当 Perl 6 使用该后端时可以调用 Java:如何从 perl6 调用 Java 方法

有没有办法通过在浏览器中运行的新 Rakudo JavaScript VM 从 Perl 6 访问例如 JavaScript DOM 接口?

也许是这样的:

0 投票
1 回答
148 浏览

raku - Perl6 的角色中是否没有强制执行存根方法的类型签名?

我正在尝试用 Perl6 做一些 OOP 并且在角色方面遇到了一些麻烦。我试图以与 Java 接口类似的方式使用它们,在那里我只有方法签名,必须由任何扮演该角色的类实现。我正在使用带有类型参数并返回的存根方法。

我注意到类型签名没有被强制执行,只有方法的名称。

示例脚本:

我已经阅读了官方文档中的面向对象页面,但找不到一种方法来做我想做的事......我也在尝试应用一种 Java 方式来思考 OOP 和打字,也许有不同的,更多Perl6ish 做我想做的事...

0 投票
0 回答
189 浏览

raku - 递归子程序

假设我有一个包 a、b、c、... 每个包都有名称、版本和依赖项。

在下面的代码中,get-cand sub 接受一个包并从池中返回候选者(以及它们的递归依赖项)。

因此,如果它采用名为c的包,并且池中有

包 c1:名称c,版本1,dep a(任何版本)和b(版本1

包 c2:名称c,版本2,dep b(版本 2)

它将返回以下数据结构:

我正在尝试编写将采用上述数据结构的select-cand sub,目标是返回第一个不冲突的候选者(与已安装的包),并递归检查它的依赖关系。

所以子应该像这样工作:

  • 检查c1,如果冲突返回 False,则取c1并下降到它的 deps
  • (现在在 c1 部门)检查a1,如果冲突返回 True,检查下一个候选者(a2

最终它应该返回 [c1 a2 b1] 或 [c2 b2] 以成功运行,如果所有候选者都冲突,则返回任何内容。

但目前select-cand sub 返回: [c1 a1 a2 c2 b2] 这是错误的,因为我只需要 c1(它是递归的)或 c2。

冲突是一个占位符子,目前它只是排除 b1 包用于测试目的)

0 投票
1 回答
120 浏览

raku - “要求”在哪里定义?

我一直在寻找Rakudo的源代码来实现require,首先是出于好奇,其次是因为我想知道它是否正在返回一些东西。

我查了一下sub require,它返回了这个 hit,这实际上似乎是 require 的来源,但它被称为sub REQUIRE_IMPORT. 它返回Nil并被声明为这样,这几乎回答了我原来的问题。但现在我的问题是:从那个 sub 到的映射在哪里require?它真的是该功能的实现吗?是否还有其他一些以这种方式声明的函数?

0 投票
1 回答
118 浏览

raku - How to disable Perl 6 REPL creating .precomp

Every time I run perl6 to enter the REPL mode, it creates a .precomp directory, which also slows down the appearance of the prompt. If the .precomp directory already exists, the prompt appears almost immediately, otherwise perl6 takes several seconds to create it.

Is there a way to disable this feature?

enter image description here

0 投票
1 回答
113 浏览

raku - Perl 6:maxpairs 警告未定义值的字符串化

看起来maxpairs不喜欢在具有未定义值的列表上调用:

max没有同样的问题,似乎只是忽略了未定义的值:

同样的错误确实发生在:

因此,似乎只有在max没有过滤器参数的情况下才忽略未定义的值。

这是一个错误吗?

0 投票
0 回答
118 浏览

raku - 使用某些外部模块时无法预编译

我正在尝试使用此脚本预编译外部文件以获取其资产:

我正在使用的文件是这样的:

如果我打开 RAKUDO_MODULE_DEBUG,它会失败并显示更多内容,但重要的部分在这里:

它的要点是它没有找到模块测试。这可能意味着 PrecompilationRepository 试图Test在同一个预编译存储库的上下文中查找,这是有道理的。所以问题是:这个假设正确吗?如果是,我们如何将该库路径注入预编译存储?还是我们应该只使用默认的预编译存储?我们怎么能这样做?