Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by Zoffix on 27 July 2018. |
|||||||||||||||||||||||||||||||||||||||
00:00
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke,
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
01:12
evalable6 left,
evalable6 joined,
ChanServ sets mode: +v evalable6
01:13
p6bannerbot sets mode: +v evalable6
01:25
ggoebel joined,
p6bannerbot sets mode: +v ggoebel
02:01
donaldh left,
donaldh_ joined
02:02
p6bannerbot sets mode: +v donaldh_
02:11
ufobat_ joined,
p6bannerbot sets mode: +v ufobat_
02:14
ufobat left
02:32
ggoebel left
02:49
fake_space_whale joined
02:50
p6bannerbot sets mode: +v fake_space_whale
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: jstuder-gh++ created pull request #2425: Fix potential race condition in Proc::Async start |
03:10 | |||||||||||||||||||||||||||||||||||||
04:58
Ven` joined
04:59
p6bannerbot sets mode: +v Ven`
05:02
Ven` left
06:19
MasterDuke left
06:32
robertle joined
06:33
p6bannerbot sets mode: +v robertle
06:36
[Tux] left
06:43
[Tux] joined
06:44
p6bannerbot sets mode: +v [Tux]
06:50
fake_space_whale left
|
|||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||
07:34
ufobat_ is now known as ufobat
08:05
Ven` joined
08:06
p6bannerbot sets mode: +v Ven`
08:35
dalek left
08:36
Geth left
08:47
donaldh_ left
08:49
donaldh joined,
pmurias left,
p6bannerbot sets mode: +v donaldh
08:55
pmurias joined,
p6bannerbot sets mode: +v pmurias
09:25
stmuk joined,
p6bannerbot sets mode: +v stmuk
09:26
p6lert left,
synopsebot left,
SourceBaby left,
dalek joined,
ChanServ sets mode: +v dalek
09:27
synopsebot joined,
Geth joined,
p6lert joined,
ChanServ sets mode: +v synopsebot,
ChanServ sets mode: +v Geth,
stmuk_ left,
p6bannerbot sets mode: +v dalek,
p6bannerbot sets mode: +v synopsebot,
p6bannerbot sets mode: +v Geth,
p6bannerbot sets mode: +v p6lert
09:46
ExtraCrispy joined,
p6bannerbot sets mode: +v ExtraCrispy
09:55
SourceBaby joined,
ChanServ sets mode: +v SourceBaby,
p6bannerbot sets mode: +v SourceBaby
09:57
Geth left,
Geth joined,
ChanServ sets mode: +v Geth
09:58
p6bannerbot sets mode: +v Geth
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 79bec897f5 | (Zoffix Znet)++ | appveyor.yml Revert to non-verbose nmake test No idea how to get the prove command to work right on appveyor |
09:58 | |||||||||||||||||||||||||||||||||||||
10:36
pmurias left
10:38
pmurias joined,
p6bannerbot sets mode: +v pmurias
10:39
pmurias left
10:42
pmurias joined,
p6bannerbot sets mode: +v pmurias
10:48
Ven` left
|
|||||||||||||||||||||||||||||||||||||||
lizmat | bisectable6: dd sub (Str(Int) $a, Int $b ) { }.assuming(1).signature | 11:26 | |||||||||||||||||||||||||||||||||||||
bisectable6 | lizmat, On both starting points (old=2015.12 new=79bec89) the exit code is 0 and the output is identical as well | ||||||||||||||||||||||||||||||||||||||
lizmat, Output on both points: «:(Int $b)» | |||||||||||||||||||||||||||||||||||||||
11:29
Ven` joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | bisectable6: dd sub (Str(Int) $a, Str(Int) $b ) { }.assuming(1).signature | 11:29 | |||||||||||||||||||||||||||||||||||||
bisectable6 | lizmat, On both starting points (old=2015.12 new=79bec89) the exit code is 0 and the output is identical as well | ||||||||||||||||||||||||||||||||||||||
lizmat, Output on both points: «:(Int $b)» | |||||||||||||||||||||||||||||||||||||||
lizmat | that seems wrong to me :-) | ||||||||||||||||||||||||||||||||||||||
11:30
p6bannerbot sets mode: +v Ven`
11:32
leont joined
11:33
p6bannerbot sets mode: +v leont
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: lizmat self-assigned Code.assuming doesn't honour coerce_type Parameters github.com/rakudo/rakudo/issues/2426 97996e5e9a | (Elizabeth Mattijsen)++ | src/core/Code.pm6 Fixes R#2426 |
11:39 | |||||||||||||||||||||||||||||||||||||
11:44
pmurias left
11:45
pmurias joined,
p6bannerbot sets mode: +v pmurias
11:47
pmurias left
11:50
pmurias joined,
p6bannerbot sets mode: +v pmurias
|
|||||||||||||||||||||||||||||||||||||||
lizmat | m: sub a (Str(Int) @a) { dd @a }; a Array[Int].new(1,2,3) # this is not what I expected | 12:00 | |||||||||||||||||||||||||||||||||||||
camelia | "1 2 3" | ||||||||||||||||||||||||||||||||||||||
lizmat | jnthn moritz masak ^^^ is that to be expected ? | 12:02 | |||||||||||||||||||||||||||||||||||||
I sorta expected an array of strings with "1","2","3" | |||||||||||||||||||||||||||||||||||||||
perhaps we should disallow coercion on aggregate types? until we've figured out the semantics ? | 12:03 | ||||||||||||||||||||||||||||||||||||||
12:05
Zoffix joined,
p6bannerbot sets mode: +v Zoffix
|
|||||||||||||||||||||||||||||||||||||||
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#2319 | |||||||||||||||||||||||||||||||||||||||
synopsebot | R#2319 [open]: github.com/rakudo/rakudo/issues/2319 Coercers as parameter parametarizers give wild results | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: -> Int() @v { dd @v.^name }(Array[Any].new: 1, 2, 34, 6) | 12:06 | |||||||||||||||||||||||||||||||||||||
camelia | "Int" | ||||||||||||||||||||||||||||||||||||||
Zoffix | "an Array parametarized with".. I mean for the signature to only accept such an Array | 12:07 | |||||||||||||||||||||||||||||||||||||
m: dd Array[Str(Int)].new | |||||||||||||||||||||||||||||||||||||||
camelia | Array[Str(Int)].new() | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: dd Array[Str(Int)].new: 42, 55 | 12:08 | |||||||||||||||||||||||||||||||||||||
camelia | Type check failed in assignment to ; expected Str(Int) but got Int (42) in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
Zoffix | heh | ||||||||||||||||||||||||||||||||||||||
m: dd Array[Str(Any(Cool(IO(Array[Str(Any(Cool(IO(Int))))]))))].new: 42, 55 | 12:09 | ||||||||||||||||||||||||||||||||||||||
camelia | 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 |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: -> Str(Int(Cool)) $x { dd $x }(42) | ||||||||||||||||||||||||||||||||||||||
camelia | Type check failed in binding to parameter '$x'; expected Int(Cool) but got Int (42) in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
Zoffix | Filed as R#2427 | 12:12 | |||||||||||||||||||||||||||||||||||||
synopsebot | R#2427 [open]: github.com/rakudo/rakudo/issues/2427 Nested Coercers | ||||||||||||||||||||||||||||||||||||||
12:12
Zoffix left
|
|||||||||||||||||||||||||||||||||||||||
synopsebot | R#2426 [open]: github.com/rakudo/rakudo/issues/2426 Code.assuming doesn't honour coerce_type Parameters | ||||||||||||||||||||||||||||||||||||||
12:29
pmurias left
12:30
pmurias joined,
p6bannerbot sets mode: +v pmurias
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: lizmat self-unassigned Code.assuming doesn't honour coerce_type Parameters github.com/rakudo/rakudo/issues/2426 1ea3ff2fb2 | (Elizabeth Mattijsen)++ | src/core/Code.pm6 That are not yet picked up in codegen or by the static optimizer yet :-( |
12:31 | |||||||||||||||||||||||||||||||||||||
12:59
leont left
13:00
Ven` left
13:07
j3nnn1 joined,
p6bannerbot sets mode: +v j3nnn1
13:12
Ven` joined,
p6bannerbot sets mode: +v Ven`
|
|||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: Forbidden for now, I think | 13:17 | |||||||||||||||||||||||||||||||||||||
13:24
pmurias left
13:34
leont joined,
p6bannerbot sets mode: +v leont
13:40
pmurias joined,
p6bannerbot sets mode: +v pmurias
13:45
lizmat left
|
|||||||||||||||||||||||||||||||||||||||
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 | bad | ||||||||||||||||||||||||||||||||||||||
pmurias | jnthn: ^^ is this a bug? | ||||||||||||||||||||||||||||||||||||||
jnthn | Looks like, yes | ||||||||||||||||||||||||||||||||||||||
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 | optimizer has different semantics:good | ||||||||||||||||||||||||||||||||||||||
jnthn | The "optimizer" can settle literal allomorphy | 14:17 | |||||||||||||||||||||||||||||||||||||
But in this case it's just a straight native reference and that should do the right thing at runtime | |||||||||||||||||||||||||||||||||||||||
I think we'll rename the optimize phase also | 14:18 | ||||||||||||||||||||||||||||||||||||||
Because it'll increasingly do spec things | |||||||||||||||||||||||||||||||||||||||
And the name should reflect that | |||||||||||||||||||||||||||||||||||||||
Optimizer implies it's entirely optional, which is the source of a lot of confusion. | |||||||||||||||||||||||||||||||||||||||
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? | ||||||||||||||||||||||||||||||||||||||
i think CHECK is kind of like link time? | |||||||||||||||||||||||||||||||||||||||
jnthn | It comes after CHECK | 14:29 | |||||||||||||||||||||||||||||||||||||
Since CHECK is your last chance to do things before we make assumptions about things not changing. | |||||||||||||||||||||||||||||||||||||||
timotimo | it's the baker | ||||||||||||||||||||||||||||||||||||||
14:41
pmurias left
14:48
pmurias joined,
p6bannerbot sets mode: +v pmurias,
pmurias left,
AlexDaniel left
|
|||||||||||||||||||||||||||||||||||||||
dogbert2_ | jnthn: oops, cold-ish things are not very nice | 14:48 | |||||||||||||||||||||||||||||||||||||
14:53
pmurias joined,
p6bannerbot sets mode: +v pmurias
14:54
pmurias left
14:58
pmurias joined,
p6bannerbot sets mode: +v pmurias
15:08
pmurias left
15:11
pmurias joined,
p6bannerbot sets mode: +v pmurias,
pmurias left
15:16
fake_space_whale joined,
pmurias joined,
p6bannerbot sets mode: +v pmurias,
p6bannerbot sets mode: +v fake_space_whale
15:29
robertle left
|
|||||||||||||||||||||||||||||||||||||||
pmurias | jnthn: the problem is that nqp::isrwcont(nqp::captureposarg($capture, $index)) return 0 for a int lexicalref | 15:30 | |||||||||||||||||||||||||||||||||||||
15:33
ExtraCrispy left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | Ah. That's wrong. | 15:36 | |||||||||||||||||||||||||||||||||||||
Odd... github.com/MoarVM/MoarVM/blob/mast...ers.c#L352 | 15:40 | ||||||||||||||||||||||||||||||||||||||
That looks correct | |||||||||||||||||||||||||||||||||||||||
timotimo | perhaps the struct below is messed up in its order … | 15:41 | |||||||||||||||||||||||||||||||||||||
easy to check with gdb | |||||||||||||||||||||||||||||||||||||||
yeah it's correct | |||||||||||||||||||||||||||||||||||||||
15:45
lizmat joined,
p6bannerbot sets mode: +v lizmat
15:53
pmurias left
15:59
pmurias joined,
p6bannerbot sets mode: +v pmurias,
pmurias left
16:01
fake_space_whale left
16:02
ggoebel joined
16:03
p6bannerbot sets mode: +v ggoebel
16:04
pmurias joined,
p6bannerbot sets mode: +v pmurias,
ExtraCrispy joined,
p6bannerbot sets mode: +v ExtraCrispy
|
|||||||||||||||||||||||||||||||||||||||
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 them | 16:08 | ||||||||||||||||||||||||||||||||||||||
so we're not setting the RW_CONT fact in spesh for those cases | |||||||||||||||||||||||||||||||||||||||
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 type | ||||||||||||||||||||||||||||||||||||||
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_* | |||||||||||||||||||||||||||||||||||||||
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, too | 16:12 | ||||||||||||||||||||||||||||||||||||||
16:12
pmurias left
|
|||||||||||||||||||||||||||||||||||||||
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_I | 16:13 | |||||||||||||||||||||||||||||||||||||
jnthn | Ooh, yes :) | ||||||||||||||||||||||||||||||||||||||
(to the first opt) | |||||||||||||||||||||||||||||||||||||||
Not sure on the second one | |||||||||||||||||||||||||||||||||||||||
Though I guess maybe it makes ++ and -- cheaper | |||||||||||||||||||||||||||||||||||||||
timotimo | it can improve our performance when we add an Int and an Int*Ref | 16:14 | |||||||||||||||||||||||||||||||||||||
right now we're deconting the ref into a boxed object, then add_I (or whatever) | 16:15 | ||||||||||||||||||||||||||||||||||||||
we could skip that box | |||||||||||||||||||||||||||||||||||||||
jnthn | True, but maybe SR will do that for us anyway | ||||||||||||||||||||||||||||||||||||||
timotimo | that'd be cool. | ||||||||||||||||||||||||||||||||||||||
jnthn | My plan is to try and let us store a P6bigint in a register ( | ||||||||||||||||||||||||||||||||||||||
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 soon | ||||||||||||||||||||||||||||||||||||||
jnthn | Only spesh-done of course, not exposed | 16:16 | |||||||||||||||||||||||||||||||||||||
timotimo | sp_bind_s_nowb r9(5), liti16(32), r40(1) | ||||||||||||||||||||||||||||||||||||||
jnthn | We need to be super careful not to leak though | ||||||||||||||||||||||||||||||||||||||
timotimo | sp_p6oget_s r13(2), r9(5), liti16(8) | ||||||||||||||||||||||||||||||||||||||
aye, that'd be very bad news | |||||||||||||||||||||||||||||||||||||||
i'm not sure how the 8 and 32 correspond there, though | |||||||||||||||||||||||||||||||||||||||
jnthn | Offset from start of object vs. offset from data part of a P6opaque | 16:17 | |||||||||||||||||||||||||||||||||||||
16:17
pmurias joined,
p6bannerbot sets mode: +v pmurias
|
|||||||||||||||||||||||||||||||||||||||
timotimo | ooh | 16:18 | |||||||||||||||||||||||||||||||||||||
one includes the header, then | |||||||||||||||||||||||||||||||||||||||
and the other might go through an indirection | |||||||||||||||||||||||||||||||||||||||
maybe this discussion ought to move to #moarvm | 16:19 | ||||||||||||||||||||||||||||||||||||||
16:34
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
17:05
cognominal-p6 left
17:06
cognominal-p6 joined
17:07
p6bannerbot sets mode: +v cognominal-p6
17:28
robertle joined
17:29
p6bannerbot sets mode: +v robertle
|
|||||||||||||||||||||||||||||||||||||||
[Tux] |
|
17:34 | |||||||||||||||||||||||||||||||||||||
17:41
cognominal-p6 left
17:43
Ven` left
17:44
Kaiepi left
17:45
Kaiepi joined,
p6bannerbot sets mode: +v Kaiepi
17:48
Ven` joined
17:49
p6bannerbot sets mode: +v Ven`
17:53
Ven` left
17:58
cognominal-p6 joined,
p6bannerbot sets mode: +v cognominal-p6
18:15
cognominal-p6 left,
cognominal-p6 joined
18:16
p6bannerbot sets mode: +v cognominal-p6
19:18
AlexDaniel left
|
|||||||||||||||||||||||||||||||||||||||
19:41
ggoebel left
19:57
ggoebel joined
19:58
p6bannerbot sets mode: +v ggoebel
20:03
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
|
|||||||||||||||||||||||||||||||||||||||
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 type | 20: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 | 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:49
Kaiepi left,
Kaiepi joined
20:50
p6bannerbot sets mode: +v Kaiepi
|
|||||||||||||||||||||||||||||||||||||||
jnthn | lizmat: It's more that we'd want to allow Array[Str(Int)] to exist in the first place | 20:55 | |||||||||||||||||||||||||||||||||||||
lizmat: Which is a much more accessible task since the assignment refactors | 20:56 | ||||||||||||||||||||||||||||||||||||||
21:00
stmuk_ joined
21:01
p6bannerbot sets mode: +v stmuk_
21:02
stmuk left
21:07
cognominal-p6 left
21:27
cognominal-p6 joined,
p6bannerbot sets mode: +v cognominal-p6
21:31
robertle left
21:42
cognominal-p6 left
21:43
cognominal-p6 joined,
p6bannerbot sets mode: +v cognominal-p6
21:46
lizmat left
21:52
pmurias left
22:08
cognominal-p6 left
22:35
donaldh left
23:00
lizmat joined,
p6bannerbot sets mode: +v lizmat
23:04
lizmat left
23:35
donaldh joined,
p6bannerbot sets mode: +v donaldh
23:40
cognominal-p6 joined
23:41
p6bannerbot sets mode: +v cognominal-p6
23:51
cognominal-p6 left,
cognominal-p6 joined
23:52
p6bannerbot sets mode: +v cognominal-p6
|