00:27 hungrydonkey joined 00:46 cognominal joined 01:34 sena_kun left 01:49 sena_kun joined 02:08 Xliff left 03:34 sena_kun left 03:47 sena_kun joined 04:40 epony left 04:47 epony joined 05:34 sena_kun left 05:35 hungrydonkey left 05:38 hungrydonkey joined 05:51 sena_kun joined 05:58 hungrydonkey left, hungrydonkey joined 05:59 hungrydonkey left 06:00 hungrydonkey joined 06:01 hungrydonkey left 07:34 sena_kun left 07:48 domidumont joined, sena_kun joined 08:04 epony left, hungrydonkey joined 08:07 hungrydonkey left 08:09 hungrydonkey joined 08:13 hungrydonkey left 08:14 hungrydonkey joined
lizmat Files=1302, Tests=111141, 236 wallclock secs (31.62 usr 9.57 sys + 3185.71 cusr 320.96 csys = 3547.86 CPU) 08:14
hmmm...second day in a row this high?
08:15 epony joined
lizmat ah, no, pebkab 08:16
08:17 hungrydonkey left 08:18 hungrydonkey joined 08:20 hungrydonkey left, hungrydonkey joined
sena_kun releasable6: status 08:24
releasable6 sena_kun, Next release in ≈5 days and ≈10 hours. 3 blockers. 0 out of 215 commits logged
sena_kun, Details: gist.github.com/227b7e905f79e4304a...016b0ab5d6 08:25
nine Re-posting here, so it will also show up in the log search: 08:29
Whenever the contents of any of the repositories in the $*REPO chain changes (i.e. installing or uninstalling a module or changing source code in a -I or $PERL6LIB directory), this could mean that a precompiled file needs an update.
To check whether we really need to compile, we need to resolve the dependencies again, i.e. get from Foo::Bar to the actually resolved full name Foo::Bar:auth<me>:api<1>:ver<0.1.2>.
Resolving such dependencies involves EVALing the dependency specification serialized into precomp files to get to an actual object. EVAL is slow because our compiler is so darn slow. 08:30
Since EVAL is so slow (and resolving a DependencySpecification is not exactly free either) we really only want to do that if a repository actually changed.
So when we do actually resolve dependencies, we also save the full contents of all active repositories in the form of a SHA hash into a .repo-id file accompanying the precomp file.
I.e. precompilation itself saves (purely made up numbers) about 80 % of the time and the .repo-id files save some 19 % and we only actually have to pay 1 % when nothing happened in the repositories.
So yes, it's perfectly safe to delete .precomp dirs containing just .repo-id files. Deleting .precomp (not "precomp" without the period) is always safe, you will just pay for it by waiting longer. Or not in the case of the errantly created ones.
Btw. in case other precomp/module loading related questions comp up and I'm not around: while I suck at writing tests, I really try to document the full reasoning behind whatever I do in my commit messages. So reading the git history of the stuff I wrote will tell you the whole story. 08:31
Geth rakudo: 1a6f83c6af | (Elizabeth Mattijsen)++ | 2 files
Rename $!storage to $!eigenstates in Junction

This has bothered me for years: $!storage is typically the name that is being used for hash-like structures, and at least in the current implementation of Junctions, the eigenstates are *not* stored in a hash. So change the name to the more descriptive '$!eigenstates`, also to prevent false positives when searching the Rakudo code base for '$!storage`.
08:49
08:51 jmerelo joined
jmerelo m: say % .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10; 08:51
camelia {even => [0 2 4 6 8], odd => [1 3 5 7 9]}
jmerelo What would you call this? "Bare sigil" syntax? "Sigil-as-context"? 08:52
It's not documented, BTW. That's why I ask.
m: say @ .push: "papers"
camelia [papers]
jmerelo m: say .push: "papers"
camelia [papers]
jmerelo m: say @.push: "papers" 08:53
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable @.push used where no 'self' is available
at <tmp>:1
------> 3say @.push: "papers"7⏏5<EOL>
jmerelo m: say .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10;
camelia No such method 'classify-list' for invocant of type 'Any'
in block <unit> at <tmp> line 1
lizmat .tell timotimo after 1a6f83c6af I forgot to change direct attribute in the Optimizer, but it did *not* trigger any spectest/ make test failure! 08:57
linkable6 (2020-02-17) github.com/rakudo/rakudo/commit/1a6f83c6af Rename $!storage to $!eigenstates in Junction
jmerelo I guess sigil-as-context is the thing. Maybe document it within contexts... 08:59
m: $_ = "a"; say .succ 09:01
camelia b
jmerelo m: $_ = "a"; say $ .succ 09:02
camelia No such method 'succ' for invocant of type 'Any'. Did you mean 'sum'?
in block <unit> at <tmp> line 1
jmerelo m: $_ = "a"; say @ .succ
camelia No such method 'succ' for invocant of type 'Array'. Did you mean any of these?
sec
sech
sum
uc

in block <unit> at <tmp> line 1
jmerelo Hum
Geth rakudo: 911cac4e95 | (Elizabeth Mattijsen)++ | src/Perl6/Optimizer.nqp
Fix missed rename of Junction attribute

The fact that this omission did *not* show up in any spectest or other test, leads me to suggest that the Junction optimizer is currently dead code.
09:03
lizmat m: @.succ 09:04
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable @.succ used where no 'self' is available
at <tmp>:1
------> 3@.succ7⏏5<EOL>
expecting any of:
statement list
term
lizmat m: @ .succ
camelia No such method 'succ' for invocant of type 'Array'. Did you mean any of these?
sec
sech
sum
uc

in block <unit> at <tmp> line 1
lizmat he
jmerelo m: my @mapper = [['1a','1b','1c'],['2a','2b','2c'],['3a','3b','3c']];say % .classify-list: @mapper, 1,2,1,1,2,0; 09:15
camelia {1a => {1b => {1c => [0]}}, 2a => {2b => {2c => [1 1 1]}}, 3a => {3b => {3c => [2 2]}}}
jmerelo m: my @mapper = [['1a','1b'],['2a','2b']];say % .classify-list: @mapper, 1,0,1,1,1,0; 09:19
camelia {1a => {1b => [0 0]}, 2a => {2b => [1 1 1 1]}}
jmerelo m: my @mapper = [['1a','1b'],['2a','2b','2c']];say % .classify-list: @mapper, 1,0,1,1,1,0;
camelia mapper on classify-list computed to an item with different number of elements in it than previous items, which cannot be used because all values need to have the same number of elements. Mixed-level classification is not supported.
in block <unit>…
jmerelo m: my @mapper = [['1a','1b'],['2a','2b'],['3a','3b'];say % .classify-list: @mapper, 1,0,1,1,1,0;
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use variable @mapper in declaration to initialize itself
at <tmp>:1
------> 032b'],['3a','3b'];say % .classify-list: @7⏏5mapper, 1,0,1,1,1,0;
expecting any of:
argument …
jmerelo m: my @mapper = [['1a','1b'],['2a','2b'],['3a','3b']];say % .classify-list: @mapper, 1,0,1,1,1,0; 09:20
camelia {1a => {1b => [0 0]}, 2a => {2b => [1 1 1 1]}}
jmerelo m: my @mapper = [['1a','1b'],['2a','2b'],['3a','3b']];say % .classify-list: @mapper, 1,0,1,1,1,0,2;
camelia {1a => {1b => [0 0]}, 2a => {2b => [1 1 1 1]}, 3a => {3b => [2]}}
jmerelo m: my @mapper = [<1a 1b>, <2a 2b 2fail>];say % .classify-list: @mapper, 1,0,1,1,1,0; 09:24
camelia mapper on classify-list computed to an item with different number of elements in it than previous items, which cannot be used because all values need to have the same number of elements. Mixed-level classification is not supported.
in block <unit>…
jmerelo lizmat: so, what do you think? contex-inducing sigil? 09:28
lizmat no, it's not a context
m: dd @.new 09:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable @.new used where no 'self' is available
at <tmp>:1
------> 3dd @.new7⏏5<EOL>
expecting any of:
argument list
term
lizmat m: dd @ .new
camelia Array element = []
jmerelo lizmat: "bare sigil"?
lizmat m: dd @ .new(1,2,3)
camelia Array element = [1, 2, 3]
lizmat m: dd % .new(1,2,3,4)
camelia Hash element = {("1") => 2, ("3") => 4}
jmerelo m: say .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10;
camelia No such method 'classify-list' for invocant of type 'Any'
in block <unit> at <tmp> line 1
jmerelo m: say % .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10; 09:30
camelia {even => [0 2 4 6 8], odd => [1 3 5 7 9]}
jmerelo lizmat: what about the case above?
lizmat: your two examples can be interpreted as casting, but in the case above, % is providing context for .classify-list, which wouldn't work without it. 09:31
lizmat m: say Hash.classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10;
camelia assign requires a concrete object (got a Hash type object instead)
in block <unit> at <tmp> line 1
lizmat m: say Hash.new.classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10; 09:32
camelia {even => [0 2 4 6 8], odd => [1 3 5 7 9]}
lizmat the % is just short for Hash.new, the @ is short for Array.new
09:33 sena_kun left
jmerelo Hum 09:33
lizmat I wouldn't call it context, but I'm not sure *what* I would call it...
perhaps jnthn has some ideas
jmerelo sigil-shortcut?
sigil-new?
but it's not exactly that, it's more like .new and then ==> 09:34
m: say %.classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10;
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable %.classify-list used where no 'self' is available
at <tmp>:1
------> 3ist: { $_ %% 2 ?? 'even' !! 'odd' }, ^107⏏5;
jmerelo m: say % .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10;
camelia {even => [0 2 4 6 8], odd => [1 3 5 7 9]}
jmerelo m: say Hash.new ==> .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10; 09:35
camelia 5===SORRY!5=== Error while compiling <tmp>
Only routine calls or variables that can '.push' may appear on either side of feed operators.
at <tmp>:1
------> 3say Hash.new ==> 7⏏5.classify-list: { $_ %% 2 ?? 'even' !! '
jmerelo No, not that either...
m: say Hash.new .classify-list: { $_ %% 2 ?? 'even' !! 'odd' }, ^10;
camelia {even => [0 2 4 6 8], odd => [1 3 5 7 9]}
jmerelo Gee, I don't know 09:36
lizmat afk for a few hours& 09:39
jmerelo But above you're calling new on new... % .new(1,2,3,4) 09:40
lizmat: have fun 09:41
09:42 sena_kun joined
sena_kun bisectable6, role Foo[\] { }; class Bar { proto method baz($ --> Bool:D) {*}; multi method baz(::T: $ where Foo[T] --> True) { }; multi method baz($ --> False) {} }; say Bar.baz: Foo[Bar] 09:42
bisectable6 sena_kun, Bisecting by output (old=2015.12 new=911cac4) because on both starting points the exit code is 1 09:43
sena_kun, bisect log: gist.github.com/d830f870eb79f19c0e...861a23d7fd
sena_kun, (2016-03-02) github.com/rakudo/rakudo/commit/fd...7e379b5038
sena_kun rba, ping. 09:51
rba sena_kun: hi 09:52
sena_kun rba, o/
I hazily remember we discussed using the release-related server to do release-related spectesting, is it still on map? I don't want to be annoying, but sometimes I just am. 09:53
rba sena_kun: What can I do. We haven't discussed the details yet. 09:54
sena_kun: plz let me know what you need.
sena_kun rba, zscript and system modules which are required to build rakudo (I think when I tried that, make was missing, so build-essentials and maybe something else) will be more than enuogh. 09:55
s/rakudo/whole rakudo stack/
so basically github.com/perl6/z and `z init R` (or some other dir, I am used to R) and `z z` passing clean. 09:56
09:57 cognomin_ joined 10:00 cognominal left
rba sena_kun: On the way to install zscript... 11:04
11:27 Guest4508 left 11:31 jmerelo left 11:32 Altai-man_ joined 11:34 sena_kun left 11:50 Altai-man_ is now known as sena_kun
Geth rakudo: 470f7fd093 | (Elizabeth Mattijsen)++ | src/core.c/Junction.pm6
Make Junction creation about 3.5x as fast
11:53
timotimo lizmat: perhaps we should run the coverage tool against the spec test suite and check on the optimizer's "score" for this purpose 12:06
lizmat feels like a plan, but /me wouldn't know how to do that
12:09 Guest1277 joined
timotimo first step is just to set an env var, then moar will spit out a boatload of text files with filename, line number entries 12:10
that can get pretty big, so should probably filter it down to optimizer lines only relatively early 12:11
MasterDuke hm. roast specs that you can create an Encoding for a whole bunch of encodings (even if the backend doesn't support them) github.com/perl6/roast/blob/master....t#L7-L19. so if you wrap github.com/rakudo/rakudo/blob/mast...ry.pm6#L18 in `#?if jvm` you get a better error from 12:41
`"x".encode("utf32") on moarvm, but the test fails
this error message github.com/MoarVM/MoarVM/blob/mast...ps.c#L2825 should at least say something like 'for MoarVM'. otherwise it has the exact same text as github.com/rakudo/rakudo/blob/mast...132-L2137, but it's a different error 12:43
jnthn We could just implement utf32 on MoarVM; it's probably not so hard :) 12:47
|Tux| Rakudo version 2020.01-217-g911cac4e9 - MoarVM version 2020.01.1-39-g657b536cf
csv-ip5xs0.717 - 0.751
csv-ip5xs-205.728 - 5.967
csv-parser23.299 - 23.926
csv-test-xs-200.362 - 0.368
test7.151 - 7.425
test-t1.740 - 1.745
test-t --race0.798 - 0.842
test-t-2029.071 - 30.388
test-t-20 --race8.490 - 9.117
12:48
MasterDuke are all the other ones implemented already? 12:50
jnthn I think so 12:53
12:59 patrickb joined 13:01 lucasb joined, thundergnat joined
thundergnat Regarding utf32: See issue R#3293 13:02
linkable6 R#3293 [open]: github.com/rakudo/rakudo/issues/3293 utf32 encode documented but not implemented
13:03 thundergnat left
rba sena_kun: I have installed build essential, newest moarvm using rakudobrew, zscript from repo and did the init. Do you like to take over now? 13:13
sena_kun rba, logged and trying it out. Seems like it is all great, will ping if something will be out. Thanks a lot! 13:15
rba sena_kun: "z init ~/R" throwed an error.. give me a sec.
sena_kun I am doing `z z` (which builds the whole stack) right now, so might be related... 13:16
rba You can attache as blin using "tmux a"
sena_kun `z z` has ended with a failure: `Unhandled exception: While looking for 'perl6.moarvm': no such file or directory`, `Makefile:810: recipe for target 'blib/CORE.d.setting.moarvm' failed`. 13:18
Geth rakudo: 7a561d63a8 | (Elizabeth Mattijsen)++ | src/core.c/Junction.pm6
Make Junction.defined between 4.5x and 6x as fast

  - 4.5x if the first eigenstate matches
  - 6x if none of the eigenstate match
  - separate private methods for better optimization options
rba sena_kun: Is this a missing build dependency? 13:22
sena_kun rba, not really sure yet, trying again. doesn't seem so to me, at least. 13:24
rba sena_kun: I guess this is because we both run z commands as blin user at the same time. I loggout out as blin. In case I have left over a undefined state you might "rm ~/R" and "z init ~/R" again. 13:25
sena_kun rba, yes, might be it. anyway, if I have a raku installation there and system packages installed, we're doing good.
rba patrickb: We will have status call thuesday evening at 20:15 CEST about raku-infra. Are you interessted to join? 13:26
sena_kun: ping me if you need something else. 13:27
sena_kun rba, sure. Thank you very much.
>+++ Rakudo installed succesfully!
yay
patrickb rba: Interested! 13:28
rba patrickb: Plese pm me your email. I will send you the invitation. We will use jitsi.org/ 13:31
13:32 Altai-man_ joined
rba sena_kun: Great to hear! 13:32
Geth rakudo: 423d9ad87c | (Elizabeth Mattijsen)++ | src/core.c/Junction.pm6
Argh, forgot to check for .defined in Junction!defined-any

This skewed the benchmarks significantly, but was *not* picked up by testing. I guess the tests only use truthy values for the Junction.defined tests. The correct improvement numbers are:
  - 15% faster if none of the eigenstates match
  - 40% faster if the first of the eigenstates match
Altai-man_ is make spectest smart enough to determine number of threads to use? 13:33
13:34 sena_kun left 13:44 hungrydonkey left 13:45 hungrydonkey joined 13:46 jmerelo joined 14:14 jmerelo left
MasterDuke it looks like right here github.com/rakudo/rakudo/blob/mast....nqp#L2964 is sometimes a QAST::Stmts, but with only one statement inside that would likely pass the rest of the conditions 14:26
*$qast-block[1] is a lot of the timesa QAST::Stmts 14:27
anybody want to help me figure out where it's codegenned? 14:28
ok, if i add an `if nqp::istype($qast[1], QAST::Stmts && @($qast[1]) == 1) { $qast[1] := $qast[1][0]; }` it actually gets into this body a couple times github.com/rakudo/rakudo/blob/mast...2972-L2998 14:35
is that a safe thing to do in general? if a QAST::Stmts only has one thing inside, remove the wrapping QAST::Stmts? 14:36
well, that passes `make m-test m-spectest` 14:38
and this `sub a($a where 1|2|4) { say "hi" }; a(2)` gets into the body of that optimization
[Coke] spectest can use multiple instances, but not multiple threads. 14:54
TEST_JOBS=3 make spectest
back when I was running this regularly, I'd put the definition of TEST_JOBS in my bashrc, or if it was automated, in whatever was kicking off the test run 14:58
MasterDuke hm, but that optimization doesn't seem to help much. `sub a($a where 1|2|3|4|5|6|7|8|9|0) { $a }; my $b; my $s = now; $b = a(0) for ^500_000; say now - $s; say $b` takes the same amount of time whether the opt is happening or not 14:59
oh ha, the opt is for non-concrete eigenstates, it was returning out of the body right away, no wonder there was no difference 15:02
now some real results. `sub a($a where Str|Rat|Complex|Array|Hash|Encoding|Int) { $a }; my $b; my $s = now; $b = a(2) for ^500_000; say now - $s; say $b` takes ~1.8s before, ~0.12s after 15:06
putting the `Int` first in the list drops the before time to 0.39s, but the after time is unchanged (so still faster at ~0.12s) 15:13
15:21 sena_kun joined 15:23 Altai-man_ left
Geth rakudo: MasterDuke17++ created pull request #3488:
Hack to fix "any" Junction inlining optimization
15:24
MasterDuke jnthn, timotimo, lizmat, nine: ^^^ some questions there you might have answers to 15:29
15:32 Altai-man_ joined 15:34 sena_kun left 15:37 Xliff joined
MasterDuke oh, this is doing something to QAST::Stmts github.com/rakudo/rakudo/blob/mast...2865-L2887 15:40
lizmat notable6: weekly 15:44
notable6 lizmat, 2 notes: 2020-02-11T18:24:02Z <lizmat>: fluca1978.github.io/2020/02/10/Per...nge47.html ; 2020-02-12T20:45:35Z <Doc_Holliwood>: www.perlmonks.org/?node_id=11112794
lizmat notable6: weekly reset 15:46
notable6 lizmat, Moved existing notes to “weekly_2020-02-17T15:46:04Z”
Kaiepi so in my `is cached` pr and Trait::Traced, the two traits reuse some code from NativeCall to finish compiling the routine being wrapped and replace its $!do with that of the wrapper 16:12
but this doesn't seem to be the right approach
the wrapped routine's outer context has the correct symbols in it, but their values end up being their compile-time values, not the values they have when the routine is called 16:13
what would i need to do to fix this?
i already tried using nqp::forceouterctx from the wrapper but that didn't work 16:14
16:14 domidumont left
jnthn Why not just use .wrap, which should do things more properly? 16:15
Kaiepi because rakudo expects multi methods to be Code instances in some places
jnthn Not sure I follow 16:16
Multi methods will be of type Method? 16:17
Kaiepi they'll end up being the class .wrap uses instead of Code
s/being/\0 instances of/ 16:18
that's the only reason i'm not using .wrap though. would it be worth looking into ways to make it so multi methods work with .wrap? 16:19
jnthn m: class C { method m() { say 1 } }; C.^lookup('m').wrap(-> { say 0; callsame; say 2 }); C.m. say C.^lookup('m').^name 16:20
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3-> { say 0; callsame; say 2 }); C.m. say7⏏5 C.^lookup('m').^name
expecting any of:
infix
infix stopper
statement end…
jnthn m: class C { method m() { say 1 } }; C.^lookup('m').wrap(-> { say 0; callsame; say 2 }); C.m; say C.^lookup('m').^name
camelia Too many positionals passed; expected 0 arguments but got 1
in block <unit> at <tmp> line 1
jnthn oh, right
m: class C { method m() { say 1 } }; C.^lookup('m').wrap(-> | { say 0; callsame; say 2 }); C.m; say C.^lookup('m').^name
camelia 0
1
2
Method+{Routine::Wrapped}
jnthn m: class C { method m() { say 1 } }; C.^lookup('m').wrap(-> | { say 0; callsame; say 2 }); C.m; say C.^lookup('m') ~~ Method 16:21
camelia 0
1
2
True
jnthn It's a subclass of Method
Kaiepi m: class C { multi method foo() { 0 }; BEGIN $?CLASS.^find_multi_method('foo').code.wrap: { 1 }; }; say C.foo
camelia 5===SORRY!5=== Error while compiling <tmp>
An exception occurred while evaluating a BEGIN
at <tmp>:1
Exception details:
No such method 'find_multi_method' for invocant of type 'Perl6::Metamodel::ClassHOW'. Did you mean 'add_multi_method'…
Kaiepi oh right
jnthn Ah, yes, you can't do this until the class is composed...
Kaiepi m: class C { multi method foo() { 0 }; BEGIN $?CLASS.^multi_methods_to_incorporate.first({ .name eq 'foo' }).code.wrap: { 1 }; }; say C.foo 16:22
camelia 5===SORRY!5=== Error while compiling <tmp>
An exception occurred while evaluating a BEGIN
at <tmp>:1
Exception details:
Type check failed in binding to parameter 'value'; expected Any but got MultiToIncorporate (?)
in code at <tmp…
jnthn Well, you can like that I guess...
Kaiepi m: class C { multi method foo() { 0 }; BEGIN for $?CLASS.^multi_methods_to_incorporate { if .name eq 'foo' { .code.wrap: { 1 }; last } } }; say C.foo 16:23
camelia Cannot invoke object with invocation handler in this context
in block <unit> at <tmp> line 1
Kaiepi there we go
jnthn Ah, that...
Yeah, it's be better to fix that than mess with `$!do` in module space.
Kaiepi aight 16:24
jnthn Though it's probably not an easy fix :(
Kaiepi i'll give it a shot, there's not much i can do for my grant until after this release gets made 16:25
16:48 hungrydonkey left 16:54 hungrydonkey joined 17:15 patrickb left
Kaiepi ugh this has been bugging me long enough 17:16
on openbsd, gdb is ancient and doesn't always work with rakudo, but the gdb you install as a package/port is called egdb, so rakudo-gdb-m isn't very helpful 17:17
17:17 pyrimidine left
Kaiepi would adding a rakudo-egdb-m script that only gets installed on openbsd be the right way to go about allowing egdb to be used? 17:18
lizmat wouldn't an environment variable allowing to change the name of the gdb to be used, make more sense? 17:26
17:28 patrickb joined
Kaiepi that sounds reasonable, openbsd probably isn't the only case stuff like this would happen 17:29
17:30 domidumont joined, domidumont left 17:33 sena_kun joined 17:35 Altai-man_ left 17:47 pyrimidine joined
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2020/02/17/2020-...eblessing/ 17:55
nine lizmat: I wonder if your Weekly summaries of core developments would actually be the better source for the changelogs of my rakudo packages 18:01
Geth rakudo: Kaiepi++ created pull request #3489:
Allow debuggers to be specified by environment variables
18:02 hungrydonkey left 18:06 CIAvash left, unclechu left, AlexDaniel` left 18:07 rba[m] left
patrickb rba: Can you update rakubrew.org (latest commit in the repo) and release rakubrew v3 (patszim.volans.uberspace.de/patclo...LQDZcjbf)? 18:14
patrickb is looking forward to not having to nag rba about this 18:15
rba has no problem to update on demand of patrickb 18:17
patrickb :-)
18:24 CIAvash joined 18:46 AlexDaniel` joined, rba[m] joined
releasable6 Next release in ≈4 days and ≈23 hours. 3 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 19:00
Geth rakudo: 82bd76f187 | (Ben Davies)++ | src/core.c/Channel.pm6
Make Channel.list around 16x faster

Channel.list was coercing the channel to a Seq and then a list. This is a pretty roundabout way of creating a list from the channel's iterator, so use List.from-iterator instead.
19:23
rakudo: b2962b1fb8 | (Vadim Belman)++ | src/core.c/Signature.pm6
Don't use raku method where it's not available

Return type might not have `raku` method on it in certain cases like when class composition isn't over yet. In such cases use metamodel
  `name` method.
19:26
rakudo: 56ccd1320a | (Vadim Belman)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp
Make Signature instantiate_generic not skipping return type

It must be instantiated too.
rakudo: 17f7c5ade7 | (Vadim Belman)++ (committed using GitHub Web editor) | 2 files
Merge pull request #3484 from vrurg/rakudo_3483

Properly support generic types in Signature 'returns' attribute.
rakudo/master: 6 commits pushed by (Vadim Belman)++ 19:27
19:32 Altai-man_ joined 19:35 sena_kun left
rba patrickb: rakubrew.org update 19:41
patrickb: rakubrew.org updated. 19:42
patrickb Thank you!
19:46 AlexDaniel` left, rba[m] left 19:47 CIAvash left 20:16 cognominal joined 20:18 unclechu joined 20:19 cognomin_ left
MasterDuke any reason this "any" Junction inlining couldn't be done for concrete literals also? 20:33
m: sub a($a where 1|2|3|4|5|6|7|8|9|0) { $a }; my $b; my $c = 10.rand.Int * 0; my $s = now; $b = a($c) for ^100_000; say now - $s; say $b 20:34
camelia 1.44387877
0
MasterDuke m: sub a($a where $a == 1 || $a == 2 || $a == 3 || $a == 4 || $a == 5 || $a == 6 || $a == 7 || $a == 8 || $a == 9 || $a == 0) { $a }; my $b; my $c = 10.rand.Int * 0; my $s = now; $b = a($c) for ^100_000; say now - $s; say $b
camelia 0.17998453
0
MasterDuke it's a bit more complex, but seems like we could start just supporting e.g., literal numbers and strings, and the compiler could just bail if it gets anything else 20:36
20:38 patrickb left 20:40 AlexDaniel` joined, rba[m] joined, CIAvash joined 20:41 patrickb joined
MasterDuke hm, those aren't used too terribly much in the ecosystem, but then again perl6-all-modules was last updated almost a year ago... 20:48
Kaiepi releasable6, status 20:49
releasable6 Kaiepi, Next release in ≈4 days and ≈22 hours. 3 blockers. 0 out of 230 commits logged
Kaiepi, Details: gist.github.com/23f29f29d1f12b05fe...9bedbec5ef
MasterDuke greppable6: / where\s+(\d+|("[^"]+"))\s*\|/
greppable6 MasterDuke, Found nothing!
MasterDuke greppable6: help
greppable6 MasterDuke, Like this: greppable6: password # See wiki for more examples: github.com/Raku/whateverable/wiki/Greppable
MasterDuke greppable6: where\s+(\d+|("[^"]+"))\s*\| 20:50
greppable6 MasterDuke, 24 lines, 8 modules: gist.github.com/4c907ba02f4069b7f5...bdeed861ef
Kaiepi is it alright if i add a $.path parameter to IO::Socket::INET and multis for creating unix sockets before the next release? 20:52
s/parameter/attribute/
they're created with :$host/:$localhost atm, which doesn't feel right since they don't have hosts 20:53
Geth rakudo: 6844be9dd9 | (Elizabeth Mattijsen)++ | src/core.c/Junction.pm6
Some minor cleanup in Junction

  - remove unncessary nqp::clone
  - add return type
20:56
MasterDuke hm, explicitly creating a subset first and then typing the parameter to that doesn't trigger the optimization 20:59
m: subset Foo of Any where Str|Rat|Complex|Array|Hash|Encoding|Int; sub a(Foo $a) { $a }; my $b; my $c = 10.rand.Int; my $s = now; $b = a($c) for ^100_000; say now - $s; say $b
camelia 0.917596
5
MasterDuke that takes 1/10 the time when not expressed as a subset (when github.com/rakudo/rakudo/pull/3488 is applied) 21:01
Xliff I have a class with two methods that have the same signature, however one is marked as :U: 21:22
Why does rakudo complain about an ambiguous call when I invoke via Class::Name.this-should-be-a-class-method($a, $b) 21:23
m: class A { method aa(A:U: $a) { say 'Class'; }; method asa($a) { say 'Not classed!' }; }; A.aa 21:24
camelia Too few positionals passed; expected 2 arguments but got 1
in method aa at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: class A { method aa(A:U: $a) { say 'Class'; }; method aa($a) { say 'Not classed!' }; }; A.aa
camelia 5===SORRY!5=== Error while compiling <tmp>
Package 'A' already has a method 'aa' (did you mean to declare a multi-method?)
at <tmp>:1
Xliff m: class A { multi method aa(A:U: $a) { say 'Class'; }; multi method aa($a) { say 'Not classed!' }; }; A.aa
camelia Cannot resolve caller aa(A:U: ); none of these signatures match:
(A:U: $a, *%_)
(A: $a, *%_)
in block <unit> at <tmp> line 1
Xliff m: class A { multi method aa(A:U: $a) { say 'Class'; }; multi method aa(A:D: $a) { say 'Not classed!' }; }; A.aa
camelia Cannot resolve caller aa(A:U: ); none of these signatures match:
(A:U: $a, *%_)
(A:D: $a, *%_)
in block <unit> at <tmp> line 1
Xliff ^^ That should not be a conflict, right?
m: class A { multi method aa(A:U: $a) { say 'Class'; }; multi method aa(A:D: $a) { say 'Not classed!' }; }; A.aa(1) 21:25
camelia Class
Xliff m: class A { multi method aa(A:U: $a) { say 'Class'; }; multi method aa($a) { say 'Not classed!' }; }; A.aa(1)
camelia Ambiguous call to 'aa(A: Int)'; these signatures all match:
:(A:U: $a, *%_)
:(A: $a, *%_)
in block <unit> at <tmp> line 1
Xliff :/
OK. Well that's a solution.
21:33 sena_kun joined 21:34 Altai-man_ left
Geth rakudo: patrickbkr++ created pull request #3490:
Fix Rakudo running in unicode paths on Windows again
21:39
rakudo: Kaiepi++ created pull request #3491:
Add a $.path attribute and PF_UNIX multis to IO::Socket::INET
21:59
roast: Kaiepi++ created pull request #619:
Update IO::Socket::INET UNIX sockets tests to use the new API
22:00
22:05 Kaiepi left, Kaiepi joined
Geth rakudo: 4c6cd03522 | (Patrick Böker)++ | src/vm/moar/runner/main.c
Fix Rakudo running in unicode paths on Windows again

This broke during a refactor some months ago.
22:18
rakudo: 1cc43c892a | (Patrick Böker)++ (committed using GitHub Web editor) | src/vm/moar/runner/main.c
Merge pull request #3490 from patrickbkr/fix-unicode-paths-windows

Fix Rakudo running in unicode paths on Windows again
22:18 patrickb left
Geth roast/6.d-errata: 559ba86279 | (Daniel Green)++ (committed by Altai-man) | S32-num/expmod.t
Use better negative power exptmod tests

The previous tests used values that used to hang. After the hang was fixed, they started to silently give the wrong answer because errors in libtommath functions in MoarVM were ignored. Now that errors are being handled, check that those values die. Also add some other tests with negative powers that shouldn't die.
23:11
roast/6.d-errata: 6fd361bd03 | (Elizabeth Mattijsen)++ (committed by Altai-man) | S12-attributes/smiley.t
Typecheck on default value for attribute changed

with github.com/rakudo/rakudo/commit/d8e859d000
roast/6.d-errata: 02d638be72 | (Vadim Belman)++ (committed by Altai-man) | S05-metasyntax/regex.t
Make correct Bool matchers

  :attr(? *) instead of just :attr
sena_kun releasable6, status 23:16
releasable6 sena_kun, Next release in ≈4 days and ≈19 hours. 3 blockers. 0 out of 233 commits logged
sena_kun, Details: gist.github.com/35b9f38e427252846e...8af6eac20b
23:32 Altai-man_ joined 23:35 sena_kun left
Altai-man_ set up blin and sleep & 23:36