Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-09-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 timotimo we may beat perl5 at imaginary numbers, too. but i'm not sure about that, i don't think we have any benchmarks focusing on that
00:00 timotimo we do have a mandelbrot benchmark
00:00 ab5tract i heard about that one. solid vindication of Perl 6's approach to typing imo
00:00 timotimo but that may be weighed down a lot by our lack of the list refactor
00:01 ab5tract lack of the list refactor?
00:02 immortal joined #perl6
00:02 immortal joined #perl6
00:02 timotimo aye
00:02 timotimo you know how perl6 has lazy lists
00:02 ab5tract yup
00:03 timotimo we currently pay the price of lazyness even if we could eagerly evaluate stuff
00:03 timotimo so what we end up doing quite often is jumping back and forth between the loop and the generating code
00:04 timotimo even though we could generate all of the data in one go or at least build big batches
00:04 ab5tract ah
00:04 timotimo the list refactor is going to install a way to signal an eagerness intent to the generating code or iterator or something
00:05 ab5tract interesting
00:06 timotimo oh, yikes, rakudo-moar has a little performance regression :(
00:10 timotimo http://t.h8.lv/p6bench/2014-0​9-09-latest_developments.html - we quite obviously still have a bit of work in front of us %)
00:10 timotimo (but this doesn't include moar-jit at all)
00:12 timotimo http://t.h8.lv/p6bench/2014​-09-09-rakudo_history.html - only rakudo-moar, so that it doesn't look like a total flat-line ...
00:12 timotimo while_push and while_push_join seem to have really tanked hard
00:12 timotimo and for_push, too
00:13 ab5tract nqp-moar is above perl5 in several tests
00:13 ab5tract that's impressive
00:14 timotimo well, crap. we've lost the for range -> while loop optimization *again*
00:15 ab5tract :(
00:15 timotimo that'd explain the tank in the for-related benchmarks
00:15 ab5tract i've gotta go
00:15 ab5tract sleep time :)
00:15 timotimo lol. look at array_set_xx
00:16 timotimo jnthn: in http://t.h8.lv/p6bench/2014​-09-09-rakudo_history.html we can see a whole range of benchmarks *really* tanking hard :(
00:17 ab5tract postwhile_nil_native is looking very nice too
00:17 ab5tract okay, ciao for now #perl6 o/
00:17 ab5tract left #perl6
00:19 timotimo jnthn: also, this is the comparison instead of history view: http://t.h8.lv/p6bench/2014​-09-09-rakudo_compare.html
00:21 timotimo i guess i look kind of foolish now, having just claimed we've been making great performance progress and then these benchmark numbers pop up %)
00:21 timotimo but i'm sure all of this will be fixed within the week.
00:30 xenoterracide joined #perl6
00:34 chenryn joined #perl6
00:37 BenGoldberg joined #perl6
00:39 erts joined #perl6
00:40 raiph joined #perl6
00:42 colomon joined #perl6
00:59 dayangkun joined #perl6
01:11 nbrown__ joined #perl6
01:20 xenoterracide joined #perl6
01:26 xinming joined #perl6
01:28 eternaleye joined #perl6
01:32 telex joined #perl6
01:33 FROGGS_ joined #perl6
01:33 dalek specs: df6da87 | (L. Grondin)++ | S99-glossary.pod:
01:33 dalek specs: fixing syntax links line 385
01:33 dalek specs: review: https://github.com/perl6/specs/commit/df6da87c8e
01:45 Psyche^ joined #perl6
01:57 tinyblak joined #perl6
01:58 dalek specs: bb60fb2 | (L. Grondin)++ | S99-glossary.pod:
01:58 dalek specs: wiktionary link for TL;DF
01:58 dalek specs: review: https://github.com/perl6/specs/commit/bb60fb201c
02:01 chenryn joined #perl6
02:11 dalek specs: 46f8aa5 | (L. Grondin)++ | S99-glossary.pod:
02:11 dalek specs: WP link to AST
02:11 dalek specs: review: https://github.com/perl6/specs/commit/46f8aa5e1c
02:20 dalek specs: 94ec630 | (L. Grondin)++ | S99-glossary.pod:
02:20 dalek specs: rephrasing class + OOP
02:20 dalek specs: review: https://github.com/perl6/specs/commit/94ec630ebf
02:21 xenoterracide joined #perl6
02:22 dalek specs: 7189c68 | (L. Grondin)++ | S99-glossary.pod:
02:22 dalek specs: missing article
02:22 dalek specs: review: https://github.com/perl6/specs/commit/7189c68daf
02:26 colomon timotimo: seems like it might be worthwhile picking one of the really bad declines and bisecting it….
02:26 dalek specs: 2d18734 | (L. Grondin)++ | S99-glossary.pod:
02:26 dalek specs: DWIM entry
02:26 dalek specs: review: https://github.com/perl6/specs/commit/2d18734c21
02:27 hoelzro I was just looking at S28; why is it input-line-separator but output_field_separator?
02:27 hoelzro why the difference between - and _?
02:28 sjn pointless inconsistencies ftl
02:32 dalek specs: f35e64f | (L. Grondin)++ | S99-glossary.pod:
02:32 dalek specs: epic fail
02:32 dalek specs: review: https://github.com/perl6/specs/commit/f35e64f647
02:32 eternaleye joined #perl6
02:32 xenoterracide joined #perl6
02:35 dalek specs: 7fe4182 | (L. Grondin)++ | S99-glossary.pod:
02:35 dalek specs: filling EVAL
02:35 dalek specs: review: https://github.com/perl6/specs/commit/7fe4182edf
02:35 [Coke] I think in general we prefer -'s where we can.
02:35 rjbs ++ to that
02:35 BenGoldberg Just to be different from perl5? ;)
02:35 rjbs _'s stink.
02:35 rjbs They're harder to type and to read.
02:38 [Coke] hoelzro: +1 from me to fix output_f..
02:39 hoelzro that's all I need =)
02:40 hoelzro what about $*MOST_RECENT_CAPTURED_MATCH?
02:40 hoelzro (...is that even impl'd?)
02:40 dalek specs: eae404d | (L. Grondin)++ | S99-glossary.pod:
02:40 dalek specs: rephrasing FIFO
02:40 dalek specs: review: https://github.com/perl6/specs/commit/eae404d749
02:41 dalek specs: 616a6ad | (Rob Hoelz)++ | S28-special-names.pod:
02:41 dalek specs: Change _ to - in lower case special var names
02:41 dalek specs:
02:41 dalek specs: Well, they're fields on $*OUT, but close enough
02:41 dalek specs: review: https://github.com/perl6/specs/commit/616a6adcec
02:46 dalek specs: fc7aeb0 | (L. Grondin)++ | S99-glossary.pod:
02:46 dalek specs: missing plural and period
02:46 dalek specs: review: https://github.com/perl6/specs/commit/fc7aeb0b49
02:46 dalek specs: 0901c85 | (L. Grondin)++ | S28-special-names.pod:
02:46 dalek specs: Merge branch 'master' of github.com:perl6/specs
02:46 dalek specs: review: https://github.com/perl6/specs/commit/0901c85387
02:46 hoelzro tadzik: can I haz commit bit for panda?
02:46 slavik joined #perl6
02:46 jlaire joined #perl6
02:48 dalek specs: 1a7b77e | (L. Grondin)++ | S99-glossary.pod:
02:48 dalek specs: elaborate JIT
02:48 dalek specs: review: https://github.com/perl6/specs/commit/1a7b77e199
02:50 nbrown__ joined #perl6
02:52 dalek specs: e6df49e | (L. Grondin)++ | S99-glossary.pod:
02:52 dalek specs: elaborate on KISS
02:52 dalek specs: review: https://github.com/perl6/specs/commit/e6df49eedf
02:53 dalek specs: 92bdaf2 | (L. Grondin)++ | S99-glossary.pod:
02:53 dalek specs: fix typo
02:53 dalek specs: review: https://github.com/perl6/specs/commit/92bdaf28fa
02:55 noganex_ joined #perl6
02:55 hoelzro I'm working on a Test::Tester for Perl 6, and I'm stuck on tracking the test count
02:55 hoelzro because if I do something like this: test({ pass 'sure' }).ok;
02:56 hoelzro that pass that I'm testing will affect the test number sequence that's output to be parsed by prove or another TAP parser
02:56 hoelzro and I don't know what the best way to get around that would be
02:57 hoelzro I could expose the test counter in Test.pm for rw, so that testing utility authors could mess with it...but that seems dangerous
02:58 dalek specs: c7f125b | (L. Grondin)++ | S99-glossary.pod:
02:58 dalek specs: relate FIFO and LIFO together
02:58 dalek specs: review: https://github.com/perl6/specs/commit/c7f125b5fb
03:03 dalek specs: 667ad8a | (L. Grondin)++ | S99-glossary.pod:
03:03 dalek specs: move a few entries in the O section for lexicographic ordering
03:03 dalek specs: review: https://github.com/perl6/specs/commit/667ad8ad24
03:05 rindolf joined #perl6
03:07 dalek rakudo/nom: 705e7b8 | (Rob Hoelz)++ | lib/Test.pm:
03:07 dalek rakudo/nom: Test.pm - Allow output handles to be queried and modified
03:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/705e7b8002
03:15 dayangkun joined #perl6
03:16 xenoterracide joined #perl6
03:28 kurahaupo joined #perl6
03:32 Akagi201_ joined #perl6
03:36 xragnar_ joined #perl6
03:36 ggherdov_ joined #perl6
03:36 huf_ joined #perl6
03:37 flussenc1 joined #perl6
03:39 sorear_ joined #perl6
03:39 vike1 joined #perl6
03:39 grep0r_ joined #perl6
03:40 mtj_ joined #perl6
03:42 oetiker joined #perl6
03:42 rindolf joined #perl6
03:42 DarthGandalf joined #perl6
03:42 xenoterracide joined #perl6
03:42 tinyblak joined #perl6
03:42 colomon joined #perl6
03:42 jerrycheung joined #perl6
03:42 muraiki joined #perl6
03:42 TimToady joined #perl6
03:42 Rounin joined #perl6
03:42 breinbaas joined #perl6
03:42 MilkmanDan joined #perl6
03:42 jdv79 joined #perl6
03:58 flussence joined #perl6
04:02 danaj I noticed that List.pm has combinations(n,0) return [], which makes sense given binomial(n,0) = 1.  But permutations returns with no output for 0, while factorial(0) = 1.  Is that intended?
04:06 danaj Also combinations($n,$m) doesn't have Int type for arguments, while there is permutations(Int $n).  Intended?  It allows odd things like combinations(5,3.2) though <a b c>.combinations(1.2) is not allowed.
04:11 danaj Lastly, do we care about the performance (as in, would anyone be interested in a 60% speedup)?
04:17 anaeem1 joined #perl6
04:21 grondilu m: say permutations(3, 0).perl
04:21 camelia rakudo-moar 705e7b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/hdTo27MC8eâ�¤Calling 'permutations' will never work with argument types (Int, Int)â�¤    Expected: :(Int $n)â�¤at /tmp/hdTo27MC8e:1â�¤------> [32msay [33mâ��[31mpermutations(3, 0).perl[0mâ�¤Â»
04:21 grondilu m: say permutations(3).perl
04:21 camelia rakudo-moar 705e7b: OUTPUT«([0, 1, 2], [0, 2, 1], [1, 0, 2], [1, 2, 0], [2, 0, 1], [2, 1, 0]).list␤»
04:22 grondilu m: say permutations(0).perl
04:22 camelia rakudo-moar 705e7b: OUTPUT«().list␤»
04:22 grondilu permutations does return an output:  the empty list.
04:23 danaj m: .say for permutations(0)
04:23 camelia rakudo-moar 705e7b: ( no output )
04:23 danaj m: .say for permutations(1)
04:23 camelia rakudo-moar 705e7b: OUTPUT«0␤»
04:23 danaj m: .say for combinations(0,0)
04:23 camelia rakudo-moar 705e7b: OUTPUT«␤»
04:24 danaj permutations(0) doesn't return the empty list
04:24 grondilu IC
04:25 danaj at least not in the way that combinations(0) does
04:25 grondilu TimToady implemented those.  Better ask him.
04:27 grondilu I tend to believe there should be an Int type check in combinations as well, though.
04:27 grondilu m: .say for combinations(5, 3), combinations(5, 3.5);
04:27 camelia rakudo-moar 705e7b: OUTPUT«0 1 2␤0 1 3␤0 1 4␤0 2 3␤0 2 4␤0 3 4␤1 2 3␤1 2 4␤1 3 4␤2 3 4␤»
04:28 grondilu because combinations(5, 3.5) is just weird.
04:29 grondilu as far as performance is concerned, it's always welcome :)
04:30 grondilu but your code needs to be CORE.setting friendly.
04:32 grondilu may I suggest you post your code on http://rosettacode.org/wiki/Permutations#Perl_6 ?
04:33 danaj I can do that.  It's lexigraphic order and iterating, and just as short, but very C-like so not pretty.
04:34 danaj It's still 50x slower than the same thing in Perl 5. :(
04:35 grondilu TimToady or someone else may be able to optimize it for nqp and then it could be faster.
04:36 danaj It's much faster in XS+multicall, so yes.  Alternately we just wait until P6 gets some improvements.
04:36 grondilu would your code happen to be possibly modified to return the signature of each permtaitons as well?  I've been wanting something like that lately?
04:38 hagiri joined #perl6
04:38 danaj I'm not sure.  My experience with XS in P5 makes me thing even a naive calculation in C will get washed away in the noise of the return back to Perl.
04:38 hagiri TimToady,
04:38 hagiri =)
04:48 danaj Hmm, I'm thinking of replacing the RC combinations code -- it's super slow.
04:49 danaj Actually, I'll leave it as a recursive example.  Besides, I hate removing examples.
04:55 danaj Edited.  It is .... not really P6ish.
04:55 danaj (admittedly I wrote it in C, then wrote a P5 version, then shoved it into P6 while angels wept)
05:00 chenryn joined #perl6
05:03 danaj Re loop, thanks. There are lots of ways to structure it, e.g. change to while ($i >= 0) and wrap the last two loop lines in an if.  It didn't seem clearer to me, but it gets rid of the 'last' and makes the exit condition part of the outside loop.
05:05 dayangkun_ joined #perl6
05:05 grondilu you can consider making the edit on your local fork of rakudo and see if it passes combinations.t
05:06 grondilu (t/spec/S32-list/combinations.t that is)
05:08 * grondilu does it
05:08 danaj I was doing for $n ^16, for $k ^($n+1), stringify combinations and mycombinations, die if not equal.  Better would be to test vs. something else.
05:10 grondilu we have t/spec/S32-list/combinations.t for tests
05:11 * grondilu realizes there are only 6 lines in this test though.
05:11 danaj That's what I meant...   Still good to run it.
05:12 danaj Ah, I have to make t/spec.  I cloned it by hand because it wasn't in standard rakudo
05:12 * kurahaupo contemplates implementing .permutations.count & .combinations.count for non-integral values using the Γ function in place of
05:14 grondilu kurahaupo: I think what you want is multi permutations(Real $n, :$count!) {...}
05:15 kaare_ joined #perl6
05:15 grondilu also, that would probably be overkill unless it is decided to put Γ in the core.
05:16 grondilu we do have a nice implementation on RC, though.  So it would not be hard to add it.
05:17 danaj I was ready after YAPC to do a ntheory module for P6, but then went straight to vacation, then work, ....  I've got a giant pile of tuits next to me, but can't get motivation.
05:18 yeahnoob joined #perl6
05:20 araujo joined #perl6
05:21 danaj For what it is worth, it passes the little S32-list/combinations.t test (and I verified it's running that code by changing +1 to +2 in last line and watching it fail most of the tests).
05:24 grondilu does it?  I tried and it failed.
05:25 grondilu you have the latest rakudo?
05:25 danaj Aug 31
05:27 danaj Which test?
05:27 grondilu all of them.
05:27 grondilu m: say ((1,), (2,), (3,)).list eqv (1; 2; 3).list;
05:27 camelia rakudo-moar 705e7b: OUTPUT«False␤»
05:28 grondilu what do you locally with this ^?
05:28 grondilu you get*
05:28 danaj False
05:28 grondilu :\
05:28 grondilu wth
05:28 SamuraiJack_ joined #perl6
05:29 TimToady m: say ($(1,), $(2,), $(3,)).list eqv (1; 2; 3).list
05:29 kaleem joined #perl6
05:29 camelia rakudo-moar 705e7b: OUTPUT«False␤»
05:30 TimToady m: say ($(1,), $(2,), $(3,)).list.WHAT
05:30 camelia rakudo-moar 705e7b: OUTPUT«(List)␤»
05:30 TimToady m: say (1; 2; 3).list.WHAT
05:31 camelia rakudo-moar 705e7b: OUTPUT«(LoL)␤»
05:31 grondilu there's been a push on lib/Test.pm lately.  I'll pull it and try again.
05:31 TimToady a List and a LoL are never going to compare eqv
05:32 grondilu that's what is done in combinations.t
05:32 grondilu oh wait no
05:33 grondilu m: say ((1,), (2,), (3,)).list eqv (1; 2; 3).tree.map(*.sort).tree;
05:33 camelia rakudo-moar 705e7b: OUTPUT«False␤»
05:34 grondilu danaj: what do you get with that^ ?
05:34 danaj Also false with perl6-m
05:34 grondilu well I don't get it.
05:35 chenryn joined #perl6
05:35 grondilu m: say ((1,), (2,), (3,)).list eqv [1, 2, 3].combinations(1).tree.map(*.sort).tree;
05:35 camelia rakudo-moar 705e7b: OUTPUT«False␤»
05:37 * grondilu checks out and recompiles
05:37 * grondilu is planning on running perl6 t/spec/S32-list/combinations.t and expects failure
05:38 danaj I'm cloning into a new tree and making fresh with just the one change to src/core/List.pm.
05:42 grondilu so here we go.  I have the latest rakudo on moarvm, and t/spec/S32-list/combinations.t fails.
05:43 grondilu no because of combinations, but most likely because of the way combinations.t is written.
05:44 grondilu oh hang on, my t/spec/ is not up to day.  I had forgotten it's a separate repo.
05:45 grondilu sorry guys :P
05:46 danaj I jsut did a completely fresh checkout and build and it works for me with and without my combination change.
05:46 grondilu my version was pretty old
05:57 ilbot3 joined #perl6
05:57 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
05:57 danaj I was looking at performance with something like:  my $s = 0; $s++ for combinations(22,6); say $s;
06:01 danaj That example takes < 0.02s with Perl5+XS, ~0.05s in Perl5.  ~6.6s for perl6-m.  Original List.pm code takes ~11.1s.
06:01 grondilu you need more difficult tests
06:01 grondilu oh hang on.  6.6s on perl6-m is difficult enough I guess
06:03 grondilu m: say [*] (22, 21 ... *) Z/ 1.. 6
06:03 camelia rakudo-moar 705e7b: OUTPUT«74613␤»
06:03 grondilu m: say [*] (22, 21 ... *) Z/ 1.. 10
06:03 camelia rakudo-moar 705e7b: OUTPUT«646646␤»
06:03 grondilu try with combinations(22, 10)
06:03 grondilu should take about ten times longer
06:05 denis_boyun_ joined #perl6
06:05 danaj 0.1s Perl5+XS (using multicall, and could be faster),  0.4s P5,  82s perl6-m new code
06:05 grondilu not related:
06:05 grondilu m: role Foo {}; say $_ ~~ Foo for pi but Foo, [pi] but Foo;
06:05 camelia rakudo-moar 705e7b: OUTPUT«True␤False␤»
06:05 grondilu n: role Foo {}; say $_ ~~ Foo for pi but Foo, [pi] but Foo;
06:05 camelia niecza v24-109-g48a8de3: OUTPUT«True␤True␤»
06:06 TimToady does 'for eager combinations' run any faster?
06:06 danaj TimToady:  A little, yes.
06:07 TimToady that *probably* indicates it will run considerably faster after the list refactor
06:07 danaj Memory use is also something for the long term consideration.  It uses a lot of memory currently, but maybe that is my calling method, or maybe just to-do things.
06:13 danaj perl6-m: 82s new, 169.8s old.  with eager:   58.0s new, 144.5 old.
06:14 grondilu that's very decent
06:14 grondilu danaj++
06:14 TimToady and all that's doing is just harvesting a bunch of takes in a row, not even trying to reduce the continuations or exceptions
06:15 danaj that's a bigger difference than I got with the small examples.  This all is still predicated on it being correct (it seems to be).
06:15 TimToady long run, eager ought to be able to do away with mos tof those
06:16 TimToady or not even eager, but just batched, which lazy can do if there are no side effects
06:16 TimToady (outside the iterator itself)
06:18 danaj "The Future" ~ " Looks Bright"
06:37 danaj On a side note, I hadn't realized just how bad LTM was at primality for tiny inputs.  ".is-prime for 1..1000000" takes 2.7s on branch, 3min40s on master.  It's unrelated to why I wanted to make the changes, but it doesn't hurt.  Albeit the more one does in the loop vs. $s++, the smaller the delta.
06:43 dalek Inline-Perl5: 5198949 | nine++ | lib/Inline/Perl5.pm6:
06:43 dalek Inline-Perl5: Fix leaking Perl 5 objects passed to Perl 6 code.
06:43 dalek Inline-Perl5:
06:43 dalek Inline-Perl5: Many thanks to jnthn++ for implementing DESTROY :)
06:43 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/51989498f6
06:45 ivanshmakov joined #perl6
06:45 tadzik hoelzro: I don't know, can you? :P
06:46 tadzik hoelzro: have some nice patches to push?
06:50 dalek Inline-Perl5: 1cd647f | nine++ | p5helper.c:
06:50 dalek Inline-Perl5: Fix some leaks in callbacks
06:50 dalek Inline-Perl5:
06:50 dalek Inline-Perl5: name, obj, name_str, retval and args get freed correctly, but we're
06:50 dalek Inline-Perl5: still leaking somewhere. But the leak seems to be too small to be
06:50 dalek Inline-Perl5: an SV.
06:50 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/1cd647f4cb
06:51 dayangkun joined #perl6
06:53 timotimo grondilu: thanks for fixing up the S99 pod syntax and all those entries! :)
06:53 grondilu timotimo: you're welcome
06:55 Isp-sec joined #perl6
06:56 grondilu there are still 139 unresolved internal links though
06:58 dalek specs: 20a1fd6 | (L. Grondin)++ | S99-glossary.pod:
06:58 dalek specs: resolve link for JIT compiler
06:58 dalek specs: review: https://github.com/perl6/specs/commit/20a1fd6b01
07:01 timotimo mhhh
07:01 dalek specs: 29109b6 | (L. Grondin)++ | S99-glossary.pod:
07:01 dalek specs: header for Zavolaj
07:01 dalek specs: review: https://github.com/perl6/specs/commit/29109b669a
07:04 timotimo http://perl6.org/compilers/features - has *still* not been updated
07:04 timotimo a whole bunch of changes have accreted by now
07:05 dalek specs: 439a5b4 | (L. Grondin)++ | S99-glossary.pod:
07:05 dalek specs: resolve Rosetta Code
07:05 dalek specs: review: https://github.com/perl6/specs/commit/439a5b40dc
07:08 timotimo http://blog.chucklefish.org/?p=128 - chucklefish are like "yup, we'll build a game completely implemented in haskell using functional reactive programming. what are you gonna do about it?"
07:08 tinyblak joined #perl6
07:09 moritz timotimo: I've updated http://perl6.org/compilers/features
07:09 timotimo thank you :)
07:09 moritz though I don't know why it won't update automatically
07:09 moritz 12,42   *       *       *       *     sh ~/update-features.sh
07:09 timotimo environment trouble?
07:10 moritz there's nothing in the logs.
07:11 timotimo if there's *nothing* in the logs, that doesn't bode well :)
07:11 zakharyas joined #perl6
07:12 moritz well, the logs have "Already up-to-date.", which is from "git pull"
07:12 moritz I'm adding timestamps to the logs now
07:12 timotimo maybe an older run did the git pull and didn't correctly refresh the page?
07:12 timotimo and afterwards the script said "oh, it's already up to date, so i don't have to do anything!"
07:13 timotimo though that doesn't make sense, there have been multiple changes in the past
07:13 moritz the generation happens indepently of what the 'git pull' did
07:14 timotimo hm, ok
07:14 timotimo very strange indeed.
07:16 timotimo hum. my commit message read "did a small test across S99"
07:16 timotimo i meant to write "pass"
07:16 timotimo oh well.
07:18 tinyblak_ joined #perl6
07:18 darutoko joined #perl6
07:20 dalek specs: 33464ab | (L. Grondin)++ | S99-glossary.pod:
07:20 dalek specs: resolve rakudo
07:20 dalek specs: review: https://github.com/perl6/specs/commit/33464abdd0
07:20 dalek specs: e351af0 | (L. Grondin)++ | S99-glossary.pod:
07:20 dalek specs: resolve native
07:20 dalek specs: review: https://github.com/perl6/specs/commit/e351af07df
07:20 dalek specs: 2cf454f | (L. Grondin)++ | S99-glossary.pod:
07:20 dalek specs: resolve pseudo-scope
07:21 dalek specs: review: https://github.com/perl6/specs/commit/2cf454f0c4
07:21 dalek specs: 1fcf806 | (L. Grondin)++ | S99-glossary.pod:
07:21 dalek specs: resolve bytecode
07:21 dalek specs: review: https://github.com/perl6/specs/commit/1fcf806b19
07:21 dalek specs: db86628 | (L. Grondin)++ | S99-glossary.pod:
07:21 dalek specs: resolve expression & Just in Time
07:21 dalek specs: review: https://github.com/perl6/specs/commit/db86628542
07:21 dalek specs: 528f7c0 | (L. Grondin)++ | S99-glossary.pod:
07:21 dalek specs: less than 100 links to resolve now
07:21 dalek specs: review: https://github.com/perl6/specs/commit/528f7c0375
07:21 virtualsue joined #perl6
07:22 FROGGS timotimo++ # blög
07:22 timotimo thänk yöü :)
07:23 [Sno] joined #perl6
07:27 moritz blög ürl?
07:27 timotimo just the p6weekly.wordpress.com
07:27 timotimo nothing special
07:28 kurahaupo joined #perl6
07:28 akaseki joined #perl6
07:31 lizmat disagree: keeping this up week after week *is* special
07:31 lizmat and good *, #perl6!
07:31 nine Good morning, lizmat.
07:31 timotimo oh well :3
07:33 nine lizmat: my P5 destructors not called was indeed embarassing. Turns out, I simply forgot a parameter of p5_sv_refcnt_dec so it didn't do anything. And managed to put in the wrong variable after discovering that. But it works now :)
07:33 tinyblak joined #perl6
07:33 lizmat so I was right :-)   not enough --ing  :-)
07:33 FROGGS ohh, yeah, morning o/ :o)
07:36 moritz timotimo++
07:37 nine lizmat: I still don't know why it was not called in pure Perl 5 { Foo->new; }; Luckily I don't have to care ;)
07:49 spider-mario joined #perl6
07:55 spider-mario joined #perl6
07:56 eiro_ joined #perl6
07:57 donaldh joined #perl6
08:16 grondilu std: stay
08:16 camelia std 53b3ca6: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'stay' used at line 1�Check failed�FAILED 00:01 120m�»
08:16 grondilu std: say
08:16 camelia std 53b3ca6: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/ijhoS7UHF5 line 1:�------> [32msay[33m�[31m<EOL>[0m�Check failed�FAILED 00:00 120m�»
08:18 timotimo jnthn: btw, my benchmarks of "master" were based on 11d7482548c8298809655d86b2651e8b56c4b8d4
08:18 timotimo er, "nom" i mean.
08:18 grondilu ?? is that new?  How can I just print a newline?  print "\n" would be dull.
08:19 timotimo say()
08:19 grondilu std: say()
08:19 camelia std 53b3ca6: OUTPUT«ok 00:00 121m␤»
08:19 grondilu oh, ok.
08:19 lizmat m: say()
08:19 camelia rakudo-moar 705e7b: OUTPUT«␤»
08:20 dakkar joined #perl6
08:39 donaldh left #perl6
08:39 donaldh joined #perl6
08:43 bloonix joined #perl6
08:45 Rotwang joined #perl6
08:45 sergot Could somebody answer here: #121947 ? :)
08:45 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=121947
08:46 nwc10 rakudo startup only compettive/beating Moose on x86_64 (of platforms I've tested)
08:46 nwc10 On Power, Moose is about 2/3rds of the time
08:46 nwc10 so be careful when bragging
08:47 nwc10 JIT *doesn't* seem to be the cause of speed
08:48 spider-mario joined #perl6
08:50 moritz the cause of speed is not doing unnecessary or stupid things
08:50 nwc10 my suspicion is endian swaps in MoarVM
08:50 nwc10 but I don't have enough disparate platforms to test this
08:52 spider-mario joined #perl6
09:10 bjz joined #perl6
09:10 timotimo nwc10: the jit would have a hard time speeding up start-up anyway
09:18 chenryn joined #perl6
09:26 yeahnoob joined #perl6
09:34 FROGGS TimToady: can you please answer to #121947?
09:34 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=121947
09:36 kurahaupo joined #perl6
09:47 kaleem joined #perl6
09:50 leont joined #perl6
09:59 Px12 joined #perl6
09:59 BizarreCake joined #perl6
10:01 virtualsue joined #perl6
10:05 [particle] joined #perl6
10:06 masak good time-of-day, #perl6
10:07 nwc10 masak: hoes does China cope with walkclocks being out of sync with the daystar in most of the country? How does it know what time of day it is?
10:17 denis_boyun_ joined #perl6
10:20 telex joined #perl6
10:20 yeahnoob joined #perl6
10:24 colomon Huh.  A batch of modules that had been failing started working, but were replaced by a new batch of failing modules.  :\  http://host07.perl6.com:8080/report
10:26 FROGGS v5 failed... that's very weird
10:27 timotimo i'm doing a bit of bisection on the rakudo and the specified _REVISIONs
10:27 timotimo seems like b0e3d6d was already dog slow at rc-forest-fire-stringify
10:33 timotimo and the Minsk tagged release is good.
10:33 timotimo (always be sure to verify the good as well as the bad)
10:33 masak nwc10: Russia has nine time zones. too wide. but China is not as wide, and copes with but one.
10:34 leont How do I trap warnings in a background thread? «No exception handler located for warn» is highly uninformative :-/
10:35 nwc10 masak: but does that mean in different parts of the country, office hours are different wallclock times?
10:35 moritz leont: iirc jnthn did something to catch them yesterday
10:35 moritz leont: that is, a rakudo patch
10:35 moritz commit 22a4c05712109cdb9704e2a84f5261806349fd54
10:35 moritz Author: Jonathan Worthington <jnthn@jnthn.net>
10:35 moritz Date:   Sun Sep 7 10:57:27 2014 +0300
10:35 moritz Fix issues with reporting warnings on threads.
10:35 moritz leont: might help to upgrade your rakudo, if you haven't already
10:35 leont Ah, right. Was planning to upgrade any way, think lizmat++ also fixed an issue I had run into
10:36 timotimo oh wow
10:36 timotimo here i have a commit where rakudo takes 92 seconds for stage parse ...
10:36 timotimo that's c3a6f67
10:36 leont Is doing just a «rakudobrew build» the way to upgrade?
10:36 colomon huh, the other interesting thing about the smoke run last night was the fastest Stage parse I've ever seen, 26.336.  Rest of this week it has been > 27, I believe
10:37 tadzik leont: yes
10:37 colomon leont: yes
10:37 * moritz should start to use rakudobrew :-)
10:39 tadzik http://en.wikipedia.org/wiki/Jake_Weary :D
10:40 moritz "Not to be confused with jQuery."
10:40 timotimo oh, i know why stage parse was so super slow
10:40 timotimo it was right in the middle of hoelzro's POD parsing re-work
10:42 colomon http://ebiquity.umbc.edu/blogger/2​008/01/19/how-dr-suess-would-prove​-the-halting-problem-undecidable/
10:42 masak ah, yes. a classic.
10:43 masak Geoffry Pullum, isnät it_
10:43 masak isn't it?*
10:45 masak nwc10: yes. in Xinjiang they start working at around 11:00. (source: kathyz)
10:45 moritz masak: correct, Pullum
10:46 * masak likes Pullum
10:46 masak everyone should take the time to read Pullum's rants about (a) Strunk & White, and (b) people who think various things are "passive voice".
10:47 masak including (c) Strunk & White who think various things are "passive voice" :)
10:51 grondilu since * .. * means something now, would it be a big stretch to have * .. $n mean something too?
10:51 grondilu that would allow to golf http://rosettacode.org/wiki/Evalu​ate_binomial_coefficients#Perl_6 a bit more
10:51 lizmat the other day, someone mentioned that classify doesn't create typed hashes
10:51 lizmat that is correct, but you can:
10:52 grondilu like:  sub infix:<choose> { [*] * .. $^n Z/ 1 .. $^p }
10:52 chenryn joined #perl6
10:52 lizmat m: my %h{Any}; %h.classify-list($test, @List to classify )
10:52 camelia rakudo-moar 705e7b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Rc8Q3S1QXaâ�¤Variable '$test' is not declaredâ�¤at /tmp/Rc8Q3S1QXa:1â�¤------> [32mmy %h{Any}; %h.classify-list($test[33mâ��[31m, @List to classify )[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
10:52 timotimo how do you expect to multiply up * .. $^n ??
10:52 lizmat my %h{Any}; %h.classify-list($test, @List to classify )  # pseudo code
10:52 timotimo start at -Inf and increment until you reach $n?
10:53 grondilu oh yeah we have to start from the left.  Forgot that.
10:55 lizmat m: my %h = a => 1; %h<a> = [ %h<a>, 2 ]; say %h.perl   # is this guaranteed to keep working ?
10:55 camelia rakudo-moar 705e7b: OUTPUT«("a" => [1, 2]).hash␤»
10:56 lizmat the reason I'm asking, is that Hash.push is using an intermediary, when it feels that is not necessary
10:58 timotimo oh my. seems like mister toady could be to blame for the performance regression; at least for the one in rc-forest-fire-stringify
10:58 tinita joined #perl6
10:58 timotimo (which got 17x slower)
10:58 lizmat is that the one with the candidate removal ?
10:59 lizmat tinita: welcome to #perl6!
10:59 tinita \o/
10:59 timotimo i'll give you the commit id in just a moment
11:00 timotimo i'll just wait for the timing to officially terminate
11:00 timotimo oh, git wants me to test one more revision
11:02 dalek rakudo/nom: 617176f | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
11:02 dalek rakudo/nom: Some code esthetics
11:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/617176f69f
11:02 dalek rakudo/nom: fcdf308 | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
11:02 dalek rakudo/nom: Remove unnecessary temporary from Hash.push
11:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fcdf308bc7
11:02 timotimo ce0c258640222761ab8176aff92cf9bbe5b3665f is the first bad commit
11:02 timotimo Reify lists with correct count.
11:02 timotimo https://github.com/rakudo/rakudo/commit/​ce0c258640222761ab8176aff92cf9bbe5b3665f
11:03 FROGGS weird
11:03 timotimo i only tested that one benchmark, though
11:03 FROGGS and that can make things 17 times slower? that seems odd
11:03 lizmat perhaps $count is Inf in some cases ?
11:03 lizmat (or something close to it)
11:03 timotimo https://github.com/japhb/perl6-bench/blo​b/master/perl6/rc-forest-fire-stringify - this is the benchmark i've tested it with
11:04 timotimo i'll build that revision and the one before it and run the complete benchmark suite with those.
11:04 FROGGS timotimo++
11:05 FROGGS damn, setting up a osx box failed again :o(
11:06 timotimo ;(
11:09 virtualsue joined #perl6
11:11 timotimo huh. rebootstrap.pl is ... hanging?
11:11 tadzik huh
11:11 timotimo with almost no cpu usage, too
11:13 timotimo trying with an older commit now
11:13 timotimo oh, i wasn't up to date with my panda repository
11:13 tadzik still weird
11:14 grondilu m: say 10, 20, 30 Z/ 1, 2;
11:14 camelia rakudo-moar 705e7b: OUTPUT«10 10␤»
11:14 grondilu m: say 3 ... 0 Z/ 1, 2;
11:14 camelia rakudo-moar 705e7b: OUTPUT«3 2 1 0␤»
11:14 timotimo ayup, shell hangs.
11:14 lizmat timotimo: that's the same effect I've seen on OS X
11:14 lizmat with the new libuv
11:14 timotimo ah, hold on
11:14 lizmat qx/foo/ hangs trying to read from the sub processes STDOUT
11:15 lizmat is what jnthn sort of determined
11:15 timotimo had to realclean my moarvm repo
11:15 timotimo (because i'm now "past" the commit where we reset libuv to the old version)
11:15 grondilu n: say 3 ... 0 Z/ 1, 2;
11:16 camelia niecza v24-109-g48a8de3: OUTPUT«3 1␤»
11:17 grondilu n: sub infix:<choose> { [*] $^n ... 0 Z/ 1 .. $^p }; say 5 choose 3
11:17 camelia niecza v24-109-g48a8de3: OUTPUT«10␤»
11:17 grondilu m: sub infix:<choose> { [*] $^n ... 0 Z/ 1 .. $^p }; say 5 choose 3
11:18 camelia rakudo-moar 705e7b: OUTPUT«0␤»
11:22 anaeem1_ joined #perl6
11:27 * [Coke] yawns.
11:27 lizmat morning [Coke] !
11:28 [Coke] arglebargleearlymorningcalls
11:44 [Coke] lizmat: morning. :)
11:51 [particle]1 joined #perl6
11:58 jdv79 joined #perl6
11:59 M_o_C joined #perl6
11:59 spider-mario joined #perl6
11:59 hoelzro tadzik: just one!
12:00 moritz grondilu: exclude the 0
12:00 moritz m: sub infix:<choose> { [*] $^n ... 1 Z/ 1 .. $^p }; say 5 choose 3
12:00 camelia rakudo-moar fcdf30: OUTPUT«120␤»
12:01 tadzik hoelzro: show meh :)
12:01 hoelzro tadzik: https://github.com/hoelzro/panda/commit/​d0a9cb6a0f63337bd0859cb9d9591ee9f4f24810
12:01 hoelzro there's an outstanding PR
12:01 tadzik oh!
12:01 tadzik sorry I missed it
12:02 tadzik any chance for a test? :)
12:02 dalek panda: d0a9cb6 | (Rob Hoelz)++ | lib/Panda.pm:
12:02 dalek panda: Force source-url into a Str
12:02 dalek panda:
12:02 dalek panda: Because sometimes it's an IO::Path
12:02 dalek panda: review: https://github.com/tadzik/panda/commit/d0a9cb6a0f
12:02 dalek panda: afcc877 | tadzik++ | lib/Panda.pm:
12:02 dalek panda: Merge pull request #100 from hoelzro/master
12:02 dalek panda:
12:02 dalek panda: Force source-url into a Str
12:02 dalek panda: review: https://github.com/tadzik/panda/commit/afcc877ec8
12:02 moritz wow, pull request 100
12:02 lizmat FWIW, I'm coming more and more to the conclusion that we need to get rid of IO::Path
12:03 moritz lizmat: why?
12:03 * moritz likes it
12:03 lizmat well, this patch is another such example where we need a string..  and IO::Path is not a string, so we need to stringify it again
12:04 moritz but there are also quite many examples in the modules out there where IO::Path helps immensely
12:05 moritz for example I'm pretty sure that the path traversal and manipulation in perl6/doc:htmlify.p6 wouldn't be platform independent if I had hand-coded it all with strings
12:05 MilkmanDan joined #perl6
12:05 muraiki joined #perl6
12:05 TimToady joined #perl6
12:05 Rounin joined #perl6
12:05 breinbaas joined #perl6
12:05 lizmat but that is something that would need to live in IO::Spec, would it not ?
12:06 lizmat in fact: all that IO::Path does, is channel through to IO::Spec
12:06 moritz not quite
12:06 moritz it's also very convenient that dir() returns IO::Path objects
12:06 moritz in fact, one could argue that the PR is only a stopgap solution
12:07 moritz and the proper thing would be support IO::Path object in $mod<source-url>
12:07 brrt joined #perl6
12:07 moritz then it'd be even easier to detect that it's not an URL
12:07 lizmat well, I feel that between IO::Path / IO::Spec / IO::Handle, there is one class too many
12:08 moritz yes, I never use IO::Spec
12:08 moritz currently I see it as an implementation detail of IO::Path that I don't care about
12:08 lizmat yes, you do... but under the hood
12:08 lizmat so you wouldn't mind seeing IO::Spec go
12:08 lizmat as long as IO::Path kept its features
12:09 lizmat ?
12:09 moritz let's put it that way: I haven't used IO::Path features yet, but I can imagine situations where might be handy
12:09 moritz but I'm not too attached to it
12:09 moritz I am attached to IO::Path though :-)
12:10 lizmat I hear you  :-)
12:10 lizmat on attachment to things
12:10 lizmat masak: how about REAP instead of DESTROY ?
12:11 masak REAP also isn't a natural opposite of BUILD :/
12:11 hoelzro RAZE? =P
12:12 tadzik :)
12:12 lizmat but I see REAP not being the opposite of BUILD
12:12 lizmat just like death is not the opposite of birth
12:13 nwc10 http://www.bbc.co.uk/news/uk-engl​and-york-north-yorkshire-29126161 -- oh gnoes. it's been disproved.
12:14 jepeway joined #perl6
12:14 tadzik haah
12:14 tadzik I didn't even know there's such a saying
12:15 * [Coke] takes care of kid51++'s request about perl6-users
12:15 lizmat [Coke]++
12:16 lizmat fwiw, kid51++ is the [Coke]++ of p5p
12:16 lizmat wrt to looking at tickets, testing, smoking, etc.
12:17 brrt lol nwc10
12:17 masak lizmat: but BUILD is not a birth metaphor. it's a construction metaphor. we're talking about objects, not organisms.
12:17 moritz DECONSTRUCT
12:17 lizmat DEMOLISH
12:18 moritz OH_NOEZ_I'M_DYING
12:18 JimmyZ joined #perl6
12:18 JimmyZ DEBUILD? ;)
12:18 jepeway TEARDOWN?
12:18 lizmat moritz: no organisms
12:18 moritz JimmyZ: I thought that too
12:18 [Coke] lizmat: I feel like he's winning. :)
12:18 brrt what is actually wrong with DESTROY
12:19 moritz DISMANTLE
12:19 brrt DISINTEGRATE
12:19 lizmat to me, REAP makes sense, as it is an external force deciding the remnants of a no longer used object being removed
12:19 nwc10 EXTERMINATE! EXTERMINATE!
12:19 lizmat aka a Reaper
12:19 moritz brrt: some people are afraid that other people mistake it to be the same a perl 5's DESTROY
12:19 * brrt doesn't know perl 5's DESTROY, actually
12:19 BenGoldberg joined #perl6
12:19 moritz lizmat: also good for grim reaper jokes
12:19 masak brrt: nothing is actually wrong with DESTROY.
12:20 denis_boyun__ joined #perl6
12:20 lizmat brrt: it's timely, as opposed to Perl 6's cleanup
12:20 JimmyZ I think destroy is ok, it is simple enough for these people who aren't using english as there main language.
12:20 brrt on the other hand, it happens before the object loses its integrity
12:20 masak but people enjoy bikeshedding, and there is a percieved problem that I don't agree with.
12:20 JimmyZ *as their
12:20 brrt i.e. after DESTROY the object is no longer a single thing
12:20 moritz brrt: p5's DESTROY is like p6's DESTROY, except that p5 is refcounted, and so DESTROY is always called immediately when an object goes out of scope
12:20 brrt i see
12:21 moritz afaict we have two options
12:21 lizmat masak: if you've seen 100+s of web servers / database servers go down because suddenly database handles are no longer released when they're not needed anymore
12:21 JimmyZ DEBUILD is ok, methinks :)
12:21 JimmyZ too
12:21 lizmat at several K$ / minute
12:21 moritz 1) stick with DESTROY; then we have to explain people why destruction isn't timely
12:21 lizmat you get sensitive to these things
12:22 masak I hear you.
12:22 moritz 2) pick another name; then we have to tell people about the new name, why there is a new name, and we still have to explain to everybody that destruction isn't timely
12:22 lizmat and that's the issue here: in dev, all will work
12:22 masak still don't think that's a problem *inherent to naming*.
12:22 ribasushi jnthn: can you weigh in on my question from yesterday - what are the plans for timely destruction in p6
12:22 lizmat if developers need to use a different name, they are easier aware of changed semantics
12:22 * JimmyZ +1 to DESTROY
12:22 ribasushi also note that DESTROY in p5 among other things has the option to abort the GC (this is heavily used in dbic and some other projects)
12:23 brrt lizmat: the issue then is that developers don't think about what they're doing, and that sucks in general
12:23 masak what moritz++ said. the problem of explaining timeliness remains even after we abandon DESTROY and go for a sillier name. :/
12:23 Px12 joined #perl6
12:23 masak ribasushi: wow, TIL. that's horrible :)
12:24 lizmat well, it's clear to me now that I can't convince you guys, so I'll shut up
12:24 lizmat and hope that I will be proven wrong
12:24 moritz ribasushi: how so? by installing the invocant in a symbol table somewhere?
12:24 ribasushi it's how I have leak-less circular references in p5 ;)
12:24 moritz ribasushi: also note that Perl 6 has proper scope guards (LEAVE phasers), so we might be able to avoid some clever DESTROY hacks
12:25 moritz and even a phaser for unsuccessful exits (UNDO)
12:25 ribasushi moritz: by flipping the strong/weak relationship between actors, keeping the strong refs pointing *out* of the part of the "graph" which is still in scope
12:25 nebuchad` joined #perl6
12:25 ribasushi moritz: I am aware of all these, and yet there is a thing one can do with timely GC that can not be done with scopes
12:25 baest_ joined #perl6
12:25 ribasushi hence why I want jnthn to chime in
12:26 hoelzro did anyone see my comments about trying to make Test::Tester work? about perhaps having to modify Test.pm?
12:26 moritz hoelzro: I missed it
12:26 masak jnthn and I discussed this morning that we should probably have a construct like Python's `with`, C#'s `using` and Java 7's try-with-resource.
12:26 hoelzro moritz: I'll send a link, hang on
12:27 masak thing is, we could prototype it in module-space today as a sub, but then one would have to use a comma: `with $db.open, -> $dbh { ... }`
12:27 masak which is ugly.
12:27 hoelzro http://irclog.perlgeek.de/​perl6/2014-09-09#i_9320542
12:27 jerrycheung joined #perl6
12:27 masak this is another case where macros should just naturally swoop in and allow the user to define the keyword plus the completely normal/reasonable (but TTIAR) parsing rule of <expr> + <block>
12:28 masak I think it's a huge mistake to leave this important job to textual macros. our AST macros should be able to do that.
12:28 masak otherwise we miss out on composition, and we're no better than source filters.
12:28 masak dinner &
12:28 moritz hoelzro: IMHO it would make more sense to make proclaim available to the usr
12:28 moritz hoelzro: s/usr/module author/
12:29 moritz hoelzro: though making Test.pm more OO, and exposing the actual test object would also be an option
12:29 hoelzro moritz: but that wouldn't prevent pass() and friends from calling proclaim() and modifying the test count
12:29 hoelzro I thought of that as well, but I'm nervous about such large change in such a crucial library
12:30 dayangkun joined #perl6
12:30 moritz hoelzro: and why would you want to prevent pass() etc. from calling proclaim()?
12:30 grondilu m: sub infix:<choose> { [*] $^n ... 1 Z/ 1 .. $^p }; say 5 choose 3 # was expecting 10
12:30 camelia rakudo-moar fcdf30: OUTPUT«120␤»
12:30 [Coke] hoelzro: if only we had a way to make sure that changes to an important library didn't break anything... :)
12:31 lizmat hoelzro: the current Test.pm is a temporary hack: I'm all for making it better built
12:31 lizmat ## This is a temporary Test.pm to get us started until we get pugs's Test.pm
12:31 lizmat ## working. It's shamelessly stolen & adapted from MiniPerl6 in the pugs repo.
12:31 moritz m: say 5...1
12:31 camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
12:31 moritz m: say 1..3
12:31 camelia rakudo-moar fcdf30: OUTPUT«1..3␤»
12:31 hoelzro [Coke]: tests for Test.pm are on my TODO =)
12:31 hoelzro moritz: let's say I have a test that tests a test
12:31 moritz m: say 5...1 Z/ 1..3
12:31 camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
12:31 carlin change BUILD to SOW, and then REAP fits perfectly
12:31 hoelzro plan 2; test({ pass() }).ok; test({ flunk() }).not-ok;
12:31 moritz m: say (5...1 Z/ 1..3)
12:31 camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
12:32 grondilu m: say 5...1 Z~ 1..3
12:32 camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -…»
12:32 hoelzro test.ok should emit "ok 1", and test.not-ok should emit "ok 2"
12:32 grondilu wth
12:32 ribasushi masak: this (timely destructors) ought to be a part of the spec imho, here is a doc I wrote a while ago when Zefram almost irreversibly broke p5's DESTROY semantics http://git.shadowcat.co.uk/gitweb/gitweb.cgi​?p=dbsrgits/DBIx-Class-Historic.git;a=blob_p​lain;f=useful_guard_objects.html;hb=refs/hea​ds/historic/txn_guard_breakage_discussion_an​d_sample_code#But_why_not_just_use_the_clear​ly_superior_txn_do_transaction_control%3F
12:32 moritz m: say (5...1 Z/ 1...3)
12:32 ribasushi bah, this was supposed to be a shortlink
12:32 camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
12:32 hoelzro but the pass() in the passed in block emits "ok 1", and messes with the test count
12:32 [Coke] lizmat: that comment is out of date and should be fixed up.
12:32 moritz m: say ((5...1) Z/ (1...3))
12:32 camelia rakudo-moar fcdf30: OUTPUT«5 2 1␤»
12:32 moritz grondilu: precedence problem
12:32 grondilu oh
12:33 grondilu m: say (5...1) Z/ 1..3
12:33 camelia rakudo-moar fcdf30: OUTPUT«5 2 1␤»
12:33 grondilu moritz++  nicely spotted
12:33 moritz hoelzro: well, if you want to test the tests, you could load a module which loads other test subs (like plan, pass, ok etc.)
12:34 hoelzro I thought of that too
12:34 moritz hoelzro: though I don't know if that's a worse approach :-)
12:34 hoelzro let's say I'm writing a Test::Differences module (which I am)
12:34 hoelzro and I want to test eq-or-diff
12:34 hoelzro test({ eq-or-diff([], []) }).ok
12:34 hoelzro importing custom subs here wouldn't help
12:34 Px12 joined #perl6
12:35 [Coke] if you're testing Test.pm, I would recommend running an external program.
12:35 [Coke] and then verifying that the tap output is what you expect.
12:36 hoelzro [Coke]: and if I'm testing a new test library that makes use of Test.pm?
12:36 BizarreCake joined #perl6
12:36 [Coke] The same?
12:37 hoelzro you make a good poitn
12:37 hoelzro point, even
12:37 colomon joined #perl6
12:38 [Coke] or, of course "does this test file pass" and assuming that any passing TAP is acceptable, but that's not as rigorous.
12:38 hoelzro shelling out seems less than ideal, though
12:38 hoelzro I suppose I *could* do test('eq-or-diff([], [])').ok instead
12:39 hoelzro but it seems...I don't know
12:39 [Coke] Point made, I wander away to get コオヒイ
12:40 hoelzro o/ [Coke]
12:40 hoelzro enjoy...I think.
12:54 lizmat are we sure the MMD candidate opts are still working?
12:55 lizmat I was looking at adding a candidate for Cool.index
12:55 lizmat multi method index(Cool $needle, Cool $pos = 0) {
12:55 lizmat Cool ''
12:55 lizmat so that:
12:55 lizmat if $needle eq '' {
12:55 lizmat my $chars = self.chars;
12:55 lizmat return $pos < $chars ?? $pos !! $chars;
12:55 lizmat }
12:56 lizmat could be moved to the '' candidate
12:56 lizmat slurping / lines of /usr/share/dict/words then *doubles* in CPU / wallclock  :-(
12:57 moritz lizmat: it might be because it can't be expressed as a nominal type check
12:57 moritz lizmat: so the dispatcher has to run perl 6 code to do the type check, on every dispatch. And it probably has trouble inlining
12:57 JimmyZ_ joined #perl6
12:58 lizmat but '' should be easy to check, no?
12:58 dalek rakudo/nom: 2598e87 | duff++ | src/core/Str.pm:
12:58 dalek rakudo/nom: Str.samecase reimplementation mark 2
12:58 dalek rakudo/nom:
12:58 dalek rakudo/nom: Implemented the array version found at
12:58 dalek rakudo/nom: https://gist.github.com/per​lpilot/bd0939415bd63e35cdc3 which includes
12:58 dalek rakudo/nom: the code used for testing and timing the implementations.
12:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2598e8767e
12:58 lizmat hmmm... ok
12:58 lizmat I see what you mean
12:59 pmurias joined #perl6
13:00 moritz things you could do:
13:00 moritz a native str subroutine version of index
13:00 moritz we are much better at inlining subs
13:01 moritz and then we wouldn't have to handle all that Cool -> Str type casting
13:01 moritz (might even be better to move the current method from Cool to Str, and set up a coercing forwarder in Cool
13:01 moritz )
13:01 lizmat yes, was considering that
13:02 moritz also, $result could be a native int
13:02 lizmat I just did that  :-)
13:02 moritz (and only box on success)
13:02 moritz so, we're in violent agreement again :-)
13:03 lizmat yup
13:03 akaseki joined #perl6
13:04 dalek rakudo/nom: 03cb92c | (Elizabeth Mattijsen)++ | src/core/Cool.pm:
13:04 dalek rakudo/nom: Don't box int when we don't need it
13:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/03cb92c5d3
13:05 pmurias ribasushi: re timely destruction the problem with calling DESTROY in a timely manner is that it's hard/really expensive to implement if we don't use refcounting
13:06 ribasushi pmurias: C# does it with a special class of refcounted variables afaik
13:09 * brrt mentally compares C# dev team resources with that of perl6 :-)
13:09 PerlJam ribasushi: So maybe if the programmer cares about timely destruction, there should be an "is refcounted" trait that hooks up all the appropriate stuff to make it happen ( if that's even possible)
13:12 ribasushi PerlJam: something like this yes, the option should be there (and it doesn't even matter if it is performant)
13:12 nine lizmat: isn't everyone using database connection pools nowadays anyway?
13:13 ribasushi nine: connection pools are for simple stateless IO
13:13 ribasushi nine: the moment you get into txns, live with pools becomes *very* difficult
13:13 ribasushi *life
13:13 pmurias you won't be able to keep your refcounted obj in a garbage collected place
13:14 ribasushi pmurias: this is an implementation detail though... isn't it?
13:15 leont hoelzro: I need to push my work in the direction of a Test::Builder, but it has to work first
13:15 pmurias it seems like something that would require a horrible slowdown for everything
13:15 moritz PerlJam: t/spec/S05-modifier/ii.rakudo.moar hangs after your patch
13:16 moritz PerlJam: please run the tests before pushing :-)
13:16 leont Getting a weird «use of uninitialized value of type Str in string context  in any !cursor_init at gen/moar/stage2/QRegex.nqp:599» warning that's not telling me where I screwed up
13:17 pmurias ribasushi: or the refcount will be have to kept manualy with '$obj.refcount++;' and '$obj.refcount--;'
13:17 PerlJam moritz: I did
13:17 PerlJam (or I thought I did)
13:18 PerlJam I must have something weird going on on my system.  :(
13:18 ribasushi pmurias: I can't take a stab assessing internal impact and whatnot, I can just keep the topic alive until the VM experts speak up
13:18 * ribasushi looks @ masak ;)
13:19 leont Ah, figured it out…
13:20 * PerlJam wipes his rakudo clone and starts from a clean slate.
13:20 leont subsets don't like their default initializer either…
13:21 nwc10 for some reason t/spec/S05-modifier/ii.rakudo.moar.t is chewing CPU
13:29 timotimo sorry for disappearing
13:30 timotimo http://t.h8.lv/p6bench/2014-09-09-bisection.html
13:32 timotimo see reduce_int_comb_range, any_equals, split_string_constant, split_string_regex, visit_2d_indices_cross, create_and_copy_2d_grid_cross, create_and_iterate_hash_kv, rc-forest-fire, rc-self-describing-numbers, rc-dragon-curve, rc-9-billion-names, rc-mandelbrot, spinner and rc-forest-fire-stringify
13:32 moritz nwc10: yep, it hangs, caused by last patch from PerlJam++
13:33 guru joined #perl6
13:34 lizmat m: say nqp::p6definite(fail)   # would have expected False here, am I wrong ?
13:34 camelia rakudo-moar fcdf30: OUTPUT«Unhandled exception: ␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13381  (/home/p6eval/rakudo-inst-1/languages/per​l6/runtime/CORE.setting.moarvm:sink:29)␤ f…»
13:34 lizmat m: say nqp::p6definite(fail); 1   # would have expected False here, am I wrong ?
13:34 camelia rakudo-moar fcdf30: OUTPUT«Unhandled exception: ␤   at <unknown>:1  (/home/p6eval/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13381  (/home/p6eval/rakudo-inst-1/languages/per​l6/runtime/CORE.setting.moarvm:sink:29)␤ f…»
13:34 lizmat huh?
13:36 nwc10 moritz: oh. that's LTA. :-(
13:36 nwc10 does anyone know how to restore Awesomeness?
13:37 * PerlJam is looking, but not making any progress
13:38 colomon FROGGS: suspect this is your v5 issue: https://gist.github.com/co​lomon/b139513e0014303bd00f
13:39 colomon looks like one place it is Terms and the other Perl5::Terms
13:39 lizmat colomon: fwiw, that a similar error to what I see with my @*INC opt and panda
13:40 moritz PerlJam: but can you reproduce it?
13:41 PerlJam aye. I can now.
13:42 anaeem1 joined #perl6
13:46 dalek rakudo/nom: 48d9e4d | (Elizabeth Mattijsen)++ | src/core/ (2 files):
13:46 dalek rakudo/nom: Minimal optimizations in Cool.(r|)index
13:46 dalek rakudo/nom:
13:46 dalek rakudo/nom: Mainly by not having to .Str if it is already a Str.  Gives about 2% on
13:46 dalek rakudo/nom: Str.lines on e.g. /usr/share/dict/words
13:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48d9e4dc76
13:46 firefish5000 joined #perl6
13:47 anaeem1_ joined #perl6
13:47 PerlJam Blah.  I've got some other work to do.   I'll revert for now and try again later.  Sorry for the trouble.
13:47 dalek rakudo/nom: 29ca8f7 | duff++ | src/core/Str.pm:
13:47 dalek rakudo/nom: Revert "Str.samecase reimplementation mark 2"
13:47 dalek rakudo/nom:
13:47 dalek rakudo/nom: This reverts commit 2598e8767e3b25d6a2548a7ba5ac68c0b371852c.
13:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29ca8f7dc1
13:48 dalek rakudo/nom: eefe11e | (Timo Paulssen)++ | src/core/ListIter.pm:
13:48 dalek rakudo/nom: Revert "Reify lists with correct count."
13:48 dalek rakudo/nom:
13:48 dalek rakudo/nom: It caused massive performance regressions across the board.
13:48 dalek rakudo/nom:
13:48 dalek rakudo/nom: This reverts commit ce0c258640222761ab8176aff92cf9bbe5b3665f.
13:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eefe11e79d
13:48 anaeem1 joined #perl6
13:48 timotimo ^- i spectested the revert and it was fine, so i thought "why not go ahead and push"
13:49 kaleem joined #perl6
13:53 pmurias ribasushi: in C# they seem to have a .Dispose method that's manually called
13:53 daxim I would like to see a p6 translation of http://jlongster.com/Taming-the-Async​hronous-Beast-with-CSP-in-JavaScript
13:53 anaeem1 joined #perl6
13:56 kaleem joined #perl6
13:57 JimmyZ_ joined #perl6
14:13 hoelzro pmurias: iirc, Dispose can also be invoked automatically by a using statement
14:13 PerlJam Blah.  I've got some other work to do.   I'll revert for now and try again later.  Sorry for the trouble.kk
14:13 PerlJam blah blah
14:19 FROGGS colomon: ewww
14:24 daxim in nqp t/hll/06-sprintf.t, I have a test failure with #91 "simple %b with zero value".  are these placeholders just passed through to libc?
14:25 timotimo no, we implement them ourselves - at least on moarvm
14:25 daxim alr
14:25 FROGGS timotimo: on all backends
14:25 treehug88 joined #perl6
14:26 timotimo OK
14:26 FROGGS there is nqp/src/HLL/sprintf.nqp
14:27 daxim I need to try again with master, will report back in a minute
14:27 JimmyZ_ joined #perl6
14:27 FROGGS hmmm, all tests pass on my linux x86_64
14:31 timotimo http://t.h8.lv/p6bench/2014-09-09-​rakudo_history_no_regression.html - FWIW, this is current nom, which contains my revert from an hour ago
14:32 timotimo oh, damn
14:32 daxim yup, I still get the failure.  preparing bug report
14:32 timotimo while_push_join, while_push still regressed
14:32 timotimo as did for_push
14:32 daxim apart from prove -v output, what else do you need to maximum detail?
14:33 timotimo and 9 billion names also regressed a bit
14:35 FROGGS daxim: uname -a and revisions of the repositories
14:35 FROGGS (moar and nqp only in this case)
14:36 FROGGS (except when this is about nqp-p or nqp-j)
14:37 FROGGS daxim: all nqp tests pass on my opensuse 13.1-x86_64
14:37 daxim it's with nqp-m, haven't built with other backends yet
14:37 FROGGS k
14:39 moritz got several test failures in an early abourt in S32-str/rindex.t
14:39 lizmat on perl6-m ?
14:41 moritz yes
14:41 * lizmat checks
14:41 mr-foobar joined #perl6
14:41 moritz Failed tests:  2-3, 11-12, 15, 22, 24-31
14:41 moritz Non-zero exit status: 14
14:41 moritz Parse errors: Bad plan.  You planned 33 tests but ran 31.
14:41 lizmat confirmed here, looking at it
14:41 JimmyZ_ joined #perl6
14:41 moritz also a non-zero exit status on S04-declarations/constant.rakudo.moar, and Failed test:  49
14:42 FROGGS substring not found
14:42 FROGGS in method Numeric at src/gen/m-CORE.setting:13363
14:42 FROGGS in sub infix:<==> at src/gen/m-CORE.setting:4457
14:42 lizmat that's probably because index() now returns Failure on not finding (as rindex did)
14:43 kaare_ joined #perl6
14:44 lizmat I guess the fail is not according to spec
14:45 lizmat S32/Str:206
14:45 * lizmat wishes synopsebot would recognize that as well
14:45 tadzik hmm
14:45 * lizmat adapts index/rindex
14:45 tadzik patches welcome :) it's on github now
14:46 tadzik https://github.com/tadzik/synopsebot
14:48 masak pmurias: .Dispose can be manually called, for example when doing reactive stuff. but when possible, it's done implicitly through `using { ... }`
14:48 masak ribasushi: if you want VM people, you don't want me, you want #moarvm :)
14:52 lizmat m: my int $a = 42; say nqp::p6box_i($a,Int)  # shouldn't this work?
14:52 camelia rakudo-moar eefe11: OUTPUT«Cannot unbox a type object␤  in block <unit> at /tmp/HsIdtXeI9s:1␤␤»
14:52 lizmat m: my int $a = 42; say nqp::p6box_i($a)  # this does, but I want it to become a StrPos
14:52 camelia rakudo-moar eefe11: OUTPUT«42␤»
14:52 lizmat m: class StrPos is Int {}; my int $a = 42; say nqp::p6box_i($a,StrPos)  # like this
14:52 camelia rakudo-moar eefe11: OUTPUT«Cannot unbox a type object␤  in block <unit> at /tmp/Kx6Pf7ShfX:1␤␤»
14:53 moritz lizmat: nqp::box_i($a, StrPos)
14:53 moritz lizmat: (iirc)
14:53 lizmat ah
14:53 lizmat moritz++
14:56 chenryn joined #perl6
14:58 jnthn joined #perl6
14:58 lizmat $ perl6 t/spec/S32-str/rindex.t
14:58 lizmat Segmentation fault: 11
14:58 lizmat ooh, wow
14:59 moritz lizmat: did you give StrPos a native int attribute that's set up as box_target?
14:59 lizmat eh, no...
14:59 lizmat class StrPos is Int { }
14:59 moritz oh
15:00 lizmat I guess that was too naive
15:00 moritz then one would guess it would inherit that
15:00 moritz m: class StrPos is Int { }; say nqp::box_i(42, StrPos)
15:00 camelia rakudo-moar eefe11: OUTPUT«42␤»
15:00 moritz that alone doesn't seem to segfault :-)
15:00 lizmat indeed
15:01 lizmat running the first test of that file, doesn't either
15:01 chenryn_ joined #perl6
15:02 jnthn evening, #perl6
15:03 hoelzro o/ jnthn
15:03 lizmat jnthn o/
15:03 lizmat even segfaults with spesh disabled
15:04 lizmat seems the segfault occurs after the first test and before the second
15:04 lizmat if I remove all of the tests except the first, it's ok
15:04 nine \o jnthn
15:04 lizmat if I also keep the second test, it segfaults without saying anything
15:06 leont joined #perl6
15:06 pmurias jnthn: hi
15:11 FROGGS moritz: this should show results: http://irclog.perlgeek.de/perl6/​search/?nick=nine&amp;q=VMThread
15:11 FROGGS moritz: this one here for example http://irclog.perlgeek.de/​perl6/2014-09-08#i_9315916
15:13 moritz FROGGS: I'll try to remember to look at that
15:13 FROGGS thanks :o)
15:14 lizmat moritz: hmm... the segfault is not related to StrPos  :-(
15:16 grondilu left #perl6
15:18 masak how can I reliably convert a text file to \r\n newlines using perl6?
15:19 masak by "reliably" I mean it shouldn't matter if the input has \n newlines or \r\n newlines.
15:19 lizmat "path".IO.lines.join("\r\n")
15:19 masak ooh
15:19 * masak tries
15:19 masak lizmat++
15:19 lizmat it should even handle \r only ended lines
15:20 FROGGS m: say "a\rb\r\nc\nd".lines.perl
15:20 camelia rakudo-moar eefe11: OUTPUT«("a\rb\r", "c", "d").list␤»
15:20 FROGGS no
15:20 FROGGS but it should
15:20 FROGGS star-m: say "a\rb\r\nc\nd".lines.perl
15:20 camelia star-m 2014.04: OUTPUT«("a\rb\r", "c", "d").list␤»
15:20 FROGGS hmmm, I thought it did
15:20 cognome joined #perl6
15:21 FROGGS p: say "a\rb\r\nc\nd".lines.perl
15:21 masak Timbus and I discussed this in the backlog the other day.
15:21 camelia rakudo-parrot eefe11: OUTPUT«("a\rb\r", "c", "d").list␤»
15:21 masak we even arrived at a better spec for lines
15:21 masak the current one is busted
15:21 lizmat masak: am working on Str.lines atm
15:22 FROGGS I think what I remember is that the readline op knows about the three line seps...
15:22 masak lizmat: did you see that discussion?
15:22 lizmat indeed, Str.lines will shortly work like IO.lines
15:22 masak lizmat: I ended up doing .IO.lines.map({"$_\r\n"} because I wanted the final newline. but you set me off in the right direction :)
15:22 lizmat it should handle \r , \r\n and \n
15:23 lizmat right ?
15:23 FROGGS yes yes
15:23 lizmat that's what I'm working on
15:23 FROGGS and \r\n as one line sep :o)
15:23 lizmat in that process I broke rindex
15:23 lizmat looking at that now
15:23 jnthn ribasushi: Currently the best bet is to use a LEAVE phaser to clear up at scope exit. I expect we'll end up with some sugar for that, as masak mentioned earlier. Generally, resource management and GC are decoupled in Perl 6 (as in many other languages). That makes sense: the programmer cares about resource management, but memory management is something to abstract away.
15:25 FROGGS nine: I bisect rakudo right now because of a "missing serialize REPR function", the commit you pointed out was reverted by I still hit it in v5
15:25 jnthn ribasushi: Perl 5's conflation of the two is one thing that prevents realistically having Perl 5 on JVM.
15:25 ribasushi jnthn: well... I don't particularly care about the memory, I care about the resource (object) being available
15:25 ribasushi jnthn: so does this mean that a true refcounted thingy is not possible in the p6 context (alongside the more standard javaesque GC)
15:26 jnthn Right, so let the GC take care of memory, and use other explicit constructs for resources.
15:27 brrt jnthn: i'd argue that resource (i.e. sockets & file handle) management being the developers responsibility and memory management not is a historical weirdness more than anything else
15:27 brrt developers'
15:27 brrt i mean, either you can be careless or you cannot
15:28 brrt and the only reason you can't be careless is because you run out of file handles
15:28 jnthn Trying to mix refcounting with GC is a world of pain, so far as I can tell. We do it in one place in MoarVM. It works out worth it for performance - but that's the only thing I like about it.
15:28 brrt where do we do that, actually?
15:28 brrt oh frames
15:28 jnthn brrt: Frames.
15:28 brrt :-)
15:29 brrt i recall
15:29 brrt and ehm, i have ... words ... about those frames
15:29 jnthn And it is painful 'cus the rest of the GC is generational, and the ref-counted frames don't play ball with the generational system.
15:29 * brrt nods
15:29 brrt if it were at all feasible i'd have frames be stackallocated by default
15:30 jnthn Well, the reason they're the way they are is because sitting in a hot loop invokving stuff and the code dealing purely with native types or eisting objects should not be causing allocatins.
15:30 jnthn Yes, but continuations, and closures, and... :)
15:30 bjz joined #perl6
15:30 jnthn Stack alloc is partly good due to being cheap, also due to locality of reference. The current re-use scheme at lesat nails the second.
15:30 brrt there are ways to deal with that. i'd agree that for all supported platforms that would be hard
15:31 brrt i.e. the default way would be to copy (parts of) the stack to the heap in case of closures
15:33 nine jnthn: have been putting destructors to good use already in Inline::Perl5. Now if you tell me how I can free callbacks, I can fix the last large memory leak :)
15:34 jnthn nine: Um...free callbacks?
15:34 guru joined #perl6
15:34 jnthn nine: Are you taking a closur eper callback?
15:34 Rotwang joined #perl6
15:34 jnthn If so, that's probably the issue.
15:34 Rotwang joined #perl6
15:34 nine jnthn: callback functions passed to native call. I use two per Perl 6 object passed to Perl 5. One for unwrapping and one for calling methods. I guess I have to free those manually when Perl 5 is not using them anymore.
15:35 nine jnthn: if you have another good idea how I can unwrap a Perl 6 object, I'm definitely interested.
15:35 jnthn Well, we cache some amount of the callback infrastructure by codde object...
15:35 jnthn *code
15:35 jnthn I thought the per-call stuff was already cleaned up
15:36 nine jnthn: but how does MoarVM know that I'm not using the callbacks anymore?
15:37 jnthn ribasushi: "C# does it with a special class of refcounted variables" - no, it does it with a construct called using (some expr producing an object) { ...object used in this scope... }, and the object should implement IDisposable. It ensures that at the closing curly, .Dispose() is called on the object.
15:38 nine jnthn: https://github.com/niner/Inline-Perl5/​blob/master/lib/Inline/Perl5.pm6#L144 and https://github.com/niner/Inline-P​erl5/blob/master/p5helper.c#L241
15:38 masak [Coke]++ # http://irclog.perlgeek.de/​perl6/2014-09-08#i_9319321
15:38 jnthn And yes, a construct like that is very much what I'm suggesting we have in Perl 6.
15:38 ribasushi jnthn: hm... I see, either I am misremembering a language or whoever explained this to me didn't know shit ;)
15:39 jnthn ribasushi: Having built a lot of stuff in C#, I can say I've been quite happy with this solution.
15:39 brrt jnthn: that's pretty much with(obj) in python
15:39 ribasushi I think I am not stating the question correctly
15:39 jnthn brrt: Yup.
15:39 ribasushi it's not that I care when (or if ) gc happens
15:39 dalek nqp: 2e5a9c0 | (Tobias Leich)++ | / (2 files):
15:39 dalek nqp: add Configure option --with-moar, daxim++
15:39 dalek nqp:
15:39 dalek nqp: Also, document --with-moar and --make-install
15:39 dalek nqp: review: https://github.com/perl6/nqp/commit/2e5a9c04d2
15:40 pochi joined #perl6
15:40 * brrt afk
15:40 ribasushi jnthn: I want to know if the refcount semantic can be bestowed upon an object (or whatever special primitive it is) and have it work alongside everything else (note - ref-based, not scope-based)
15:40 brrt ribasushi: long-story-short, no
15:40 masak +1
15:40 ribasushi yes I understand it will be slow, I am asking if the option is at all available for code that requires it
15:41 masak it's a question of who owns the object. and the short answer is "the GC does".
15:43 jnthn ribasushi: I presume you're meaning "in some way other than a role with a .inc-ref and .dec-ref method that the programmer calls themselves"?
15:44 ribasushi no, calling things oneself is easy (and compltely out of scope)
15:44 ribasushi let me show example code instead
15:47 ribasushi jnthn: http://paste.scsys.co.uk/422328
15:47 ribasushi basically I am using a guard that is passed throughout scopes to indicate global-ish state
15:47 ribasushi and that pattern is used a lot in the wild (darkpan)
15:48 ribasushi hence why the strong interest on this
15:51 cognome joined #perl6
15:52 cognome joined #perl6
15:54 adu joined #perl6
15:54 jnthn ribasushi: If I understand this correctly, the second piece of code is what you'd need to do if you didn't have the guard mechanism in the first?
15:54 ribasushi jnthn: correct
15:56 jnthn OK, what I'm missing is how this becomes about ref counting and not about dynamic scoping...
15:59 masak dynamic scoping sounds like it could be handled with LEAVE, too.
15:59 jnthn That is, if the first is a convenient way to write the second, I don't yet see why a little higher order programming later you can't massage the first into the second.
16:00 jnthn (So I think I'm missing something important that you're trying to get over :-()
16:00 ribasushi jnthn: I am afraid I don't follow what dynamic scoping is in this case
16:00 kaleem joined #perl6
16:03 jnthn ribasushi: Just that during the execution of $code->(@args), the enclosing try block with attached finally is in the dynamic scope (caller chain) of that code, such that we find ourselves after it's done back in the right place to call the finally - independent of what $code does.
16:04 masak m: sub foo { my $*DYN = 42; bar; say $*DYN }; bar { $*DYN = 5 }; foo
16:04 camelia rakudo-moar eefe11: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/5Q95LnYhMKâ�¤Undeclared routine:â�¤    bar used at line 1. Did you mean 'bag'?â�¤â�¤Â»
16:04 masak m: sub foo { my $*DYN = 42; bar; say $*DYN }; sub bar { $*DYN = 5 }; foo
16:04 camelia rakudo-moar eefe11: OUTPUT«5␤»
16:05 ribasushi jnthn: the point here is that the guard stays alive until ->commit time
16:05 ribasushi but if at any point something breaks
16:05 ribasushi it will issue a ->rollback right then and there
16:05 ribasushi and I do not need to be careful *where* the breakage will happen - the DESTROY will reliably fire when it needs to
16:06 jnthn OK, so the second piece of code is not equivalent to the first, in that regard?
16:07 ribasushi it is because txn_do will also call a rollback on exception-scope-leave
16:07 ribasushi sorry it's an example from a different argument, it doesn't illustrate my point well
16:08 japhb Holy cow, people went nuts on S99-glossary recently.  (All those who worked on it)++
16:09 anaeem1 joined #perl6
16:11 jnthn ribasushi: OK. It's midnight here and I should probably rest now; I'd like to get to the bottom of what you're needing.
16:11 jnthn But I don't think I'm smart enough tonight. :)
16:11 rindolf joined #perl6
16:11 ribasushi jnthn: oh, I thought you are in my tz
16:11 ribasushi jnthn: we will chat tomorrow (well, tonight) then ;)
16:12 jnthn ribasushi: No, currently on a consulting job over in China. :)
16:12 ribasushi a-ha
16:13 masak 'night, jnthn
16:14 jnthn Anyway, let's try and continue this tomorrow
16:14 jnthn 'night
16:16 kaleem joined #perl6
16:17 colomon \o
16:20 ribasushi o/
16:22 TimToady m: say (1..*)[100000]
16:22 camelia rakudo-moar eefe11: OUTPUT«P6opaque: no such attribute '$!storage'␤  in method reify at src/gen/m-CORE.setting:7894␤  in method gimme at src/gen/m-CORE.setting:8377␤  in method exists_pos at src/gen/m-CORE.setting:8365␤  in method at_pos at src/gen/m-CORE.setting:8339␤  in…»
16:22 TimToady timotimo: congrats, you've reinstalled the 100000 bug...
16:23 Akagi201 joined #perl6
16:24 lizmat .oO( too bad there is no test for the 100000 bug )
16:25 * masak .oO( unfortunately, no-one can be *told* what the 100000 bugs is. you have to see it for yourself. )
16:25 lizmat hmmm... actually, there is one: t/spec/S04-declarations/constant.t, last test
16:25 pmurias ribasushi: what is the big difference between the first and the second example? that the guard behaves correctly with exceptions?
16:26 dalek rakudo/nom: 914434e | (Elizabeth Mattijsen)++ | src/core/ (2 files):
16:26 dalek rakudo/nom: Revert "Minimal optimizations in Cool.(r|)index"
16:26 dalek rakudo/nom:
16:26 dalek rakudo/nom: This is a complete and utter MMD and whatever mess that segfaults.
16:26 dalek rakudo/nom: Abandoning this now.
16:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/914434ee82
16:27 ribasushi pmurias: I need to come up with a better example (need to scour codebase for one)
16:27 lizmat dinner&
16:28 Isp-sec joined #perl6
16:29 japhb The last few weeks, I've been seeing a much higher percentage of revert commits.  Has this trend already been discussed?  Is the consensus that this is showing health (lots of people taking useful risks, for example), or a problem (risky changes not going into a branch)?
16:31 masak dunno. I'm fond of branches, but I don't immediately think that many reverts on the nom branch are a bad thing.
16:32 masak I'm guessing the reverts happen not because of spectest failures, because those probably (mostly) get caught before the commits are pushed.
16:35 japhb I've been seeing it across multiple repos.  At least rakudo and moar, I forget if NQP also (some of the NQP commits are to bump the moar rev to pick up a revert, for example).
16:37 pmurias aren't at least some of them tricky optimalisations that don't end up working so well?
16:38 masak japhb: some of the reverts are due to discussions (over API design etc) happening here on #perl6. such reverts are prefectly cromulent IMHO, and a sign of health.
16:38 carlin panda's list still not updating?
16:39 glumm joined #perl6
16:39 masak japhb: it's even likely that those commits are more visible (and generate better discussion sooner) when they're on master^Wnom.
16:39 masak 'night, #perl6
16:41 japhb I'm not even sure I'm concerned (I do like the risk-taking), but if there's anything that might be an issue I'd say perhaps a couple things: 1) People aren't including performance regressions as a standard check (like spectesting).  This may be because perf testing takes too dang long.  2) Cross-platform issues; I'd say this is lack of CI infrastructure.  3) Difficult for bystanders to find a "safe and close to HEAD" release for personal use (or to base their own
16:41 japhb night, masak
16:41 ab5tract joined #perl6
16:41 dalek rakudo-star-daily: b474d46 | coke++ | log/ (14 files):
16:41 dalek rakudo-star-daily: today (automated commit)
16:41 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/b474d46572
16:41 dalek perl6-roast-data: 59d8bba | coke++ | / (6 files):
16:41 dalek perl6-roast-data: today (automated commit)
16:41 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/59d8bbaa36
16:43 integral joined #perl6
16:43 [Coke] I would like more testing before pushing, but that's not going to test perf issues, cross platform issues, etc. as long as we don't get too far along a path (see parrot breakage!) I don't mind things going in and getting fixed within a day.
16:44 [Coke] in an -ideal- state, though, most stuff goes into a branch, gets smoked, and then gets deemed ok to merge. :)
16:45 [Coke] parrot: now failing almost 300 tests, and has been failing since August 27th.
16:46 [Coke] moar & moar.jit failing 141 tests, not clean since August 28th.
16:47 [Coke] jvm: failing 167 tests, not clean since September 1st.
16:47 [Coke] So, we currently have more churn than I'd like.
16:47 [Coke] (a lot more)
16:47 ab5tract colomon: i responded again on the pull request
16:48 leont Where are parameterized types (e.g. Array[Foo]) explained?
16:49 ab5tract i think the operator just doesn't make sense for bags (then again, i haven't found the set operators in the synopses yet)
16:50 leont It seems «role Foo [::T]» works but «class [::T]» doesn't, and I don't understand why
16:51 cognome joined #perl6
16:53 lichtkind joined #perl6
16:56 * japhb wonders about some system that allows branches to be marked "auto-mergeable", then some build/test infrastructure attempts to smoke it various different ways (spectest, benchmarks, etc.), and if they're all clean, it does the merge automatically.  Seems like for a fair number of recent patches, that would have worked pretty well.
16:56 japhb Of course, we'd still need to make said infrastructure actually *happen*.
17:00 colomon ab5tract: yeah, I agree commutative seems right
17:01 ab5tract however, i wonder if it could also be considered for bags to use a slightly different logic, where it takes the intersecting keys and subtracts the right-weights from the left-weights
17:02 leont Ah, Array.pm serves as an example, though not one as simple as I had hoped for :-s
17:03 colomon ab5tract: I've been trying to abstract the idea in my head.  set symmetric difference is (union of sets) - (intersection of sets), no?
17:04 ab5tract that way you could get the lowest possible intersecting weights from a list of bags
17:04 ab5tract indeed
17:04 colomon ab5tract: seems to me those operations make sense on bags too
17:04 colomon just in a baggy-sense
17:05 colomon er, baggy sense
17:06 ab5tract along those lines..
17:06 ab5tract do the evalbots keep any test data around?
17:06 ab5tract it would be easier to do interesting things with bags and lists without pasting them in
17:06 colomon m: .say for lines;
17:06 camelia rakudo-moar eefe11: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
17:08 colomon m: say slurp.comb(/./).Bag
17:08 camelia rakudo-moar eefe11: OUTPUT«bag(C(2), é(11), a(116), d(18),  (202), s(43), l(59), á(28), n(64), g(38), i(69), b(19), h(86), t(31), e(41), m(37), o(46), r(48), D(10), ú(10), G(13), ␤(20), A(4), u(13), c(26), E, ;(4), N(3), L(2), ’(10), í(13), I(2), ,(8), .(4), M(2), ó(6), f(1…»
17:09 vendethiel- leont: classes can't be parameterized. For some reason
17:10 ab5tract m: my $words = bag lines[0..100].map; my $anags = bag $words.map: .sort; say $anags.perl();
17:10 camelia rakudo-moar eefe11: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(Any: Whatever, *%_)␤:(Any: Any $block, Any :label($label), *%_)␤  in block <unit> at /tmp/LgO__ew7b6:1␤␤»
17:10 grettis joined #perl6
17:10 ab5tract m: my $words = bag lines[0..100].map; my $anags = bag $words.keys.map: .sort; say $anags.perl();
17:10 camelia rakudo-moar eefe11: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(Any: Whatever, *%_)␤:(Any: Any $block, Any :label($label), *%_)␤  in block <unit> at /tmp/wlHmmYgXg1:1␤␤»
17:11 cognome joined #perl6
17:11 FROGGS ab5tract: you have to pass something to .map
17:12 ab5tract m: my $words = bag for slurp -> $s ; my $anags = bag $words.keys.map(->$k{ $k.sort}); say $anags.perl();
17:12 camelia rakudo-moar eefe11: OUTPUT«[31m===[0mSORRY![31m===[0m�The 'bag' listop may not be called without arguments (please use () or whitespace to clarify)�at /tmp/yZMLB5A1W7:1�------> [32mmy $words = bag [33m�[31mfor slurp -> $s ; my $anags = bag $words[0m�Invalid typenam…»
17:12 ab5tract m: my $words = bag lines[0..100].map; my $anags = bag $words.keys.map(->$k {$k.sort}); say $anags.perl();
17:12 camelia rakudo-moar eefe11: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(Any: Whatever, *%_)␤:(Any: Any $block, Any :label($label), *%_)␤  in block <unit> at /tmp/hhFHXoryNX:1␤␤»
17:12 ab5tract oh, duh
17:12 ab5tract sorry
17:12 ab5tract m: my $words = bag lines[0..100]; my $anags = bag $words.keys.map(->$k {$k.sort}); say $anags.perl();
17:12 camelia rakudo-moar eefe11: OUTPUT«("Céad slán ag sléibhte maorga Chontae Dhún na nGall"=>1,"Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;"=>1,"Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí"=>1,"I mo dhiaidh bhí gleanntáin…»
17:13 FROGGS ab5tract: you can also talk to camelia directly
17:13 ab5tract FROGGS: thanks for the tip
17:20 telex joined #perl6
17:24 ab5tract hmm
17:27 ab5tract m: my $t = 'this';  say "now _{$t}_ is perl";
17:27 camelia rakudo-moar eefe11: OUTPUT«now _this_ is perl␤»
17:28 ab5tract camelia had stopped responding to me through messages
17:28 Timbus coming on a bit strong
17:28 ab5tract glad to know she is ok
17:28 pat_js joined #perl6
17:28 ab5tract yeah, it can happen ;)
17:33 * colomon apologizes to ab5tract for disappearing
17:33 * colomon blames noms
17:41 gfldex joined #perl6
17:45 colomon ab5tract: so I think, given @p bags, bag symmetric difference can be defined as ([(|)] @p) (-) ([(&)] @p)
17:45 colomon that's commutative I think
17:51 bjz joined #perl6
18:02 dalek nqp: 5fa79ba | (Tobias Leich)++ | .travis.yml:
18:02 dalek nqp: add travis-ci config file
18:02 dalek nqp: review: https://github.com/perl6/nqp/commit/5fa79badc2
18:12 ab5tract ah, now that's a nice way to say it colomon
18:12 ab5tract my $a = bag 88,88,88,4,3,3,1,3,88; my $b = bag 88,4,3; my $i = $a (|) $b; my $nw = BagHash.new; for $i.keys -> $k { $nw{$k} = $a{$k} - $b{$k} }; $nw.say
18:12 ab5tract m: my $a = bag 88,88,88,4,3,3,1,3,88; my $b = bag 88,4,3; my $i = $a (|) $b; my $nw = BagHash.new; for $i.keys -> $k { $nw{$k} = $a{$k} - $b{$k} }; $nw.say
18:12 camelia rakudo-moar 914434: OUTPUT«BagHash.new(88(3), 3(2), 1)␤»
18:12 dalek nqp: b859815 | (Tobias Leich)++ | docs/ops.markdown:
18:12 dalek nqp: fix typo in ops documentation
18:12 dalek nqp: review: https://github.com/perl6/nqp/commit/b859815fcb
18:12 ab5tract that's subtracting though
18:12 ab5tract with addition it is commutative
18:15 ab5tract though i wonder what a saner person than me would expect from executing something to the effect of "given the symmetric difference of a bag of words and and a bag of anagrams amongst those words"
18:15 akaseki joined #perl6
18:16 dalek nqp: ba8511d | (Tobias Leich)++ | .travis.yml:
18:16 dalek nqp: fix missing quote in travis file
18:16 dalek nqp: review: https://github.com/perl6/nqp/commit/ba8511dda6
18:16 eternaleye joined #perl6
18:16 ab5tract "symmetric difference" to me might imply that you are looking to subtract the weight of one bag ($b) from another bag ($a)
18:16 ab5tract maybe TimToady has some ideas
18:17 timotimo TimToady: well, *that* was not The Fix for The Bug :)
18:18 jack_rabbit joined #perl6
18:19 ab5tract colomon: ah, i missed the crucial (-) in there
18:22 travis-ci joined #perl6
18:22 travis-ci [travis-ci] perl6/nqp#1 (master - ba8511d : Tobias Leich): The build passed.
18:22 travis-ci [travis-ci] Change view : https://github.com/perl6/nqp/com​pare/b859815fcb85...ba8511dda6f2
18:22 travis-ci [travis-ci] Build details : http://travis-ci.org/perl6/nqp/builds/34840958
18:22 travis-ci left #perl6
18:22 FROGGS @all: if the travis stuff is going to make too much noise, I can let it spam another channel
18:24 vendethiel- FROGGS: that's one more message for everycommit ?
18:24 vendethiel- + join/part?
18:24 FROGGS vendethiel-: yes, this block for every commit to nqp + every commit to rakudo
18:30 PerlJam every commit or every receive?  i.e., If jnthn makes 5 commits locally and then pushes them all at once do we get 5 or 1 travis message?
18:30 hoelzro woah, when did travis start working for us?
18:31 FROGGS PerlJam: every push I think
18:31 FROGGS hoelzro: right now
18:31 FROGGS hoelzro: though, I let it only test on moarvm, because of speed reasons
18:34 PerlJam FROGGS: regardless of whether travis is too noisy, it might be a good idea to have a channel that is just the output of dalek + travis-ci
18:35 FROGGS moritz: what do you think?
18:37 [Coke] I find that "comment on failure, comment on first success" works.
18:37 FROGGS [Coke]: I'm not sure that I can configure it
18:37 erdic joined #perl6
18:38 PerlJam [Coke]++ that would be excellent too.
18:38 vendethiel- [Coke]++ # troo
18:39 FROGGS is that even possible?
18:40 vendethiel- make it so :P
18:40 FROGGS O.o
18:40 vendethiel- FROGGS: I know that's how I receive it by email
18:40 PerlJam FROGGS: It's just a simple matter of programming!  ;)
18:40 [Coke] yah, I have no idea if it works in this context; it's waht we use for builds at work, though in completely other system. :)
18:42 FROGGS ahh, I can adjust it... nice!
18:42 [Coke] FROGGS++
18:45 rurban the change view is not helpful, but the build link is
18:46 rurban on #perl11 will changed his lines for rperl to 2 lines
18:46 dalek nqp: 08d8e3c | (Tobias Leich)++ | .travis.yml:
18:46 dalek nqp: only notify via travis when status has changed
18:46 dalek nqp: review: https://github.com/perl6/nqp/commit/08d8e3c907
18:48 guru joined #perl6
18:48 PerlJam FROGGS: so, with that configuration, as long as the build is succeeding (or failing) there won't be any notifications?
18:48 PerlJam It's only when we change from success to failure (or vice versa) that we'll see anything?
18:48 FROGGS PerlJam: there is no notification as long as the status stays in its state
18:49 FROGGS yes
18:49 FROGGS though, only nqp is activated, since one needs admin rights to flip some switches
18:50 PerlJam might want to switch on_failure to "always".
18:50 dalek rakudo/nom: c8df775 | (Tobias Leich)++ | .travis.yml:
18:50 dalek rakudo/nom: add travis config file
18:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8df775c2d
18:51 FROGGS PerlJam: that would mean that one thinks that his/her commit broke stuff when it did not
18:51 FROGGS but then more ppl would see that it is broken, and maybe act more quickly :o9
18:51 FROGGS :o)
18:52 PerlJam Well, that's kinda what I was thinking.
18:54 PerlJam It might depend on what the failure message says too.   If it can be configured to say something like "The build is *STILL* broken by commit ..." where we can plainly see that the commit that's broken is different from the most recent one, that would help.
18:54 hoelzro FROGGS++
18:57 ren1us joined #perl6
18:57 dalek nqp: 2e21ba6 | (Tobias Leich)++ | .travis.yml:
18:57 dalek nqp: travis notification tweaks
18:57 dalek nqp: review: https://github.com/perl6/nqp/commit/2e21ba677f
18:57 dalek rakudo/nom: 69bbdc4 | (Tobias Leich)++ | .travis.yml:
18:57 dalek rakudo/nom: travis notification tweaks
18:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/69bbdc4492
18:57 FROGGS [Coke]++ PerlJam++ hoelzro++ rurban++
18:58 FROGGS now there is a lot travis spam to look at :o)
18:58 [Coke] yay, thanks!
18:59 FROGGS sad that we can only have linux tests right now :/
18:59 ivanshmakov joined #perl6
19:01 FROGGS hoelzro: btw, you are to blame that v5 fails :P
19:01 * moritz is willing to try travis again
19:01 hoelzro for real? =(
19:01 hoelzro FROGGS: the Test.pm changes?
19:02 FROGGS hoelzro: yeah... somehow the exported handles will get serialized (or attempted to)
19:02 FROGGS hoelzro: I'm not yet sure why
19:02 FROGGS I guess I'll strip down Perl5::Terms to see why that happens
19:02 hoelzro so it worked, but when I added our sub output is rw { $output } and friends, it stopped working?
19:02 FROGGS moritz: do you have time to flick the switches for rakudo?
19:03 FROGGS hoelzro: it worked until https://github.com/rakudo/rakudo/commit/​705e7b8002fccd25d1cb658c35a60adf921b907c
19:03 hoelzro damn
19:03 hoelzro that's...odd.
19:03 FROGGS yeah...
19:03 [Coke] have we had a travisbot post yet? huh?
19:03 [Coke] or not until the first failure?
19:03 FROGGS [Coke]: for nqp, aye
19:04 FROGGS 45 minutes ago
19:04 moritz FROGGS: what do I have to do?
19:05 FROGGS moritz: got to https://github.com/rakudo/rakudo/settings/hooks
19:05 [Coke] ah, FROGGS++
19:05 FROGGS add the travis service, without userinfo, and activate it
19:06 slavik joined #perl6
19:06 moritz FROGGS: done
19:06 FROGGS moritz: and then go to https://travis-ci.org/profile/rakudo and click sync, and then enable it for rakudo there too
19:09 moritz urks. When I log in with my github account, travis wants all kind of permissions that I'm loat to hand out
19:09 FROGGS :/
19:09 * colomon just handed them out...
19:09 FROGGS me too
19:09 * colomon means his, not moritz's
19:09 FROGGS *g*
19:10 colomon It's showing me just perl6/nqp?
19:14 ren1us is it just my imagination, or are io functions still painfully slow?
19:14 moritz ren1us: many of them certainly are :(
19:16 ren1us it takes me about 45 seconds just to slurp an 86k character file, plus 6 minutes and counting on a split('')
19:16 [Sno] joined #perl6
19:17 moritz uhm, don't count on split('')
19:17 moritz .chars is much, much better
19:17 yoleaux , b c e h i m r s t u
19:18 [Coke] .chars that seems like a one way function
19:18 yoleaux No characters found
19:18 moritz but yes, 45s for slurping is far too slow
19:18 ren1us oh that's not what i meant by counting
19:18 ren1us i meant it's 6 minutes and isn't done yet
19:18 moritz oh
19:19 moritz if you want single characters, use .comb
19:19 FROGGS ren1us: how exactly do you slurp it?
19:19 FROGGS or better: what exactly takes 45s?
19:19 * moritz hopes with .slurp
19:19 FROGGS that won't take that long
19:20 ren1us given slurp($filename) { // stuff // }
19:20 ren1us that takes painfully long for some reason
19:21 ren1us i'm guessing it's just my abomination of a computer
19:21 FROGGS time perl6 -e 'say "val.profile".IO.s; say "val.profile".IO.slurp.chars'
19:21 FROGGS 336066
19:21 FROGGS 336066
19:21 FROGGS real0m0.212s
19:22 FROGGS m: say slurp().chars
19:22 camelia rakudo-moar 914434: OUTPUT«1134␤»
19:22 FROGGS okay, that's shorter here
19:27 bjz joined #perl6
19:30 bjz joined #perl6
19:31 FROGGS hoelzro: that's my problem: https://gist.github.com/FR​OGGS/9efc7831db9f23f1614a
19:32 FROGGS hoelzro: you cannot precompile something, that uses Test.pm
19:34 firefish5000 anyone want to test out my latest bashcomp-hackery for p6? I did a lot so I am positive something will break
19:34 FROGGS hoelzro: do you really need them to be our-scoped?
19:34 hoelzro yikes o_O
19:35 hoelzro well, I wasn't a fan of output() = $new-filehandle
19:35 hoelzro FROGGS: you can revert that change for now
19:35 hoelzro but it's kind of weird that that doesn't work, isn't it?
19:36 FROGGS well, and our scoped sub will be put into the symbol table... and that means it needs to be serialized
19:37 FROGGS and we do not want to serialize file handles me thinks :o)
19:37 FROGGS firefish5000: how can I do that?
19:37 firefish5000 Perl6, panda, rakudobrew, and pandre completion are all here. https://github.com/firefish5000/tabcomp-p6
19:37 hoelzro FROGGS: so is the issue that the filehandles are being set at compile time?
19:37 FROGGS hoelzro: yes
19:38 hoelzro I see
19:38 hoelzro so this module would also cause such a problem: use v6; module RobTest; my $h = $*OUT; our sub get-h is rw { $h }
19:41 moritz ok, I read a 938k file in ~43ms, and .comb()ed it in 4s. So I can't reproduce the slowness that ren1us slowness either
19:42 PerlJam hoelzro: I think only if you pre-compiled it (like Test.pm)
19:42 FROGGS firefish5000: perl6 and panda seems to work for me :o)
19:42 hoelzro PerlJam: right
19:42 hoelzro I would assume that the $h = $*OUT would happen at runtime
19:43 hoelzro but maybe my understanding of phases in Perl 6 is lacking
19:43 hoelzro s/maybe/probably/
19:43 FROGGS no, precompiling that code is not the problem, using it in another program that gets precompiled is
19:44 FROGGS Test.pm makes the filehandles available as symbols, my module uses it and refers to these symbols, and that is the problem
19:45 hoelzro FROGGS: sorry, I didn't follow through
19:45 FROGGS np :o)
19:46 FROGGS I can't explain it well enough
19:46 hoelzro but if you took my above code and compiled it, and tried compiling "use RobTest; RobTest::get-h", *that* would blow up, right?
19:46 firefish5000 FROGGS, Thats great! let me know if you run into any errors.
19:46 FROGGS firefish5000: I'll let you know :o)
19:46 FROGGS firefish5000++ # thanks so far
19:47 FROGGS hoelzro: no, that does not blow up
19:47 hoelzro hmm
19:48 leont hoelzro: http://paste.scsys.co.uk/422373 :-)
19:48 firefish5000 FROGGS++ # thanks to you as well
19:48 moritz I've profiled http://moritz.faui2k3.org/tmp/readall.txt and this is the result: http://moritz.faui2k3.org/tmp/prof​ile-1410291735.53748.html#routines
19:48 hoelzro FROGGS: feel free to just revert that change for now; I was using it for Test::Meta, but that's not going anywhere anytime soon as it is =/
19:48 dolmen joined #perl6
19:48 hoelzro leont++ # nice!
19:49 moritz the first two are 36.6% and 16.7%
19:49 moritz ListIter.reify and MapIter.reify
19:49 FROGGS leont++ # :o)
19:50 FROGGS hoelzro: okay, then I'll use the power of git revert...
19:51 moritz and, do those exclusive times actually add up to 100%?
19:51 leont Testing TAP using TAP, because what else would you use :-)
19:51 dalek rakudo/nom: 65db2a6 | (Tobias Leich)++ | lib/Test.pm:
19:51 dalek rakudo/nom: Revert "Test.pm - Allow output handles to be queried and modified"
19:51 dalek rakudo/nom:
19:51 dalek rakudo/nom: This breaks precompilation of modules that use Test.pm.
19:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65db2a6df4
19:53 FROGGS I hope that was the last thing that got reverted this month
19:55 FROGGS ohh, I'm excited: https://travis-ci.org/rakudo/rakudo/jobs/34848442
19:57 vendethiel- FROGGS: unwrapping the CI present
19:57 FROGGS two of three passed
19:59 hoelzro I take it running the spectest on Travis would just be too much, and exceed the time limit?
19:59 FROGGS hoelzro: for sure
19:59 hoelzro bummer
20:00 FROGGS hoelzro: and since we only have a clean run at the day of the release it would not make much sense :/
20:00 hoelzro good point
20:01 mberends joined #perl6
20:01 FROGGS damn, there is another precomp issue in v5 >.<
20:01 FROGGS ohh, hold your breath:
20:02 FROGGS well, the build passed
20:02 FROGGS I was hoping that status "none" -> "pass" is also a change
20:02 PerlJam sar
20:05 tinita hi everyone
20:05 tinita would you like to do a mini perl6 hackathon in april 2015?
20:06 tinita about 5 to 10 people
20:06 ribasushi tinita++
20:06 tinita we're preparing the qa hackathon in berlin
20:06 tinita and we found a nice venue, but there's space for more than 30 people
20:07 tinita xdg suggested, a group of perl6 hackers would fit in
20:14 daxim joined #perl6
20:14 moritz tinita: is the date fixed already?
20:15 tinita moritz: 99%, yes. april 16th-19th
20:18 moritz don't we have some Berlin people here? FROGGS maybe?
20:21 dalek ecosystem: 2d9fbaf | moritz++ | META.list:
20:21 dalek ecosystem: use the "perl6" organization fork of Form
20:21 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/2d9fbaf5c1
20:22 * leont will be there anyway, but mostly for p5 reasons. I do promote p6 stealing battle-tested toolchain ideas from p5.
20:22 tinita =)
20:24 moritz mathw: ok, I've done the fork of Form into the perl6 organization
20:25 leont Then again, I'm doing TAP::Harness in both :-p
20:32 lichtkind tinita: welcome in #perl6 :)
20:35 tinita hi lichtkind =)
20:36 hoelzro if I can rustle up funds to travel, I would happily participate in such a hackathon
20:36 lichtkind tinita: how come?
20:37 tinita lichtkind: ?
20:38 lichtkind tinita: that your interested in perl6
20:38 gtodd by April 2015 perl6<->perl5 interop will be even more advanced  .. :)
20:38 lichtkind panda still crashes on ecosystem.t
20:38 tinita lichtkind: see some lines above ;-)
20:39 tinita QA hackathon 2015 might have some additional space for a small p6 hackathon
20:39 lichtkind in april semester starts
20:40 tinita hm
20:41 hoelzro hmm...I wonder if spectest would pick up other interesting bugs if it precompiled the scripts and *then* ran them (thinking about FROGGS' bug)
20:42 tinita should i maybe write on a mailinglist about the hackathon?
20:42 tadzik tinita: count me in
20:43 * tinita notes tadzik
20:45 hoelzro $1000?! o_O
20:45 hoelzro (ORD -> BER)
20:45 tinita where's ORD?
20:46 tinita ah, chicago
20:46 tinita the price seems about right
20:47 hoelzro seems a bit high to me, since it's six months out =(
20:47 hoelzro er, seven
20:47 hoelzro I'm going to keep looking over the next month, see if I can get a better rate
20:47 tinita we are trying to fund some journeys
20:47 tinita but that all depends on the sponsors of course...
20:48 hoelzro I don't think I'm important enough to merit funding =P
20:48 hoelzro just a fellow enthusiast
20:48 tinita =)
20:49 PerlJam hoelzro: What would you do at the hackathon?
20:49 hoelzro PerlJam: I have a *long* list of things I want to do for Perl 6
20:49 PerlJam hoelzro: maybe the *work* is important enough if you don't think you are.  :)
20:49 hoelzro for Rakudo, for the infrastructure, for the tooling, for the module ecosystem
20:49 * hoelzro .oO( for the Horde )
20:53 tinita lichtkind: saturday and sunday maybe?
20:53 Ven joined #perl6
20:53 tinita lichtkind: you're not that far away from berlin, right?
20:54 lichtkind ~200..300km
20:57 ribasushi hoelzro: where do you look?
20:57 hoelzro ribasushi: hipmunk
20:58 ribasushi hoelzro: I use kayak for this kind of stuff, seems better for trans-atlantic
20:58 ribasushi hoelzro: also 7 month out is too long - airlines usually release the economy packages 5~4 month ahead of time
20:59 hoelzro ribasushi: true; I haven't given up yet =)
21:00 ribasushi hoelzro: you are realistically looking at $800
21:00 hoelzro that's about what I figured
21:00 hoelzro I'll have to talk it over with the soon-to-be-wife =)
21:01 PerlJam hoelzro: I bet if you could articulate a narrow enough focus on what you wanted to work on at the hackathon, you could apply for and perhaps receive grant money from TPF.
21:03 timotimo moritz: in your mail about the Form module, you accidentally linked to mathw's repository rather than perl6's
21:04 hoelzro PerlJam: when do you suppose the deadline for that would be?
21:05 tinita it's been 14 years now that i visited chicago...
21:06 ribasushi tinita: it's still there
21:06 hoelzro I can vouch for that =P
21:06 tinita good =)
21:08 [Coke] hoelzro: do you ever meetup with alester?
21:08 hoelzro [Coke]: I did before I moved to the NL
21:09 hoelzro he and I keep talking about meeting up, but the upcoming nuptials are making that challenging
21:09 hoelzro I think Oct/Nov will be easier
21:09 PerlJam hoelzro: I dunno, but they have new call for proposals every 2-3 months or so.
21:09 * leont is strongly in favor of keeping the hackathon QA/toolchain/etc focused, as opposed to a general purpose hackathon
21:10 hoelzro PerlJam: thanks for the tip; I'll dig through my list and see what I can pull up
21:10 hoelzro leont: I have ideas in that realm, and I definitely think that area needs work!
21:11 leont m: enum Foo <Bar Baz>; Foo("Bar").say
21:11 camelia rakudo-moar 65db2a: OUTPUT«(Foo)␤»
21:11 leont I was expecting a Bar there, is that a me or is that a bug?
21:11 [Coke] m: m: enum Foo <Bar Baz>; Bar.say
21:11 camelia rakudo-moar 65db2a: OUTPUT«Bar␤»
21:12 lizmat m: enum Foo <Bar Baz>; say Foo.^enums
21:12 camelia rakudo-moar 65db2a: OUTPUT«No such method 'enums' for invocant of type 'Perl6::Metamodel::EnumHOW'␤  in block <unit> at /tmp/1OvBjn8xgr:1␤␤»
21:12 lizmat m: enum Foo <Bar Baz>; say Foo.enums
21:12 camelia rakudo-moar 65db2a: OUTPUT«"Bar" => 0, "Baz" => 1␤»
21:12 lizmat m: enum Foo <Bar Baz>; say Foo<Bar>
21:12 camelia rakudo-moar 65db2a: OUTPUT«(Any)␤»
21:12 lizmat m: enum Foo <Bar Baz>; say Foo::<Bar>
21:12 camelia rakudo-moar 65db2a: OUTPUT«Bar␤»
21:13 lizmat m: enum Foo <Bar Baz>; say Foo::<Bar>:p
21:13 camelia rakudo-moar 65db2a: OUTPUT«"Bar" => Foo::Bar␤»
21:18 daxim joined #perl6
21:18 leont It seems Foo::{"Bar"} is what I'm looking for
21:19 leont But the docs suggest Foo("Bar") would also work, at least the way I read them
21:20 moritz m: m: enum Foo <Bar Baz>; say ::Foo::('Bar')
21:20 camelia rakudo-moar 65db2a: OUTPUT«Bar␤»
21:21 lizmat .oO( good that we have labels now :-)
21:29 lichtkind tinita: yes weekens should work anyway .. even friday mostly
21:31 mberends joined #perl6
21:33 virtualsue joined #perl6
21:39 dalek rakudo/nom: 3e96fe5 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
21:39 dalek rakudo/nom: Refactor Str.lines to be 2.5x faster & support CR
21:39 dalek rakudo/nom:
21:39 dalek rakudo/nom: For /usr/share/dict/words: from 5.786s to 2.268s
21:39 dalek rakudo/nom:
21:39 dalek rakudo/nom: With one caveat: strings that have mixed CR and LF line endings, may not come
21:39 dalek rakudo/nom: out correctly.  For that to work reliably, we would need to have nqp::index
21:39 dalek rakudo/nom: support a list of needles to search for.
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3e96fe51a2
21:39 hoelzro lizmat++
21:41 lizmat oddly enough, "foo".IO.lines is slower than "foo".IO.slurp.lines
21:45 leont slurp might do less syscalls because it tries to read in one go
21:46 jercos .lines could potentially be lazy, right?
21:46 tadzik it already is
21:46 jercos wheras .slurp.lines should always read the whole file, then split it?
21:46 tadzik correct
21:46 lizmat yes, but the split is lazy
21:46 tadzik oh! neat
21:46 jercos Right, but it would still have to allocate memory for the slurp in the latter case?
21:47 jercos at least until someone figures out lazy buffers and async mmap magic
21:47 tadzik yes
21:47 timotimo lizmat: wow, that's quite a bit of work you've done there
21:48 lizmat seems like a function many people will use
21:48 timotimo definitely
21:49 leont async mmap magic isn't that hard, it's just segfaulty if the files gets truncated underneath your feet
21:49 lizmat anyway, strings like 'a\n\b\r' will not work yet
21:49 tadzik lizmat++ # awesome work
21:49 timotimo aah, it's "foo".IO.slurp.lines you've improved, not "foo".IO.lines
21:49 timotimo that explains why i didn't see any file reading ops in there %)
21:49 lizmat yes, IO.lines I had already improved
21:50 timotimo i recall that :)
21:50 timotimo when i first saw that commit, i thought the 2.5x was on top of the already improved IO.lines
21:50 timotimo but this is also very nice to have! :)
21:51 timotimo and since the code previously didn't handle CR at all, the caveat that mixed cr/lf strings may not work 100% properly is no big problem
21:52 dalek rakudo/nom: 3427dee | (Elizabeth Mattijsen)++ | src/core/Str.pm:
21:52 dalek rakudo/nom: Slight opt for CRLF checking
21:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3427dee708
21:59 dalek roast: 2dd48dc | (Elizabeth Mattijsen)++ | S32-str/lines.t:
21:59 dalek roast: Add some more Str.lines tests
21:59 dalek roast: review: https://github.com/perl6/roast/commit/2dd48dc15f
22:01 BenGoldberg joined #perl6
22:02 dalek rakudo/nom: d315ab7 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
22:02 dalek rakudo/nom: Mention Str.lines is also optimized
22:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d315ab7691
22:06 ab5tract colomon: i updated the pull request with an approach i believe may make sense
22:06 lizmat good night, #perl6!
22:07 ab5tract ciao lizmat, and thanks for all the ops :)
22:09 timotimo gnite lizmat<
22:09 timotimo !
22:11 ab5tract hey i've been meaning to ask
22:12 ab5tract what's going on with planet sixperl
22:14 timotimo you can use http://pl6anet.org/ until they've fixed their site
22:16 Px12 joined #perl6
22:20 ab5tract thanks timotimo!
22:38 ribasushi joined #perl6
22:42 flussence .oO( I like this domain name better... )
22:52 BenGoldberg meka.flussence.eu?
22:52 flussence the pl6 thing...
22:52 BenGoldberg Oh, I see :)
22:57 japhb lizmat: Why are $CR and $LF defined at two different lexical scopes in 3e96fe5 ?  Is that unintentional, or a performance tweak of its own?
23:09 xenoterracide joined #perl6
23:10 BenGoldberg Reading the improvement made to Str.chomp, where use of one-char strings is replaced with int codepoints, I can't help but wonder if it can't be generalized.
23:10 BenGoldberg Could the optimizer be taught to look for places where a str variable is always one character long, and make a specialized version of the code?
23:12 Rotwang joined #perl6
23:12 xragnar_ joined #perl6
23:32 lichtkind joined #perl6
23:37 jdv79 left #perl6
23:49 lichtkind joined #perl6
23:49 aborazmeh joined #perl6

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

Perl 6 | Reference Documentation | Rakudo