[00:12] *** patrickz joined [00:16] *** patrickb left [00:17] *** patrickz left [00:49] *** Xliff left [01:52] *** Altai-man_ joined [01:55] *** sena_kun left [02:08] *** ufobat_ joined [02:12] *** ufobat left [03:38] *** AlexDaniel joined [03:38] *** AlexDaniel left [03:38] *** AlexDaniel joined [03:53] *** sena_kun joined [03:54] *** Altai-man_ left [05:52] *** Altai-man_ joined [05:55] *** sena_kun left [07:05] *** Xliff joined [07:07] *** Altai-man_ left [07:28] my $a = 'abcde'; if $a.Int ~~ Failure {say "Hi!"} [07:28] Xliff, rakudo-moar 97e7cdbd5: OUTPUT: «Hi!␤» [07:38] my $a = 'abcde'; say $a ~~ tr/abode/; [07:38] m: my $a = 'abcde'; say $a ~~ tr/abode/; [07:38] rakudo-moar 97e7cdbd5: OUTPUT: «5===SORRY!5=== Error while compiling ␤Malformed replacement part; couldn't find final /␤at :1␤------> 3my $a = 'abcde'; say $a ~~ tr/abode/;7⏏5␤» [07:40] m: my $a = 'abcde'; say tr/{ $a }/abode/; [07:40] rakudo-moar 97e7cdbd5: OUTPUT: «No such method 'trans' for invocant of type 'Any'␤ in block at line 1␤␤» [07:40] m: my $a = 'abcde'; say $a.trans('abode'); [07:41] rakudo-moar 97e7cdbd5: OUTPUT: «Only Pair objects are allowed as arguments to Str.trans, got Str␤ in block at line 1␤␤» [07:41] m: my $a = 'abcde'; say $a ~~ tr/{ $a }/abode/; [07:41] rakudo-moar 97e7cdbd5: OUTPUT: «StrDistance.new(before => "abcde", after => "dbcde")␤» [07:42] m: my $a = 'abcde'; say $a ~~ tr/$a/abode/; [07:42] rakudo-moar 97e7cdbd5: OUTPUT: «StrDistance.new(before => "abcde", after => "bbcde")␤» [07:45] Is there a Raku interface to the Levenshtine algorithm the parser uses? [07:46] m: levenshtein("abode", "abcde").say [07:46] rakudo-moar 97e7cdbd5: OUTPUT: «5===SORRY!5=== Error while compiling ␤Undeclared routine:␤ levenshtein used at line 1␤␤» [07:59] *** domidumont joined [08:20] Xliff: no that's just subs in Perl6::World [09:33] Files=1294, Tests=109644, 210 wallclock secs (28.64 usr 8.16 sys + 2945.45 cusr 272.33 csys = 3254.58 CPU) [09:53] nine: Why is there no interface to that from Raku? [09:57] Because no needed one? [09:57] no one needed one [09:58] Also do you mean interface available in Rakudo's Raku code or a real public interface for Raku users? [09:58] A real public interface for Raku users. [09:59] the suggestion of similar identifiers in error messages is an implementation detail :-) [09:59] BTW -- I tried porting the existing implementation from World.nqp to my Raku code and it is now SegFaulting. [10:01] Somewhere in exists_key() in libmoar.so [10:02] And that means it's most likely this line... https://github.com/rakudo/rakudo/blob/master/src/Perl6/World.nqp#L81 [10:02] But not really that line. It's that equivalent line in my Raku ported version. See... if this code was publicly available, I wouldn't be having this problem! :) [10:07] Xliff: you still don't need to have that problem: https://modules.raku.org/search/?q=leven [10:12] Yes, but why the segfault? That was the real point. [10:13] A backtrace with debug info may answer that [10:13] Is it reproducible? [10:13] Ah. I'd have to recompile. [10:13] Yes. [10:20] exists_key (tc=0x555555559fa0, st=0x55555732b8c8, root=, data=, key=0x7ffff70a9c28) [10:20] at src/6model/reprs/P6opaque.c:1379 [10:21] Hrm... what configure flaghs would be best for more to prevent it from optimizing out data like this? [10:21] Oh. Nevermind. I just need a -O0 [10:28] P6opaque.c:1379 is "return REPR(del)->ass_funcs.exists_key(tc, STABLE(del), del, OBJECT_BODY(del), key);" [10:28] del is 0x0 [10:50] *** patrickb joined [11:29] *** Merfont left [11:30] *** Merfont joined [11:32] *** Merfont left [11:36] m: say 1 and 1 and 5 [11:36] rakudo-moar 97e7cdbd5: OUTPUT: «WARNINGS for :␤1␤Useless use of constant integer 5 in sink context (line 1)␤» [11:37] m: if 1 and 1 and 5 -> $e { say $e } [11:37] rakudo-moar 97e7cdbd5: OUTPUT: «5␤» [11:37] m: if 1 and 5 and 1 -> $e { say $e } [11:37] rakudo-moar 97e7cdbd5: OUTPUT: «1␤» [11:54] So a hash attribute of an object is null and you try an exists on it? That's....odd. Can you golf it? [11:54] Oh, no, it's a hash object by itself, not necessarily an attribute [11:57] *** sena_kun joined [11:59] sometime I wonder is an nqp::digits_I op would be difficult to make [11:59] it would basically be nqp::chars(nqp::tostr_I()) but without actually creating the string [12:17] you need a log with base 10 and some rounding [12:17] m: say log(2**66, 10).floor() [12:17] rakudo-moar 97e7cdbd5: OUTPUT: «19␤» [12:18] and a special case for 0 and negative numbers [12:18] I was more thinking along the line of the underlying bigint library providing this :-) [12:57] *** |Tux| left [13:14] *** |Tux| joined [13:26] ¦ rakudo: 73e98a6c8c | (Elizabeth Mattijsen)++ | src/core.c/Rational.pm6 [13:26] ¦ rakudo: Make Rational.Str a few % faster with 20% fewer allocations [13:26] ¦ rakudo: [13:26] ¦ rakudo: Mostly by eradicating an intermediate private method, and by using [13:26] ¦ rakudo: nqp::ops where appropriate, preventing Str allocations. [13:26] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/73e98a6c8c [13:39] *** Voldenet left [13:43] *** Voldenet joined [13:43] *** Voldenet left [13:43] *** Voldenet joined [13:53] *** Altai-man_ joined [13:55] *** sena_kun left [13:56] *** lucasb joined [14:11] nine: FWIW, it's not nqp, but perl6 where this is a problem. [14:14] Xliff: did you resolve your Method::Also problem? [14:14] vrurg: No [14:15] Xliff: maybe it makes sense to open a GH issue for it? It'd be easier for me to help then. I'm often afk these times. [14:17] OK. [14:17] Xliff: good thing we're not working on perl6 anymore :-) [14:18] Oh hah.... ;) [14:24] <|Tux|> Rakudo version 2019.11-417-g73e98a6c8 - MoarVM version 2020.01-15-g1fa9764bf [14:24] <|Tux|> csv-test-xs-20 0.431 - 0.434 [14:24] <|Tux|> csv-ip5xs 0.713 - 0.719 [14:24] <|Tux|> test-t --race 0.797 - 0.804 [14:24] <|Tux|> test-t 1.747 - 1.766 [14:24] <|Tux|> csv-ip5xs-20 6.232 - 6.323 [14:24] <|Tux|> test 6.970 - 7.164 [14:24] <|Tux|> test-t-20 --race 10.649 - 10.650 [14:24] <|Tux|> csv-parser 22.066 - 23.033 [14:24] <|Tux|> test-t-20 29.659 - 30.548 [14:24] *** patrickb left [14:25] *** Guest78373 left [15:36] nine: It looks like another process is actually used to compile the bytecode. See src/core.c/CompUnit/PrecompilationRepository.pm6#L304. Does --output need to be $bc, or can it be changed to something else? [15:37] Because it looks like it's only necessary up to #L366 [15:53] *** sena_kun joined [15:55] *** Altai-man_ left [16:00] *** Guest78373 joined [16:06] *** MasterDuke joined [17:04] *** domidumont left [17:36] *** domidumont joined [17:53] *** Altai-man_ joined [17:55] *** sena_kun left [18:23] bisectable6, use Test; my UInt %composed; role MooishAttrHOW { method compose( Mu $pkg ) { %composed{self.name}++; callsame; } }; multi trait_mod: (Attribute:D $attr, :$mooish!) { $attr does MooishAttrHOW }; class Foo { has $.bar is mooish is rw }; is-deeply %composed<$!bar>, 1, "attribute composed once"; [18:23] Altai-man_, Bisecting by exit code (old=2015.12 new=73e98a6). Old exit code: 0 [18:23] Altai-man_, bisect log: https://gist.github.com/12aca133f75df086f791f0b8e14970cc [18:23] Altai-man_, (2019-08-23) https://github.com/rakudo/rakudo/commit/c94f5db60e3c5929cccd142037795755c4f05f98 [18:24] bisectable6, old=2019.11 new=73e98a6 use Test; my UInt %composed; role MooishAttrHOW { method compose( Mu $pkg ) { %composed{self.name}++; callsame; } }; multi trait_mod: (Attribute:D $attr, :$mooish!) { $attr does MooishAttrHOW }; class Foo { has $.bar is mooish is rw }; is-deeply %composed<$!bar>, 1, "attribute composed once"; [18:24] Altai-man_, Bisecting by exit code (old=2019.11 new=73e98a6). Old exit code: 0 [18:24] Altai-man_, bisect log: https://gist.github.com/f193bc0dfa0197119e48d3aa36b25e23 [18:24] Altai-man_, (2020-01-01) https://github.com/rakudo/rakudo/commit/55b51a24a3f2cd6fe2bd1cddba397e84b74f2b17 [18:25] ¦ rakudo: Altai-man assigned to vrurg Issue Attributes sometimes composed more than once on Rakudo 2019.11+ blead https://github.com/rakudo/rakudo/issues/3412 [18:42] ¦ rakudo: 272b658af7 | (Elizabeth Mattijsen)++ | src/core.c/Rational.pm6 [18:42] ¦ rakudo: Make Rational.Str 10% faster [18:42] ¦ rakudo: [18:42] ¦ rakudo: - with 10% fewer allocations. [18:42] ¦ rakudo: - don't use a native str array and nqp::join, just use nqp::concat [18:42] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/272b658af7 [19:11] AlexDaniel: where is the RT -> GH map located ? [19:11] lizmat: https://gist.github.com/AlexDaniel/385e98660781c92f9e1283e65249edde [19:11] it's a fork of toddr's gist [19:12] thinking of putting that into a module [19:19] bisectable6: dd Map.new(1,2,3,4) [19:19] lizmat, Bisecting by output (old=2015.12 new=272b658) because on both starting points the exit code is 0 [19:19] lizmat, bisect log: https://gist.github.com/34283a97509385a4cdac8df1346a1b49 [19:19] lizmat, (2019-08-23) https://github.com/rakudo/rakudo/commit/c94f5db60e3c5929cccd142037795755c4f05f98 [19:38] *** domidumont left [19:54] *** sena_kun joined [19:55] *** Altai-man_ left [20:19] Xliff: I think your line numbers don't match master anymore :) [20:21] Xliff: the gist is: we run rakudo in precompilation mode, which gives us a MoarVM bytecode file. We prepend a header with a checksum and dependency information. And then rename the result file over the previous one. That rename is crucial, as that's guaranteed to be atomic. This allows for us to not lock a repo when reading. [20:45] Xliff: this part: my $bc = "$io.bc".IO is actually quite ugly, as we're not supposed to assume that the precomp store uses a cirtain file system layout or files at all. Might want to change that to a temporary file at some point. [20:59] ¦ rakudo: 70f96d9b4b | (Elizabeth Mattijsen)++ | src/core.c/REPL.pm6 [20:59] ¦ rakudo: Remove JVM backend dependent code [20:59] ¦ rakudo: [20:59] ¦ rakudo: The associated ticket: [20:59] ¦ rakudo: [20:59] ¦ rakudo: https://github.com/Raku/old-issue-tracker/issues/5617 [20:59] ¦ rakudo: [20:59] ¦ rakudo: is marked as resolved, so there is no need for the exception anymore. [20:59] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/70f96d9b4b [21:13] *** [Coke] left [21:22] ¦ rakudo: 276c06d33b | (Elizabeth Mattijsen)++ | src/core.c/Stringy.pm6 [21:22] ¦ rakudo: Remove RT reference because it is no longer applicable [21:22] ¦ rakudo: [21:22] ¦ rakudo: The ticket referred to missing use of nqp::p6bool, which is: [21:22] ¦ rakudo: - replaced by nqp::hllbool [21:22] ¦ rakudo: - and is used in this piece of code [21:22] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/276c06d33b [21:22] ¦ rakudo: d6970e96b3 | (Elizabeth Mattijsen)++ | src/Perl6/Compiler.nqp [21:22] ¦ rakudo: Remove mention of long solved ticket [21:22] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/d6970e96b3 [21:22] ¦ rakudo: 3e332a1adf | (Elizabeth Mattijsen)++ | 8 files [21:22] ¦ rakudo: Move references of RT tickets to the migrated GH tickets [21:22] ¦ rakudo: [21:22] ¦ rakudo: By replacing the RT number by a fully clickable URL [21:22] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/3e332a1adf [21:51] ¦ rakudo: rbt++ created pull request #3413: Run add_phasers_handling_code once for methods [21:51] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3413 [21:55] *** sena_kun left [22:21] *** thundergnat joined [22:21] m: class MyInt is Int { }; my $x = 42; Metamodel::Primitives.rebless( $x, MyInt); dd $x [22:21] rakudo-moar 3e332a1ad: OUTPUT: «New type MyInt for Int is not a mixin type␤ in block at line 1␤␤» [22:22] Hmm. That used to work. [22:23] bisectable6, class MyInt is Int { }; my $x = 42; Metamodel::Primitives.rebless( $x, MyInt); dd $x [22:23] thundergnat, Bisecting by exit code (old=2015.12 new=3e332a1). Old exit code: 0 [22:23] thundergnat, bisect log: https://gist.github.com/0cc0c678fc789ac7bd176f1a1914d242 [22:23] thundergnat, There are 3 candidates for the first “new” revision. See the log for more details [22:23] 6c: class MyInt is Int { }; my $x = 42; Metamodel::Primitives.rebless( $x, MyInt); dd $x [22:23] AlexDaniel, https://gist.github.com/fbf6aece339ffef8a1b990b1c58b0da2 [22:24] m: old=2019.03.1 class MyInt is Int { }; my $x = 42; Metamodel::Primitives.rebless( $x, MyInt); dd $x [22:24] rakudo-moar 3e332a1ad: OUTPUT: «5===SORRY!5=== Error while compiling ␤Malformed postfix call␤at :1␤------> 3old=2019.03.7⏏051 class MyInt is Int { }; my $x = 42; Me␤» [22:24] bisect: old=2019.03.1 class MyInt is Int { }; my $x = 42; Metamodel::Primitives.rebless( $x, MyInt); dd $x [22:24] AlexDaniel, Bisecting by exit code (old=2019.03.1 new=3e332a1). Old exit code: 0 [22:24] AlexDaniel, bisect log: https://gist.github.com/c13043b0c069803aa29900d672490412 [22:24] AlexDaniel, There are 3 candidates for the first “new” revision. See the log for more details [22:25] thundergnat: yeah, please file a ticket [22:25] ok [22:34] Where is the code that handles --output? [22:40] Issue filed: GH#3414 [22:43] ¦ rakudo: 06292bc826 | (Elizabeth Mattijsen)++ | 19 files [22:43] ¦ rakudo: Replace RT ticket references to GitHub [22:43] ¦ rakudo: [22:43] ¦ rakudo: And updated some "new" GH references to a full link as well. [22:43] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/06292bc826 [22:44] will do roast probably on Sundat [22:44] *Sunday [22:44] *** patrickb joined [22:55] *** vrurg_ joined [22:56] *** vrurg left [23:30] *** lucasb left