Geth rakudo/fix-R1723: 664271aba1 | (Zoffix Znet)++ | src/Perl6/World.nqp
More fixes for LTA error in corecers

  - Part of #1723
  - Now parameters are handled fine but some standalone
   coercers are still LTA
02:55
rakudo: 2ae3f484c6 | (Stefan Seifert)++ | 2 files
Fix build system not noticing change to BOOTSTRAP.nqp

BOOTSTRAP.nqp and EXPORTHOW.nqp are not part of COMMON_BOOTSTRAP_SOURCE and thus not part of METAMODEL_SOURCES but we need to run gen-version.pl when they are changed.
07:07
nine lizmat: that one's for you ^^^ :)
[Tux] Rakudo version 2018.03-223-g72c7c5bf4 - MoarVM version 2018.03-105-gef4e6fe94
csv-ip5xs0.892 - 0.918
csv-ip5xs-208.674 - 8.761
csv-parser35.754 - 37.181
csv-test-xs-200.437 - 0.459
test9.132 - 9.755
test-t2.428 - 2.691
test-t --race1.024 - 1.144
test-t-2043.693 - 46.520
test-t-20 --race15.202 - 16.477
07:13
brrt [Tux] - i've partially traced down the spesh failure in t/90_csv.t 07:25
[Tux] brrt++
lizmat nine++ 07:51
weekly: lwn.net/Articles/751286/ 08:02
notable6 lizmat, Noted!
nine m: { die "died"; note "back"; CATCH { default { .throw } } }; CATCH { default { .resume } } 09:01
camelia MoarVM panic: Trying to unwind over wrong handler
nine Is this supposed to work, or am I holding it wrong?
dogbert2 nine: looks a bit like github.com/MoarVM/MoarVM/issues/572 09:59
nine I worked around it for now by returning a Failure and have the caller throw that. Apparently my issue is that resuming into a CATCH block is kinda broken 10:05
AlexDaniel releasable6: status 10:19
releasable6 AlexDaniel, Next release in ≈9 days and ≈8 hours. 6 blockers. 0 out of 224 commits logged (⚠ 9 warnings) 10:20
AlexDaniel, Details: gist.github.com/3c5361d774b4eea2ae...47bed8e440
timotimo could you say that perl6 has better backwards compatibility to python2 than python3 does? 10:34
lizmat m: { die "died"; note "back"; CATCH { default { .rethrow } } }; CATCH { default { .resume } } 10:47
camelia MoarVM panic: Trying to unwind over wrong handler
AlexDaniel committable6: uptime 11:11
committable6 AlexDaniel, 2 days, 5 hours, 20 minutes, and 11 seconds, 373.296875MiB maxrss. This is Rakudo version 2018.03-134-g20495f097 built on MoarVM version 2018.03-56-g85fc758ce implementing Perl 6.c.
AlexDaniel releasable6: uptime
releasable6 AlexDaniel, 2 days, 5 hours, 21 minutes, and 32 seconds, 1556.449219MiB maxrss. This is Rakudo version 2018.03-134-g20495f097 built on MoarVM version 2018.03-56-g85fc758ce implementing Perl 6.c.
AlexDaniel shareable6: uptime
shareable6 AlexDaniel, 3 days, 3 hours, 39 minutes, and 23 seconds, 585.035156MiB maxrss. This is Rakudo version 2018.03-134-g20495f097 built on MoarVM version 2018.03-56-g85fc758ce implementing Perl 6.c.
AlexDaniel any volunteers for github.com/rakudo/rakudo/issues/1709 ? 11:25
jnthn timotimo dogbert2 MasterDuke
lizmat: I assume you're going to close RT#132281 also? 11:57
synopsebot RT#132281 [new]: rt.perl.org/Ticket/Display.html?id=132281 [REGRESSION] .gist of a bag used to say “bag()”, now it says “Bag()” ("blogger".comb.Bag) 11:58
lizmat AlexDaniel: I don't do RT, but please yes (just sent a mail to that effect) 11:59
AlexDaniel Error: access_denied 12:00
:|
lizmat yeah, seems like Perl 5 infra is falling apart: search.cpan.org down, can't login to blogs.perl.org :-(
AlexDaniel seems to be the github login option only 12:01
can still login with “google”
ilmari lizmat: metacpan.org is working just fine
lizmat ilmari: yes, it is...
news.ycombinator.com/item?id=16819086 # ilmari 12:02
MasterDuke m: say set("a b", "b c") 12:12
camelia set(a b b c)
MasterDuke lizmat: ^^^ seems LTA 12:13
lizmat m: say set("a,b", "b,c") # they're all LTA 12:16
camelia set(a,b b,c)
MasterDuke true 12:17
btw, is Set.new(...) ever different from (...).Set? 12:18
lizmat not, afaik 12:19
MasterDuke m: say Set.new((a => 42, a=> 42)); say ((a => 42, a=> 42)).Set 12:20
camelia set(a => 42)
set(a)
MasterDuke m: say Set.new(a => 42, a=> 42); say (a => 42, a=> 42).Set 12:21
camelia set()
set(a)
lizmat MasterDuke: I stand corrected :-) 12:24
ah, yes, the coercer uses Pair semantics for all QuantHashes 12:25
m: dd Set.new( a => 0 ); dd (a => 0).Set
camelia Set.new()
Set.new()
lizmat m: dd Set.new( (a => 0) ); dd (a => 0).Set
camelia Set.new(:a(0))
Set.new()
lizmat m: dd Set.new( (a => 0) ); dd (a => 1).Set
camelia Set.new(:a(0))
Set.new("a")
lizmat m: dd Set.new( (a => 0) ); dd (a => False).Set 12:26
camelia Set.new(:a(0))
Set.new()
lizmat m: dd (a => True).Set
camelia Set.new("a")
MasterDuke why is Set.new(a => 42, a=> 42) the empty set? 12:27
AlexDaniel it doesn't take named args I guess?
m: say Set.new((a => 42, a=> 42)) 12:28
camelia set(a => 42)
MasterDuke ah right, named args vs Pairs again
m: say Bag.new((a => 42, a=> 42)); say ((a => 42, a=> 42)).Bag 12:30
camelia Bag(a => 42(2))
Bag(a(84))
MasterDuke ugh, i can't hold these in my head for some reason 12:35
Setty.perl always uses `Set(Hash)?.new(...)`. Baggy.perl always uses `(...).Bag`. can those be made consistent? 12:37
as shown above, Set.new(...) is not always the same as (...).Set, if you put the same representation for the (...). but maybe Set's .perl just needs to print it differently so (...).Set is correct? 12:39
lizmat MasterDuke: yes, that could actually be a bug :-) 12:51
or at least an inconsistency :-) 12:53
MasterDuke so we need to find some input A where A.(Bag|Set|Mix).perl ne A.(Bag|Set|Mix).perl.EVAL.perl? 12:58
lizmat actually, I don't think you will find it... but please go ahead: always break new things :-) 13:04
MasterDuke heh, well what do you recommend for a PR? 13:08
lizmat MasterDuke: nothing, I'm spectesting a change to .Set now 13:09
MasterDuke cool
Geth rakudo: c0212af9b9 | (Elizabeth Mattijsen)++ | src/core/Setty.pm6
Make Setty.perl consistent with Baggy/Mixy.perl

Masterduke++ for persistence
13:19
dogbert2 m: say bag(<a a a b>) (-) <a a> 13:43
camelia Bag(a(2), b)
skids looks like it is only seeing the first elem of the List lhs arg 13:57
erm rhs. 13:58
skids forgot everything he learned in kindergarten
lizmat skids 14:03
I think that's because the rhs is first coerced to a Set
and that could be considered a bug with a Bag on the LHS
m: say bag(<a a a b>) (-) <a a>.Bag
camelia Bag(a, b)
lizmat m: say bag(<a a a b>) (-) <a a>.Set 14:04
camelia Bag(a(2), b)
lizmat could you file an issue for this? or is there one already ?
skids RT#133016 14:07
synopsebot RT#133016 [open]: rt.perl.org/Ticket/Display.html?id=133016 Wrong set difference of Bag and List
skids Looks like a pasto in multi sub infix:<(-)>(Baggy:D $a, Any:D $b) 14:08
Or no, looks like it was intentional. 14:09
lizmat no, I think it's a pasto 14:10
skids The commit message says "Any/Iterable should be coerced to Set, not Bag/Mix"
lizmat ah... intriguing 14:11
I think we changed our view about that later
yeah, pretty sure about that
spectesting 14:12
skids (check Mix too?)
(not noticing the year of the commit, I was about to say... but you just did this :-) 14:14
lizmat skids: Mixys are Baggys, and for comparison, if you coerce something to a Bag, the elements get weight 1 14:15
which also works for Muxys
*Mixys
so the Baggy / Any candidate should handle Mixy / Any as well 14:16
skids Oh so unless it's been deleted since a2133dbc6 we have a redundant candidate 14:17
lizmat all set operators have been completely overhauled since then 14:18
skids Ah good.
lizmat and each set operator now has its own file
spectest clean..
Geth rakudo: 344a64e987 | (Elizabeth Mattijsen)++ | src/core/set_difference.pm6
Fix for RT #133016

If we're comparing with a Baggy, we should coerce to a Bag, not a Set.
  skids++ for nudging
14:20
synopsebot RT#133016 [open]: rt.perl.org/Ticket/Display.html?id=133016 Wrong set difference of Bag and List
lizmat afk& 14:22
Geth rakudo: 914218744f | (Elizabeth Mattijsen)++ | 2 files
Create shortcuts for %h.head

It occurred to me that .head on a Map or Hash with only one key, would be a very fast way to get that one key (and its value).
This commit adds specific .head candidates for Map/Hash and typed Hashes that are twice as fast as have half of the allocations. Note that this is purely an optimization, no new functionality has been added.
19:34
lizmat bisectable6: sub a(--> Int:D) {}; dd &a.^name 20:00
bisectable6 lizmat, On both starting points (old=2015.12 new=9142187) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «"Sub+\{Callable[Int:D]}"␤»
lizmat never realized that having a "returns" changes the ^name of a sub
is that handy / needed / desired ? 20:01
I guess it is a result of mixing in the "returns" role, but still
Zoffix m: my Int &foo = sub a(--> Int:D) {} 20:13
camelia ( no output )
Zoffix m: my Num &foo = sub a(--> Int:D) {}
camelia Type check failed in assignment to &foo; expected Callable[Num] but got Sub+{Callable[Int:D]} (sub a ( --> Int:D) { ...)
in block <unit> at <tmp> line 1
lizmat aha, I guess that makes sense 20:14
Geth rakudo: 08b951c8f3 | (Elizabeth Mattijsen)++ | src/core/array_slice.pm6
@a[]:v and @a[*]:v should filter out deleted elements
22:49
lizmat and that concludes my hacking for today
good night, #perl6-dev!
timotimo gnite lizmat :) 22:51
MasterDuke m: my ($a, $b); for (^1_000_000).kv -> $i, $v { $a = $i; $b = $v }; say "$a $b"; say now - INIT now 23:10
camelia 999999 999999
2.0947761
MasterDuke m: my ($a, $b); my $i; for ^1_000_000 -> $v { $a = $i++; $b = $v }; say "$a $b"; say now - INIT now 23:11
camelia 999999 999999
0.37265588
MasterDuke anybody have any ideas for how to make the first one faster?
5th by inclusive (and 1st by exclusive) is a sink-all from Any-iterable-methods.pm6 23:14
in the IterateTwoWithoutPhasers class 23:15
`nqp::p6box_i(($!key = nqp::add_i($!key,1)))` why would you do the p6box_i if $!key is a native int? 23:18
timotimo we might want to look into github's graphql based API to see if we can get more data out of github faster without hitting their rate limit 23:45