vrurg Xliff: good new for you: I'm finalizing a fix for #3075 00:00
Xliff Um. 00:04
.oO( Oh... THAT 3075! )
vrurg: I will owe you beer.
vrurg Xliff: 1. only after PR merge; 2. when you come down here. ;) 00:06
Xliff vrurg: Yes. I have met more ppl from Florida. We will have to get together and DRANK!
vrurg Sounds terrifyingly good... :D 00:07
Xliff =D
vrurg: I am still trying to parse your explanation of the problem, but I think I get it. 00:16
Very good work, sir! ;)
vrurg 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:17
Xliff I know. And I wonder if that's what I am running into with some things regarding GtkPlus. 00:18
See: github.com/Xliff/p6-GtkPlus/issues/40
If you have p6-GtkPlus installed, can you see if your solution works with the test case listed?
Geth rakudo: MasterDuke17++ created pull request #3283:
Only pass on capture in `sub split` if it's there
Xliff My only issue there is that the code runs correct... some of the time. But not all of the time.
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
vrurg If you change nothing in the middle – then it's something different. Because the clash of stashes is well-reproducible.
Xliff OK.
But still. I don't know why the same code would work one time and not another.
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!
vrurg The only way when it might happen sporadically is if Gtk modules are loaded based on a hash iteration and thus in randomized order.
Xliff Hmm...
vrurg 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.
Xliff Works for me. 00:23
However, I would have to pause my drinking! :( 8-)
vrurg Xliff: just today? ;) 00:25
Xliff LOL 00:27
As you can see by my typing. 21803728973613
See! I missed the SHIFT!
You do NOT want to see me with a META key... oh... w8
No... COMPOSE requires PROPER sequences. You can't F those up. 00:28
They take EFFORT!
vrurg: What's the best way to merge a PR with an existing repo? 00:40
vrurg Xliff: follow the instructions at the end of PR's page.
Where the green button 'Merge' – there is a link to command line instructions. 00:41
Xliff OK. You haven't officially submitted it, yet? 00:42
vrurg Now. Trying to optimize it by getting rid of NQP -> Raku HLLizing. 00:43
Xliff No worries. I'm here. If vaguely not sober. :)
vrurg Xliff: I think you'd rather plan testing for tomorrow anyway. 00:44
Xliff 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
.oO( Xliff is just giddy he can say "$dayjob" )
vrurg 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
Xliff Yeah. I get thawt.
I have a 20 thread machine if that would help....
.oO( Maybe I should NOT have mentioned that... hah! )
vrurg Mine is just 16, but that's good enough. ;) 00:47
Xliff 8-)
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.
vrurg I'm looking forward for ARMs in desktops/laptops. CISCs are outdated and can't keep up with the required speeds anymore. 00:51
01:09 klapperl joined
Geth rakudo: vrurg++ created pull request #3284:
Fix Stash'es clashing after deserialization
vrurg Xliff: ^
Geth nqp: fcf5bf5591 | (Vadim Belman)++ | 3 files
Added --force-rebuild command line option

Forces rebuild of MoarVM if `--gen-moar` was used too. Mostly good if bypassed from upstream (Rakudo) which might need total rebuild under certain circumstances.
nqp: e304774121 | (Vadim Belman)++ | 3rdparty/nqp-configure
nqp-configure submodule update
nqp: 3de9291287 | (Vadim Belman)++ (committed using GitHub Web editor) | 2 files
Merge pull request #586 from perl6/configure-rebuild-all

Added --force-rebuild command line option
Xliff vrurg: OK, thanks! 02:11
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
[Tux] @samcv, Karl notes on #p5p: 08:14
<khw> I believe that swash is a home-grown perl concept, so you won't find it on the internet.
<khw> I was astounded to learn recently that Perl6 is using something like swashes too.
<khw> And it's been known for at least a decade that there are better options.
08:19 sena_kun left
[Tux] Rakudo version 2019.07.1-463-g1d84c64d6 - MoarVM version 2019.07.1-314-ga26d7fff8
csv-ip5xs0.767 - 0.778
csv-ip5xs-207.031 - 7.176
csv-parser21.995 - 22.852
csv-test-xs-200.423 - 0.431
test7.280 - 7.424
test-t1.795 - 1.845
test-t --race0.930 - 0.964
test-t-2029.766 - 30.815
test-t-20 --race9.522 - 9.531
El_Che 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
tellable6 El_Che, I'll pass your message to patrickb
El_Che patrickb: we need to add macos instructions once we try that out 08:41
tellable6 El_Che, I'll pass your message to patrickb
rba 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.
El_Che rba: they could run Blin regularly maybe 08:48
rba maettu is working on Blin. He found a dusty 16 cores box :-) 08:49
El_Che rba: I mean Blin on Windows and Mac 08:50
rba Ahh.
El_Che I am pretty sure things will explode all over the place there
rba With Blin the important part is that we can isolate the host from private/company network. This is to do now. 08:51
El_Che yes, there are certainly considiration 08:52
rba Anyone ever run Blin on Windows or Mac before?
El_Che 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
(worst case scenario, of course)
rba I have a dmz at home. But need to extend it. 08:54
El_Che: will take care of port 25. 08:55
El_Che rba: make sure upnp is disabled on the router as well
rba Will have a look at the macmini at the Weekend. 08:56
El_Che: always off
El_Che rba: you never know :) (same here)
09:30 ufobat joined
lizmat . 10:21
hmmm... do we have an easy way for a given Match object to perform a substution on the match ? 10:22
so that you could do something like: 10:23
if $foo.match( / ... / ) -> $match { $match.subst( $foo, "replacement" ) } 10:25
10:35 sena_kun joined
timotimo we have prematch and postmatch which could be useful here 10:43
that could work a bit like substr-rw
lizmat hmmm... 10:48
so basically wrapping: 10:49
if $foo.match( / ... / ) -> $match { $match.prematch ~ "replacement" ~ $match.postmatch }
wrapped in a nice method 10:50
timotimo i imagine that could work well 10:58
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?
m: say ("foo" ~~ s/x/y/) 11:00
camelia False
timotimo m: say ("fxx" ~~ s/x/y/)
camelia Cannot modify an immutable Str (fxx)
in block <unit> at <tmp> line 1
timotimo of course :D
m: say ((my $str = "fxx") ~~ s/x/y/)
camelia 「x」
timotimo m: say ((my $str = "fxx") ~~ s/<?before x>/y/)
camelia 「」
timotimo m: say so ((my $str = "fxx") ~~ s/<?before x>/y/) 11:01
camelia True
timotimo interesting, so that could indeed work
but it's destructive to the original string
lizmat well, if it just returns the altered string, then you can still decide whether you want to assign it 11:09
timotimo 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, sena_kun joined 13:32 Altai-man_ left 13:33 lizmat_ is now known as lizmat
AlexDaniel rba, El_Che: as for Blin on windows/mac/32-bit linux/etc. – this is currently not possible 13:52
I was planning to fix that, but… not now :( 13:53
Geth rakudo: 3e2cfb4d3e | (Daniel Green)++ | src/core.c/Cool.pm6
Only pass on capture in `sub split` if it's there

Otherwise spesh can't intern the callsite and then the jit bails. Other attempts (i.e., adding a new `multi sub split($pat, Cool:D $target)`, or adding that and also changing the `|c` in the other multi to `*%h`) caused errors like `Unexpected named argument 'v' passed` and `Ambiguous call to 'split(Str, Str, :v)'; these signatures all match::($pat, Cool:D $target):($pat, Cool:D $target, *%h)`. Found when playing around with the code referenced in #3281 and makes it slightly faster.
rakudo: 726c38f062 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/core.c/Cool.pm6
Merge pull request #3283 from MasterDuke17/make_sub_split_a_bit_more_speshable

Only pass on capture in `sub split` if it's there
AlexDaniel basically, Blin can bisect quickly because it cheats and pulls builds from whateverable 13:55
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 13:56
well, the only downside is that you'll need to wait 14:01
but assuming no regressions, that's just 1 extra rakudo build for the whole blin run 14:02
El_Che can't you pre-cache other archs?
AlexDaniel that's the idea, yes
El_Che nice
AlexDaniel in fact 14:03
change the arch and it won't give you anything :) 14:04
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:05
basically, you take this sub and put it into a module: github.com/perl6/whateverable/blob...ld.p6#L154 14:09
then you hack this thing to use it instead of downloading: github.com/perl6/whateverable/blob...ds.pm6#L81 14:10
then fix everything that your change broke :) 14:11
El_Che >qw 14:30
Geth rakudo/match-subst: 1ac3c5c0f6 | (Elizabeth Mattijsen)++ | 2 files
Make Cool.subst a multi and make it pass on quicker

By indicating that it needs 2 parameters with optionally nameds. This should optimize much better than |c -> |c.
rakudo/match-subst: b43c839a7b | (Elizabeth Mattijsen)++ | src/core.c/Match.pm6
Add Match.subst($replacement) for easier replacing

Basically replace the part that matched by the replacement string and return that. This basically allows the result of a match to be used in a condition, and then do a replacement and possibly other stuff without having to do the match again:
   if "foo".match( / o / ) -> $match {
   say $match.subst("x"); # fxo
   # do other stuff if we found a match
jnthn Umm...that's not backward-compatible, no?
timotimo it is, by way of subst having two positionals normally 14:57
Geth rakudo: lizmat++ created pull request #3286:
Match subst
jnthn Oh
timotimo is sitting across from lizmat right now
i can directly probe the brain mat ter
lizmat wonders whether she should be scared now 14:58
jnthn: it is spectest clean 14:59
I was thinking of usingh "replace" as the method name... but that felt icky
and .subst seems more natural to me
anyway, it's a PR, do with it what you want :-) 15:00
timotimo maybe it should sound more passive, like subst'd
jnthn 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
lizmat well, the thing is that Match.subst already did something, but not what people expected
because Match is Cool, it would stringify the Match, and then do the substitution on that 15:04
vrurg greppable6: .WALK
greppable6 vrurg, 15 lines, 7 modules: gist.github.com/9f52abfd8ad48a70a7...0fb52c1859
Geth rakudo: nxadm++ created pull request #3287:
Update instructions and fix md layout
jnthn 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.
It's even Cool so we can
lizmat well, that still workds 15:25
but yeah, that's probably why you feel uneasy 15:26
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
jnthn Yes.
lizmat I would be fine giving the method another name
jnthn Me too, if only I could think of one that isn't awful :)
lizmat but I couldn't come up with a good one, maybe someone else will
15:29 Altai-man_ joined
lizmat jnthn: "inject" ? 15:31
15:32 sena_kun left
jnthn feels needled 15:36
15:37 ggoebel joined
jnthn "replace" 15:37
timotimo "spliced" 15:38
lizmat I would vote against "replace", as that would inhibit future versions to use "replace" as a better name than subst 15:40
jnthn Not sure if that's better, given it breaks the s - subst symmetry :) 15:42
[Coke] interpolate? 15:44
[Coke] only has one eye open here. :)
El_Che ok, first relocable rakudo built, let's see how it works :) 15:45
[Coke] ooh, nifty.
El_Che (or if it works :)
[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
El_Che [Coke]: people have called me "critical" in the past :)
[Coke] he
.oO( "Down with the pope" would be quite the critical mass... )
lizmat Match.subst-with ? 15:58
timotimo but-with, except-with, spliced, ... none of those seem good 15:59
.oO( butt-width )
El_Che ...ok 16:23
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
AlexDaniel c: 90d40728593^,90d40728593 class A { has $.a; has $.b }; for ^1000000 { my $obj = A.new(a => 42, b => 666) }; say now - INIT now 17:00
that benchmark from #raku 17:01
committable6 AlexDaniel, ¦90d40728593^: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» ¦90d4072: «7.419031␤»
AlexDaniel o… ok that's the wrong commit, but still interesting :)
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 :)
committable6 AlexDaniel, ¦14fa3b69631^: «1.0810605␤» ¦14fa3b6: «0.8192391␤»
AlexDaniel oooh, and then it improved even more later
whatever, not going to bisect each one, but seems like its the result of many many improvements :) 17:07
btw, the slowdown in the output on all releases comes from this: (2018-07-09) github.com/rakudo/rakudo/commit/d3...c5d8165116 17:10
and I'm very thankful for the “This is, in the immediate, a slowdown” remark :)
jnthn We're fairly decent at object construction by now 17:17
I suspect that this benchmark is even faster on more-pea
Almost got my brain back in shape to continue hacking on that.
17:29 jmerelo left
rba is looking forward to tomorrow as we have a Raku Infrastructure Workshop in Zurich. 17:29
17:30 sena_kun joined 17:32 Altai-man_ left 17:34 ExtraCrispy joined 17:57 ExtraCrispy left 18:06 ExtraCrispy joined
japhb ++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
Geth rakudo: a05e169ea3 | (Elizabeth Mattijsen)++ | src/core.c/core_epilogue.pm6
Make sure that $*RAKU does not return a Failure

Further changes can follow in the future, at least $*RAKU will now work, sorta.
rakudo/more-raku: 4dce363f62 | (Elizabeth Mattijsen)++ | 11 files
Some more s/Perl 6/Raku changes

  - $*RAKU now says "Raku" instead of "Perl", but $*PERL still says "Perl"
  - Change various text references from "Perl 6" to "Raku"
  - Change verious text references from "Perl 5" to "Perl"
rakudo: lizmat++ created pull request #3288:
Some more s/Perl 6/Raku changes
lizmat m: { my %*ENV = CALLERS::<%*ENV>, foo => 42; dd $_ for %*ENV.sort: *.key } 21:03
camelia Use of Nil in string context
in block at <tmp> line 1
"" => :foo(42)
lizmat so, why doesn't that work? 21:04
m: { dd $_ for %*ENV.sort: *.key }
camelia :HOME("/home/camelia")
:SUDO_COMMAND("/home/camelia/rakudo-m-inst/bin/perl6-m --setting=RESTRICTED <tmp>")…
21:30 sena_kun joined 21:32 Altai-man_ left 22:13 lucasb left
japhb lizmat: Two questions: Would it be CALLERS::<%*ENV> (as you have it) or CALLERS::<%ENV>? Also, does PROCESS affect CALLERS? 22:28
Geth rakudo: mienaikage++ created pull request #3289:
Allow UInt to return a failure from Int
vrurg japhb: It's CALLERS::<%*ENV>. PROCESS will affect CALLERS when R#3272 is merged. 23:08
23:10 patrickb left
jnthn Um, really? I thought only DYNAMIC? 23:15
I don't think it affecting CALLERS is sensible
vrurg jnthn: They both carry DYNAMIC_CHAIN flag. 23:17
If we want different semantics for CALLERS we'd need to be explicit about it. 23:18
23:18 MasterDuke left
vrurg 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:19
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:20
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:23
23:29 Altai-man_ joined 23:32 sena_kun left