Zoffix looks over pics of flooding all over the neighbouring towns :o 01:48
Makes me glad I live on the 8th floor....
BenGoldberg I live in a house which is almost on top of a hill... no flooding for me. 02:19
MasterDuke_ is anyone else seeing test 41 fail in t/spec/S10-packages/precompilation.t? 03:06
Zoffix Haven't run any stresstests today, but I've seen that file flop in the past 03:08
MasterDuke_ i'm currently on a branch where i've made some changes. i don't think they should effect that file, but... 03:09
there was that recent commit about $*ERR and precomp... 03:11
yup. if i build rakudo at the commit before github.com/rakudo/rakudo/commit/182b17061c, but with my changes, it passes that file just fine 03:16
Geth rakudo: MasterDuke17++ created pull request #1078:
Convert substr+eq to eqat
03:20
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 1.7525664
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
camelia 0.2979978
Geth rakudo/nom: f4017c32a2 | MasterDuke17++ | 3 files
Convert substr+eq to eqat

nqp::eqat is much faster than doing a substr+eq.
03:24
rakudo/nom: 695ebcbc33 | (Zoffix Znet)++ (committed using GitHub Web editor) | 3 files
Merge pull request #1078 from MasterDuke17/convert_substr_plus_eq_to_eqat

Convert substr+eq to eqat
MasterDuke_ that was quick, thanks 03:25
[Tux] This is Rakudo version 2017.04.3-178-g695ebcbc3 built on MoarVM version 2017.04-57-g8d8a09b9 07:13
csv-ip5xs 3.214
test 13.011
test-t 4.317 - 4.340
csv-parser 13.447
lizmat wonders how hard it would be to also provide a positional interface to nqp::hashes 11:50
it would make things like Map.roll so much easier
timotimo not very easy 11:53
you can iterate all values of a hash "easily", but accessing the nth value will always go through the hash from start to n
hmm. 11:54
i suppose since that'd be implemented in C, it'd not be terribly slow
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
lizmat now doing it in nqp *and* building an array at the time 12:04
a loop at nqp level still much slower
timotimo there's an entry in there for positional functions that'll currently have the default implementation of "throw an error"
lizmat of course, adding it would also mean telling spesh and JIT about it 12:05
timotimo github.com/MoarVM/MoarVM/blob/mast...ash.c#L231 the DEFAULT_POS_FUNCS would be replaced
lizmat perhaps we should shelf it until we can easily update them
timotimo i think spesh and jit will immediately understand it
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
lizmat ok, then I would like to declare this LHF for MasterDuke_ and/or dogbert11 if jnthn is ok with that
timotimo github.com/MoarVM/MoarVM/blob/mast...prs.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
you'd keep pretty much all of the DEFAULT_ ones except for AT_POS
github.com/MoarVM/MoarVM/blob/mast...ray.c#L127 - steal the function signature from here, but MVMHash doesn't have any REPRData, so that line can be tossed 12:12
github.com/MoarVM/MoarVM/blob/mast...Hash.c#L61 - steal this iteration function and just abort&return when i++ == target_number 12:13
BBL
Geth rakudo/nom: c74d37ba04 | (Elizabeth Mattijsen)++ | src/core/Map.pm
Make Map.roll(N) upto 3x faster

  - based on N=2 on a 26 element hash
  - gain caused by building the list of Pairs on the fly
  - higher values of N compared to size of hash lose this advantage
  - shouldn't ever be slower than the old approach
12:18
rakudo/nom: 1e58925c09 | (Elizabeth Mattijsen)++ | src/core/Map.pm
Allow for Map.roll(*-5)

For API consistency's sake, cause I don't really see a use case just yet.
12:47
lizmat afk again&
Zoffix huggable: popular 13:03
huggable Zoffix, nothing found
Zoffix huggable: popular modules 13:04
huggable Zoffix, nothing found
Zoffix Anyone remember where the list of most-used modules is at? I need top N modules to test release with...
Geth rakudo/nom: 8884093e75 | (Elizabeth Mattijsen)++ | src/core/Map.pm
Remove unnecessary nqp::stmts, b2gills++
14:10
lizmat www.dynatrace.com/blog/inside-the-...rt-4-perl/ # too bad it's not about Perl 6 :-( 14:40
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 0.0965704
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 0.2412751
lizmat one would sorta expect rand_I to be faster than taking the whole .Num.rand.Int route
Geth rakudo/nom: e2c3499b6c | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Add R:Q.ROLL: randomly selecting in a IterationSet
15:36
rakudo/nom: 911b43de68 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make (Bag|Mix)Hash.grabpairs about 4x faster

  - based on a 26-element BagHash
jnthn lizmat: github.com/MoarVM/MoarVM/blob/56cd...ops.c#L919 is the implementation of rand_I fwiw 15:37
lizmat hmmm it seems the underlying issue is fixed: github.com/libtom/libtommath/pull/56 ? 15:50
wonder whether reverting 0c973ea6 would be enough ? 15:54
Geth rakudo/nom: 2bda2703da | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Allow for (Bag|Mix)Hash.grabpairs(*-5)

Because we have somehow forgotten that one.
16:20
ugexe looks like my precomp commit brought back the doubling of precomp errors to stdout/err 16:21
I'm not seeing how though
removing this (github.com/rakudo/rakudo/blob/nom/...y.pm#L279) works around that, but then you woudn't get precomp errors as warnings (I think?) 16:24
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:25
geekosaur wonders how hard it would be to get run to support using the same pipe for stdout + stderr? 16:27
ugexe geekosaur: its NYI as :merge 16:28
or maybe it is and it just doesn't work on every os or something.
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
which has to be done in that program, you can't portably do it from run 16:29
Geth rakudo/nom: 83e82c6d55 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Remove copy-pastoed comment
16:36
Zoffix reads blogs.perl.org/users/toby_inkster/2...-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
"'"Number" is defined as: sub { no feature \':all\'; use feature \':5.16\'; $_ % 2; }'" 18:16
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
s/but/by/;
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:45
Geth rakudo/nom: 75ecaf530f | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Add R:Q.PICK-N, return random picked keys

Workhorse for Baggy.pickpairs, (Bag|Mix)Hash.grabpairs.
18:55
rakudo/nom: 3670720a4b | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make (Bag|Mix)Hash.grabpairs about 4x as fast

  - on a 26 element BagHash with either 5 or 26 pairs
  - now also lazy, so only pairs actually consumed will be removed
lizmat Zoffix: perhaps the "use trace" machinery could be used for that 18:56
Zoffix Maybe 18:57
BenGoldberg s: SetHash, 'push', () 19:59
SourceBaby, source
SourceBaby BenGoldberg, See: github.com/zoffixznet/perl6-sourceable
bengoldberg s: SetHash, 'push', () 20:03
Geth rakudo/nom: c0270c6695 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make Baggy.pickpairs about 5x faster

  - based on a 26 element Bag
  - using the new R:Q.ROLL infrastructure
20:29
Zoffix BenGoldberg: you're still banned from the bot 20:53
buggable: eco Sourcery
buggable Zoffix, CoreHackers::Sourcery 'Helper for showing actual source code locations of core subs and methods': github.com/zoffixznet/perl6-CoreHa...s-Sourcery
Zoffix ^ use that module instead
BenGoldberg Zoffix, I've got a problem... 21:17
I have the following in my .bash_aliases:
alias sourcery-web="perl6 -MCoreHackers::Sourcery -MMONKEY-SEE-NO-EVAL \
-e 'run q!$CHROME!, EVAL qq!sourcery(@*ARGS[0])[1]! '"
When I run sourcery-web '&say' it opens up chrome to github.com/rakudo/rakudo/blob/2017...ors.pm#L20 21:18
Which is a 404 not found.
Geth rakudo/nom: 037070d8b5 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Add R:Q:Pairs role

For Baggy.pickpairs and Baggy.grabpairs functionality
21:21
rakudo/nom: 0f21f511c5 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make Baggy.pickpairs(N) about 2x as fast

  - based on a 26 element Bag
  - using new R:Q:Pairs role
Zoffix yeah 21:22
hmm
m: say $*PERL.compiler.version.Str
camelia 2017.04.3.188.gc.0270.c.669
Zoffix 1 sec
BenGoldberg: pushed a fix that should fix the issue. zef --force install github.com/zoffixznet/perl6-CoreHa...master.zip 21:26
BenGoldberg Magic! Zoffix++ 21:28
Geth rakudo/nom: 29036362fc | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make (Bag|Mix)Hash.grabpairs(N) use the R:Q:Pairs role

  - for easier maintenance
21:39
lizmat good night, #perl6-dev! 21:55
Zoffix night 21:56