Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-10-28

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:27 sivoais joined #perl6-dev
01:06 committable6 joined #perl6-dev
01:24 b2gills joined #perl6-dev
01:37 FROGGS_ joined #perl6-dev
01:49 benchable6 joined #perl6-dev
05:52 RabidGravy joined #perl6-dev
06:08 [Tux] joined #perl6-dev
06:19 vendethiel- joined #perl6-dev
06:22 RabidGravy boom! The last big push before the Weekend!
06:40 arnsholt_ joined #perl6-dev
06:54 [Tux] This is Rakudo version 2016.10-78-g8c35481 built on MoarVM version 2016.10-15-g715e39a
06:54 [Tux] csv-ip5xs        3.241
06:55 [Tux] test            14.663
06:55 [Tux] test-t           6.953
06:55 [Tux] csv-parser      17.795
09:13 nine Python is sooo easy and exteremly consistent. Dictionaries (hashes) are objects. So which method gives you the number of elements? Right! None of them! it's len(mydict). There's a get-Method for accessing an element, so surely there's a set, too. Right? Of course not.
09:14 nine Method names consisting of multiple words are just pasted together like iteritems or popitem or setdefault, but of course not has_key. That one really needs the underscore.
09:14 nine Speaking of... how do you delete an item? Remove the key? Of course it's pop! Because dicts are really almost exactly like arrays. And of course anyone can guess the difference between pop and popitem immediately.
09:16 DrForr I think we need to stage an intervention.
09:18 nine Sorry...porting a performance enhancement to Inline::Python turned out to be a tad harder than it would have to be.
09:19 tadzik nine: isn't len(mydict) the same as mydict.__len__()?
09:26 nine tadzik: I guess so. I mean it's there, but it's not exactly documented. There's a lot of "should" in "Emulating container types"
09:37 tadzik joined #perl6-dev
09:42 ilmari[m] joined #perl6-dev
10:02 dalek roast: beb24a6 | (Athos Ribeiro)++ | S32-list/reduce.t:
10:02 dalek roast: Add test for reduce with one item (#178)
10:02 dalek roast:
10:02 dalek roast: * Closes #62
10:02 dalek roast: review: https://github.com/perl6/roast/commit/beb24a696a
10:44 lizmat Files=1150, Tests=53692, 210 wallclock secs (12.59 usr  3.57 sys + 1285.99 cusr 120.01 csys = 1422.16 CPU)
11:34 dalek rakudo/nom: 33eeb32 | lizmat++ | src/core/Regex.pm:
11:34 dalek rakudo/nom: Make %h ~~ /foo/ 2x faster, fix @a ~~ /foo/
11:34 dalek rakudo/nom:
11:34 dalek rakudo/nom: - make fast internal method using an iterator
11:34 dalek rakudo/nom: - make %h case use that with %h.keys.iterator
11:34 dalek rakudo/nom: - make @a case use that with @a.iterator
11:34 dalek rakudo/nom:
11:34 dalek rakudo/nom: This also fixes
11:34 dalek rakudo/nom:
11:34 dalek rakudo/nom:   "a"...* ~~ / z /
11:34 dalek rakudo/nom:
11:34 dalek rakudo/nom: which was broken with e4dc8b6ed1f9b3b48
11:35 lizmat rakudo/nom: review: https://github.com/rakudo/rakudo/commit/33eeb32
11:59 geekosaur joined #perl6-dev
12:20 pyrimidine joined #perl6-dev
12:35 bartolin joined #perl6-dev
12:37 camelia joined #perl6-dev
12:41 dalek rakudo/nom: 1f76b17 | lizmat++ | src/core/Grammar.pm:
12:41 dalek rakudo/nom: Streamline argument handling in Grammar
12:41 dalek rakudo/nom:
12:41 dalek rakudo/nom: - rewrite in nqp ops
12:41 dalek rakudo/nom: - don't use defaults in sigs when we don't need them
12:41 dalek rakudo/nom: - default case rule TOP better optimizable through literal call
12:41 dalek rakudo/nom: - lookup cursor initialization only once
12:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f76b17ee3
13:19 tadzik[m] joined #perl6-dev
13:28 travis-ci joined #perl6-dev
13:28 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Streamline argument handling in Grammar
13:28 travis-ci https://travis-ci.org/rakudo/rakudo/builds/171376943 https://github.com/rakudo/rakudo/compare/33eeb323373c...1f76b17ee37f
13:28 travis-ci left #perl6-dev
13:28 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
13:30 viki java.lang.NullPointerException on install and failing NativeCall tests
13:33 ilmari[m] joined #perl6-dev
13:36 gfldex m: sub testy is pure { state $T = ::('Int') }; subset DInt where { state $ = ::('Int') }; my $i = 1; my $start = now; $i ~~ DInt for 1..10000; say now - $start; $start = now; $i ~~ Int for 1..10000; say now - $start;
13:36 camelia rakudo-moar 1f76b1: OUTPUT«0.0557100␤0.0075574␤»
13:36 gfldex m: subset DInt where { $ = ::('Int') }; my $i = 1; my $start = now; $i ~~ DInt for 1..10000; say now - $start; $start = now; $i ~~ Int for 1..10000; say now - $start;
13:36 camelia rakudo-moar 1f76b1: OUTPUT«0.6448545␤0.007716␤»
13:36 gfldex is this a bug?
13:38 gfldex i was under the impression that `$` and `state $` are equivalent
13:38 gfldex m: subset DInt where state $ = ::('Int'); my $i = 1; my $start = now; $i ~~ DInt for 1..10000; say now - $start; $start = now; $i ~~ Int for 1..10000; say now - $start;
13:38 camelia rakudo-moar 1f76b1: OUTPUT«0.0569909␤0.00746177␤»
13:41 viki QAST::Var(lexical $x :decl(statevar)) for state $x and QAST::Var(lexical $ANON_VAR__1 :decl(statevar)) for $; so I'd say $ is state
13:43 gfldex jnthn: is this a case of confused optimiser?
13:43 viki m: subset DInt where $ = ::('Int'); my $i = 1; my $start = now; $i ~~ DInt for 1..10000; say now - $start;
13:43 camelia rakudo-moar 1f76b1: OUTPUT«0.6516949␤»
13:43 viki That barfs a whole bunch of output on my 2016.10-15-g43dbc96
13:44 viki Oh, unescaped ' in shell ~_~
13:44 gfldex we need a better shell :)
13:48 viki The { ++$ } is roughly the same as { ++(state $x) }, but { $ = ::("Int") } is 9x slower than { state $x = ::("Int") }; that's with Optimizer disabled
14:00 dalek rakudo/nom: 553677f | lizmat++ | src/core/Cursor.pm:
14:00 dalek rakudo/nom: Remove no longer used MATCH_SAVE method
14:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/553677fbc5
14:00 dalek rakudo/nom: e29e476 | lizmat++ | src/core/ (4 files):
14:00 dalek rakudo/nom: use nqp::null instead of Nil in tight loops
14:00 jsimonet joined #perl6-dev
14:00 dalek rakudo/nom:
14:00 dalek rakudo/nom: Looks like nqp::until/while optimize better with using a low-level
14:00 dalek rakudo/nom: Nil (aka nqp::null) than with a HLL Nil.  Since these are usually
14:00 dalek rakudo/nom: hot loops, it makes sense to do this small change
14:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e29e476efc
14:01 lizmat viki: building JVM now to check on Grammar fixes failing on JVM: will look at it when I'm back from being afk&
14:03 DrForr Oh, reminds me - I'll SMS you folks when I get to Echt; I've got the one rollaboard bag that'll magically explode into 3 :)
14:03 DrForr lizmat: ^
14:08 ggoebel joined #perl6-dev
14:08 RabidGravy joined #perl6-dev
14:10 jnthn gfldex: If I had to make a guess, I'd say code-gen issue more than optimizer issue
14:25 harrison_ joined #perl6-dev
14:51 travis-ci joined #perl6-dev
14:51 travis-ci Rakudo build failed. Elizabeth Mattijsen 'use nqp::null instead of Nil in tight loops
14:51 travis-ci https://travis-ci.org/rakudo/rakudo/builds/171396383 https://github.com/rakudo/rakudo/compare/1f76b17ee37f...e29e476efc59
14:51 travis-ci left #perl6-dev
15:23 dalek rakudo/nom: f22f894 | lizmat++ | src/core/Any.pm:
15:23 dalek rakudo/nom: Make slice adverb helper sub 2x as fast
15:23 dalek rakudo/nom:
15:23 dalek rakudo/nom: This should help in frequent accesses like %h<a>:p:exists .
15:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f22f8941e7
15:24 timotimo wow
15:25 timotimo is that only for two adverbs at once? or one or more? or two or more?
15:27 [Coke] lizmat++
15:28 lizmat that's only for when there are more than one
15:28 lizmat if I remember correctly  :-)
15:55 dalek rakudo/nom: 0dc6f79 | lizmat++ | src/core/Grammar.pm:
15:55 dalek rakudo/nom: Only coerce to Capture if there's something to coerce
15:55 dalek rakudo/nom:
15:55 dalek rakudo/nom: This also appears to fix the breakage on the JVM
15:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0dc6f79274
16:02 gfldex m: my $v where $ = say 'foo'; my $v2 where state $ = say 'bar';
16:02 camelia rakudo-moar f22f89: OUTPUT«foo␤»
16:02 gfldex is this a bug?
16:04 lizmat m: my $v where $ = say 'foo'; my $v2 where state $ = say 'bar'; INIT say "starting"
16:04 camelia rakudo-moar f22f89: OUTPUT«starting␤foo␤»
16:05 lizmat weird
16:06 gfldex m: my $v = state $ = say 'foo'; say $v
16:06 camelia rakudo-moar f22f89: OUTPUT«foo␤True␤»
16:06 gfldex m: my $v = $ = say 'foo'; say $v
16:06 camelia rakudo-moar f22f89: OUTPUT«foo␤True␤»
16:06 gfldex seams to need the where clause
16:09 viki seems so
16:37 travis-ci joined #perl6-dev
16:37 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make slice adverb helper sub 2x as fast
16:37 travis-ci https://travis-ci.org/rakudo/rakudo/builds/171420722 https://github.com/rakudo/rakudo/compare/e29e476efc59...f22f8941e71c
16:37 travis-ci left #perl6-dev
16:43 hoelzro joined #perl6-dev
16:45 dalek joined #perl6-dev
16:45 jsimonet joined #perl6-dev
16:49 SourceBaby joined #perl6-dev
16:49 Undercover joined #perl6-dev
17:14 AlexDaniel joined #perl6-dev
17:24 travis-ci joined #perl6-dev
17:24 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Only coerce to Capture if there's something to coerce
17:24 travis-ci https://travis-ci.org/rakudo/rakudo/builds/171428723 https://github.com/rakudo/rakudo/compare/f22f8941e71c...0dc6f79274ec
17:24 travis-ci left #perl6-dev
18:07 tadzik joined #perl6-dev
18:08 ilmari[m] joined #perl6-dev
18:29 RabidGravy joined #perl6-dev
19:00 viki nqp:: False()
19:00 viki nqp: False()
19:00 camelia nqp-moarvm: OUTPUT«Cannot invoke this object (REPR: Null; VMNull)␤   at <tmp>:1  (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1428  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:eval)␤ from gen/moar/stage2/NQPHLL.nqp:1631  (/home/camelia/rakudo-m…»
19:00 viki If I'm getting "No such method 'CALL-ME' for invocant of type 'Bool'", that's definitely from somewhere in Rakudo, right?
19:00 viki I'm having trouble finding where it comes from
19:01 geekosaur m: my Bool $x = False; $x()
19:01 camelia rakudo-moar 0dc6f7: OUTPUT«No such method 'CALL-ME' for invocant of type 'Bool'␤  in block <unit> at <tmp> line 1␤␤»
19:02 timotimo nqp: LolViki()
19:02 camelia nqp-moarvm: OUTPUT«Cannot invoke this object (REPR: Null; VMNull)␤   at <tmp>:1  (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1428  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:eval)␤ from gen/moar/stage2/NQPHLL.nqp:1631  (/home/camelia/rakudo-m…»
19:02 timotimo nqp doesn't have True and False
19:02 timotimo or Bool in geenral
19:02 viki I see
19:22 * viki gets a bright idea
19:23 viki use MONKEY-TYPING; augment class Bool { method CALL-ME (|c) { dd ["got called", callframe(2).file, callframe(2).line, |c]} }
19:23 viki :)
19:24 geekosaur that's one way to do it. a slightly more principled way is to do the same as part of mixing in the Callable role.
19:25 * geekosaur still would like to know if the ad hoc handling of Callable-s is by design... it's kinda ruining what looks like a sane story for Callable
19:29 * viki successfully located the bug
19:29 viki Bug toast for dinner \o/
19:38 viki hmm
19:38 viki m: dd {;}.phasers('QUIT')[0]
19:38 camelia rakudo-moar 0dc6f7: OUTPUT«Bool::False␤»
19:38 viki m: dd {;}.phasers('QUIT')
19:38 camelia rakudo-moar 0dc6f7: OUTPUT«()␤»
19:38 viki m: dd ()[0]
19:38 camelia rakudo-moar 0dc6f7: OUTPUT«Bool::False␤»
19:38 viki star: dd ()[0]
19:38 camelia star-m 2016.04: OUTPUT«Nil␤»
19:39 viki .ask lizmat would you know how to fix ()[0] to return Nil again instead of False? Bisectable points to this commit as the suspect: https://github.com/rakudo/rakudo/commit/4e4039e001d3ad0a99d44154c27c4a7208758e2a
19:39 yoleaux2 viki: I'll pass your message to lizmat.
19:41 viki hm, that looks simple enough for me to try a hand at it
19:42 viki after relocation (~1hr)
19:47 viki aye. I see it
19:47 * viki &
20:13 * [Coke] wonders what geekosaur is referring to
20:14 geekosaur CALL-ME is used in a bunch of places, independently of any Callable role. But the documentation talks about the Callable role and never mentions CALL-ME.
20:15 geekosaur the logical inference is that CALL-ME is the "action" method of Callable --- but this is neither mentioned in the docs (until recently and that is speculative) nor the actual implementation
20:16 [Coke] danke.
20:18 geekosaur (if nothing else, explicitly using Callable would make errors like the one viki got much clearer: instead of a CALL-ME appearing out of nowhere, it would report a type error)
20:20 geekosaur and report it in the right place relative to the user's code instead of making them wonder why a missing CALL-ME method is reported out of rakudo's guts somewhere
20:44 dalek rakudo/nom: f50e39b | lizmat++ | src/core/List.pm:
20:44 dalek rakudo/nom: Add missing Nils, spotted by Zoffix++
20:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f50e39b2f4
20:45 lizmat .
20:45 yoleaux2 19:39Z <viki> lizmat: would you know how to fix ()[0] to return Nil again instead of False? Bisectable points to this commit as the suspect: https://github.com/rakudo/rakudo/commit/4e4039e001d3ad0a99d44154c27c4a7208758e2a
20:45 lizmat fixed  :-)
20:46 FROGGS lizmat++
20:53 viki Ah, cool. I only spotted one of them. Thanks lizmat++
20:54 viki That also fixes IO::Socket::Async crashing when connection is disconnected by peer \o/
20:54 lizmat :-)
20:54 lizmat cool!
21:07 dalek rakudo/nom: 4034f71 | lizmat++ | src/core/Mu.pm:
21:07 dalek rakudo/nom: Simplify return value
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4034f7156d
21:16 japhb Any objection to bumping moar and nqp revs?  It's been a while ...
21:17 viki none from me
21:17 japhb Or are we holding them static for some reason (e.g. the Debian testing work)?
21:17 japhb viki: ack
21:18 timotimo have there actually been valuable commits in moar and nqp?
21:19 timotimo i believe jnthn fixed some stuff, but he accompanied the fixes with bumps, didn't he?
21:19 japhb timotimo: A number of fixes in Moar, I believe, from jnthn's last Perl 6 day
21:19 japhb I don't think so.
21:19 dalek roast: cb75098 | (Zoffix Znet)++ | S02-lists/indexing.t:
21:19 dalek roast: Test ()[0] returns Nil
21:19 dalek roast: review: https://github.com/perl6/roast/commit/cb75098784
21:20 timotimo oh, OK
21:20 lizmat no objections from me either  :-)
21:23 SourceBaby joined #perl6-dev
21:26 FROGGS no objections from me
21:27 dalek nqp: 8d43ff5 | (Geoffrey Broadwell)++ | tools/build/MOAR_REVISION:
21:27 dalek nqp: Bump MOAR_REVISION to pick up recent fixes
21:27 dalek nqp: review: https://github.com/perl6/nqp/commit/8d43ff5b8e
21:29 dalek rakudo/nom: 627a77e | (Geoffrey Broadwell)++ | tools/build/NQP_REVISION:
21:29 dalek rakudo/nom: Bump NQP_REVISION to pick up recent Moar fixes
21:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/627a77eb22
21:48 TimToady .botsnack
21:48 yoleaux2 :D
21:49 * TimToady now relaxing after giving opening keynote in Puerto Vallarta...
21:49 TimToady I saw my name go past several times in the last week, but given the lack of connectivity here, will take a while to backlog...
21:50 FROGGS hi TimToady
21:53 buggable joined #perl6-dev
21:53 TimToady only got through to here because I hardwired my home machine's IP address; as usual it's DNS that is serving, or should I say, has served, as the canary in the mine
21:53 huggable joined #perl6-dev
21:54 TimToady can't get to the ir clogs, for instance
21:54 NeuralAnomaly joined #perl6-dev
21:55 viki .oO( infra-red clogs  )
22:19 japhb .oO( ur-clog: the shoe prototype )
22:30 geekosaur crocs? :p
22:32 TimToady viki, gfldex: note that $ = foo is not (state $ = foo), but (state $) = foo
22:32 viki aahhh. Thanks, TimToady++

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary