小编lis*_*tor的帖子

perl6如何为MoarVM提供更多内存?

我必须对大约200万行数据进行数据分析,每行大约250字节.总共大约500兆字节的数据.我在带有4G内存的Virtualbox Linux上运行最新的Rakudo.

大约8个小时后,由于内存不足,我得到了MoarVM的恐慌.如何为MoarVM提供更多内存?不幸的是,由于部分数据分析需要整个2米的行,所以我不能将2百万分成块并写入文件.

非常感谢你 !!!

lisprog

memory perl6 moarvm

6
推荐指数
2
解决办法
157
查看次数

我在哪里可以找到 Raku 核心转储文件?

我从 /path/to/data 运行 /home/foo/bar.p6 并显示“分段错误(核心转储)”

我在 /var/crash 或我的主目录或当前工作目录中找不到核心转储文件。

我认为是 Raku 本身进行了核心倾销。

如果我的程序导致转储,raku 会将核心转储文件放在哪里,如果 Raku 本身进行了核心转储,我会在哪里找到转储文件?

谢谢。

coredump raku

6
推荐指数
1
解决办法
73
查看次数

小数点后 19 位及以后的数学精度

我有相同的数据集并且运行相同的代码,但有时我在小数点后 19 位及以后得到不同的结果。虽然对于小于 0.0001 的数字这不是我很关心的问题,但它让我想知道小数点后 19 位是否是 Raku 的精度限制?

     Word 104 differ: 
             0.04948872986571077     19 chars 
             0.04948872986571079     19 chars
     Word 105 differ: 
             0.004052062278212545    20 chars 
             0.0040520622782125445   21 chars
Run Code Online (Sandbox Code Playgroud)

math precision raku

6
推荐指数
1
解决办法
140
查看次数

Raku:在将 Rational 强制为 Str 时尝试除以零

在添加更多数据之前,我一直在处理大量数据。结果以字符串的形式写入文件,但是我收到了这个错误信息,在我的代码梳理了2天后,我无法找到编程错误;在添加新数据之前,我的代码一直运行良好。

Died with the exception:
    Attempt to divide by zero when coercing Rational to Str
      in sub analyzeData at /home/xyz/numberCrunch.p6 line 2720
      in block  at /home/xyz/numberCrunch.p6 line 3363

Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

第 2720 行是输出到文件的行: $fh.say("$result");

所以,Rational 似乎是一个延迟评估。有没有办法强制将 Rational 立即转换为小数?或者通过让 Rational 尽早检测到 0 分母使 Rational 变得更聪明?

string zero divide raku

6
推荐指数
1
解决办法
93
查看次数

perl6的功能类似于"car cdr cons"中的方案?

我真的很喜欢perl6和计划.我想知道perl6中的函数是否与方案中的"cons,car,cdr"函数类似?我一直在做的事情很麻烦:

sub cons($a, $aList) { return flat($a, $aList); } # sometimes flat is undesired;
sub car($aList) { return first($aList); }
sub cdr($aList) { return tail($aList.elems - 1); }
Run Code Online (Sandbox Code Playgroud)

谢谢.

arrays cons perl6 cdr

5
推荐指数
1
解决办法
218
查看次数

如何访问比赛中的捕获?

我正在尝试解析 csv 文件,并且正在尝试访问 Perl6 中的原始正则表达式中的名称正则表达式。事实证明是零。正确的做法是什么?

grammar rsCSV {
    regex TOP { ( \s* <oneCSV> \s* \, \s* )* }
    proto regex oneCSV {*}
          regex oneCSV:sym<noQuote> { <-[\"]>*?  }
          regex oneCSV:sym<quoted>  { \" .*? \" } # use non-greedy match
}

my $input = prompt("Enter csv line: "); 

my $m1 = rsCSV.parse($input);
say "===========================";
say $m1;
say "===========================";
say "1 " ~ $m1<oneCSV><quoted>;  # this fails; it is "Nil"
say "2 " ~ $m1[0];
say "3 " ~ $m1[0][2];
Run Code Online (Sandbox Code Playgroud)

regex match named raku

5
推荐指数
1
解决办法
190
查看次数

perl6匹配任何一组单词的最佳方法是什么?

我试图找到一种简单的方法来匹配任何一组单词.我一直在使用for循环,但有更简单的方法吗?

my @a=<a b c d e f>;
my $x="a1234567";
say $x ~~ m/ @a.any /;
Run Code Online (Sandbox Code Playgroud)

它返回False.有没有办法让它发挥作用?谢谢.

match any perl6

5
推荐指数
1
解决办法
58
查看次数

perl6格式错误的UTF-8导致程序崩溃

我正在尝试下载网页; 然后用正则表达式进行分析; 然后获取正则表达式发现的文件.我有两个问题:

(1)我使用wget这一行下载网页和文件

my $webPage = "onePage";
my $result = run <<wget -O $webPage $aSite>>, :out, :err;
Run Code Online (Sandbox Code Playgroud)

来自哪里$webPage的输出文件wget.问题:任何perl6相当于wget?我URI::FetchFile在perl6网站上使用过模块; 它获取了一些文件,但它无法获取网页.

(2)wget下载的$ webPage有时会出现格式错误的UTF-8字符,导致程序崩溃.当我做

cat onePage
Run Code Online (Sandbox Code Playgroud)

从shell中,那些格式错误的UTF-8字符显示为blob,并且此命令导致与我的程序相同的错误:

cat onePage | perl6 -ne '.say;'
Run Code Online (Sandbox Code Playgroud)

并且perl6的错误输出是

Malformed UTF-8
  in block <unit> at -e line 1
Run Code Online (Sandbox Code Playgroud)

在终端或shell上,一个格式错误的UTF-8字符显示为这样的blob:

h?lt
Run Code Online (Sandbox Code Playgroud)

如果我尝试删除非打印字符,那么结果是我错过了大量文件链接:

$tmpLine ~~ s/<-[print]>//; # this causes my program to miss many files
Run Code Online (Sandbox Code Playgroud)

如何最好地处理这些格式错误的UTF-8字符或任何格式错误的unicodes甚至格式错误的控制字符?

utf-8 perl6 malformed

5
推荐指数
1
解决办法
176
查看次数

使用用户定义函数错误的归约运算符

raku 网页表示,应在归约运算符中为用户定义的函数使用额外的括号:https : //docs.raku.org/language/operators#Reduction_metaoperators

但是,当我将函数作为变量传递时出现错误(我使用的是 Rakudo Star 2010.10):

> sub lessThan ($a, $b) { $a < $b }
&lessThan
> my @a = ((1,2,3), (6,5,4))
[(1 2 3) (6 5 4)]
> sub x (@arrOfArr, &func) { say @arrOfArr.grep( { [[&func]] ($_[0], $_[1], $_[2]) } ); }
&x
> x(@a, &lessThan)
((1 2 3) (6 5 4)) # <----------------------------------- this is not what I expected
> say @a.grep( { [<] ($_[0], $_[1], $_[2]) } );
((1 2 3)) # …
Run Code Online (Sandbox Code Playgroud)

function reduction operator-keyword raku

5
推荐指数
1
解决办法
63
查看次数

raku:在 Raku 2020.10 中支持 utf8-c8 问题

我有一个来自 Wild Wild Web 的文件,它包含格式错误的 UTF8。我在早期版本的 Raku 中处理了其他代码中格式错误的 UTF8。在 2020.10 版本中,我在下面遇到了这个问题。对 utf8-c8 的支持是否已更改(此页面说它应该可以工作,但似乎没有):

https://docs.raku.org/language/unicode#index-entry-UTF-8_Clean-8

这个页面有这个例子:

say slurp($test-file, enc => 'utf8-c8');
Run Code Online (Sandbox Code Playgroud)

现在我在命令行上的代码:

raku -e 'my $a = slurp("zlist"); for $a.lines { .say }'
Malformed UTF-8 near bytes 73 e2 5f at line 55 col 14
  in block <unit> at -e line 1
Run Code Online (Sandbox Code Playgroud)

然后使用这个:

raku -e 'my $a = slurp("zlist", enc => 'utf8-c8'); for $a.lines { .say }'
===SORRY!=== Error while compiling -e
Undeclared routine:
    utf8-c8 used at line 1
Run Code Online (Sandbox Code Playgroud)

我的代码很简单,基本上是从示例中复制的。我究竟做错了什么?

utf-8 raku

5
推荐指数
0
解决办法
77
查看次数