»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
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
we do have a mandelbrot benchmark
ab5tract i heard about that one. solid vindication of Perl 6's approach to typing imo
timotimo but that may be weighed down a lot by our lack of the list refactor
ab5tract lack of the list refactor? 00:01
00:02 immortal joined, immortal left, immortal joined
timotimo aye 00:02
you know how perl6 has lazy lists
00:02 bjz left, erkan left, raiph left
ab5tract yup 00:02
timotimo we currently pay the price of lazyness even if we could eagerly evaluate stuff 00:03
so what we end up doing quite often is jumping back and forth between the loop and the generating code
even though we could generate all of the data in one go or at least build big batches 00:04
ab5tract ah
timotimo the list refactor is going to install a way to signal an eagerness intent to the generating code or iterator or something
00:04 BenGoldberg left
ab5tract interesting 00:05
timotimo oh, yikes, rakudo-moar has a little performance regression :( 00:06
t.h8.lv/p6bench/2014-09-09-latest_d...ments.html - we quite obviously still have a bit of work in front of us %) 00:10
(but this doesn't include moar-jit at all)
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
while_push and while_push_join seem to have really tanked hard
and for_push, too
ab5tract nqp-moar is above perl5 in several tests 00:13
that's impressive
timotimo well, crap. we've lost the for range -> while loop optimization *again* 00:14
ab5tract :( 00:15
timotimo that'd explain the tank in the for-related benchmarks
ab5tract i've gotta go
sleep time :)
timotimo lol. look at array_set_xx
jnthn: in t.h8.lv/p6bench/2014-09-09-rakudo_history.html we can see a whole range of benchmarks *really* tanking hard :( 00:16
ab5tract postwhile_nil_native is looking very nice too 00:17
okay, ciao for now #perl6 o/
00:17 ab5tract left
timotimo jnthn: also, this is the comparison instead of history view: t.h8.lv/p6bench/2014-09-09-rakudo_compare.html 00:19
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
but i'm sure all of this will be fixed within the week.
00:30 xenoterracide joined 00:32 chenryn left 00:34 chenryn joined, chenryn left 00:37 BenGoldberg joined 00:39 erts joined 00:40 erts left, raiph joined, raiph left 00:41 colomon left 00:42 colomon joined 00:56 eternaleye left 00:59 dayangkun joined 01:02 Px12 left 01:11 nbrown__ joined 01:12 xenoterracide left 01:15 leont left 01:20 xenoterracide joined 01:26 xinming joined 01:28 eternaleye joined 01:31 telex left 01:32 telex joined 01:33 FROGGS_ joined
dalek ecs: df6da87 | (L. Grondin)++ | S99-glossary.pod:
fixing syntax links line 385
01:33
01:36 FROGGS left 01:44 Psyche^ left 01:45 Psyche^ joined 01:55 eternaleye left 01:57 tinyblak joined
dalek ecs: bb60fb2 | (L. Grondin)++ | S99-glossary.pod:
wiktionary link for TL;DF
01:58
02:01 chenryn joined
dalek ecs: 46f8aa5 | (L. Grondin)++ | S99-glossary.pod:
WP link to AST
02:11
02:15 xenoterracide left
dalek ecs: 94ec630 | (L. Grondin)++ | S99-glossary.pod:
rephrasing class + OOP
02:20
02:21 xenoterracide joined
dalek ecs: 7189c68 | (L. Grondin)++ | S99-glossary.pod:
missing article
02:22
colomon timotimo: seems like it might be worthwhile picking one of the really bad declines and bisecting it…. 02:26
02:26 xenoterracide left
dalek ecs: 2d18734 | (L. Grondin)++ | S99-glossary.pod:
DWIM entry
02:26
hoelzro I was just looking at S28; why is it input-line-separator but output_field_separator? 02:27
why the difference between - and _?
sjn pointless inconsistencies ftl 02:28
dalek ecs: f35e64f | (L. Grondin)++ | S99-glossary.pod:
epic fail
02:32
02:32 eternaleye joined, slavik left, xenoterracide joined
dalek ecs: 7fe4182 | (L. Grondin)++ | S99-glossary.pod:
filling EVAL
02:35
[Coke] I think in general we prefer -'s where we can.
rjbs ++ to that
BenGoldberg Just to be different from perl5? ;)
rjbs _'s stink.
They're harder to type and to read.
[Coke] hoelzro: +1 from me to fix output_f.. 02:38
hoelzro that's all I need =) 02:39
what about $*MOST_RECENT_CAPTURED_MATCH? 02:40
(...is that even impl'd?)
dalek ecs: eae404d | (L. Grondin)++ | S99-glossary.pod:
rephrasing FIFO
ecs: 616a6ad | (Rob Hoelz)++ | S28-special-names.pod:
Change _ to - in lower case special var names

Well, they're fields on $*OUT, but close enough
02:41
02:43 nbrown__ left
dalek ecs: fc7aeb0 | (L. Grondin)++ | S99-glossary.pod:
missing plural and period
02:43
ecs: 0901c85 | (L. Grondin)++ | S28-special-names.pod:
Merge branch 'master' of github.com:perl6/specs
02:43 kurahaupo left
hoelzro tadzik: can I haz commit bit for panda? 02:43
02:44 joescript left 02:45 jlaire left, slavik joined 02:46 jlaire joined 02:47 xenoterracide left
dalek ecs: 1a7b77e | (L. Grondin)++ | S99-glossary.pod:
elaborate JIT
02:48
02:49 nbrown__ joined
dalek ecs: e6df49e | (L. Grondin)++ | S99-glossary.pod:
elaborate on KISS
02:52
ecs: 92bdaf2 | (L. Grondin)++ | S99-glossary.pod:
fix typo
02:53
02:54 nbrown__ left 02:55 noganex_ joined
hoelzro I'm working on a Test::Tester for Perl 6, and I'm stuck on tracking the test count 02:55
because if I do something like this: test({ pass 'sure' }).ok;
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
and I don't know what the best way to get around that would be
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:57
02:58 noganex left
dalek ecs: c7f125b | (L. Grondin)++ | S99-glossary.pod:
relate FIFO and LIFO together
02:58
03:01 dayangkun left
dalek ecs: 667ad8a | (L. Grondin)++ | S99-glossary.pod:
move a few entries in the O section for lexicographic ordering
03:03
03:05 rindolf joined
dalek kudo/nom: 705e7b8 | (Rob Hoelz)++ | lib/Test.pm:
Test.pm - Allow output handles to be queried and modified
03:07
03:14 dayangkun joined 03:16 xenoterracide joined 03:27 kurahaupo joined 03:32 Akagi201_ joined 03:35 dayangkun left 03:36 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar, ggherdov_ joined, huf_ joined 03:37 flussenc1 joined 03:38 xenoterracide left, rindolf left, tinyblak left, colomon left, jerrycheung left, muraiki left, TimToady left, Rounin left, breinbaas left, MilkmanDan left, jdv79 left 03:39 sorear_ joined, vike1 joined, grep0r_ joined 03:40 mtj_ joined, flussence left, vike left, ivanshmakov left, grep0r left, Akagi201 left, DarthGandalf left, sorear left, ggherdov left, mtj_- left, oetiker left, huf left 03:41 oetiker joined, rindolf joined 03:42 DarthGandalf joined, xenoterracide joined, tinyblak joined, colomon joined, jerrycheung joined, muraiki joined, TimToady joined, Rounin joined, breinbaas joined, MilkmanDan joined, jdv79 joined 03:46 ggherdov_ is now known as ggherdov 03:58 flussenc1 is now known as flussence, flussence left, flussence joined
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:02
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:06
Lastly, do we care about the performance (as in, would anyone be interested in a 60% speedup)? 04:11
04:17 anaeem1 joined
grondilu m: say permutations(3, 0).perl 04:21
camelia rakudo-moar 705e7b: OUTPUT«===SORRY!=== Error while compiling /tmp/hdTo27MC8e␤Calling 'permutations' will never work with argument types (Int, Int)␤ Expected: :(Int $n)␤at /tmp/hdTo27MC8e:1␤------> say ⏏permutations(3, 0).perl␤»
grondilu m: say permutations(3).perl
camelia rakudo-moar 705e7b: OUTPUT«([0, 1, 2], [0, 2, 1], [1, 0, 2], [1, 2, 0], [2, 0, 1], [2, 1, 0]).list␤»
grondilu m: say permutations(0).perl 04:22
camelia rakudo-moar 705e7b: OUTPUT«().list␤»
grondilu permutations does return an output: the empty list.
danaj m: .say for permutations(0) 04:23
camelia ( no output )
danaj m: .say for permutations(1)
camelia rakudo-moar 705e7b: OUTPUT«0␤»
danaj m: .say for combinations(0,0)
camelia rakudo-moar 705e7b: OUTPUT«␤»
danaj permutations(0) doesn't return the empty list 04:24
grondilu IC
danaj at least not in the way that combinations(0) does
grondilu TimToady implemented those. Better ask him. 04:25
I tend to believe there should be an Int type check in combinations as well, though. 04:27
m: .say for combinations(5, 3), combinations(5, 3.5);
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␤»
grondilu because combinations(5, 3.5) is just weird. 04:28
as far as performance is concerned, it's always welcome :) 04:29
04:30 chenryn left
grondilu but your code needs to be CORE.setting friendly. 04:30
may I suggest you post your code on rosettacode.org/wiki/Permutations#Perl_6 ? 04:32
danaj I can do that. It's lexigraphic order and iterating, and just as short, but very C-like so not pretty. 04:33
04:33 tinyblak left
danaj It's still 50x slower than the same thing in Perl 5. :( 04:34
grondilu TimToady or someone else may be able to optimize it for nqp and then it could be faster. 04:35
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
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,
=)
danaj Hmm, I'm thinking of replacing the RC combinations code -- it's super slow. 04:48
Actually, I'll leave it as a recursive example. Besides, I hate removing examples. 04:49
04:54 BenGoldberg left
danaj Edited. It is .... not really P6ish. 04:55
(admittedly I wrote it in C, then wrote a P5 version, then shoved it into P6 while angels wept)
05:00 chenryn joined
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:03
05:05 chenryn left, dayangkun_ joined
grondilu you can consider making the edit on your local fork of rakudo and see if it passes combinations.t 05:05
(t/spec/S32-list/combinations.t that is) 05:06
05:08 hagiri left
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.
grondilu we have t/spec/S32-list/combinations.t for tests 05:10
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
Ah, I have to make t/spec. I cloned it by hand because it wasn't in standard rakudo
kurahaupo contemplates implementing .permutations.count & .combinations.count for non-integral values using the Γ function in place of
grondilu kurahaupo: I think what you want is multi permutations(Real $n, :$count!) {...} 05:14
05:15 kaare_ joined
grondilu also, that would probably be overkill unless it is decided to put Γ in the core. 05:15
we do have a nice implementation on RC, though. So it would not be hard to add it. 05:16
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:17
05:17 araujo left 05:18 yeahnoob joined 05:20 araujo joined
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:21
grondilu does it? I tried and it failed. 05:24
you have the latest rakudo? 05:25
danaj Aug 31
Which test? 05:27
grondilu all of them.
m: say ((1,), (2,), (3,)).list eqv (1; 2; 3).list;
camelia rakudo-moar 705e7b: OUTPUT«False␤»
grondilu what do you locally with this ^? 05:28
you get*
danaj False
grondilu :\
wth
05:28 SamuraiJack_ joined, jack_rabbit left
TimToady m: say ($(1,), $(2,), $(3,)).list eqv (1; 2; 3).list 05:29
05:29 kaleem joined
camelia rakudo-moar 705e7b: OUTPUT«False␤» 05:29
TimToady m: say ($(1,), $(2,), $(3,)).list.WHAT 05:30
camelia rakudo-moar 705e7b: OUTPUT«(List)␤»
TimToady m: say (1; 2; 3).list.WHAT
camelia rakudo-moar 705e7b: OUTPUT«(LoL)␤»
grondilu there's been a push on lib/Test.pm lately. I'll pull it and try again.
TimToady a List and a LoL are never going to compare eqv 05:31
grondilu that's what is done in combinations.t 05:32
oh wait no
m: say ((1,), (2,), (3,)).list eqv (1; 2; 3).tree.map(*.sort).tree; 05:33
camelia rakudo-moar 705e7b: OUTPUT«False␤»
grondilu danaj: what do you get with that^ ? 05:34
danaj Also false with perl6-m
grondilu well I don't get it.
05:35 chenryn joined
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␤»
grondilu checks out and recompiles 05:37
grondilu is planning on running perl6 t/spec/S32-list/combinations.t and expects failure
danaj I'm cloning into a new tree and making fresh with just the one change to src/core/List.pm. 05:38
05:39 xenoterracide left
grondilu so here we go. I have the latest rakudo on moarvm, and t/spec/S32-list/combinations.t fails. 05:43
no because of combinations, but most likely because of the way combinations.t is written.
oh hang on, my t/spec/ is not up to day. I had forgotten it's a separate repo. 05:44
sorry guys :P 05:45
05:45 dayangkun_ left
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
danaj I have also only tested with Moar. 05:47
05:47 dayangkun joined, mr-foobar joined
grondilu I bet it should be fine. I suggest you submit a pull request. 05:47
danaj (I would hope the others would still be correct, but performance might be different)
grondilu C-like code should run fine on all VM. 05:49
yeahnoob Is "LoL" = "List of List" ?
grondilu it is
yeahnoob Ola
05:49 ilbot3 left
danaj Any thoughts on permutations(0)? S32-list/permutations.t tests even less than combinations. 05:50
dalek ecs: f41d703 | (L. Grondin)++ | S99-glossary.pod:
adding LoL
05:51
grondilu danaj: it's a degenerate case so it's not easy to assert, frankly. 05:52
danaj I got distracted today and looked at this. I should be working on the is-prime stuff I still have to finish, since it's been lingering for 1.5 years now.
grondilu thinks someone should right a whole synopsis about degenerate cases
*write
grondilu is done recompiling with danaj's combinations 05:54
grondilu confirms it passes tests on MoarVM
05:57 ilbot3 joined, [Sno] left
danaj I was looking at performance with something like: my $s = 0; $s++ for combinations(22,6); say $s; 05:57
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
oh hang on. 6.6s on perl6-m is difficult enough I guess
m: say [*] (22, 21 ... *) Z/ 1.. 6 06:03
camelia rakudo-moar 705e7b: OUTPUT«74613␤»
grondilu m: say [*] (22, 21 ... *) Z/ 1.. 10
camelia rakudo-moar 705e7b: OUTPUT«646646␤»
grondilu try with combinations(22, 10)
should take about ten times longer
06:05 denis_boyun_ joined
danaj 0.1s Perl5+XS (using multicall, and could be faster), 0.4s P5, 82s perl6-m new code 06:05
grondilu not related:
m: role Foo {}; say $_ ~~ Foo for pi but Foo, [pi] but Foo;
camelia rakudo-moar 705e7b: OUTPUT«True␤False␤»
grondilu n: role Foo {}; say $_ ~~ Foo for pi but Foo, [pi] but Foo;
camelia niecza v24-109-g48a8de3: OUTPUT«True␤True␤»
TimToady does 'for eager combinations' run any faster? 06:06
danaj TimToady: A little, yes.
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:12 DrSeki is now known as All 06:13 All is now known as Guest69471, Guest69471 is now known as Salai
danaj perl6-m: 82s new, 169.8s old. with eager: 58.0s new, 144.5 old. 06:13
grondilu that's very decent 06:14
danaj++
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
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
or not even eager, but just batched, which lazy can do if there are no side effects 06:16
(outside the iterator itself)
danaj "The Future" ~ " Looks Bright" 06:18
06:26 denis_boyun_ left
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:37
06:38 mberends left 06:39 dayangkun left
dalek line-Perl5: 5198949 | nine++ | lib/Inline/Perl5.pm6:
Fix leaking Perl 5 objects passed to Perl 6 code.

Many thanks to jnthn++ for implementing DESTROY :)
06:43
06:45 ivanshmakov joined
tadzik hoelzro: I don't know, can you? :P 06:45
hoelzro: have some nice patches to push? 06:46
dalek line-Perl5: 1cd647f | nine++ | p5helper.c:
Fix some leaks in callbacks

name, obj, name_str, retval and args get freed correctly, but we're still leaking somewhere. But the leak seems to be too small to be an SV.
06:50
06:51 dayangkun joined
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
grondilu there are still 139 unresolved internal links though 06:56
dalek ecs: 20a1fd6 | (L. Grondin)++ | S99-glossary.pod:
resolve link for JIT compiler
06:58
timotimo mhhh 07:01
dalek ecs: 29109b6 | (L. Grondin)++ | S99-glossary.pod:
header for Zavolaj
timotimo perl6.org/compilers/features - has *still* not been updated 07:04
a whole bunch of changes have accreted by now
dalek ecs: 439a5b4 | (L. Grondin)++ | S99-glossary.pod:
resolve Rosetta Code
07:05
timotimo 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
07:08 tinyblak joined
moritz timotimo: I've updated perl6.org/compilers/features 07:09
timotimo thank you :)
moritz though I don't know why it won't update automatically
12,42 * * * * sh ~/update-features.sh
timotimo environment trouble?
moritz there's nothing in the logs. 07:10
timotimo if there's *nothing* in the logs, that doesn't bode well :) 07:11
07:11 zakharyas joined
moritz well, the logs have "Already up-to-date.", which is from "git pull" 07:12
I'm adding timestamps to the logs now
timotimo maybe an older run did the git pull and didn't correctly refresh the page?
and afterwards the script said "oh, it's already up to date, so i don't have to do anything!"
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
timotimo hm, ok 07:14
very strange indeed.
07:14 FROGGS_ is now known as FROGGS
timotimo hum. my commit message read "did a small test across S99" 07:16
i meant to write "pass"
oh well.
07:18 tinyblak_ joined, darutoko joined, tinyblak left
dalek ecs: 33464ab | (L. Grondin)++ | S99-glossary.pod:
resolve rakudo
07:20
ecs: e351af0 | (L. Grondin)++ | S99-glossary.pod:
resolve native
ecs: 2cf454f | (L. Grondin)++ | S99-glossary.pod:
resolve pseudo-scope
07:21
ecs: 1fcf806 | (L. Grondin)++ | S99-glossary.pod:
resolve bytecode
ecs: db86628 | (L. Grondin)++ | S99-glossary.pod:
resolve expression & Just in Time
ecs: 528f7c0 | (L. Grondin)++ | S99-glossary.pod:
less than 100 links to resolve now
07:21 virtualsue joined
FROGGS timotimo++ # blög 07:22
timotimo thänk yöü :)
07:23 tinyblak_ left, kurahaupo left, [Sno] joined 07:25 Salai left
moritz blög ürl? 07:27
timotimo just the p6weekly.wordpress.com
nothing special
07:28 kurahaupo joined, akaseki joined
lizmat disagree: keeping this up week after week *is* special 07:31
and good *, #perl6!
nine Good morning, lizmat.
timotimo oh well :3
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
07:33 tinyblak joined
lizmat so I was right :-) not enough --ing :-) 07:33
FROGGS ohh, yeah, morning o/ :o)
moritz timotimo++ 07:36
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:37
07:49 spider-mario joined, spider-mario left 07:51 eiro left 07:55 spider-mario joined 07:56 eiro_ joined 07:57 donaldh joined 08:01 kaleem left 08:04 eiro_ left, tinyblak left
grondilu std: stay 08:16
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'stay' used at line 1␤Check failed␤FAILED 00:01 120m␤»
grondilu std: say
camelia std 53b3ca6: OUTPUT«===SORRY!===␤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:␤------> say⏏<EOL>␤Check failed␤FAILED 00:00 120m␤»
08:17 kurahaupo left
timotimo jnthn: btw, my benchmarks of "master" were based on 11d7482548c8298809655d86b2651e8b56c4b8d4 08:18
er, "nom" i mean.
grondilu ?? is that new? How can I just print a newline? print "\n" would be dull.
timotimo say() 08:19
grondilu std: say()
camelia std 53b3ca6: OUTPUT«ok 00:00 121m␤»
grondilu oh, ok.
lizmat m: say()
camelia rakudo-moar 705e7b: OUTPUT«␤»
08:20 dakkar joined 08:30 pochi left 08:31 dwarring left 08:36 spider-mario left 08:37 virtualsue left 08:39 donaldh left, donaldh joined 08:40 Isp-sec left 08:43 bloonix left, bloonix joined 08:45 Rotwang joined
sergot Could somebody answer here: #121947 ? :) 08:45
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121947
nwc10 rakudo startup only compettive/beating Moose on x86_64 (of platforms I've tested) 08:46
On Power, Moose is about 2/3rds of the time
so be careful when bragging
JIT *doesn't* seem to be the cause of speed 08:47
08:48 spider-mario joined 08:49 spider-mario left
moritz the cause of speed is not doing unnecessary or stupid things 08:50
nwc10 my suspicion is endian swaps in MoarVM
but I don't have enough disparate platforms to test this
08:52 spider-mario joined 09:06 jerrycheung left 09:07 chenryn left 09:10 bjz joined
timotimo nwc10: the jit would have a hard time speeding up start-up anyway 09:11
09:18 chenryn joined 09:25 yeahnoob left 09:26 yeahnoob joined
FROGGS TimToady: can you please answer to #121947? 09:34
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121947
09:36 kurahaupo joined, yeahnoob left 09:47 kaleem joined 09:50 leont joined 09:59 Px12 joined, BizarreCake joined 10:01 virtualsue joined 10:04 [particle] left 10:05 [particle] joined
masak good time-of-day, #perl6 10:06
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:07
10:17 denis_boyun_ joined 10:19 telex left 10:20 telex joined, yeahnoob joined
colomon Huh. A batch of modules that had been failing started working, but were replaced by a new batch of failing modules. :\ host07.perl6.com:8080/report 10:24
FROGGS v5 failed... that's very weird 10:26
timotimo i'm doing a bit of bisection on the rakudo and the specified _REVISIONs 10:27
seems like b0e3d6d was already dog slow at rc-forest-fire-stringify
and the Minsk tagged release is good. 10:33
(always be sure to verify the good as well as the bad)
masak nwc10: Russia has nine time zones. too wide. but China is not as wide, and copes with but one.
leont How do I trap warnings in a background thread? «No exception handler located for warn» is highly uninformative :-/ 10:34
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
leont: that is, a rakudo patch
commit 22a4c05712109cdb9704e2a84f5261806349fd54
Author: Jonathan Worthington [email@hidden.address]
Date: Sun Sep 7 10:57:27 2014 +0300
Fix issues with reporting warnings on threads.
leont: might help to upgrade your rakudo, if you haven't already
leont Ah, right. Was planning to upgrade any way, think lizmat++ also fixed an issue I had run into
timotimo oh wow 10:36
here i have a commit where rakudo takes 92 seconds for stage parse ...
that's c3a6f67
leont Is doing just a «rakudobrew build» the way to upgrade?
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
colomon leont: yes
moritz should start to use rakudobrew :-)
tadzik en.wikipedia.org/wiki/Jake_Weary :D 10:39
10:39 dayangkun left
moritz "Not to be confused with jQuery." 10:40
timotimo oh, i know why stage parse was so super slow
it was right in the middle of hoelzro's POD parsing re-work
10:41 chenryn left, anaeem1 left
colomon ebiquity.umbc.edu/blogger/2008/01/1...decidable/ 10:42
masak ah, yes. a classic.
Geoffry Pullum, isnät it_ 10:43
isn't it?*
nwc10: yes. in Xinjiang they start working at around 11:00. (source: kathyz) 10:45
moritz masak: correct, Pullum 10:46
masak likes Pullum
everyone should take the time to read Pullum's rants about (a) Strunk & White, and (b) people who think various things are "passive voice".
including (c) Strunk & White who think various things are "passive voice" :) 10:47
10:47 virtualsue left
grondilu since * .. * means something now, would it be a big stretch to have * .. $n mean something too? 10:51
that would allow to golf rosettacode.org/wiki/Evaluate_binom...nts#Perl_6 a bit more
lizmat the other day, someone mentioned that classify doesn't create typed hashes
that is correct, but you can:
grondilu like: sub infix:<choose> { [*] * .. $^n Z/ 1 .. $^p } 10:52
10:52 chenryn joined
lizmat m: my %h{Any}; %h.classify-list($test, @List to classify ) 10:52
camelia rakudo-moar 705e7b: OUTPUT«===SORRY!=== Error while compiling /tmp/Rc8Q3S1QXa␤Variable '$test' is not declared␤at /tmp/Rc8Q3S1QXa:1␤------> my %h{Any}; %h.classify-list($test⏏, @List to classify )␤ expecting any of:␤ postfix␤»
timotimo how do you expect to multiply up * .. $^n ??
lizmat my %h{Any}; %h.classify-list($test, @List to classify ) # pseudo code
timotimo start at -Inf and increment until you reach $n?
grondilu oh yeah we have to start from the left. Forgot that. 10:53
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␤»
lizmat the reason I'm asking, is that Hash.push is using an intermediary, when it feels that is not necessary 10:56
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
10:58 tinita joined
timotimo (which got 17x slower) 10:58
lizmat is that the one with the candidate removal ?
tinita: welcome to #perl6! 10:59
tinita \o/
timotimo i'll give you the commit id in just a moment
i'll just wait for the timing to officially terminate 11:00
oh, git wants me to test one more revision
dalek kudo/nom: 617176f | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
Some code esthetics
11:02
kudo/nom: fcdf308 | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
Remove unnecessary temporary from Hash.push
timotimo ce0c258640222761ab8176aff92cf9bbe5b3665f is the first bad commit
Reify lists with correct count.
github.com/rakudo/rakudo/commit/ce...bbe5b3665f
FROGGS weird 11:03
timotimo i only tested that one benchmark, though
FROGGS and that can make things 17 times slower? that seems odd
lizmat perhaps $count is Inf in some cases ?
(or something close to it)
timotimo github.com/japhb/perl6-bench/blob/...-stringify - this is the benchmark i've tested it with
i'll build that revision and the one before it and run the complete benchmark suite with those. 11:04
FROGGS timotimo++
damn, setting up a osx box failed again :o( 11:05
timotimo ;( 11:06
11:09 virtualsue joined
timotimo huh. rebootstrap.pl is ... hanging? 11:11
tadzik huh
timotimo with almost no cpu usage, too
trying with an older commit now 11:13
oh, i wasn't up to date with my panda repository
tadzik still weird
grondilu m: say 10, 20, 30 Z/ 1, 2; 11:14
camelia rakudo-moar 705e7b: OUTPUT«10 10␤»
grondilu m: say 3 ... 0 Z/ 1, 2;
camelia rakudo-moar 705e7b: OUTPUT«3 2 1 0␤»
timotimo ayup, shell hangs.
lizmat timotimo: that's the same effect I've seen on OS X
with the new libuv
timotimo ah, hold on
lizmat qx/foo/ hangs trying to read from the sub processes STDOUT
is what jnthn sort of determined 11:15
timotimo had to realclean my moarvm repo
(because i'm now "past" the commit where we reset libuv to the old version)
grondilu n: say 3 ... 0 Z/ 1, 2;
camelia niecza v24-109-g48a8de3: OUTPUT«3 1␤» 11:16
grondilu n: sub infix:<choose> { [*] $^n ... 0 Z/ 1 .. $^p }; say 5 choose 3 11:17
camelia niecza v24-109-g48a8de3: OUTPUT«10␤»
grondilu m: sub infix:<choose> { [*] $^n ... 0 Z/ 1 .. $^p }; say 5 choose 3
camelia rakudo-moar 705e7b: OUTPUT«0␤» 11:18
11:22 anaeem1_ joined
[Coke] yawns. 11:27
lizmat morning [Coke] !
[Coke] arglebargleearlymorningcalls 11:28
11:33 Px12 left 11:39 Rotwang left
[Coke] lizmat: morning. :) 11:44
11:48 colomon left, BizarreCake left 11:51 [particle]1 joined 11:53 [particle] left 11:57 spider-mario left 11:58 jdv79 left, jdv79 joined 11:59 M_o_C joined, spider-mario joined
hoelzro tadzik: just one! 11:59
moritz grondilu: exclude the 0 12:00
m: sub infix:<choose> { [*] $^n ... 1 Z/ 1 .. $^p }; say 5 choose 3
camelia rakudo-moar fcdf30: OUTPUT«120␤»
tadzik hoelzro: show meh :) 12:01
12:01 muraiki left, TimToady left, Rounin left, breinbaas left, MilkmanDan left
hoelzro tadzik: github.com/hoelzro/panda/commit/d0...e9f4f24810 12:01
there's an outstanding PR
tadzik oh!
sorry I missed it
any chance for a test? :) 12:02
dalek nda: d0a9cb6 | (Rob Hoelz)++ | lib/Panda.pm:
Force source-url into a Str

Because sometimes it's an IO::Path
nda: afcc877 | tadzik++ | lib/Panda.pm:
Merge pull request #100 from hoelzro/master

Force source-url into a Str
moritz wow, pull request 100
lizmat FWIW, I'm coming more and more to the conclusion that we need to get rid of IO::Path
moritz lizmat: why? 12:03
moritz likes it
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
moritz but there are also quite many examples in the modules out there where IO::Path helps immensely 12:04
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
lizmat but that is something that would need to live in IO::Spec, would it not ?
12:05 MilkmanDan joined, muraiki joined, TimToady joined, Rounin joined, breinbaas joined
lizmat in fact: all that IO::Path does, is channel through to IO::Spec 12:06
moritz not quite
it's also very convenient that dir() returns IO::Path objects
in fact, one could argue that the PR is only a stopgap solution
and the proper thing would be support IO::Path object in $mod<source-url> 12:07
12:07 brrt joined
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
moritz yes, I never use IO::Spec 12:08
currently I see it as an implementation detail of IO::Path that I don't care about
lizmat yes, you do... but under the hood
so you wouldn't mind seeing IO::Spec go
as long as IO::Path kept its features
? 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
but I'm not too attached to it
I am attached to IO::Path though :-)
lizmat I hear you :-) 12:10
on attachment to things
masak: how about REAP instead of DESTROY ?
masak REAP also isn't a natural opposite of BUILD :/ 12:11
hoelzro RAZE? =P
tadzik :) 12:12
lizmat but I see REAP not being the opposite of BUILD
just like death is not the opposite of birth
nwc10 www.bbc.co.uk/news/uk-england-york-...e-29126161 -- oh gnoes. it's been disproved. 12:13
12:14 jepeway joined
tadzik haah 12:14
I didn't even know there's such a saying
[Coke] takes care of kid51++'s request about perl6-users 12:15
lizmat [Coke]++
fwiw, kid51++ is the [Coke]++ of p5p 12:16
wrt to looking at tickets, testing, smoking, etc.
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.
moritz DECONSTRUCT
lizmat DEMOLISH
moritz OH_NOEZ_I'M_DYING 12:18
12:18 JimmyZ joined
JimmyZ DEBUILD? ;) 12:18
jepeway TEARDOWN?
lizmat moritz: no organisms
moritz JimmyZ: I thought that too
[Coke] lizmat: I feel like he's winning. :)
brrt what is actually wrong with DESTROY
moritz DISMANTLE 12:19
brrt DISINTEGRATE
lizmat to me, REAP makes sense, as it is an external force deciding the remnants of a no longer used object being removed
nwc10 EXTERMINATE! EXTERMINATE!
lizmat aka a Reaper
moritz brrt: some people are afraid that other people mistake it to be the same a perl 5's DESTROY
brrt doesn't know perl 5's DESTROY, actually
12:19 BenGoldberg joined
moritz lizmat: also good for grim reaper jokes 12:19
masak brrt: nothing is actually wrong with DESTROY.
12:20 denis_boyun__ joined
lizmat brrt: it's timely, as opposed to Perl 6's cleanup 12:20
12:20 denis_boyun_ left
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
masak but people enjoy bikeshedding, and there is a percieved problem that I don't agree with.
JimmyZ *as their
brrt i.e. after DESTROY the object is no longer a single thing
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
brrt i see
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
JimmyZ DEBUILD is ok, methinks :)
too
lizmat at several K$ / minute
moritz 1) stick with DESTROY; then we have to explain people why destruction isn't timely
lizmat you get sensitive to these things
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
lizmat and that's the issue here: in dev, all will work
masak still don't think that's a problem *inherent to naming*.
ribasushi jnthn: can you weigh in on my question from yesterday - what are the plans for timely destruction in p6
lizmat if developers need to use a different name, they are easier aware of changed semantics
JimmyZ +1 to DESTROY
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)
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
masak ribasushi: wow, TIL. that's horrible :) 12:23
lizmat well, it's clear to me now that I can't convince you guys, so I'll shut up 12:24
and hope that I will be proven wrong
moritz ribasushi: how so? by installing the invocant in a symbol table somewhere?
ribasushi it's how I have leak-less circular references in p5 ;)
moritz ribasushi: also note that Perl 6 has proper scope guards (LEAVE phasers), so we might be able to avoid some clever DESTROY hacks
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
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
12:25 baest_ joined
ribasushi hence why I want jnthn to chime in 12:25
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
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.
hoelzro moritz: I'll send a link, hang on
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
which is ugly.
hoelzro irclog.perlgeek.de/perl6/2014-09-09#i_9320542
12:27 Px12 left, jerrycheung joined
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:27
12:28 nebuchadnezzar left
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
otherwise we miss out on composition, and we're no better than source filters.
dinner &
moritz hoelzro: IMHO it would make more sense to make proclaim available to the usr
hoelzro: s/usr/module author/
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
I thought of that as well, but I'm nervous about such large change in such a crucial library
12:30 dayangkun joined
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
camelia rakudo-moar fcdf30: OUTPUT«120␤»
[Coke] hoelzro: if only we had a way to make sure that changes to an important library didn't break anything... :)
lizmat hoelzro: the current Test.pm is a temporary hack: I'm all for making it better built 12:31
## This is a temporary Test.pm to get us started until we get pugs's Test.pm
## working. It's shamelessly stolen & adapted from MiniPerl6 in the pugs repo.
moritz m: say 5...1
camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
moritz m: say 1..3
camelia rakudo-moar fcdf30: OUTPUT«1..3␤»
hoelzro [Coke]: tests for Test.pm are on my TODO =)
moritz: let's say I have a test that tests a test
moritz m: say 5...1 Z/ 1..3
camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
carlin change BUILD to SOW, and then REAP fits perfectly
hoelzro plan 2; test({ pass() }).ok; test({ flunk() }).not-ok;
moritz m: say (5...1 Z/ 1..3)
camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
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 -…»
hoelzro test.ok should emit "ok 1", and test.not-ok should emit "ok 2"
grondilu wth
12:32 nebuchad` is now known as nebuchadnezzar
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 git.shadowcat.co.uk/gitweb/gitweb.c...control%3F 12:32
moritz m: say (5...1 Z/ 1...3)
ribasushi bah, this was supposed to be a shortlink
camelia rakudo-moar fcdf30: OUTPUT«5 4 3 2 1␤»
hoelzro but the pass() in the passed in block emits "ok 1", and messes with the test count
[Coke] lizmat: that comment is out of date and should be fixed up.
moritz m: say ((5...1) Z/ (1...3))
12:32 jnthn left
camelia rakudo-moar fcdf30: OUTPUT«5 2 1␤» 12:32
moritz grondilu: precedence problem
grondilu oh
m: say (5...1) Z/ 1..3 12:33
camelia rakudo-moar fcdf30: OUTPUT«5 2 1␤»
grondilu moritz++ nicely spotted
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.)
hoelzro I thought of that too 12:34
moritz hoelzro: though I don't know if that's a worse approach :-)
hoelzro let's say I'm writing a Test::Differences module (which I am)
and I want to test eq-or-diff
test({ eq-or-diff([], []) }).ok
importing custom subs here wouldn't help
12:34 Px12 joined 12:35 BenGoldberg left
[Coke] if you're testing Test.pm, I would recommend running an external program. 12:35
and then verifying that the tap output is what you expect.
hoelzro [Coke]: and if I'm testing a new test library that makes use of Test.pm? 12:36
12:36 BizarreCake joined
[Coke] The same? 12:36
hoelzro you make a good poitn 12:37
point, even
12:38 colomon joined
[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
I suppose I *could* do test('eq-or-diff([], [])').ok instead
but it seems...I don't know 12:39
[Coke] Point made, I wander away to get コオヒイ
hoelzro o/ [Coke] 12:40
enjoy...I think. 12:41
lizmat are we sure the MMD candidate opts are still working? 12:54
I was looking at adding a candidate for Cool.index 12:55
multi method index(Cool $needle, Cool $pos = 0) {
Cool ''
so that:
if $needle eq '' {
my $chars = self.chars;
return $pos < $chars ?? $pos !! $chars;
}
could be moved to the '' candidate 12:56
12:56 anaeem1_ left
lizmat slurping / lines of /usr/share/dict/words then *doubles* in CPU / wallclock :-( 12:56
moritz lizmat: it might be because it can't be expressed as a nominal type check 12:57
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
lizmat but '' should be easy to check, no? 12:58
dalek kudo/nom: 2598e87 | duff++ | src/core/Str.pm:
Str.samecase reimplementation mark 2

Implemented the array version found at
  gist.github.com/perlpilot/bd0939415bd63e35cdc3 which includes
the code used for testing and timing the implementations.
lizmat hmmm... ok
I see what you mean
12:58 JimmyZ left, JimmyZ_ is now known as JimmyZ 12:59 firefish5000 left, pmurias joined
moritz things you could do: 13:00
a native str subroutine version of index
we are much better at inlining subs
and then we wouldn't have to handle all that Cool -> Str type casting 13:01
(might even be better to move the current method from Cool to Str, and set up a coercing forwarder in Cool
)
lizmat yes, was considering that
moritz also, $result could be a native int 13:02
13:02 akaseki left
lizmat I just did that :-) 13:02
moritz (and only box on success)
so, we're in violent agreement again :-)
lizmat yup 13:03
13:03 akaseki joined
dalek kudo/nom: 03cb92c | (Elizabeth Mattijsen)++ | src/core/Cool.pm:
Don't box int when we don't need it
13:04
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:05
ribasushi pmurias: C# does it with a special class of refcounted variables afaik 13:06
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:11 chenryn left
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?
ribasushi nine: connection pools are for simple stateless IO 13:13
nine: the moment you get into txns, live with pools becomes *very* difficult
*life
pmurias you won't be able to keep your refcounted obj in a garbage collected place
ribasushi pmurias: this is an implementation detail though... isn't it? 13:14
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
moritz PerlJam: t/spec/S05-modifier/ii.rakudo.moar hangs after your patch
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
pmurias ribasushi: or the refcount will be have to kept manualy with '$obj.refcount++;' and '$obj.refcount--;' 13:17
PerlJam moritz: I did
(or I thought I did)
I must have something weird going on on my system. :( 13:18
13:18 kaare_ left
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 ;)
leont Ah, figured it out… 13:19
PerlJam wipes his rakudo clone and starts from a clean slate. 13:20
leont subsets don't like their default initializer either…
nwc10 for some reason t/spec/S05-modifier/ii.rakudo.moar.t is chewing CPU 13:21
timotimo sorry for disappearing 13:29
t.h8.lv/p6bench/2014-09-09-bisection.html 13:30
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, guru is now known as ajr_
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/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13381 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)␤ f…»
lizmat m: say nqp::p6definite(fail); 1 # would have expected False here, am I wrong ?
camelia rakudo-moar fcdf30: OUTPUT«Unhandled exception: ␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13381 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)␤ f…»
lizmat huh?
nwc10 moritz: oh. that's LTA. :-( 13:36
13:36 jerrycheung left
nwc10 does anyone know how to restore Awesomeness? 13:36
PerlJam is looking, but not making any progress 13:37
13:37 leont left
colomon FROGGS: suspect this is your v5 issue: gist.github.com/colomon/b139513e0014303bd00f 13:38
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
moritz PerlJam: but can you reproduce it? 13:40
PerlJam aye. I can now. 13:41
13:42 anaeem1 joined
dalek kudo/nom: 48d9e4d | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Minimal optimizations in Cool.(r|)index

Mainly by not having to .Str if it is already a Str. Gives about 2% on Str.lines on e.g. /usr/share/dict/words
13:46
13:46 firefish5000 joined, anaeem1 left 13:47 anaeem1_ joined
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 kudo/nom: 29ca8f7 | duff++ | src/core/Str.pm:
Revert "Str.samecase reimplementation mark 2"

This reverts commit 2598e8767e3b25d6a2548a7ba5ac68c0b371852c.
13:48 anaeem1_ left, kaleem left
dalek kudo/nom: eefe11e | (Timo Paulssen)++ | src/core/ListIter.pm:
Revert "Reify lists with correct count."

It caused massive performance regressions across the board.
This reverts commit ce0c258640222761ab8176aff92cf9bbe5b3665f.
13:48
13:48 anaeem1 joined
timotimo ^- i spectested the revert and it was fine, so i thought "why not go ahead and push" 13:48
13:49 mr-foobar left, kaleem joined
pmurias ribasushi: in C# they seem to have a .Dispose method that's manually called 13:53
13:53 anaeem1 left
daxim I would like to see a p6 translation of jlongster.com/Taming-the-Asynchrono...JavaScript 13:53
13:53 anaeem1 joined 13:55 kaleem left 13:56 kaleem joined 13:57 JimmyZ_ joined 13:59 JimmyZ left, JimmyZ_ is now known as JimmyZ
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
blah blah
FROGGS colomon: ewww 14:19
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:24
timotimo no, we implement them ourselves - at least on moarvm 14:25
daxim alr
FROGGS timotimo: on all backends
14:25 treehug88 joined
timotimo OK 14:26
FROGGS there is nqp/src/HLL/sprintf.nqp
daxim I need to try again with master, will report back in a minute 14:27
14:27 JimmyZ_ joined
FROGGS hmmm, all tests pass on my linux x86_64 14:27
14:28 anaeem1 left, M_o_C left 14:29 JimmyZ left, JimmyZ_ is now known as JimmyZ
timotimo t.h8.lv/p6bench/2014-09-09-rakudo_h...ssion.html - FWIW, this is current nom, which contains my revert from an hour ago 14:31
oh, damn 14:32
daxim yup, I still get the failure. preparing bug report
timotimo while_push_join, while_push still regressed
as did for_push
daxim apart from prove -v output, what else do you need to maximum detail?
timotimo and 9 billion names also regressed a bit 14:33
14:34 kaleem left
FROGGS daxim: uname -a and revisions of the repositories 14:35
(moar and nqp only in this case)
(except when this is about nqp-p or nqp-j) 14:36
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
FROGGS k
moritz got several test failures in an early abourt in S32-str/rindex.t 14:39
lizmat on perl6-m ?
moritz yes 14:41
lizmat checks
14:41 mr-foobar joined
moritz Failed tests: 2-3, 11-12, 15, 22, 24-31 14:41
Non-zero exit status: 14
Parse errors: Bad plan. You planned 33 tests but ran 31.
lizmat confirmed here, looking at it
14:41 JimmyZ_ joined
moritz also a non-zero exit status on S04-declarations/constant.rakudo.moar, and Failed test: 49 14:41
FROGGS substring not found 14:42
in method Numeric at src/gen/m-CORE.setting:13363
in sub infix:<==> at src/gen/m-CORE.setting:4457
14:42 JimmyZ_ left
lizmat that's probably because index() now returns Failure on not finding (as rindex did) 14:42
14:43 kaare_ joined, JimmyZ left
lizmat I guess the fail is not according to spec 14:44
S32/Str:206 14:45
lizmat wishes synopsebot would recognize that as well
tadzik hmm
lizmat adapts index/rindex
tadzik patches welcome :) it's on github now
github.com/tadzik/synopsebot 14:46
masak pmurias: .Dispose can be manually called, for example when doing reactive stuff. but when possible, it's done implicitly through `using { ... }` 14:48
ribasushi: if you want VM people, you don't want me, you want #moarvm :)
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␤␤»
lizmat m: my int $a = 42; say nqp::p6box_i($a) # this does, but I want it to become a StrPos
camelia rakudo-moar eefe11: OUTPUT«42␤»
lizmat m: class StrPos is Int {}; my int $a = 42; say nqp::p6box_i($a,StrPos) # like this
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)
lizmat: (iirc)
lizmat ah
moritz++
14:56 chenryn joined 14:58 jnthn joined
lizmat $ perl6 t/spec/S32-str/rindex.t 14:58
Segmentation fault: 11
ooh, wow
moritz lizmat: did you give StrPos a native int attribute that's set up as box_target? 14:59
lizmat eh, no...
class StrPos is Int { }
moritz oh
lizmat I guess that was too naive 15:00
moritz then one would guess it would inherit that
m: class StrPos is Int { }; say nqp::box_i(42, StrPos)
camelia rakudo-moar eefe11: OUTPUT«42␤»
moritz that alone doesn't seem to segfault :-)
lizmat indeed
running the first test of that file, doesn't either 15:01
15:01 chenryn_ joined
jnthn evening, #perl6 15:02
hoelzro o/ jnthn 15:03
lizmat jnthn o/
even segfaults with spesh disabled
seems the segfault occurs after the first test and before the second 15:04
if I remove all of the tests except the first, it's ok
nine \o jnthn
lizmat if I also keep the second test, it segfaults without saying anything
15:04 chenryn left 15:06 leont joined
pmurias jnthn: hi 15:06
15:08 denis_boyun__ left
FROGGS moritz: this should show results: irclog.perlgeek.de/perl6/search/?ni...q=VMThread 15:11
moritz: this one here for example irclog.perlgeek.de/perl6/2014-09-08#i_9315916
moritz FROGGS: I'll try to remember to look at that 15:13
FROGGS thanks :o)
lizmat moritz: hmm... the segfault is not related to StrPos :-( 15:14
15:16 grondilu left
masak how can I reliably convert a text file to \r\n newlines using perl6? 15:18
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")
masak ooh
masak tries
lizmat++
lizmat it should even handle \r only ended lines
FROGGS m: say "a\rb\r\nc\nd".lines.perl 15:20
camelia rakudo-moar eefe11: OUTPUT«("a\rb\r", "c", "d").list␤»
FROGGS no
but it should
15:20 cognome left
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␤»
FROGGS hmmm, I thought it did
15:20 cognome joined 15:21 yeahnoob left
FROGGS p: say "a\rb\r\nc\nd".lines.perl 15:21
masak Timbus and I discussed this in the backlog the other day.
camelia rakudo-parrot eefe11: OUTPUT«("a\rb\r", "c", "d").list␤»
masak we even arrived at a better spec for lines
the current one is busted
lizmat masak: am working on Str.lines atm
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?
lizmat indeed, Str.lines will shortly work like IO.lines
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 :)
lizmat it should handle \r , \r\n and \n
right ? 15:23
FROGGS yes yes
lizmat that's what I'm working on
FROGGS and \r\n as one line sep :o)
lizmat in that process I broke rindex
looking at that now
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.
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 cognome left
ribasushi jnthn: well... I don't particularly care about the memory, I care about the resource (object) being available 15:25
jnthn: so does this mean that a true refcounted thingy is not possible in the p6 context (alongside the more standard javaesque GC)
jnthn Right, so let the GC take care of memory, and use other explicit constructs for resources. 15:26
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
developers'
i mean, either you can be careless or you cannot
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.
brrt where do we do that, actually?
oh frames
jnthn brrt: Frames.
brrt :-)
i recall 15:29
and ehm, i have ... words ... about those frames
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.
brrt nods
if it were at all feasible i'd have frames be stackallocated by default
15:29 bjz left
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
15:30 zakharyas left
jnthn Yes, but continuations, and closures, and... :) 15:30
15:30 bjz joined
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
i.e. the default way would be to copy (parts of) the stack to the heap in case of closures 15:31
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:33
15:34 ajr_ left
jnthn nine: Um...free callbacks? 15:34
15:34 guru joined
jnthn nine: Are you taking a closur eper callback? 15:34
15:34 Rotwang joined
jnthn If so, that's probably the issue. 15:34
15:34 Rotwang left, Rotwang joined
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:34
15:35 guru is now known as Guest46740, Guest46740 is now known as ajr_
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...
*code
I thought the per-call stuff was already cleaned up
nine jnthn: but how does MoarVM know that I'm not using the callbacks anymore? 15:36
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:37
nine jnthn: github.com/niner/Inline-Perl5/blob...5.pm6#L144 and github.com/niner/Inline-Perl5/blob...per.c#L241 15:38
masak [Coke]++ # irclog.perlgeek.de/perl6/2014-09-08#i_9319321
jnthn And yes, a construct like that is very much what I'm suggesting we have in Perl 6.
ribasushi jnthn: hm... I see, either I am misremembering a language or whoever explained this to me didn't know shit ;)
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
ribasushi I think I am not stating the question correctly
jnthn brrt: Yup.
ribasushi it's not that I care when (or if ) gc happens
dalek p: 2e5a9c0 | (Tobias Leich)++ | / (2 files):
add Configure option --with-moar, daxim++

Also, document --with-moar and --make-install
15:40 pochi joined
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)
brrt ribasushi: long-story-short, no
masak +1
ribasushi yes I understand it will be slow, I am asking if the option is at all available for code that requires it
masak it's a question of who owns the object. and the short answer is "the GC does". 15:41
15:43 integral left
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:43
ribasushi no, calling things oneself is easy (and compltely out of scope) 15:44
let me show example code instead
15:45 brrt left
ribasushi jnthn: paste.scsys.co.uk/422328 15:47
basically I am using a guard that is passed throughout scopes to indicate global-ish state
and that pattern is used a lot in the wild (darkpan)
hence why the strong interest on this 15:48
15:51 cognome joined 15:52 eternaleye left, cognome left, cognome joined 15:54 adu joined
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
jnthn OK, what I'm missing is how this becomes about ref counting and not about dynamic scoping... 15:56
15:56 rindolf left 15:57 cognome left
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.
(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
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:03
masak m: sub foo { my $*DYN = 42; bar; say $*DYN }; bar { $*DYN = 5 }; foo 16:04
camelia rakudo-moar eefe11: OUTPUT«===SORRY!=== Error while compiling /tmp/5Q95LnYhMK␤Undeclared routine:␤ bar used at line 1. Did you mean 'bag'?␤␤»
masak m: sub foo { my $*DYN = 42; bar; say $*DYN }; sub bar { $*DYN = 5 }; foo
camelia rakudo-moar eefe11: OUTPUT«5␤»
ribasushi jnthn: the point here is that the guard stays alive until ->commit time 16:05
but if at any point something breaks
it will issue a ->rollback right then and there
and I do not need to be careful *where* the breakage will happen - the DESTROY will reliably fire when it needs to
jnthn OK, so the second piece of code is not equivalent to the first, in that regard? 16:06
ribasushi it is because txn_do will also call a rollback on exception-scope-leave 16:07
sorry it's an example from a different argument, it doesn't illustrate my point well
japhb Holy cow, people went nuts on S99-glossary recently. (All those who worked on it)++ 16:08
16:09 anaeem1 joined, Akagi201_ left
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
But I don't think I'm smart enough tonight. :)
16:11 rindolf joined
ribasushi jnthn: oh, I thought you are in my tz 16:11
jnthn: we will chat tomorrow (well, tonight) then ;)
jnthn ribasushi: No, currently on a consulting job over in China. :) 16:12
ribasushi a-ha
16:13 kaleem left
masak 'night, jnthn 16:13
jnthn Anyway, let's try and continue this tomorrow 16:14
'night
16:17 kaleem joined
colomon \o 16:17
ribasushi o/ 16:20
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…»
TimToady timotimo: congrats, you've reinstalled the 100000 bug...
16:23 Akagi201 joined
lizmat
.oO( too bad there is no test for the 100000 bug )
16:24
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
pmurias ribasushi: what is the big difference between the first and the second example? that the guard behaves correctly with exceptions?
dalek kudo/nom: 914434e | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Revert "Minimal optimizations in Cool.(r|)index"

This is a complete and utter MMD and whatever mess that segfaults. Abandoning this now.
16:26
16:27 adu left
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
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:29
16:30 ajr_ left
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:31
I'm guessing the reverts happen not because of spectest failures, because those probably (mostly) get caught before the commits are pushed. 16:32
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:35
16:35 kaleem left
pmurias aren't at least some of them tricky optimalisations that don't end up working so well? 16:37
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
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
'night, #perl6
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
night, masak
16:41 ab5tract joined
dalek kudo-star-daily: b474d46 | coke++ | log/ (14 files):
today (automated commit)
16:41
rl6-roast-data: 59d8bba | coke++ | / (6 files):
today (automated commit)
16:43 integral joined
[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:43
in an -ideal- state, though, most stuff goes into a branch, gets smoked, and then gets deemed ok to merge. :) 16:44
parrot: now failing almost 300 tests, and has been failing since August 27th. 16:45
moar & moar.jit failing 141 tests, not clean since August 28th. 16:46
16:47 dayangkun left
[Coke] jvm: failing 167 tests, not clean since September 1st. 16:47
So, we currently have more churn than I'd like.
(a lot more)
ab5tract colomon: i responded again on the pull request
leont Where are parameterized types (e.g. Array[Foo]) explained? 16:48
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:49
leont It seems «role Foo [::T]» works but «class [::T]» doesn't, and I don't understand why 16:50
16:51 cognome joined 16:53 lichtkind joined 16:56 cognome left
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
Of course, we'd still need to make said infrastructure actually *happen*.
colomon ab5tract: yeah, I agree commutative seems right 17:00
17:00 dakkar left
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:01
leont Ah, Array.pm serves as an example, though not one as simple as I had hoped for :-s 17:02
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:03
ab5tract that way you could get the lowest possible intersecting weights from a list of bags
indeed 17:04
colomon ab5tract: seems to me those operations make sense on bags too
just in a baggy-sense
er, baggy sense 17:05
ab5tract along those lines.. 17:06
do the evalbots keep any test data around?
it would be easier to do interesting things with bags and lists without pasting them in
colomon m: .say for lines;
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:07 virtualsue left
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…»
vendethiel- leont: classes can't be parameterized. For some reason 17:09
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
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
FROGGS ab5tract: you have to pass something to .map 17:11
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«===SORRY!===␤The 'bag' listop may not be called without arguments (please use () or whitespace to clarify)␤at /tmp/yZMLB5A1W7:1␤------> my $words = bag ⏏for slurp -> $s ; my $anags = bag $words␤Invalid typenam…»
ab5tract m: my $words = bag lines[0..100].map; my $anags = bag $words.keys.map(->$k {$k.sort}); say $anags.perl();
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␤␤»
ab5tract oh, duh
sorry
m: my $words = bag lines[0..100]; my $anags = bag $words.keys.map(->$k {$k.sort}); say $anags.perl();
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…»
FROGGS ab5tract: you can also talk to camelia directly 17:13
ab5tract FROGGS: thanks for the tip
17:19 telex left 17:20 telex joined
ab5tract hmm 17:24
m: my $t = 'this'; say "now _{$t}_ is perl"; 17:27
camelia rakudo-moar eefe11: OUTPUT«now _this_ is perl␤»
ab5tract camelia had stopped responding to me through messages 17:28
Timbus coming on a bit strong
ab5tract glad to know she is ok
17:28 pat_js joined
ab5tract yeah, it can happen ;) 17:28
colomon apologizes to ab5tract for disappearing 17:33
colomon blames noms
17:41 gfldex joined
colomon ab5tract: so I think, given @p bags, bag symmetric difference can be defined as ([(|)] @p) (-) ([(&)] @p) 17:45
that's commutative I think
17:47 [Sno] left 17:49 glumm left 17:50 bjz left 17:51 bjz joined 17:54 chenryn_ left 17:55 anaeem1 left
dalek p: 5fa79ba | (Tobias Leich)++ | .travis.yml:
add travis-ci config file
18:02
ab5tract ah, now that's a nice way to say it colomon 18:12
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
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
camelia rakudo-moar 914434: OUTPUT«BagHash.new(88(3), 3(2), 1)␤»
dalek p: b859815 | (Tobias Leich)++ | docs/ops.markdown:
fix typo in ops documentation
ab5tract that's subtracting though
with addition it is commutative
18:13 akaseki left 18:14 Px12 left
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
18:15 akaseki joined
dalek p: ba8511d | (Tobias Leich)++ | .travis.yml:
fix missing quote in travis file
18:16
18:16 eternaleye joined, pat_js left
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
maybe TimToady has some ideas
timotimo TimToady: well, *that* was not The Fix for The Bug :) 18:17
18:17 akaseki is now known as DrSeki 18:18 jack_rabbit joined
ab5tract colomon: ah, i missed the crucial (-) in there 18:19
18:19 travis-ci joined
travis-ci [travis-ci] perl6/nqp#1 (master - ba8511d : Tobias Leich): The build passed. 18:19
[travis-ci] Change view : github.com/perl6/nqp/compare/b8598...8511dda6f2
[travis-ci] Build details : travis-ci.org/perl6/nqp/builds/34840958
18:19 travis-ci left 18:20 BizarreCake left
FROGGS @all: if the travis stuff is going to make too much noise, I can let it spam another channel 18:21
vendethiel- FROGGS: that's one more message for everycommit ? 18:24
+ join/part?
FROGGS vendethiel-: yes, this block for every commit to nqp + every commit to rakudo
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?
FROGGS PerlJam: every push I think 18:31
hoelzro: right now
hoelzro: though, I let it only test on moarvm, because of speed reasons
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:34
FROGGS moritz: what do you think? 18:35
18:37 erdic left
[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
PerlJam [Coke]++ that would be excellent too. 18:38
vendethiel- [Coke]++ # troo
FROGGS is that even possible? 18:39
vendethiel- make it so :P 18:40
FROGGS O.o
vendethiel- FROGGS: I know that's how I receive it by email
PerlJam FROGGS: It's just a simple matter of programming! ;)
[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. :)
FROGGS ahh, I can adjust it... nice! 18:42
[Coke] FROGGS++
rurban the change view is not helpful, but the build link is 18:45
on #perl11 will changed his lines for rperl to 2 lines 18:46
dalek p: 08d8e3c | (Tobias Leich)++ | .travis.yml:
only notify via travis when status has changed
18:48 guru joined, guru is now known as ajr_
PerlJam FROGGS: so, with that configuration, as long as the build is succeeding (or failing) there won't be any notifications? 18:48
It's only when we change from success to failure (or vice versa) that we'll see anything?
FROGGS PerlJam: there is no notification as long as the status stays in its state
yes 18:49
though, only nqp is activated, since one needs admin rights to flip some switches
PerlJam might want to switch on_failure to "always". 18:50
dalek kudo/nom: c8df775 | (Tobias Leich)++ | .travis.yml:
add travis config file
FROGGS PerlJam: that would mean that one thinks that his/her commit broke stuff when it did not 18:51
but then more ppl would see that it is broken, and maybe act more quickly :o9
:o)
PerlJam Well, that's kinda what I was thinking. 18:52
18:53 slavik left
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:56 ivanshmakov is now known as ivanshmakov| 18:57 ren1us joined
dalek p: 2e21ba6 | (Tobias Leich)++ | .travis.yml:
travis notification tweaks
18:57
kudo/nom: 69bbdc4 | (Tobias Leich)++ | .travis.yml:
travis notification tweaks
FROGGS [Coke]++ PerlJam++ hoelzro++ rurban++
now there is a lot travis spam to look at :o) 18:58
[Coke] yay, thanks!
FROGGS sad that we can only have linux tests right now :/ 18:59
18:59 ivanshmakov joined
FROGGS hoelzro: btw, you are to blame that v5 fails :P 19:01
moritz is willing to try travis again
hoelzro for real? =(
FROGGS: the Test.pm changes?
FROGGS hoelzro: yeah... somehow the exported handles will get serialized (or attempted to) 19:02
hoelzro: I'm not yet sure why
I guess I'll strip down Perl5::Terms to see why that happens
hoelzro so it worked, but when I added our sub output is rw { $output } and friends, it stopped working?
FROGGS moritz: do you have time to flick the switches for rakudo?
hoelzro: it worked until github.com/rakudo/rakudo/commit/70...df921b907c 19:03
hoelzro damn
that's...odd.
FROGGS yeah...
[Coke] have we had a travisbot post yet? huh?
or not until the first failure?
FROGGS [Coke]: for nqp, aye
45 minutes ago 19:04
moritz FROGGS: what do I have to do?
FROGGS moritz: got to github.com/rakudo/rakudo/settings/hooks 19:05
[Coke] ah, FROGGS++
FROGGS add the travis service, without userinfo, and activate it
19:06 slavik joined
moritz FROGGS: done 19:06
FROGGS moritz: and then go to travis-ci.org/profile/rakudo and click sync, and then enable it for rakudo there too
19:09 ivanshmakov| left
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 :/
colomon just handed them out...
FROGGS me too
colomon means his, not moritz's
FROGGS *g*
colomon It's showing me just perl6/nqp? 19:10
ren1us is it just my imagination, or are io functions still painfully slow? 19:14
moritz ren1us: many of them certainly are :(
ren1us it takes me about 45 seconds just to slurp an 86k character file, plus 6 minutes and counting on a split('') 19:16
19:16 [Sno] joined
moritz uhm, don't count on split('') 19:17
.chars is much, much better
yoleaux , b c e h i m r s t u
[Coke] .chars that seems like a one way function 19:18
yoleaux No characters found
moritz but yes, 45s for slurping is far too slow
ren1us oh that's not what i meant by counting
i meant it's 6 minutes and isn't done yet
moritz oh
if you want single characters, use .comb 19:19
FROGGS ren1us: how exactly do you slurp it?
or better: what exactly takes 45s?
moritz hopes with .slurp
FROGGS that won't take that long
ren1us given slurp($filename) { // stuff // } 19:20
that takes painfully long for some reason
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'
336066
real0m0.212s
m: say slurp().chars 19:22
camelia rakudo-moar 914434: OUTPUT«1134␤»
FROGGS okay, that's shorter here
19:23 ren1us left 19:25 SamuraiJack_ left 19:27 bjz left, bjz joined 19:30 rindolf left, bjz left, bjz joined
FROGGS hoelzro: that's my problem: gist.github.com/FROGGS/9efc7831db9f23f1614a 19:31
hoelzro: you cannot precompile something, that uses Test.pm 19:32
19:33 darutoko left
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?
hoelzro yikes o_O
well, I wasn't a fan of output() = $new-filehandle 19:35
FROGGS: you can revert that change for now
but it's kind of weird that that doesn't work, isn't it?
FROGGS well, and our scoped sub will be put into the symbol table... and that means it needs to be serialized 19:36
and we do not want to serialize file handles me thinks :o) 19:37
firefish5000: how can I do that?
firefish5000 Perl6, panda, rakudobrew, and pandre completion are all here. github.com/firefish5000/tabcomp-p6
hoelzro FROGGS: so is the issue that the filehandles are being set at compile time?
FROGGS hoelzro: yes
hoelzro I see 19:38
so this module would also cause such a problem: use v6; module RobTest; my $h = $*OUT; our sub get-h is rw { $h }
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:41
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)
hoelzro PerlJam: right
I would assume that the $h = $*OUT would happen at runtime
but maybe my understanding of phases in Perl 6 is lacking 19:43
s/maybe/probably/
FROGGS no, precompiling that code is not the problem, using it in another program that gets precompiled is
Test.pm makes the filehandles available as symbols, my module uses it and refers to these symbols, and that is the problem 19:44
hoelzro FROGGS: sorry, I didn't follow through 19:45
FROGGS np :o)
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?
firefish5000 FROGGS, Thats great! let me know if you run into any errors.
FROGGS firefish5000: I'll let you know :o)
firefish5000++ # thanks so far
hoelzro: no, that does not blow up 19:47
hoelzro hmm
leont hoelzro: paste.scsys.co.uk/422373 :-) 19:48
firefish5000 FROGGS++ # thanks to you as well
moritz I've profiled moritz.faui2k3.org/tmp/readall.txt and this is the result: moritz.faui2k3.org/tmp/profile-1410...l#routines
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
hoelzro leont++ # nice! 19:48
moritz the first two are 36.6% and 16.7% 19:49
ListIter.reify and MapIter.reify
FROGGS leont++ # :o)
hoelzro: okay, then I'll use the power of git revert... 19:50
moritz and, do those exclusive times actually add up to 100%? 19:51
leont Testing TAP using TAP, because what else would you use :-)
dalek kudo/nom: 65db2a6 | (Tobias Leich)++ | lib/Test.pm:
Revert "Test.pm - Allow output handles to be queried and modified"

This breaks precompilation of modules that use Test.pm.
FROGGS I hope that was the last thing that got reverted this month 19:53
ohh, I'm excited: travis-ci.org/rakudo/rakudo/jobs/34848442 19:55
vendethiel- FROGGS: unwrapping the CI present 19:57
FROGGS two of three passed
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
hoelzro bummer
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
FROGGS damn, there is another precomp issue in v5 >.< 20:01
20:01 daxim left
FROGGS ohh, hold your breath: 20:01
well, the build passed 20:02
I was hoping that status "none" -> "pass" is also a change
PerlJam sar
tinita hi everyone 20:05
would you like to do a mini perl6 hackathon in april 2015?
about 5 to 10 people 20:06
ribasushi tinita++
tinita we're preparing the qa hackathon in berlin
and we found a nice venue, but there's space for more than 30 people
xdg suggested, a group of perl6 hackers would fit in 20:07
20:14 daxim joined
moritz tinita: is the date fixed already? 20:14
tinita moritz: 99%, yes. april 16th-19th 20:15
moritz don't we have some Berlin people here? FROGGS maybe? 20:18
dalek osystem: 2d9fbaf | moritz++ | META.list:
use the "perl6" organization fork of Form
20:21
leont will be there anyway, but mostly for p5 reasons. I do promote p6 stealing battle-tested toolchain ideas from p5. 20:22
tinita =)
moritz mathw: ok, I've done the fork of Form into the perl6 organization 20:24
leont Then again, I'm doing TAP::Harness in both :-p 20:25
lichtkind tinita: welcome in #perl6 :) 20:32
tinita hi lichtkind =) 20:35
hoelzro if I can rustle up funds to travel, I would happily participate in such a hackathon 20:36
lichtkind tinita: how come?
tinita lichtkind: ? 20:37
lichtkind tinita: that your interested in perl6 20:38
gtodd by April 2015 perl6<->perl5 interop will be even more advanced .. :)
lichtkind panda still crashes on ecosystem.t
tinita lichtkind: see some lines above ;-)
QA hackathon 2015 might have some additional space for a small p6 hackathon 20:39
20:39 kaare_ left
lichtkind in april semester starts 20:39
tinita hm 20:40
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:41
tinita should i maybe write on a mailinglist about the hackathon? 20:42
tadzik tinita: count me in
tinita notes tadzik 20:43
hoelzro $1000?! o_O 20:45
(ORD -> BER)
tinita where's ORD?
ah, chicago 20:46
the price seems about right
hoelzro seems a bit high to me, since it's six months out =( 20:47
er, seven
I'm going to keep looking over the next month, see if I can get a better rate
tinita we are trying to fund some journeys
but that all depends on the sponsors of course...
hoelzro I don't think I'm important enough to merit funding =P 20:48
just a fellow enthusiast
tinita =)
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
PerlJam hoelzro: maybe the *work* is important enough if you don't think you are. :)
hoelzro for Rakudo, for the infrastructure, for the tooling, for the module ecosystem
hoelzro .oO( for the Horde )
tinita lichtkind: saturday and sunday maybe? 20:53
20:53 Ven joined, Ven left
tinita lichtkind: you're not that far away from berlin, right? 20:53
lichtkind ~200..300km 20:54
ribasushi hoelzro: where do you look? 20:57
hoelzro ribasushi: hipmunk
ribasushi hoelzro: I use kayak for this kind of stuff, seems better for trans-atlantic 20:58
hoelzro: also 7 month out is too long - airlines usually release the economy packages 5~4 month ahead of time
hoelzro ribasushi: true; I haven't given up yet =) 20:59
ribasushi hoelzro: you are realistically looking at $800 21:00
hoelzro that's about what I figured
I'll have to talk it over with the soon-to-be-wife =)
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:01
timotimo moritz: in your mail about the Form module, you accidentally linked to mathw's repository rather than perl6's 21:03
hoelzro PerlJam: when do you suppose the deadline for that would be? 21:04
tinita it's been 14 years now that i visited chicago... 21:05
21:05 daxim left
ribasushi tinita: it's still there 21:06
hoelzro I can vouch for that =P
tinita good =)
[Coke] hoelzro: do you ever meetup with alester? 21:08
hoelzro [Coke]: I did before I moved to the NL
he and I keep talking about meeting up, but the upcoming nuptials are making that challenging 21:09
I think Oct/Nov will be easier
PerlJam hoelzro: I dunno, but they have new call for proposals every 2-3 months or so.
leont is strongly in favor of keeping the hackathon QA/toolchain/etc focused, as opposed to a general purpose hackathon
hoelzro PerlJam: thanks for the tip; I'll dig through my list and see what I can pull up 21:10
leont: I have ideas in that realm, and I definitely think that area needs work!
leont m: enum Foo <Bar Baz>; Foo("Bar").say 21:11
camelia rakudo-moar 65db2a: OUTPUT«(Foo)␤»
leont I was expecting a Bar there, is that a me or is that a bug?
[Coke] m: m: enum Foo <Bar Baz>; Bar.say
camelia rakudo-moar 65db2a: OUTPUT«Bar␤»
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␤␤»
lizmat m: enum Foo <Bar Baz>; say Foo.enums
camelia rakudo-moar 65db2a: OUTPUT«"Bar" => 0, "Baz" => 1␤»
lizmat m: enum Foo <Bar Baz>; say Foo<Bar>
camelia rakudo-moar 65db2a: OUTPUT«(Any)␤»
lizmat m: enum Foo <Bar Baz>; say Foo::<Bar>
camelia rakudo-moar 65db2a: OUTPUT«Bar␤»
lizmat m: enum Foo <Bar Baz>; say Foo::<Bar>:p 21:13
camelia rakudo-moar 65db2a: OUTPUT«"Bar" => Foo::Bar␤»
21:18 daxim joined
leont It seems Foo::{"Bar"} is what I'm looking for 21:18
But the docs suggest Foo("Bar") would also work, at least the way I read them 21:19
moritz m: m: enum Foo <Bar Baz>; say ::Foo::('Bar') 21:20
camelia rakudo-moar 65db2a: OUTPUT«Bar␤»
lizmat
.oO( good that we have labels now :-)
21:21
lichtkind tinita: yes weekens should work anyway .. even friday mostly 21:29
21:30 mberends left 21:31 mberends joined 21:33 virtualsue joined 21:34 treehug88 left
dalek kudo/nom: 3e96fe5 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Refactor Str.lines to be 2.5x faster & support CR

For /usr/share/dict/words: from 5.786s to 2.268s
With one caveat: strings that have mixed CR and LF line endings, may not come out correctly. For that to work reliably, we would need to have nqp::index support a list of needles to search for.
21:39
hoelzro lizmat++
lizmat oddly enough, "foo".IO.lines is slower than "foo".IO.slurp.lines 21:41
leont slurp might do less syscalls because it tries to read in one go 21:45
jercos .lines could potentially be lazy, right? 21:46
tadzik it already is
jercos wheras .slurp.lines should always read the whole file, then split it?
tadzik correct
lizmat yes, but the split is lazy
tadzik oh! neat
jercos Right, but it would still have to allocate memory for the slurp in the latter case?
at least until someone figures out lazy buffers and async mmap magic 21:47
tadzik yes
timotimo lizmat: wow, that's quite a bit of work you've done there
lizmat seems like a function many people will use 21:48
timotimo definitely
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
tadzik lizmat++ # awesome work
timotimo aah, it's "foo".IO.slurp.lines you've improved, not "foo".IO.lines
that explains why i didn't see any file reading ops in there %)
lizmat yes, IO.lines I had already improved
timotimo i recall that :) 21:50
when i first saw that commit, i thought the 2.5x was on top of the already improved IO.lines
but this is also very nice to have! :)
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:51
dalek kudo/nom: 3427dee | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Slight opt for CRLF checking
21:52
ast: 2dd48dc | (Elizabeth Mattijsen)++ | S32-str/lines.t:
Add some more Str.lines tests
21:59
22:01 BenGoldberg joined
dalek kudo/nom: d315ab7 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Mention Str.lines is also optimized
22:02
22:03 spider-mario left
ab5tract colomon: i updated the pull request with an approach i believe may make sense 22:06
lizmat good night, #perl6!
ab5tract ciao lizmat, and thanks for all the ops :) 22:07
22:07 Isp-sec left
timotimo gnite lizmat< 22:09
!
ab5tract hey i've been meaning to ask 22:11
what's going on with planet sixperl 22:12
timotimo you can use pl6anet.org/ until they've fixed their site 22:14
22:16 Px12 joined
ab5tract thanks timotimo! 22:20
22:24 virtualsue left 22:29 vendethiel- left 22:33 gfldex left 22:37 ajr_ left, ribasushi left 22:38 ribasushi joined 22:41 Px12 left
flussence
.oO( I like this domain name better... )
22:42
BenGoldberg meka.flussence.eu? 22:52
flussence the pl6 thing...
BenGoldberg Oh, I see :)
22:56 dolmen left
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? 22:57
22:57 Rotwang left 23:03 colomon left 23:09 xenoterracide joined
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
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, xragnar_ joined, xragnar is now known as Guest89412, Guest89412 left, xragnar_ is now known as xragnar 23:17 pmurias left 23:26 ab5tract left 23:30 lichtkind left 23:32 lichtkind joined 23:37 jdv79 left 23:46 lichtkind left 23:49 lichtkind joined, aborazmeh joined