IRCloggy #perl6-dev 2018-10-25

Logs Search ←Prev date Next date→ Channels Documentation

Provider of IRC logs since 2005.
WARNING: As Freenode became unjoinable and lost all warnings in topics, we cannot log channels on Freenode anymore.

2018-10-25

MasterDuke joined00:00
p6bannerbot set mode: +v00:00
MasterDuke left00:00
MasterDuke joined00:00
herbert.freenode.net set mode: +v00:00
p6bannerbot set mode: +v00:00
evalable6 left01:12
evalable6 joined01:12
ChanServ set mode: +v01:12
p6bannerbot set mode: +v01:13
ggoebel joined01:25
p6bannerbot set mode: +v01:25
donaldh left02:01
donaldh_ joined02:01
p6bannerbot set mode: +v02:02
ufobat_ joined02:11
p6bannerbot set mode: +v02:11
ufobat left02:14
ggoebel left02:32
fake_space_whale joined02:49
p6bannerbot set mode: +v02:50
Geth ¦ rakudo: jstuder-gh++ created pull request #2425: Fix potential race condition in Proc::Async start 03:10
¦ rakudo: review: https://github.com/rakudo/rakudo/pull/242503:10
Ven` joined04:58
p6bannerbot set mode: +v04:59
Ven` left05:02
MasterDuke left06:19
robertle joined06:32
p6bannerbot set mode: +v06:33
[Tux] left06:36
[Tux] joined06:43
p6bannerbot set mode: +v06:44
fake_space_whale left06:50
lizmat Files=1257, Tests=76342, 337 wallclock secs (15.69 usr 5.66 sys + 2372.09 cusr 241.51 csys = 2634.95 CPU)06:58
ufobat_ufobat07:34
Ven` joined08:05
p6bannerbot set mode: +v08:06
dalek left08:35
Geth left08:36
donaldh_ left08:47
donaldh joined08:49
pmurias left08:49
p6bannerbot set mode: +v08:49
pmurias joined08:55
p6bannerbot set mode: +v08:55
stmuk joined09:25
p6bannerbot set mode: +v09:25
p6lert left09:26
synopsebot left09:26
SourceBaby left09:26
dalek joined09:26
ChanServ set mode: +v09:26
synopsebot joined09:27
Geth joined09:27
p6lert joined09:27
ChanServ set mode: +v09:27
ChanServ set mode: +v09:27
stmuk_ left09:27
p6bannerbot set mode: +v09:27
p6bannerbot set mode: +v09:27
p6bannerbot set mode: +v09:27
p6bannerbot set mode: +v09:27
ExtraCrispy joined09:46
p6bannerbot set mode: +v09:46
SourceBaby joined09:55
ChanServ set mode: +v09:55
p6bannerbot set mode: +v09:55
Geth left09:57
Geth joined09:57
ChanServ set mode: +v09:57
p6bannerbot set mode: +v09:58
Geth ¦ rakudo: 79bec897f5 | (Zoffix Znet)++ | appveyor.yml09:58
¦ rakudo: Revert to non-verbose nmake test 09:58
¦ rakudo:09:58
¦ rakudo: No idea how to get the prove command to work right on appveyor09:58
¦ rakudo: review: https://github.com/rakudo/rakudo/commit/79bec897f509:58
pmurias left10:36
pmurias joined10:38
p6bannerbot set mode: +v10:38
pmurias left10:39
pmurias joined10:42
p6bannerbot set mode: +v10:42
Ven` left10:48
lizmat bisectable6: dd sub (Str(Int) $a, Int $b ) { }.assuming(1).signature11:26
bisectable6 lizmat, On both starting points (old=2015.12 new=79bec89) the exit code is 0 and the output is identical as well11:26
lizmat, Output on both points: «:(Int $b)␤»11:26
Ven` joined11:29
lizmat bisectable6: dd sub (Str(Int) $a, Str(Int) $b ) { }.assuming(1).signature11:29
bisectable6 lizmat, On both starting points (old=2015.12 new=79bec89) the exit code is 0 and the output is identical as well11:29
lizmat, Output on both points: «:(Int $b)␤»11:29
lizmat that seems wrong to me :-)11:29
p6bannerbot set mode: +v11:30
leont joined11:32
p6bannerbot set mode: +v11:33
Geth ¦ rakudo: lizmat self-assigned Code.assuming doesn't honour coerce_type Parameters https://github.com/rakudo/rakudo/issues/242611:39
pmurias left11:44
pmurias joined11:45
p6bannerbot set mode: +v11:45
pmurias left11:47
pmurias joined11:50
p6bannerbot set mode: +v11:50
lizmat m: sub a (Str(Int) @a) { dd @a }; a Array[Int].new(1,2,3) # this is not what I expected12:00
camelia rakudo-moar 79bec897f: OUTPUT: «"1 2 3"␤»12:00
lizmat jnthn moritz masak ^^^ is that to be expected ?12:02
I sorta expected an array of strings with "1","2","3"12:02
perhaps we should disallow coercion on aggregate types? until we've figured out the semantics ?12:03
Zoffix joined12:05
p6bannerbot set mode: +v12:05
Zoffix lizmat: FWIW, I would've expected an Array parametarized with Str(Int) type, though I think that hits whatever limitation prevents `my Str(Int) $x` from working.12:05
lizmat: there's a ticket with a similar example: R#231912:05
synopsebot R#2319 [open] : https://github.com/rakudo/rakudo/issues/2319 Coercers as parameter parametarizers give wild results 12:05
Zoffix m: -> Int() @v { dd @v.^name }(Array[Any].new: 1, 2, 34, 6)12:06
camelia rakudo-moar 79bec897f: OUTPUT: «"Int"␤»12:06
Zoffix "an Array parametarized with".. I mean for the signature to only accept such an Array12:07
m: dd Array[Str(Int)].new12:07
camelia rakudo-moar 79bec897f: OUTPUT: «Array[Str(Int)].new()␤»12:07
Zoffix m: dd Array[Str(Int)].new: 42, 5512:08
camelia rakudo-moar 79bec897f: OUTPUT: «Type check failed in assignment to ; expected Str(Int) but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»12:08
Zoffix heh12:08
m: dd Array[Str(Any(Cool(IO(Array[Str(Any(Cool(IO(Int))))]))))].new: 42, 5512:09
camelia rakudo-moar 79bec897f: OUTPUT: «Type check failed in assignment to ; expected Str(Any(Cool(IO(Array[Str(Any(Cool(IO(Int))))])))) but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»12:09
Zoffix m: -> Str(Int(Cool)) $x { dd $x }(42)12:09
camelia rakudo-moar 79bec897f: OUTPUT: «Type check failed in binding to parameter '$x'; expected Int(Cool) but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»12:09
Zoffix Filed as R#242712:12
synopsebot R#2427 [open] : https://github.com/rakudo/rakudo/issues/2427 Nested Coercers 12:12
Zoffix left12:12
Geth ¦ rakudo: 97996e5e9a | (Elizabeth Mattijsen)++ | src/core/Code.pm612:29
¦ rakudo: Make sure coerce_type is included in param info 12:29
¦ rakudo:12:29
¦ rakudo: Fixes R#242612:29
¦ rakudo: review: https://github.com/rakudo/rakudo/commit/97996e5e9a12:29
synopsebot R#2426 [open] : https://github.com/rakudo/rakudo/issues/2426 Code.assuming doesn't honour coerce_type Parameters 12:29
pmurias left12:29
pmurias joined12:30
p6bannerbot set mode: +v12:30
Geth ¦ rakudo: lizmat self-unassigned Code.assuming doesn't honour coerce_type Parameters https://github.com/rakudo/rakudo/issues/242612:31
leont left12:59
Ven` left13:00
j3nnn1 joined13:07
p6bannerbot set mode: +v13:07
Ven` joined13:12
p6bannerbot set mode: +v13:12
jnthn lizmat: Forbidden for now, I think13:17
pmurias left13:24
leont joined13:34
p6bannerbot set mode: +v13:34
pmurias joined13:40
p6bannerbot set mode: +v13:40
lizmat left13:45
dogbert2_ jnthn: back from your trip?13:55
jnthn dogbert2_: Yeah...with a cold-ish thing :/14:00
pmurias m: multi y(int $x is rw) { say('good') }; multi y(Int $x) { say('bad') }; y(my int $x = 42);14:14
camelia rakudo-moar 97996e5e9: OUTPUT: «bad␤»14:14
pmurias jnthn: ^^ is this a bug?14:14
jnthn Looks like, yes14:14
pmurias m: multi y(int $x is rw) { 'good' }; multi y(Int $x) { 'bad' }; say "optimizer has different semantics:", y(my int $x = 42);14:15
camelia rakudo-moar 97996e5e9: OUTPUT: «optimizer has different semantics:good␤»14:15
jnthn The "optimizer" can settle literal allomorphy14:17
But in this case it's just a straight native reference and that should do the right thing at runtime14:17
I think we'll rename the optimize phase also14:18
Because it'll increasingly do spec things14:18
And the name should reflect that14:18
Optimizer implies it's entirely optional, which is the source of a lot of confusion.14:18
pmurias jnthn: if it starts doing spec things it should do them in consistent manner rather then based on adhocly gathered info ;)14:25
jnthn Please stop trying to have the same discussion 2000 times.14:28
timotimo we can call it the CHECKer, since it runs at check time ... or does it actually run earlier than that?14:28
i think CHECK is kind of like link time?14:28
jnthn It comes after CHECK14:29
Since CHECK is your last chance to do things before we make assumptions about things not changing.14:29
timotimo it's the baker14:29
pmurias left14:41
pmurias joined14:48
p6bannerbot set mode: +v14:48
pmurias left14:48
AlexDaniel left14:48
dogbert2_ jnthn: oops, cold-ish things are not very nice14:48
pmurias joined14:53
p6bannerbot set mode: +v14:53
pmurias left14:54
pmurias joined14:58
p6bannerbot set mode: +v14:58
pmurias left15:08
pmurias joined15:11
p6bannerbot set mode: +v15:11
pmurias left15:11
fake_space_whale joined15:16
pmurias joined15:16
p6bannerbot set mode: +v15:16
p6bannerbot set mode: +v15:16
robertle left15:29
pmurias jnthn: the problem is that nqp::isrwcont(nqp::captureposarg($capture, $index)) return 0 for a int lexicalref15:30
ExtraCrispy left15:33
jnthn Ah. That's wrong.15:36
Odd... https://github.com/MoarVM/MoarVM/blob/master/src/6model/containers.c#L35215:40
That looks correct15:40
timotimo perhaps the struct below is messed up in its order …15:41
easy to check with gdb15:41
yeah it's correct15:41
lizmat joined15:45
p6bannerbot set mode: +v15:45
pmurias left15:53
pmurias joined15:59
p6bannerbot set mode: +v15:59
pmurias left15:59
fake_space_whale left16:01
ggoebel joined16:02
p6bannerbot set mode: +v16:03
pmurias joined16:04
p6bannerbot set mode: +v16:04
ExtraCrispy joined16:04
p6bannerbot set mode: +v16:04
timotimo jnthn: i'm seeing that we're not setting rw_cont in the type tuple if we have a NativeRef ... is the distinction between a "scalar that's RW" and "a native ref" important?16:07
i stumbled across it because the decontrv for those still have an isrwcont op in them16:08
so we're not setting the RW_CONT fact in spesh for those cases16:08
jnthn timotimo: It should be set, but it exposes some other shortcomings that need to be addressed first.16:09
timotimo right, like we'd have the "is rw cont" flag set, but there wouldn't be a cont type vs decont type16:09
or rather, we don't have a way to signal "decont on this will box, if you don't want it, here's the op that you want instead"16:10
i've got a patch that will split a decont on a NativeRef into a decont_* plus a box_*16:10
that devirtualizes "what kind of object do we have, how do i properly unbox it" plus the creation of the box object is either split into a fastcreate and a sp_bind_*16:11
and that should allow for scalar replacement or box removal, too16:12
pmurias left16:12
timotimo i was considering maybe adding a spesh op that can add an i to an I - mostly just because you can swap the LHS and RHS of an add_I16:13
jnthn Ooh, yes :)16:13
(to the first opt)16:13
Not sure on the second one16:13
Though I guess maybe it makes ++ and -- cheaper16:13
timotimo it can improve our performance when we add an Int and an Int*Ref16:14
right now we're deconting the ref into a boxed object, then add_I (or whatever)16:15
we could skip that box16:15
jnthn True, but maybe SR will do that for us anyway16:15
timotimo that'd be cool.16:15
jnthn My plan is to try and let us store a P6bigint in a register (16:15
timotimo i have a snippet in front of me right now that looks like something we should totally be able to do either already or very soon16:15
jnthn Only spesh-done of course, not exposed16:16
timotimo sp_bind_s_nowb r9(5), liti16(32), r40(1)16:16
jnthn We need to be super careful not to leak though16:16
timotimo sp_p6oget_s r13(2), r9(5), liti16(8)16:16
aye, that'd be very bad news16:16
i'm not sure how the 8 and 32 correspond there, though16:16
jnthn Offset from start of object vs. offset from data part of a P6opaque16:17
pmurias joined16:17
p6bannerbot set mode: +v16:17
timotimo ooh16:18
one includes the header, then16:18
and the other might go through an indirection16:18
maybe this discussion ought to move to #moarvm16:19
AlexDaniel joined16:34
p6bannerbot set mode: +v16:34
cognominal-p6 left17:05
cognominal-p6 joined17:06
p6bannerbot set mode: +v17:07
robertle joined17:28
p6bannerbot set mode: +v17:29
[Tux] Rakudo version 2018.09-510-g97996e5e9 - MoarVM version 2018.09-139-g8b4d58c7a17:34
csv-test-xs-20 0.432 - 0.45417:34
test-t --race 0.833 - 0.83617:34
csv-ip5xs 0.902 - 0.91517:34
test-t 1.733 - 1.81117:34
csv-ip5xs-20 7.731 - 7.73117:34
test 8.897 - 9.35517:34
test-t-20 --race 11.829 - 12.35717:34
csv-parser 22.117 - 23.09017:34
test-t-20 30.355 - 33.18917:34
cognominal-p6 left17:41
Ven` left17:43
Kaiepi left17:44
Kaiepi joined17:45
p6bannerbot set mode: +v17:45
Ven` joined17:48
p6bannerbot set mode: +v17:49
Ven` left17:53
cognominal-p6 joined17:58
p6bannerbot set mode: +v17:58
cognominal-p6 left18:15
cognominal-p6 joined18:15
p6bannerbot set mode: +v18:16
AlexDaniel left19:18
Geth ¦ rakudo: 1ea3ff2fb2 | (Elizabeth Mattijsen)++ | src/core/Code.pm619:28
¦ rakudo: Remove a few unneccessary initializations 19:28
¦ rakudo:19:28
¦ rakudo: That are not yet picked up in codegen or by the static optimizer yet :-(19:28
¦ rakudo: review: https://github.com/rakudo/rakudo/commit/1ea3ff2fb219:28
ggoebel left19:41
ggoebel joined19:57
p6bannerbot set mode: +v19:58
AlexDaniel joined20:03
p6bannerbot set mode: +v20:03
lizmat jnthn: re 'my Str(Int) @a', perhaps we could allow that by adding another role that takes 2 types: the constraint and the coercion type20:04
the coercion type would be in the descriptor, and the whole type would be in the candidates ?20:05
m: role a[::T] { method a(T $a) { dd $a } }; dd a[Str(Int)].new.a(42) # perhaps more work is needed there :-)20:07
camelia rakudo-moar 1ea3ff2fb: OUTPUT: «Type check failed in binding to parameter '$a'; expected Str(Int) but got Int (42)␤ in method a at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»20:07
Kaiepi left20:49
Kaiepi joined20:49
p6bannerbot set mode: +v20:50
jnthn lizmat: It's more that we'd want to allow Array[Str(Int)] to exist in the first place20:55
lizmat: Which is a much more accessible task since the assignment refactors20:56
stmuk_ joined21:00
p6bannerbot set mode: +v21:01
stmuk left21:02
cognominal-p6 left21:07
cognominal-p6 joined21:27
p6bannerbot set mode: +v21:27
robertle left21:31
cognominal-p6 left21:42
cognominal-p6 joined21:43
p6bannerbot set mode: +v21:43
lizmat left21:46
pmurias left21:52
cognominal-p6 left22:08
donaldh left22:35
lizmat joined23:00
p6bannerbot set mode: +v23:00
lizmat left23:04
donaldh joined23:35
p6bannerbot set mode: +v23:35
cognominal-p6 joined23:40
p6bannerbot set mode: +v23:41
cognominal-p6 left23:51
cognominal-p6 joined23:51
p6bannerbot set mode: +v23:52

Logs Search ←Prev date Next date→ Channels Documentation