Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-05-07

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

All times shown according to UTC.

Time Nick Message
00:14 stmuk joined #perl6-dev
01:30 stmuk_ joined #perl6-dev
01:48 * Zoffix looks over pics of flooding all over the neighbouring towns :o
01:48 Zoffix Makes me glad I live on the 8th floor....
02:19 BenGoldberg I live in a house which is almost on top of a hill... no flooding for me.
03:06 MasterDuke_ is anyone else seeing test 41 fail in t/spec/S10-packages/precompilation.t?
03:08 Zoffix Haven't run any stresstests today, but I've seen that file flop in the past
03:09 MasterDuke_ i'm currently on a branch where i've made some changes. i don't think they should effect that file, but...
03:11 MasterDuke_ there was that recent commit about $*ERR and precomp...
03:16 MasterDuke_ yup. if i build rakudo at the commit before https://github.com/rakudo/rakudo/commit/182b17061c, but with my changes, it passes that file just fine
03:20 Geth ¦ rakudo: MasterDuke17++ created pull request #1078: Convert substr+eq to eqat
03:20 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1078
03:22 MasterDuke_ m: use nqp; loop (my int $i = 0; $i < 10_000_000; $i = $i + 1) { if nqp::substr("abcdef", 0, 1) eq "a" { } }; say now - INIT now
03:22 camelia rakudo-moar 824cfa: OUTPUT: «1.7525664␤»
03:22 MasterDuke_ m: use nqp; loop (my int $i = 0; $i < 10_000_000; $i = $i + 1) { if nqp::eqat("abcdef", "a", 0) { } }; say now - INIT now
03:22 camelia rakudo-moar 824cfa: OUTPUT: «0.2979978␤»
03:24 Geth ¦ rakudo/nom: f4017c32a2 | MasterDuke17++ | 3 files
03:24 Geth ¦ rakudo/nom: Convert substr+eq to eqat
03:24 Geth ¦ rakudo/nom:
03:24 Geth ¦ rakudo/nom: nqp::eqat is much faster than doing a substr+eq.
03:24 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f4017c32a2
03:24 Geth ¦ rakudo/nom: 695ebcbc33 | (Zoffix Znet)++ (committed using GitHub Web editor) | 3 files
03:24 Geth ¦ rakudo/nom: Merge pull request #1078 from MasterDuke17/convert_substr_plus_eq_to_eqat
03:24 Geth ¦ rakudo/nom:
03:24 Geth ¦ rakudo/nom: Convert substr+eq to eqat
03:24 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/695ebcbc33
03:25 MasterDuke_ that was quick, thanks
04:05 geekosaur joined #perl6-dev
04:12 stmuk joined #perl6-dev
04:56 geekosaur joined #perl6-dev
06:08 geekosaur joined #perl6-dev
07:13 [Tux] This is Rakudo version 2017.04.3-178-g695ebcbc3 built on MoarVM version 2017.04-57-g8d8a09b9
07:13 [Tux] csv-ip5xs        3.214
07:13 [Tux] test            13.011
07:13 [Tux] test-t           4.317 - 4.340
07:13 [Tux] csv-parser      13.447
07:53 stmuk_ joined #perl6-dev
07:58 robertle_ joined #perl6-dev
08:10 lizmat joined #perl6-dev
08:48 lizmat joined #perl6-dev
09:28 AlexDaniel joined #perl6-dev
09:56 lizmat joined #perl6-dev
10:41 geekosaur joined #perl6-dev
11:43 lizmat joined #perl6-dev
11:50 * lizmat wonders how hard it would be to also provide a positional interface to nqp::hashes
11:50 lizmat it would make things like Map.roll so much easier
11:53 timotimo not very easy
11:53 timotimo you can iterate all values of a hash "easily", but accessing the nth value will always go through the hash from start to n
11:54 timotimo hmm.
11:54 timotimo i suppose since that'd be implemented in C, it'd not be terribly slow
12:03 lizmat well, yes that would be my point
12:03 timotimo i won't be available for most of the day, but if you want to fiddle around a bit inside moarvm, you'd have to change the struct near the end of VMHash.c inside the reprs folder
12:04 lizmat now doing it in nqp *and* building an array at the time
12:04 lizmat a loop at nqp level still much slower
12:04 timotimo there's an entry in there for positional functions that'll currently have the default implementation of "throw an error"
12:05 lizmat of course, adding it would also mean telling spesh and JIT about it
12:05 timotimo https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/MVMHash.c#L231 the DEFAULT_POS_FUNCS would be replaced
12:05 lizmat perhaps we should shelf it until we can easily update them
12:05 timotimo i think spesh and jit will immediately understand it
12:06 lizmat because they're just positional functions ?
12:06 timotimo spesh doesn't do anything with these reprops, i think, and the jit will access this struct i just linked to and just make a direct call to the function in question
12:06 lizmat ok, then I would like to declare this LHF for MasterDuke_ and/or dogbert11 if jnthn is ok with that
12:07 timotimo https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs.h#L127 - this is the meaning of the fields you can put in the struct that goes where DEFAULT_POS_FUNCS currently lives
12:07 timotimo you'd keep pretty much all of the DEFAULT_ ones except for AT_POS
12:12 timotimo https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/VMArray.c#L127 - steal the function signature from here, but MVMHash doesn't have any REPRData, so that line can be tossed
12:13 timotimo https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/MVMHash.c#L61 - steal this iteration function and just abort&return when i++ == target_number
12:13 timotimo BBL
12:18 Geth ¦ rakudo/nom: c74d37ba04 | (Elizabeth Mattijsen)++ | src/core/Map.pm
12:18 Geth ¦ rakudo/nom: Make Map.roll(N) upto 3x faster
12:18 Geth ¦ rakudo/nom:
12:18 Geth ¦ rakudo/nom: - based on N=2 on a 26 element hash
12:18 Geth ¦ rakudo/nom: - gain caused by building the list of Pairs on the fly
12:18 Geth ¦ rakudo/nom: - higher values of N compared to size of hash lose this advantage
12:18 Geth ¦ rakudo/nom: - shouldn't ever be slower than the old approach
12:18 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c74d37ba04
12:26 llfourn joined #perl6-dev
12:47 Geth ¦ rakudo/nom: 1e58925c09 | (Elizabeth Mattijsen)++ | src/core/Map.pm
12:47 Geth ¦ rakudo/nom: Allow for Map.roll(*-5)
12:47 Geth ¦ rakudo/nom:
12:47 Geth ¦ rakudo/nom: For API consistency's sake, cause I don't really see a use case just yet.
12:47 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e58925c09
12:47 lizmat afk again&
12:48 geekosaur joined #perl6-dev
12:48 stmuk joined #perl6-dev
13:03 Zoffix huggable: popular
13:03 huggable Zoffix, nothing found
13:04 Zoffix huggable: popular modules
13:04 huggable Zoffix, nothing found
13:04 Zoffix Anyone remember where the list of most-used modules is at? I need top N modules to test release with...
13:35 lizmat joined #perl6-dev
14:10 Geth ¦ rakudo/nom: 8884093e75 | (Elizabeth Mattijsen)++ | src/core/Map.pm
14:10 Geth ¦ rakudo/nom: Remove unnecessary nqp::stmts, b2gills++
14:10 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8884093e75
14:30 sasheto joined #perl6-dev
14:32 brrt joined #perl6-dev
14:40 lizmat https://www.dynatrace.com/blog/inside-the-black-box-part-4-perl/  # too bad it's not about Perl 6 :-(
15:23 lizmat m: use nqp; my $a := 42; my $now = now; for ^100000 { nqp::fromnum_I(nqp::rand_n(nqp::tonum_I($a)),Int) }; say now - $now  # quite fast
15:23 camelia rakudo-moar 888409: OUTPUT: «0.0965704␤»
15:24 lizmat m: use nqp; my $a := 42; my $now = now; for ^100000 { nqp::rand_I($a,Int) }; say now - $now   # much slower, why ???
15:24 camelia rakudo-moar 888409: OUTPUT: «0.2412751␤»
15:24 lizmat one would sorta expect rand_I to be faster than taking the whole .Num.rand.Int route
15:36 Geth ¦ rakudo/nom: e2c3499b6c | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
15:36 Geth ¦ rakudo/nom: Add R:Q.ROLL: randomly selecting in a IterationSet
15:36 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e2c3499b6c
15:36 Geth ¦ rakudo/nom: 911b43de68 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
15:36 Geth ¦ rakudo/nom: Make (Bag|Mix)Hash.grabpairs about 4x faster
15:36 Geth ¦ rakudo/nom:
15:36 Geth ¦ rakudo/nom: - based on a 26-element BagHash
15:36 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/911b43de68
15:36 BenGoldberg joined #perl6-dev
15:37 jnthn lizmat: https://github.com/MoarVM/MoarVM/blob/56cdf7906e607ae10f08268c9972a748384ef385/src/math/bigintops.c#L919 is the implementation of rand_I fwiw
15:50 lizmat hmmm   it seems the underlying issue is fixed: https://github.com/libtom/libtommath/pull/56  ?
15:54 lizmat wonder whether reverting 0c973ea6 would be enough ?
16:20 Geth ¦ rakudo/nom: 2bda2703da | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
16:20 Geth ¦ rakudo/nom: Allow for (Bag|Mix)Hash.grabpairs(*-5)
16:20 Geth ¦ rakudo/nom:
16:20 Geth ¦ rakudo/nom: Because we have somehow forgotten that one.
16:20 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2bda2703da
16:21 ugexe looks like my precomp commit brought back the doubling of precomp errors to stdout/err
16:21 ugexe I'm not seeing how though
16:24 ugexe removing this (https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/PrecompilationRepository.pm#L279) works around that, but then you woudn't get precomp errors as warnings (I think?)
16:25 ugexe either way - something in that section of code does not handle stdout/stderr properly (nor did it before my commit, which could lock up on OSX due to a open3 deadlock)
16:27 * geekosaur wonders how hard it would be to get run to support using the same pipe for stdout + stderr?
16:28 ugexe geekosaur: its NYI as :merge
16:28 ugexe or maybe it is and it just doesn't work on every os or something.
16:28 geekosaur although that's still only half the problem, you also have to arrange somehow for the thing run to not buffer its output (or line buffer it) instead of block buffer
16:29 geekosaur which has to be done in that program, you can't portably do it from run
16:32 AlexDaniel joined #perl6-dev
16:36 Geth ¦ rakudo/nom: 83e82c6d55 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
16:36 Geth ¦ rakudo/nom: Remove copy-pastoed comment
16:36 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/83e82c6d55
16:54 stmuk_ joined #perl6-dev
17:25 dct joined #perl6-dev
18:15 * Zoffix reads http://blogs.perl.org/users/toby_inkster/2017/05/typetiny-12-coming-soon.html and chuckles at cludgy syntax for what in Perl 6 is so much nicer...
18:15 * Zoffix tries out Type::Tiny and gets very jelauous of much better error reporting
18:16 Zoffix "'"Number" is defined as: sub { no feature \':all\'; use feature \':5.16\'; $_ % 2; }'"
18:17 Zoffix Wonder if it's possible to cook up a module that would make subsets be equally helpful but actually showing the code for `where` constraints
18:17 Zoffix s/but/by/;
18:45 Zoffix A module that adds something like `sub foo will keep-source {…}`    `(* %% 2) will keep-source` or something or other. Some trait or even special syntax to stick on a sub to make it save its source code to be able to provide it via a method later
18:48 dct joined #perl6-dev
18:55 Geth ¦ rakudo/nom: 75ecaf530f | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
18:55 Geth ¦ rakudo/nom: Add R:Q.PICK-N, return random picked keys
18:55 Geth ¦ rakudo/nom:
18:55 Geth ¦ rakudo/nom: Workhorse for Baggy.pickpairs, (Bag|Mix)Hash.grabpairs.
18:55 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/75ecaf530f
18:55 Geth ¦ rakudo/nom: 3670720a4b | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
18:55 Geth ¦ rakudo/nom: Make (Bag|Mix)Hash.grabpairs about 4x as fast
18:55 Geth ¦ rakudo/nom:
18:55 Geth ¦ rakudo/nom: - on a 26 element BagHash with either 5 or 26 pairs
18:55 Geth ¦ rakudo/nom: - now also lazy, so only pairs actually consumed will be removed
18:55 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3670720a4b
18:56 lizmat Zoffix: perhaps the "use trace" machinery could be used for that
18:57 Zoffix Maybe
19:54 dct joined #perl6-dev
19:59 BenGoldberg s: SetHash, 'push', ()
19:59 BenGoldberg SourceBaby, source
19:59 SourceBaby BenGoldberg, See: https://github.com/zoffixznet/perl6-sourceable
20:03 bengoldberg s: SetHash, 'push', ()
20:11 lizmat joined #perl6-dev
20:17 dct joined #perl6-dev
20:23 lizmat joined #perl6-dev
20:29 Geth ¦ rakudo/nom: c0270c6695 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
20:29 Geth ¦ rakudo/nom: Make Baggy.pickpairs about 5x faster
20:29 Geth ¦ rakudo/nom:
20:29 Geth ¦ rakudo/nom: - based on a 26 element Bag
20:29 Geth ¦ rakudo/nom: - using the new R:Q.ROLL infrastructure
20:29 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c0270c6695
20:53 Zoffix BenGoldberg: you're still banned from the bot
20:53 Zoffix buggable: eco Sourcery
20:53 buggable Zoffix, CoreHackers::Sourcery 'Helper for showing actual source code locations of core subs and methods': https://github.com/zoffixznet/perl6-CoreHackers-Sourcery
20:53 Zoffix ^ use that module instead
21:17 BenGoldberg Zoffix, I've got a problem...
21:17 BenGoldberg I have the following in my .bash_aliases:
21:17 BenGoldberg alias sourcery-web="perl6 -MCoreHackers::Sourcery -MMONKEY-SEE-NO-EVAL \
21:17 BenGoldberg -e 'run q!$CHROME!, EVAL qq!sourcery(@*ARGS[0])[1]! '"
21:18 BenGoldberg When I run sourcery-web '&say' it opens up chrome to https://github.com/rakudo/rakudo/blob/201703/src/core/io_operators.pm#L20
21:18 BenGoldberg Which is a 404 not found.
21:21 Geth ¦ rakudo/nom: 037070d8b5 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
21:21 Geth ¦ rakudo/nom: Add R:Q:Pairs role
21:21 Geth ¦ rakudo/nom:
21:21 Geth ¦ rakudo/nom: For Baggy.pickpairs and Baggy.grabpairs functionality
21:21 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/037070d8b5
21:21 Geth ¦ rakudo/nom: 0f21f511c5 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
21:21 Geth ¦ rakudo/nom: Make Baggy.pickpairs(N) about 2x as fast
21:21 Geth ¦ rakudo/nom:
21:21 Geth ¦ rakudo/nom: - based on a 26 element Bag
21:21 Geth ¦ rakudo/nom: - using new R:Q:Pairs role
21:21 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f21f511c5
21:22 Zoffix yeah
21:22 Zoffix hmm
21:22 Zoffix m: say $*PERL.compiler.version.Str
21:22 camelia rakudo-moar c0270c: OUTPUT: «2017.04.3.188.gc.0270.c.669␤»
21:22 Zoffix 1 sec
21:26 Zoffix BenGoldberg: pushed a fix that should fix the issue.  zef --force install https://github.com/zoffixznet/perl6-CoreHackers-Sourcery/archive/master.zip
21:28 BenGoldberg Magic!  Zoffix++
21:39 Geth ¦ rakudo/nom: 29036362fc | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
21:39 Geth ¦ rakudo/nom: Make (Bag|Mix)Hash.grabpairs(N) use the R:Q:Pairs role
21:39 Geth ¦ rakudo/nom:
21:39 Geth ¦ rakudo/nom: - for easier maintenance
21:39 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29036362fc
21:55 lizmat good night, #perl6-dev!
21:56 Zoffix night
22:42 Zoffix joined #perl6-dev
22:42 CIAvash[m] joined #perl6-dev
22:42 huggable joined #perl6-dev

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