[00:00] Xliff: good new for you: I'm finalizing a fix for #3075 [00:04] Um. [00:04] Cool! [00:05] .oO( Oh... THAT 3075! ) [00:05] vrurg: I will owe you beer. [00:06] Xliff: 1. only after PR merge; 2. when you come down here. ;) [00:06] vrurg: Yes. I have met more ppl from Florida. We will have to get together and DRANK! [00:07] Sounds terrifyingly good... :D [00:07] =D [00:16] vrurg: I am still trying to parse your explanation of the problem, but I think I get it. [00:16] Very good work, sir! ;) [00:17] Thanks! But that was a very good catch too. I couldn't stand a kind of problem which is too likely to hit any big enough application. [00:18] I know. And I wonder if that's what I am running into with some things regarding GtkPlus. [00:18] See: https://github.com/Xliff/p6-GtkPlus/issues/40 [00:18] If you have p6-GtkPlus installed, can you see if your solution works with the test case listed? [00:19] ¦ rakudo: MasterDuke17++ created pull request #3283: Only pass on capture in `sub split` if it's there [00:19] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3283 [00:19] My only issue there is that the code runs correct... some of the time. But not all of the time. [00:20] If that proves to be another issue (and if you need, I can test it.. was just trying to wrap my head around #40) then fine. [00:20] If you change nothing in the middle – then it's something different. Because the clash of stashes is well-reproducible. [00:20] OK. [00:20] But still. I don't know why the same code would work one time and not another. [00:21] Let's leave that as another issue. [00:21] However if you have a p6-GtkPlus install and can confirm that issue, I would appreciate it! [00:21] The only way when it might happen sporadically is if Gtk modules are loaded based on a hash iteration and thus in randomized order. [00:21] Hmm... [00:22] Testing gtk would mean some headache to me. macOS isn't really friendly with the way I test rakudo. [00:22] I would rather ask you to test the PR prior to merging it. [00:23] Works for me. [00:23] However, I would have to pause my drinking! :( 8-) [00:25] Xliff: just today? ;) [00:27] LOL [00:27] Yes.,] [00:27] As you can see by my typing. 21803728973613 [00:27] See! I missed the SHIFT! [00:27] You do NOT want to see me with a META key... oh... w8 [00:28] No... COMPOSE requires PROPER sequences. You can't F those up. [00:28] They take EFFORT! [00:40] vrurg: What's the best way to merge a PR with an existing repo? [00:40] Xliff: follow the instructions at the end of PR's page. [00:41] Where the green button 'Merge' – there is a link to command line instructions. [00:42] OK. You haven't officially submitted it, yet? [00:43] Now. Trying to optimize it by getting rid of NQP -> Raku HLLizing. [00:43] No worries. I'm here. If vaguely not sober. :) [00:44] Xliff: I think you'd rather plan testing for tomorrow anyway. [00:45] vrurg: Fair enough. I'm just giddy you found the problem! :) [00:45] So I will try to touch base with you tomorrow after I get home from $dayjob [00:45] .oO( Xliff is just giddy he can say "$dayjob" ) [00:46] That'd be the best solution. The problem for now is that every single change I must filter through spectests. And it's SLOW. [00:46] Yeah. I get thawt. [00:46] s/thawt/that/ [00:46] I have a 20 thread machine if that would help.... [00:46] .oO( Maybe I should NOT have mentioned that... hah! ) [00:47] Mine is just 16, but that's good enough. ;) [00:47] 8-) [00:48] I would go 32, but the clock speeds drop.... [00:48] I guess they have to do so otherwise we'd have mini suns for processors. [00:51] I'm looking forward for ARMs in desktops/laptops. CISCs are outdated and can't keep up with the required speeds anymore. [01:09] *** klapperl joined [01:41] ¦ rakudo: vrurg++ created pull request #3284: Fix Stash'es clashing after deserialization [01:41] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3284 [01:41] Xliff: ^ [02:07] ¦ nqp: fcf5bf5591 | (Vadim Belman)++ | 3 files [02:07] ¦ nqp: Added --force-rebuild command line option [02:07] ¦ nqp: [02:07] ¦ nqp: Forces rebuild of MoarVM if `--gen-moar` was used too. Mostly good if [02:07] ¦ nqp: bypassed from upstream (Rakudo) which might need total rebuild under [02:07] ¦ nqp: certain circumstances. [02:07] ¦ nqp: review: https://github.com/perl6/nqp/commit/fcf5bf5591 [02:07] ¦ nqp: e304774121 | (Vadim Belman)++ | 3rdparty/nqp-configure [02:07] ¦ nqp: nqp-configure submodule update [02:07] ¦ nqp: review: https://github.com/perl6/nqp/commit/e304774121 [02:07] ¦ nqp: 3de9291287 | (Vadim Belman)++ (committed using GitHub Web editor) | 2 files [02:07] ¦ nqp: Merge pull request #586 from perl6/configure-rebuild-all [02:07] ¦ nqp: [02:08] ¦ nqp: Added --force-rebuild command line option [02:08] ¦ nqp: review: https://github.com/perl6/nqp/commit/3de9291287 [02:11] vrurg: OK, thanks! [04:00] *** Xliff left [06:08] *** jmerelo joined [06:09] *** sena_kun joined [07:29] *** Altai-man_ joined [07:32] *** sena_kun left [07:35] *** jmerelo left [07:44] *** Altai-man_ left [07:54] *** sena_kun joined [08:14] <[Tux]> @samcv, Karl notes on #p5p: [08:14] <[Tux]> I believe that swash is a home-grown perl concept, so you won't find it on the internet. [08:14] <[Tux]> I was astounded to learn recently that Perl6 is using something like swashes too. [08:14] <[Tux]> And it's been known for at least a decade that there are better options. [08:19] *** sena_kun left [08:21] <[Tux]> Rakudo version 2019.07.1-463-g1d84c64d6 - MoarVM version 2019.07.1-314-ga26d7fff8 [08:21] <[Tux]> csv-test-xs-20 0.423 - 0.431 [08:21] <[Tux]> csv-ip5xs 0.767 - 0.778 [08:21] <[Tux]> test-t --race 0.930 - 0.964 [08:21] <[Tux]> test-t 1.795 - 1.845 [08:21] <[Tux]> csv-ip5xs-20 7.031 - 7.176 [08:21] <[Tux]> test 7.280 - 7.424 [08:21] <[Tux]> test-t-20 --race 9.522 - 9.531 [08:21] <[Tux]> csv-parser 21.995 - 22.852 [08:22] <[Tux]> test-t-20 29.766 - 30.815 [08:40] patrickb: thank you for your work. I think we are in the same page. I was also thinking on building on CentOS 6 [08:40] El_Che, I'll pass your message to patrickb [08:41] patrickb: we need to add macos instructions once we try that out [08:41] El_Che, I'll pass your message to patrickb [08:47] Having a macmini just eating dust at home. Is it possible to add it as runner host in one of the buld ci pipelines? [08:47] Can offer the same for Windows if needed. [08:48] rba: they could run Blin regularly maybe [08:49] maettu is working on Blin. He found a dusty 16 cores box :-) [08:50] rba: I mean Blin on Windows and Mac [08:50] :) [08:50] Ahh. [08:50] I am pretty sure things will explode all over the place there [08:51] With Blin the important part is that we can isolate the host from private/company network. This is to do now. [08:52] yes, there are certainly considiration [08:52] Anyone ever run Blin on Windows or Mac before? [08:53] I have no idea, to be honest, I never heard about before AlexDaniel's request for a Docker image :) [08:53] rba: 1 consideration maybe: block outgoing 25 otherwise you're IP may end blocked due to spam [08:53] (worst case scenario, of course) [08:54] I have a dmz at home. But need to extend it. [08:55] El_Che: will take care of port 25. [08:55] rba: make sure upnp is disabled on the router as well [08:56] Will have a look at the macmini at the Weekend. [08:56] El_Che: always off [08:56] rba: you never know :) (same here) [09:30] *** ufobat joined [10:21] . [10:22] hmmm... do we have an easy way for a given Match object to perform a substution on the match ? [10:23] so that you could do something like: [10:25] if $foo.match( / ... / ) -> $match { $match.subst( $foo, "replacement" ) } [10:35] *** sena_kun joined [10:43] we have prematch and postmatch which could be useful here [10:43] that could work a bit like substr-rw [10:48] hmmm... [10:49] so basically wrapping: [10:49] if $foo.match( / ... / ) -> $match { $match.prematch ~ "replacement" ~ $match.postmatch } [10:50] wrapped in a nice method [10:58] i imagine that could work well [10:59] it won't work with multiple matches, of course, unlike the s/// and s[] syntaxes [10:59] their return values can't be used to figure out if there was a match though, right? [11:00] m: say ("foo" ~~ s/x/y/) [11:00] rakudo-moar 1d84c64d6: OUTPUT: «False␤» [11:00] m: say ("fxx" ~~ s/x/y/) [11:00] rakudo-moar 1d84c64d6: OUTPUT: «Cannot modify an immutable Str (fxx)␤ in block at line 1␤␤» [11:00] of course :D [11:00] m: say ((my $str = "fxx") ~~ s/x/y/) [11:00] rakudo-moar 1d84c64d6: OUTPUT: «「x」␤» [11:00] m: say ((my $str = "fxx") ~~ s//y/) [11:00] rakudo-moar 1d84c64d6: OUTPUT: «「」␤» [11:01] m: say so ((my $str = "fxx") ~~ s//y/) [11:01] rakudo-moar 1d84c64d6: OUTPUT: «True␤» [11:01] interesting, so that could indeed work [11:01] but it's destructive to the original string [11:09] well, if it just returns the altered string, then you can still decide whether you want to assign it [11:10] right. we don't have a simple equivalent for that in s/// or even S/// i think [11:10] * timotimo afk for a bit [11:29] *** Altai-man_ joined [11:32] *** sena_kun left [12:43] *** lucasb joined [13:27] *** lizmat_ joined [13:30] *** lizmat left [13:30] *** sena_kun joined [13:32] *** Altai-man_ left [13:33] *** lizmat_ is now known as lizmat [13:52] rba, El_Che: as for Blin on windows/mac/32-bit linux/etc. – this is currently not possible [13:53] I was planning to fix that, but… not now :( [13:54] ¦ rakudo: 3e2cfb4d3e | (Daniel Green)++ | src/core.c/Cool.pm6 [13:54] ¦ rakudo: Only pass on capture in `sub split` if it's there [13:54] ¦ rakudo: [13:54] ¦ rakudo: Otherwise spesh can't intern the callsite and then the jit bails. Other [13:54] ¦ rakudo: attempts (i.e., adding a new `multi sub split($pat, Cool:D $target)`, or [13:54] ¦ rakudo: adding that and also changing the `|c` in the other multi to `*%h`) [13:54] ¦ rakudo: caused errors like `Unexpected named argument 'v' passed` and `Ambiguous [13:54] ¦ rakudo: call to 'split(Str, Str, :v)'; these signatures all match::($pat, [13:54] ¦ rakudo: Cool:D $target):($pat, Cool:D $target, *%h)`. Found when playing around [13:54] ¦ rakudo: with the code referenced in #3281 and makes it slightly faster. [13:54] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/3e2cfb4d3e [13:54] ¦ rakudo: 726c38f062 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/core.c/Cool.pm6 [13:54] ¦ rakudo: Merge pull request #3283 from MasterDuke17/make_sub_split_a_bit_more_speshable [13:54] ¦ rakudo: [13:54] ¦ rakudo: Only pass on capture in `sub split` if it's there [13:54] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/726c38f062 [13:55] basically, Blin can bisect quickly because it cheats and pulls builds from whateverable [13:56] so once someone adds on-demand building in whateverable, it will suddenly be possible to use all bots and any tooling that depends on whateverable on any architecture [14:01] well, the only downside is that you'll need to wait [14:02] but assuming no regressions, that's just 1 extra rakudo build for the whole blin run [14:02] can't you pre-cache other archs? [14:02] that's the idea, yes [14:02] nice [14:03] in fact [14:03] https://whateverable.6lang.org/HEAD?arch=linux-x86_64&type=moarvm [14:04] change the arch and it won't give you anything :) [14:05] so there's already some groundwork done, if anybody wants to give it a go I can guide you through, it's not too hard [14:09] basically, you take this sub and put it into a module: https://github.com/perl6/whateverable/blob/8c2c846df9b405f30800bb8b58c77704025470fc/xbin/build.p6#L154 [14:10] then you hack this thing to use it instead of downloading: https://github.com/perl6/whateverable/blob/8c2c846df9b405f30800bb8b58c77704025470fc/lib/Whateverable/Builds.pm6#L81 [14:11] then fix everything that your change broke :) [14:30] >qw [14:56] ¦ rakudo/match-subst: 1ac3c5c0f6 | (Elizabeth Mattijsen)++ | 2 files [14:56] ¦ rakudo/match-subst: Make Cool.subst a multi and make it pass on quicker [14:56] ¦ rakudo/match-subst: [14:56] ¦ rakudo/match-subst: By indicating that it needs 2 parameters with optionally nameds. This [14:56] ¦ rakudo/match-subst: should optimize much better than |c -> |c. [14:56] ¦ rakudo/match-subst: review: https://github.com/rakudo/rakudo/commit/1ac3c5c0f6 [14:56] ¦ rakudo/match-subst: b43c839a7b | (Elizabeth Mattijsen)++ | src/core.c/Match.pm6 [14:56] ¦ rakudo/match-subst: Add Match.subst($replacement) for easier replacing [14:56] ¦ rakudo/match-subst: [14:56] ¦ rakudo/match-subst: Basically replace the part that matched by the replacement string and [14:56] ¦ rakudo/match-subst: return that. This basically allows the result of a match to be used in [14:56] ¦ rakudo/match-subst: a condition, and then do a replacement and possibly other stuff without [14:56] ¦ rakudo/match-subst: having to do the match again: [14:56] ¦ rakudo/match-subst: [14:56] ¦ rakudo/match-subst: if "foo".match( / o / ) -> $match { [14:56] ¦ rakudo/match-subst: say $match.subst("x"); # fxo [14:56] ¦ rakudo/match-subst: # do other stuff if we found a match [14:56] ¦ rakudo/match-subst: } [14:56] ¦ rakudo/match-subst: review: https://github.com/rakudo/rakudo/commit/b43c839a7b [14:56] Umm...that's not backward-compatible, no? [14:57] it is, by way of subst having two positionals normally [14:57] ¦ rakudo: lizmat++ created pull request #3286: Match subst [14:57] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3286 [14:57] Oh [14:57] Hmmm [14:57] * timotimo is sitting across from lizmat right now [14:57] i can directly probe the brain mat ter [14:58] * lizmat wonders whether she should be scared now [14:59] jnthn: it is spectest clean [14:59] I was thinking of usingh "replace" as the method name... but that felt icky [14:59] and .subst seems more natural to me [15:00] anyway, it's a PR, do with it what you want :-) [15:00] maybe it should sound more passive, like subst'd [15:03] lizmat: I'm +1 on the overall idea, and just an iota uneasy on the overloading of subst, but I don't have a better idea for it right off, and I'm not sure why I'm uneasy... :) [15:03] well, the thing is that Match.subst already did something, but not what people expected [15:04] because Match is Cool, it would stringify the Match, and then do the substitution on that [15:04] greppable6: .WALK [15:04] vrurg, 15 lines, 7 modules: https://gist.github.com/9f52abfd8ad48a70a7a22f0fb52c1859 [15:22] ¦ rakudo: nxadm++ created pull request #3287: Update instructions and fix md layout [15:22] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3287 [15:24] lizmat: Actually that's kind of what I expected and was worried about conflict with [15:24] lizmat: It's quite common to treat a Match object like a string. [15:24] It's even Cool so we can [15:25] well, that still workds [15:25] *works [15:26] but yeah, that's probably why you feel uneasy [15:27] because in the 1 arg case we're taking the Match object at face value, and in the other case, we treat it as a string [15:27] Yes. [15:27] I would be fine giving the method another name [15:27] Me too, if only I could think of one that isn't awful :) [15:27] but I couldn't come up with a good one, maybe someone else will [15:29] *** Altai-man_ joined [15:31] jnthn: "inject" ? [15:32] *** sena_kun left [15:36] * jnthn feels needled [15:37] *** ggoebel joined [15:37] "replace" [15:38] "spliced" [15:40] I would vote against "replace", as that would inhibit future versions to use "replace" as a better name than subst [15:42] Not sure if that's better, given it breaks the s - subst symmetry :) [15:44] <[Coke]> interpolate? [15:44] * [Coke] only has one eye open here. :) [15:45] ok, first relocable rakudo built, let's see how it works :) [15:45] <[Coke]> ooh, nifty. [15:45] (or if it works :) [15:46] * [Coke] is sad he doesn't have time to devote to anything raku-ish these days, but is glad to see there is still a critical mass. [15:46] [Coke]: people have called me "critical" in the past :) [15:46] <[Coke]> he [15:46] <[Coke]> heh [15:47] .oO( "Down with the pope" would be quite the critical mass... ) [15:58] Match.subst-with ? [15:59] but-with, except-with, spliced, ... none of those seem good [16:05] .oO( butt-width ) [16:23] ...ok [16:23] :) [16:26] a rakudo compile on Centos6 (2011) runs fine on Ubuntu 19.10 (released last month) [16:26] something to build on, certainly [16:42] *** jmerelo joined [17:00] c: 90d40728593^,90d40728593 class A { has $.a; has $.b }; for ^1000000 { my $obj = A.new(a => 42, b => 666) }; say now - INIT now [17:01] that benchmark from #raku [17:01] AlexDaniel, ¦90d40728593^: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» ¦90d4072: «7.419031␤» [17:01] o… ok that's the wrong commit, but still interesting :) [17:06] c: 14fa3b69631^,14fa3b69631 class A { has $.a; has $.b }; for ^1000000 { my $obj = A.new(a => 42, b => 666) }; say now - INIT now [17:06] that's the right one, I think :) [17:06] AlexDaniel, ¦14fa3b69631^: «1.0810605␤» ¦14fa3b6: «0.8192391␤» [17:06] oooh, and then it improved even more later [17:07] whatever, not going to bisect each one, but seems like its the result of many many improvements :) [17:07] jnthn++ [17:10] btw, the slowdown in the output on all releases comes from this: (2018-07-09) https://github.com/rakudo/rakudo/commit/d3c5381b747169f951db578bebbfd0c5d8165116 [17:10] and I'm very thankful for the “This is, in the immediate, a slowdown” remark :) [17:17] We're fairly decent at object construction by now [17:17] I suspect that this benchmark is even faster on more-pea [17:17] Almost got my brain back in shape to continue hacking on that. [17:29] *** jmerelo left [17:29] * rba is looking forward to tomorrow as we have a Raku Infrastructure Workshop in Zurich. [17:30] *** sena_kun joined [17:32] *** Altai-man_ left [17:34] *** ExtraCrispy joined [17:57] *** ExtraCrispy left [18:06] *** ExtraCrispy joined [18:29] ++jnthn [18:29] rba: Enjoy! :-) [18:56] *** ufobat left [19:11] *** Xliff joined [19:13] *** ExtraCrispy left [19:29] *** Altai-man_ joined [19:32] *** sena_kun left [19:37] *** Xliff left [19:57] *** patrickb joined [20:27] ¦ rakudo: a05e169ea3 | (Elizabeth Mattijsen)++ | src/core.c/core_epilogue.pm6 [20:27] ¦ rakudo: Make sure that $*RAKU does not return a Failure [20:28] ¦ rakudo: [20:28] ¦ rakudo: Further changes can follow in the future, at least $*RAKU will now [20:28] ¦ rakudo: work, sorta. [20:28] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/a05e169ea3 [20:51] ¦ rakudo/more-raku: 4dce363f62 | (Elizabeth Mattijsen)++ | 11 files [20:51] ¦ rakudo/more-raku: Some more s/Perl 6/Raku changes [20:51] ¦ rakudo/more-raku: [20:51] ¦ rakudo/more-raku: - $*RAKU now says "Raku" instead of "Perl", but $*PERL still says "Perl" [20:51] ¦ rakudo/more-raku: - Change various text references from "Perl 6" to "Raku" [20:51] ¦ rakudo/more-raku: - Change verious text references from "Perl 5" to "Perl" [20:51] ¦ rakudo/more-raku: review: https://github.com/rakudo/rakudo/commit/4dce363f62 [20:51] ¦ rakudo: lizmat++ created pull request #3288: Some more s/Perl 6/Raku changes [20:51] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3288 [21:03] m: { my %*ENV = CALLERS::<%*ENV>, foo => 42; dd $_ for %*ENV.sort: *.key } [21:03] rakudo-moar a05e169ea: OUTPUT: «Use of Nil in string context␤ in block at line 1␤"" => :foo(42)␤» [21:04] so, why doesn't that work? [21:04] m: { dd $_ for %*ENV.sort: *.key } [21:04] rakudo-moar a05e169ea: OUTPUT: «:HOME("/home/camelia")␤:LC_CTYPE("en_US.UTF-8")␤:LOGNAME("evalbot")␤:MAIL("/var/mail/evalbot")␤:PATH("/usr/bin:/bin:/usr/sbin:/sbin")␤:SHELL("/bin/bash")␤:SUDO_COMMAND("/home/camelia/rakudo-m-inst/bin/perl6-m --setting=RESTRICTED ")…» [21:30] *** sena_kun joined [21:32] *** Altai-man_ left [22:13] *** lucasb left [22:28] lizmat: Two questions: Would it be CALLERS::<%*ENV> (as you have it) or CALLERS::<%ENV>? Also, does PROCESS affect CALLERS? [22:37] ¦ rakudo: mienaikage++ created pull request #3289: Allow UInt to return a failure from Int [22:37] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/3289 [23:08] japhb: It's CALLERS::<%*ENV>. PROCESS will affect CALLERS when R#3272 is merged. [23:10] *** patrickb left [23:15] Um, really? I thought only DYNAMIC? [23:15] I don't think it affecting CALLERS is sensible [23:17] jnthn: They both carry DYNAMIC_CHAIN flag. [23:18] If we want different semantics for CALLERS we'd need to be explicit about it. [23:18] *** MasterDuke left [23:19] The problem is that DYNAMIC_CHAIN pseudos never referred PROCESS before, so this behavior wan't clearly specified. Not that I found anything about it. [23:20] jnthn: BTW, I have implemented simpler mechanics of setting the dynamic flag. Would be great if you approve or reject it that way. Then I could finally complete the PR. [23:23] jnthn: Another thing: I'm looking into WALK. What if I add :args parameter which would result in actually calling the methods found and returning their values? [23:29] *** Altai-man_ joined [23:32] *** sena_kun left