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:01 cog left 00:04 j3nnn1 left 00:41 Kaiepi left 02:53 Kaiepi joined 02:54 p6bannerbot sets mode: +v Kaiepi 03:15 ufobat___ joined 03:16 p6bannerbot sets mode: +v ufobat___ 03:19 ufobat_ left 03:34 delon left 05:16 delon joined 05:17 p6bannerbot sets mode: +v delon 06:08 Kaiepi left 06:20 lizmat left 06:24 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi 07:36 robertle joined 07:37 p6bannerbot sets mode: +v robertle 07:41 dct joined, p6bannerbot sets mode: +v dct 07:47 dct left 10:45 Kaypie joined, Kaiepi left 10:46 p6bannerbot sets mode: +v Kaypie 11:00 lizmat joined, p6bannerbot sets mode: +v lizmat
lizmat Files=1255, Tests=76374, 345 wallclock secs (15.88 usr 5.39 sys + 2443.61 cusr 228.74 csys = 2693.62 CPU) 11:06
11:07 ExtraCrispy left 11:08 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 12:27 nebuchadnezzar left, nebuchadnezzar joined 12:28 p6bannerbot sets mode: +v nebuchadnezzar 12:36 shareable6 left, shareable6 joined, ChanServ sets mode: +v shareable6 12:37 p6bannerbot sets mode: +v shareable6 12:47 lucasb joined 12:48 p6bannerbot sets mode: +v lucasb 12:56 dogbert17 joined, p6bannerbot sets mode: +v dogbert17 13:14 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix .tell AlexDaniel I think 6lang.party domain has expired and it should be removed from your list. I believe SSL on the rest of my domains has now been fixed. 13:14
yoleaux Zoffix: I'll pass your message to AlexDaniel.
13:14 ZofBot joined, ChanServ sets mode: +v ZofBot, p6bannerbot sets mode: +v ZofBot
dogbert17 yay Zoffix 13:15
13:18 dalek left, dalek joined, ChanServ sets mode: +v dalek 13:19 p6bannerbot sets mode: +v dalek
Zoffix AlexDaniel: and missing bots are now online. 13:19
13:19 Zoffix left
AlexDaniel Zoffix: thanks! Yeah, already removed it from the list. Yeah, hack was hanging again and timo helped. 13:22
yoleaux 13:14Z <Zoffix> AlexDaniel: I think 6lang.party domain has expired and it should be removed from your list. I believe SSL on the rest of my domains has now been fixed.
AlexDaniel Zoffix: sorry for interrupting you from your well deserved break!
|Tux| Rakudo version 2018.10-125-gfa5215b61 - MoarVM version 2018.10-77-g6236eb5de
csv-ip5xs0.890 - 0.932
csv-ip5xs-206.904 - 6.932
csv-parser21.315 - 21.711
csv-test-xs-200.424 - 0.430
test7.889 - 9.206
test-t1.781 - 1.787
test-t --race0.848 - 0.900
test-t-2029.978 - 31.896
test-t-20 --race10.070 - 10.224
13:23
masak [Tux]++ # been a while since I caught one of those 14:09
(which, I'm sure, is mostly a statement about my attention) 14:16
lizmat m: Mu<> *snif* 14:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3Mu<> *snif*7ā5<EOL>
expecting any of:
prefix
term
lizmat m: Mu<> # *snif*
camelia Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu)
in block <unit> at <tmp> line 1
lizmat so I wonder if using <> to decont is a side effect of the hash-slice mechanics ?
because that fail is because of a bind failure on the postcircumfix proto 14:30
Geth_ Ā¦ rakudo: AlexDaniel self-unassigned Revisit bug compatibility unfix for returning Proxy github.com/rakudo/rakudo/issues/2113
timotimo in implementation, maybe, but .<> is definitely meant to only decont 14:32
14:49 MasterDuke left
dogbert17 .seen AlexDaniel 15:29
yoleaux I saw AlexDaniel 14:40Z in #perl6: <AlexDaniel> yes :D
AlexDaniel . 15:30
AlexDaniel waves
:) 15:31
dogbert17: what did you find again?
dogbert17 what makes you suspect I found something :-)
AlexDaniel I've seen ā€œ<dogbert17> .seen AlexDanielā€ before 15:32
dogbert17 well, it was actually MasterDuke but I have a smaller version that can possibly be bisected by an expert
AlexDaniel hey bisectable6, you're an expert, bisect it please!
dogbert17 this one: MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 ./perl6 -e 'use Test; lives-ok { $*USER.gist; $*USER.WHAT.gist; }, ".WHAT on $*USER after using $*USER values lives";'
AlexDaniel c: MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 6c use Test; lives-ok { $*USER.gist; $*USER.WHAT.gist; }, ".WHAT on $*USER after using $*USER values lives";
dogbert17 same error message as github.com/MoarVM/MoarVM/issues/992 15:33
I suspect it's less than a month old
committable6 AlexDaniel, gist.github.com/71b25915be1ae02bf9...afd0733b1a
AlexDaniel uh hold onā€¦
m: say 42
camelia 42
AlexDaniel e: say 42 15:34
evalable6 Cannot test fa5215b61b8e0e35a2a64d6231b3af118dc52903 (Commit exists, but a perl6 executable could not be built for it)
AlexDaniel c: MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 2018.10,HEAD^ use Test; lives-ok { $*USER.gist; $*USER.WHAT.gist; }, ".WHAT on $*USER after using $*USER values lives";
committable6 AlexDaniel, Ā¦2018.10,HEAD^: Ā«ok 1 - .WHAT on bisectable after using bisectable values livesā¤Ā»
AlexDaniel dogbert17: hmmm what error message ar we talking about? 15:35
Geth_ rakudo/more-local-lowering: 10 commits pushed by (Jonathan Worthington)++
review: github.com/rakudo/rakudo/compare/0...d2ee72330b
AlexDaniel how reliable is it?
dogbert17 AlexDaniel: do you see the error on your own system?
very
AlexDaniel hm ok yes I see something
c: MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 2018.10,cbbe16edd,HEAD^ use Test; lives-ok { $*USER.gist; $*USER.WHAT.gist; }, ".WHAT on $*USER after using $*USER values lives"; 15:36
dogbert17 hooray :-)
committable6 AlexDaniel, Ā¦2018.10,HEAD^: Ā«ok 1 - .WHAT on bisectable after using bisectable values livesā¤Ā» Ā¦cbbe16e: Ā«Cannot test this commit (Commit exists, but a perl6 executable could not be built for it)Ā»
AlexDaniel c: HEAD say 42 15:37
committable6 AlexDaniel, Ā¦HEAD(fa5215b): Ā«No build for this commitĀ»
AlexDaniel c: HEAD^ say 42
committable6 AlexDaniel, Ā¦HEAD^: Ā«42ā¤Ā»
AlexDaniel c: HEAD^^ say 42
committable6 AlexDaniel, Ā¦HEAD^^: Ā«Cannot test this commit (Commit exists, but a perl6 executable could not be built for it)Ā»
AlexDaniel shareable6: HEAD^^
shareable6 AlexDaniel, whateverable.6lang.org/HEAD^^
dogbert17 are the bots making a fiss?
*fuss
AlexDaniel Stage mast : make: *** [CORE.setting.moarvm] Killed 15:38
dogbert17 cool
AlexDaniel I think the server has no free memoryā€¦
greppable6: uptime
greppable6 AlexDaniel, 2 weeks, 6 days, 18 hours, 41 minutes, and 14 seconds, 730.023438MiB maxrss. This is Rakudo version 2018.06-454-gfd6f512be built on MoarVM version 2018.06-428-g727767006 implementing Perl 6.c.
15:38 greppable6 left
dogbert17 has one of the bots stolen it all 15:39
15:39 greppable6 joined
AlexDaniel greppable6: uptime 15:39
argh
15:39 greppable6 left, greppable6 joined, ChanServ sets mode: +v greppable6
AlexDaniel dogbert17: I think all of them are leaking a little bit 15:39
greppable6: uptime
greppable6 AlexDaniel, 23 seconds, 181.648438MiB maxrss. This is Rakudo version 2018.06-454-gfd6f512be built on MoarVM version 2018.06-428-g727767006 implementing Perl 6.c.
AlexDaniel see?
15:39 p6bannerbot sets mode: +v greppable6 15:40 undersightable6 left, releasable6 left, bisectable6 left, squashable6 left, notable6 left, statisfiable6 left, bloatable6 left, p6bannerbot sets mode: +v greppable6, unicodable6 left, undersightable6 joined, releasable6 joined, benchable6 left, coverable6 left, bisectable6 joined, ChanServ sets mode: +v bisectable6, quotable6 left, notable6 joined, squashable6 joined, ChanServ sets mode: +v notable6, ChanServ sets mode: +v squashable6, committable6 left, shareable6 left, notable6 left, squashable6 left, bisectable6 left, greppable6 left, evalable6 left, nativecallable6 left, committable6 joined, shareable6 joined
AlexDaniel I guess I need to restart them a bit more ofā€¦ 15:40
15:41 p6bannerbot sets mode: +v undersightable6, p6bannerbot sets mode: +v releasable6
dogbert17 I thought most of the memory problems had been dealt with 15:41
15:41 p6bannerbot sets mode: +v committable6, p6bannerbot sets mode: +v shareable6
AlexDaniel yeah but we haven't seen 2+ weeks of uptime back then 15:42
it was reproducible in like days, not weeks
dogbert17 so the remaining ones will be trickier to find
15:43 evalable6 joined, nativecallable6 joined, ChanServ sets mode: +v evalable6, ChanServ sets mode: +v nativecallable6, greppable6 joined, notable6 joined, quotable6 joined, ChanServ sets mode: +v greppable6, ChanServ sets mode: +v notable6, ChanServ sets mode: +v quotable6 15:44 p6bannerbot sets mode: +v evalable6, p6bannerbot sets mode: +v nativecallable6, p6bannerbot sets mode: +v greppable6, p6bannerbot sets mode: +v notable6, p6bannerbot sets mode: +v quotable6 15:46 bisectable6 joined 15:47 p6bannerbot sets mode: +v bisectable6
AlexDaniel shareable6: HEAD 15:47
shareable6 AlexDaniel, whateverable.6lang.org/HEAD
AlexDaniel oops
c: HEAD say 42
committable6 AlexDaniel, Ā¦HEAD(fa5215b): Ā«42ā¤Ā»
AlexDaniel c: MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 2018.10,cbbe16edd,HEAD use Test; lives-ok { $*USER.gist; $*USER.WHAT.gist; }, ".WHAT on $*USER after using $*USER values lives";
committable6 AlexDaniel, Ā¦2018.10,cbbe16e,HEAD(fa5215b): Ā«ok 1 - .WHAT on bisectable after using bisectable values livesā¤Ā»
AlexDaniel dogbert17: :S 15:48
did somebody want to implement a tool for bisecting locally?
:)
dogbert17 so the bots don't want to play ball
could it be that they're no seeing the flags 15:49
*not
AlexDaniel c: 2018.10,cbbe16edd,HEAD %*ENV<MVM_SPESH_NODELAY>=1; %*ENV<MVM_SPESH_BLOCKING>=1; run <perl6 -e>, ā€˜use Test; lives-ok { $*USER.gist; $*USER.WHAT.gist; }, ".WHAT on $*USER after using $*USER values lives";ā€™
committable6 AlexDaniel, Ā¦2018.10,cbbe16e,HEAD(fa5215b): Ā«ok 1 - .WHAT on bisectable after using bisectable values livesā¤Ā» 15:50
AlexDaniel I'm pretty sure the flags are thereā€¦ something else is different
dogbert17 any idea what that might be 15:51
AlexDaniel OK let me build that tool that bisects locally :D 15:57
gonna take like 20 minutes maybe
lizmat m: dd {a => 42} <<+>> {b => 666} # keys don't match, so an empty hash 15:58
camelia Hash element = {}
lizmat m: dd a => 42 <<+>> b => 666 # the same with Pairs, that are also Associative 15:59
camelia Cannot modify an immutable Pair (Nil => Nil)
in block <unit> at <tmp> line 1
lizmat so, what *should* that give? Nil ?
Empty ?
jnthn Not sure; I was actually a tad surprised that non-matching keys were dropped, though that one can be argued a few ways I guess 16:08
lizmat well, the whole meta-ops on Associatives is a bit wonky 16:09
I had to add error checking for the Associative / Iterable case 16:10
as that can never work reliably because of the indeterminate order of keys
jnthn *nod* 16:11
AlexDaniel dogbert17: First new commmit: [bb43acdb75f3ab7ed0bba22c1102fe254788db9d 09cceb9826a8b20e7492ae79b5bdd6dede6881e6 656a80457c15720b746157ee049eb9c699915ae7 f8be2fa0671a27adc078cde82e355cbb6564e26a 6aafe18d5544f9fbc9f75b6cc5a9f85d5d1fe7b2 edc4c0547fb5c8bd7361aca06c2c34ae15a80ac6] 16:13
dogbert17: bisect log: gist.github.com/AlexDaniel/1cceafe...7a690a595c 16:14
dogbert17: but can you try it yourself? gist.github.com/AlexDaniel/88b38af...3df31dd431 16:15
I'm intersted to know if it works for others
dogbert17 takes a quick look at the commits 16:16
16:16 robertle left
AlexDaniel also, for others, with that gist ā†‘ you can bisect locally or run code on arbitrary rakudo commits 16:17
only if you're on linux though
dogbert17 will have to try that out 16:18
so nine and/or brrt should possibly take a look at this problem then 16:19
SmokeMachine how can I create a "real" control exception?
m: class CX::Bla is X::Control {}; CONTROL { when CX::Bla { say "control"} }; CATCH { when CX::Bla { say "catch" }}; CX::Bla.new.throw # shouldn't be control? 16:20
camelia catch
jnthn SmokeMachine: There's no way to do that as of yet; they're tied pretty close to the runtime (which mostly throws them in terms of numeric codes, and only creates the CX::Blah if forced to by a CONTROL block) 16:21
AlexDaniel dogbert17: ticket it, also let me know if the gist works 16:23
SmokeMachine jnthn: sorry, I haven't get it... what do you mean with `and only creates the CX::Blah if forced to by a CONTROL block`? 16:25
gotten
dogbert17 AlexDaniel: we have MasterDuke's ticket which, almost certainly, is the same problem
I can update it unless you beat me to it :-) 16:26
AlexDaniel: installing Whateverable isn't easy
===> Testing: Pastebin::Gist:ver<1.004002> 16:27
jnthn SmokeMachine: Control exceptions don't work internally using exception objects.
dogbert17 No such method 'add-content' for invocant of type 'HTTP::Request'
SmokeMachine jnthn: would you advise me to just use normal exceptions and catch?
jnthn SmokeMachine: Yes; there's no way to create additional control exceptions at this time (I was probably the last person who added them, and it was some years ago, and it involves changes across the whole compiler/backend stack) 16:28
SmokeMachine jnthn: Now I got what you meant! the CX object is created once CONTROL finds that should exists, that's it? 16:29
jnthn SmokeMachine: Yes, exactly that :) 16:30
SmokeMachine jnthn: thanks!
jnthn: last question: would i have any problem if i continue calling my exceptions (that should be control exception) CX:: and extending X::Control? 16:31
but using CATCH
I think that way would be easier to "see" my intent... 16:32
jnthn SmokeMachine: I'd prefer not; it'd probably be good in the future to make subclassing X::Control the way you do create a control exception, but if we have a bunch of modules that have already done that then we will probably be stuck and have to find a different way. 16:34
16:34 Kaypie left, Kaypie joined
dogbert17 AlexDaniel: updated github.com/MoarVM/MoarVM/issues/992 16:35
SmokeMachine jnthn: and if I subclass X::Control, use CATCH and CONTROL? so, when its implemented, it wouldn't be a problem for my modules...
16:35 p6bannerbot sets mode: +v Kaypie
jnthn SmokeMachine: Yeah, that'd probably mean we get away with it :) 16:36
SmokeMachine jnthn: OK! ill do that way! thanks! 16:37
AlexDaniel dogbert17: hmmm interesting, try with --/test ? 16:38
not sure what's up with that add-content thingie
16:40 benchable6 joined, squashable6 joined, ChanServ sets mode: +v squashable6 16:41 coverable6 joined, ChanServ sets mode: +v coverable6, unicodable6 joined, ChanServ sets mode: +v unicodable6, statisfiable6 joined, bloatable6 joined, ChanServ sets mode: +v bloatable6, p6bannerbot sets mode: +v benchable6, p6bannerbot sets mode: +v squashable6, p6bannerbot sets mode: +v coverable6, p6bannerbot sets mode: +v unicodable6, p6bannerbot sets mode: +v statisfiable6 16:42 p6bannerbot sets mode: +v bloatable6
Geth_ rakudo/more-local-lowering: 9f59873068 | (Jonathan Worthington)++ | src/Perl6/Optimizer.nqp
Emit create and attribute setup code for lowereds

Rather than just a `clone`. This means that they will be possible for the escape analyzer to understand and work with (though at the moment any useful results of this are blocked by missing deopt hanlding).
17:14
rakudo: d5a751d94e | (Elizabeth Mattijsen)++ | src/core/Hyper.pm6
Fix typo to make object hashes work in hyperops
17:42
lizmat m: dd :{ a => 42 } <<+>> :{ a => 666 } 17:43
camelia Cannot resolve caller infix(Hyper: Int, Mu); none of these signatures match:
(Hyper: \left, \right, *%_)
(Hyper: Associative:D \left, Associative:D \right, *%_ --> Associative:D)
(Hyper: Associative:D \left, Iterable:D \right, *%_)ā€¦
lizmat fixes that ^^^
mst 's eyes cross 17:50
nine dogbert17: if my assessment is correct, bisecting will not actually help with fixing the issue because the issue has been there all along but just been dormant. 18:34
AlexDaniel nine: not sure if you backlogged far enough, but it was bisected: colabti.org/irclogger/irclogger_lo...11-13#l225 18:35
though you are probably right, yea 18:36
nine AlexDaniel: I don't have the slightest idea how any of those commits could cause anything. They're really just removing code. What I think happens it that the removal allows for more inlining/JIT compilation and thus exposes the architectural error in the JIT. 18:37
I think, we're simply trying to JIT compile code while the VM is shutting down. That would at least explain why the error happens right at the end and goes away with MVM_SPESH_BLOCKING=1
AlexDaniel nine: btw that issue can't be reproduced on whateverable server, and currently I don't have any guess on why it is so 18:39
hmmmmm 18:46
it's also possible that it failed to build rakudo on these commits because of memory issues, I'll try it againā€¦ 18:48
though it ends with a bump so maybe not
dogbert17 nine: perhaps I should ask brrt if he has any ideas
the example AlexDaniel bisected had MVM_SPESH_BLOCKING=1 (and MVM_SPESH_NODELAY=1) 18:50
AlexDaniel dogbert17: soooā€¦ any luck running it yourself? 19:05
19:10 ExtraCrispy left 19:11 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 19:29 robertle joined, p6bannerbot sets mode: +v robertle
dogbert17 AlexDaniel: let me try again ... 19:34
lizmat ok, looking at dispatch issues in Hyper 19:37
adding candidates for Pair / Pair
suddenly Iterable / Iterable is serving the Associative / Associative case
so I think: maybe if Pair wouldn't be Associative, things could work
then the building of the setting dies with: 19:38
Can't serialize an object of type Pair
in the install phase
isn't that, eh, weird ?
dogbert17 AlexDaniel: it worked 19:42
AlexDaniel \o/ 19:43
lizmat ah,... it's JSON complaining, not MAST 19:45
AlexDaniel dogbert17: there are probably many good things one can use this for
dogbert17: also see this: github.com/perl6/whateverable/blob...on.pm6#L32 19:46
you can provide custom code or other logic to drive the bisection process
dogbert17 interesting 19:47
19:51 j3nnn1 joined, p6bannerbot sets mode: +v j3nnn1
lizmat m: class A { multi method a(Pair:D, Pair:D) { Pair }; multi method a(Associative:D, Associative:D) { Associative }; multi method a(Iterable:D, Iterable:D) { Iterable } }; dd A.a( { a => 42 }, { b => 62 } ) 20:02
camelia Iterable
lizmat I would have expected Associative here ^^^
jnthn: any ideas ?
m: class A { multi method a(Pair, Pair) { Pair }; multi method a(Associative, Associative) { Associative }; multi method a(Iterable, Iterable) { Iterable } }; dd A.a( Hash, Hash ) # golfed 20:04
camelia Iterable
lizmat when I remove the Pair Pair candidate: 20:05
m: class A { multi method a(Associative, Associative) { Associative }; multi method a(Iterable, Iterable) { Iterable } }; dd A.a( Hash, Hash )
camelia Ambiguous call to 'a(A: Hash, Hash)'; these signatures all match:
:(A: Associative $, Associative $, *%_)
:(A: Iterable $, Iterable $, *%_)
in block <unit> at <tmp> line 1
20:05 Kaypie left, Kaypie joined
lizmat adding is default: 20:05
m: class A { multi method a(Associative, Associative) is default { Associative }; multi method a(Iterable, Iterable) { Iterable } }; dd A.a( Hash, Hash )
camelia Associative
20:06 p6bannerbot sets mode: +v Kaypie
lizmat m: class A { multi method a(Pair) { Pair }; multi method a(Associative) { Associative }; multi method a(Iterable) { Iterable } }; dd A.a(Hash) # further golf 20:07
camelia Iterable
20:09 lucasb left
lizmat jnthn: I don't see how the addition of a Pair candidate should affect how Associative / Iterable are selected, especially if there is an "is default" active 20:10
jnthn: should I make an issue of this, or is this some misunderstanding of MMD that I have ?
afk for a double helping of Magic Beasts 20:13
&
20:41 Kaypie left 20:43 Kaiepi joined 20:44 p6bannerbot sets mode: +v Kaiepi 20:55 Kaiepi left, Kaiepi joined 20:56 p6bannerbot sets mode: +v Kaiepi 21:09 delon left 21:13 delon joined 21:14 p6bannerbot sets mode: +v delon 21:28 delon left 21:31 delon joined 21:32 p6bannerbot sets mode: +v delon 22:08 AlexDaniel left, go|dfish left, AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 22:09 robertle left 22:10 go|dfish joined, p6bannerbot sets mode: +v go|dfish
jnthn lizmat: Something looks a bit off there; please file an issue, I can take a look when I get chance (not today, though...tired) 22:22
22:59 delon left 23:04 dct joined, p6bannerbot sets mode: +v dct 23:10 ExtraCrispy left 23:11 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 23:14 dogbert11 joined 23:15 p6bannerbot sets mode: +v dogbert11 23:16 dogbert17 left 23:19 Kaypie joined, p6bannerbot sets mode: +v Kaypie 23:20 Kaiepi left 23:35 dct left