»ö« 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.
00:01 rindolf joined
timotimo don't think we actually want that 00:07
cmp is a fallback for when we have data we're not sure about how to compare properly
00:08 chenryn joined
timotimo so ... not sure if stability ought to be guaranteed 00:08
lue to be honest, I'm not entirely sure how 12 and '12a' are supposed to compare, or '12a' and 2
timotimo it could be more confusing if a "4" gets sorted as More than 5, because Str comes after I 00:09
00:12 chenryn left
hoelzro timotimo++ # blog post 00:15
BenGoldberg m: my @a = 12, '12a', 2, 12; @a.sort.say; @a.sort.sort.say; 00:17
camelia rakudo-moar b17a24: OUTPUT«2 12 12 12a␤2 12 12 12a␤»
00:17 SevenWolf joined
BenGoldberg m: my @a = 12, '12a', 2, 12; @a.sort.say; @a.reverse.sort.say; 00:17
camelia rakudo-moar b17a24: OUTPUT«2 12 12 12a␤2 12 12 12a␤»
hoelzro timotimo: btw, I managed to get my Rakudo build back to a decent speed again =)
00:20 raiph left
[Coke] (sorting heterogenous stuff) tcl's dictionary sort is nice here. 00:21
dalek ast/S26-WHY: cb20042 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Fix typo with params test
00:23
timotimo decommutes and goes to bed 00:25
00:38 colomon left 00:48 iarna left
[Coke] pokes at the make write error for moar on osx and comes up empty 00:49
tony-o [Coke]: need more info about it? 00:53
[Coke] I can reproduce it, if that's what you mean.
tony-o i get it on every build but it doesnt seem to affect anytyjing
[Coke] getting debug information about what's causing it has proved fruitless here. 00:54
well, it stops the build, anyway. 00:55
00:56 SevenWolf left
tony-o i get an updated executable from it, what else does the build do? 00:57
01:05 cooper_ left, cooper_ joined 01:08 chenryn joined 01:13 chenryn left 01:15 ren1us joined
[Coke] try doing a || build. 01:20
(and perl6 isn't executable when it's done, either.) 01:21
01:23 erkan left 01:24 cognome left 01:25 cognome joined 01:36 klapperl_ joined 01:40 klapperl left, FROGGS_ joined
hoelzro oh, nevermind; I found the relevant line in S26 01:40
01:43 hoverboard joined, FROGGS left 01:46 raiph joined
dalek ast/S26-WHY: b74a2c2 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Fix no proto multi test
01:49
ast/S26-WHY: eca9b0a | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Fix typo
ast/S26-WHY: e5a6d54 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Fix another typo
01:53 ChoHag left 01:56 dayangkun joined 02:01 colomon joined 02:05 ChoHag joined 02:06 colomon left 02:08 ventica left 02:09 chenryn joined 02:11 nbrown_ joined 02:12 dayangkun left 02:14 chenryn left 02:15 nbrown__ joined, iarna joined 02:18 nbrown_ left 02:19 ventica joined 02:26 rurban joined 02:42 chenryn joined 02:50 ventica2 joined 02:53 ventica left 02:55 cooper_ left 02:57 ggoebel111119 joined, cooper_ joined 03:02 raiph left 03:05 cooper_ left 03:06 dayangkun joined, cooper_ joined 03:09 cooper_ left, cooper_ joined
dalek kudo/nom: 3852449 | duff++ | src/Perl6/Grammar.nqp:
panic to get file/line info for RT #86906
03:15
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=86906
03:23 lustlife joined, BenGoldberg left 03:30 jack_rabbit joined
jack_rabbit is there a 'filter' function for lists? I don't see anything obvious in the reference. 03:31
btyler jack_rabbit: something like .grep? 03:37
jack_rabbit I can pass a block for the matcher?
btyler m: (1 .. 10).grep({ $_ > 5 });
camelia ( no output )
btyler m: say (1 .. 10).grep({ $_ > 5 });
jack_rabbit ahh, okay. perfect.
camelia rakudo-moar cf544a: OUTPUT«6 7 8 9 10␤»
03:45 rurban left 04:01 kaare_ joined 04:10 anaeem1_ joined 04:13 iarna left 04:14 iarna joined 04:19 [Sno] left 04:27 PotatoGim joined, egrep joined 04:29 nbrown__ left 04:31 nbrown__ joined 04:35 hoverboard left, nbrown__ left 04:38 cooper_ left, cooper_ joined, cooper_ left 04:39 cooper_ joined 04:42 xenoterracide left 04:43 jack_rabbit left 04:49 nbrown__ joined 04:52 kst left 04:53 kaare_ left 05:05 nbrown__ left 05:10 iarna left 05:13 hoverboard joined, gfldex joined, hoverboard is now known as Guest55638 05:17 xenoterracide joined
nwc10 good *, #perl6 05:21
T -3:30
05:22 Woodi left 05:26 kaare_ joined 05:30 xenoterracide left 05:35 Guest55638 left, Guest55638 joined, Guest55638 is now known as hoverboard 05:39 thou left 05:42 Rotwang left 05:45 chenryn left 05:47 gfldex left 05:52 [Sno] joined 05:56 denis_boyun joined 06:09 chenryn joined 06:16 darutoko joined 06:25 ventica2 left 06:27 dayangkun left 06:35 kaleem joined 06:36 kaleem left, kaleem joined, kaleem left 06:37 kaleem joined, ventica2 joined 06:39 kaleem left, kaleem joined 06:40 dayangkun joined 06:41 Alula_ left 06:43 Alula_ joined 06:51 dmol joined 06:54 breinbaas left, breinbaas joined 06:56 ventica2 left 07:07 thou joined 07:08 dmol left 07:11 thou left
sergot o/ 07:13
07:13 kivutar joined 07:16 rindolf left, Alula_ left 07:23 Ven joined
Ven o, #perl6 07:27
07:29 Alula_ joined
Ven o/, even. 07:29
07:30 dmol joined 07:32 hoverboard left
nwc10 now T-31 and counting 07:34
masak: twitter.com/rjbs/status/496392901958844417 leads to www.windycityrails.org/schedule/#shirai 07:36
so all may be revealed on September 4 in Chicago
T -20 07:45
07:50 pmurias joined
masak exciting. 07:51
pmurias porting rubinious X to moarvm would be awesome ;)
masak \o, #perl6
pmurias o/
masak nwc10: is there a URL to go with that countdown?
nwc10 www.spacex.com/webcast/ 07:52
the usual one
still not yet aborted
(spot the optimism)
07:54 zakharyas joined
masak spacex++ 07:54
yeah, I'm getting a feed here.
launches always put me in a good mood.
nwc10 I realised that some of the tram trailers in Vienna are older than the moon landings 07:55
xover.mud.at/~tramway/stvkr-a-wiki/...%28Wien%29
so, in theory, you can watch the lanch streamed on your mobile device sitting on something that is roughly Mecury era
masak T -1 07:59
whhhhhhhhhhhhhhh 08:00
nwc10 oh, wonderful, my stream was well lagged 08:01
08:06 dayangkun left 08:10 dayangkun joined 08:16 ventica2 joined 08:18 dakkar joined
dalek kudo/nom: 480f4e5 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Mention ∅ finally working
08:22
08:26 ventica2 left 08:32 cognome_ joined 08:33 zakharyas left
masak I was wondering about `token term:sym<empty_set> { "\x2205" <!before <[ \( \\ ' \- ]> || \h* '=>'> }` 08:33
so that last bit, `\h* '=>'`, is for autoquoting to work, yes?
moritz for the empty set not to be gobbled up in an autoquoting 08:34
masak why does it do \h* and not \s* ? is there something saying that autoquoting only works if you put the `=>` on the same line?
08:34 cognome left
moritz masak: parsing stuff across line boundaries isn't that easy, in case of heredocs 08:35
jnthn The auto-quoting rule, I think :)
Pretty sure \h* is in fatarrow too
masak oki -- carry on, then.
jnthn So just for consistency with that
masak aye.
jnthn Though I guess your questoin is valid about that too :P
masak I wasn't aware that autoquoting only works on the same line.
moritz mysub q:to('bla'), ∅ \n => \n bla
jnthn masak: Which shows how much you'd miss it not being :) 08:36
moritz from a parser implementor's POV, I hate heredocs
08:37 zakharyas joined
masak moritz: oh, right. 08:37
lizmat with TEST_JOBS=16 (twice the number of virtual CPU's on my machine): 08:43
Files=912, Tests=32059, 174 wallclock secs ( 9.07 usr 4.27 sys + 1140.74 cusr 121.54 csys = 1275.62 CPU)
moritz 174s 08:45
lizmat yes 08:46
moritz m: say sprintf "%d:%02d", $_ div 60, $_ % 60 given 174;
camelia rakudo-moar 385244: OUTPUT«2:54␤»
moritz m: printf "%d:%02d", $_ div 60, $_ % 60 given 174;
camelia rakudo-moar 385244: OUTPUT«2:54»
moritz that's very nice! 08:47
08:48 xtreak_ joined
lizmat m: say 1275.62/174 # still not completely saturated all of my CPU's 08:49
camelia rakudo-moar 385244: OUTPUT«7.331149␤»
08:55 thou joined
jnthn Close, though :) 08:59
08:59 thou left
jnthn And wow, under 3 mins 09:01
:)
That's enough to make a cup of tea, but the kettle had better boil quickly :)
09:02 Vlavv left 09:04 Ulti left
masak m: sub divmod($x, $y) { $x div $y, $x % $y }; printf("%g:%02d", |divmod($_, 60)) given 174 09:06
camelia rakudo-moar 385244: OUTPUT«2:54»
masak er, %g? meant %d :)
m: sub divmod($x, $y) { $x div $y, $x % $y }; printf("%d:%02d", |divmod($_, 60)) given 174
camelia rakudo-moar 385244: OUTPUT«2:54»
09:15 Vlavv joined 09:21 zakharyas left, pecastro joined 09:28 zengargoyle left 09:31 brrt joined, zakharyas joined, bjz joined 09:32 pmurias left 09:36 zengargoyle joined
xtreak_ m: say "hello"; 09:41
camelia rakudo-moar 480f4e: OUTPUT«hello␤»
09:42 xtreak_ left
sergot m: .say; 09:43
camelia rakudo-moar 480f4e: OUTPUT«Nil␤»
09:43 virtualsue joined
masak m: .say given "hello" 09:47
camelia rakudo-moar 480f4e: OUTPUT«hello␤»
timotimo m: say "yay" given "a cookie" 09:48
camelia rakudo-moar 480f4e: OUTPUT«yay␤»
09:48 spider-mario joined
Ven
.oO( we'll use given to do cucumber-based cookie testing )
09:49
masak m: say "om" ~ " nom" x (5..10).pick ~ "!" given :cookie 09:50
camelia rakudo-moar 480f4e: OUTPUT«om nom nom nom nom nom nom nom!␤»
masak m: say "om" ~ " nom" x (5..10).pick ~ "!" given :3cookies
camelia rakudo-moar 480f4e: OUTPUT«om nom nom nom nom nom!␤»
masak m: say "om" ~ " nom" x .value ~ "!" given :3cookies 09:51
camelia rakudo-moar 480f4e: OUTPUT«om nom nom nom!␤»
masak m: say "om" ~ " nom" x .value ~ "!" given :27cookies
camelia rakudo-moar 480f4e: OUTPUT«om nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom!␤»
masak :D
jnthn lol
The joys of generalizing :1st... :) 09:52
09:59 colomon joined
sergot m: say :3c.WHAT 10:00
camelia rakudo-moar 480f4e: OUTPUT«(Pair)␤»
sergot m: say :3c.perl
camelia rakudo-moar 480f4e: OUTPUT«"c" => 3␤»
sergot nice :)
masak m: say :!c.perl 10:01
camelia rakudo-moar 480f4e: OUTPUT«"c" => Bool::False␤»
masak m: say :c.perl 10:02
camelia rakudo-moar 480f4e: OUTPUT«"c" => Bool::True␤»
10:03 nbrown__ joined
masak I think TheDamian mentioned in a keynote that he had at one point been championing giving :¿c or :¡c some meaning, too. :) 10:04
(but got shot down by boringly reasonable people, or something)
jnthn wtf :) 10:05
10:05 dayangkun left
masak I think you mean ¡¿qtf?! :P 10:07
10:07 anaeem1_ left
masak (do Spanish people nest their inverted signs like that? I've never even though about it.) 10:07
egrep masak: I think they do. 10:10
masak huh. muy cool. 10:12
10:13 zakharyas left 10:19 Ven left 10:26 kaare_ left 10:27 kaare_ joined
ChoHag If I have a grammar which can parse a well-formed line-based file, how can I change it to accept and ignore malformed lines? 10:32
Or (just) those beginning with #
I changed rule TOP { [ <line> \n? ]+ } to { [ <line> \n? | '#' \N* \n? ]+ }, but to no avail. 10:34
Also the grammar engine seems to be quite easy to kill. 10:35
10:43 thou joined 10:48 thou left
dalek kudo/nom: 3ad15f3 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp:
No need to beat around the bush wrt ∅
10:52
FROGGS_ lizmat: does this have an impact on compile time? 10:56
11:04 brrt left, Ven joined
Ven lizmat: wasn't that empty set quoted due to some parrot slowness ? 11:04
FROGGS_ Ven: in the setting, aye 11:06
but I dunno if that also would mean that Perl6::Grammar takes now longer to compile...
ChoHag How can I write a rule to match "bar[baz]" where baz may be any string (without []) or another "bar[baz]", recursing as necessary.
FROGGS_ I guess since we don't see a major slowdown it is okay to have ∅ in the grammar 11:07
Ven ChoHag: rule key { '[' ~ ']' \S+ }; token TOP { $<toplevel>=\S+ <key~+ } ?
something like that
`
<key>*, eh. 11:08
(might want to use <.key> and $<part>= inside key)
lizmat I've tested it on parrot, no ill effects 11:10
11:11 chenryn left
ChoHag That looks like it'll parse a string followed by one of more strings surrounded by [] characters. 11:12
11:13 Akagi201 left 11:14 Akagi201 joined
ChoHag As opposed to a string followed by a []eted string where the latter may be formatted the same as the whole, to arbitrary depth. 11:14
FROGGS_ lizmat: cool :o) 11:16
11:17 Akagi201_ joined
moritz uh, don't use rule key { '[' ~ ']' \S+ }; 11:18
the \S+ can match a ] too
and it backtracks
that's usually not what you want 11:19
wait, I don't know if ~ backtracks
anyway, the far more obvious one is token key { '[' ~ ']' <-[ \] ]>+ }
FROGGS_ m: grammar G { token TOP { <thing> }; token thing { <ident> [ '[' ~ ']' <thing> ]? } }; say G.subparse("bar[baz]") 11:20
camelia rakudo-moar 480f4e: OUTPUT«「bar[baz]」␤ thing => 「bar[baz]」␤ ident => 「bar」␤ thing => 「baz」␤ ident => 「baz」␤␤»
FROGGS_ m: grammar G { token TOP { <thing> }; token thing { <ident> [ '[' ~ ']' <thing> ]? } }; say G.subparse("bar[baz[foo]]")
camelia rakudo-moar 480f4e: OUTPUT«「bar[baz[foo]]」␤ thing => 「bar[baz[foo]]」␤ ident => 「bar」␤ thing => 「baz[foo]」␤ ident => 「baz」␤ thing => 「foo」␤ ident => 「foo」␤␤»
FROGGS_ m: grammar G { token TOP { <thing> }; token thing { <ident> [ '[' ~ ']' <thing> ]? } }; say G.subparse("bar")
camelia rakudo-moar 480f4e: OUTPUT«「bar」␤ thing => 「bar」␤ ident => 「bar」␤␤»
FROGGS_ m: grammar G { token TOP { <thing> }; token thing { <ident> [ '[' ~ ']' <thing> ]? } }; say G.parse("bar[baz[foo]]")
camelia rakudo-moar 480f4e: OUTPUT«「bar[baz[foo]]」␤ thing => 「bar[baz[foo]]」␤ ident => 「bar」␤ thing => 「baz[foo]」␤ ident => 「baz」␤ thing => 「foo」␤ ident => 「foo」␤␤»
11:20 Akagi201 left
FROGGS_ moritz: the \S+ would eat the ']' and then it would fail to match it 11:21
you can use '[' \S+ ']' to avoid that
moritz or simply <-[ \] ]>+. No backtracking, no surprises 11:22
11:23 nbrown___ joined, Akagi201_ left, brrt joined 11:24 dakkar left, Akagi201 joined 11:25 dakkar joined
Ven ChoHag: token key { '[' <.key> '}' | \w+ } ? :) 11:26
that second one should be a ], btw
11:26 chenryn joined 11:27 nbrown__ left 11:29 mr-foobar left, mr-foobar joined 11:36 nbrown___ left 11:39 anaeem1_ joined
ChoHag Is ident the equivalent of self? 11:40
moritz no 11:41
11:41 xragnar_ joined, xragnar is now known as Guest91815, Guest91815 left, xragnar_ is now known as xragnar
moritz ident is simply a built-in rule 11:42
ChoHag Oh another one.
Are the built-in rules listed anywhere?
11:43 anaeem1_ left, xylixy joined
moritz in s05 11:44
s/s/S/
Ven
.oO( S/S/s/ )
11:45
11:52 xylixy left 11:57 DarthGandalf left 12:02 DarthGandalf joined 12:03 PotatoGim left
dalek ast/S26-WHY: 5c5abc0 | (Rob Hoelz)++ | S26-documentation/why-trailing.t:
Fixes for trailing test
12:09
12:13 dayangkun joined 12:14 anaeem1 joined 12:15 chenryn left
masak m: grammar G { regex TOP { <lookup> }; regex lookup { <word> '[' <key> ']' }; regex word { \w+ }; regex key { <word> | <lookup> } }; say ?G.parse("foo[bar]"); say ?G.parse("foo[bar[baz]]"); say ?G.parse("foo") 12:23
camelia rakudo-moar 3ad15f: OUTPUT«True␤True␤False␤»
masak ChoHag: ^^ 12:24
Ven what's the reasoning behind capitalized Bool, btw ?
jnthn Just following normal naming rules 12:25
12:25 telex left 12:26 telex joined
jnthn Bool is a type, and enum elements are type-ish too 12:26
12:29 dwarring left
masak they're type-ish in the sense that they're terms? 12:30
m: enum Trool <False Kinda True>; say False ~~ Bool; say Trool::False ~~ Trool 12:31
camelia rakudo-moar 3ad15f: OUTPUT«False␤True␤»
masak m: enum Trool <False Kinda True>; say False.WHAT
camelia rakudo-moar 3ad15f: OUTPUT«(Trool)␤»
12:32 thou joined 12:33 xenoterracide joined
masak m: enum Quool <False Um Ah True>; say False < Um < Ah < True 12:33
camelia rakudo-moar 3ad15f: OUTPUT«True␤» 12:34
ChoHag How do I check a string against a token inside a grammar?
Also thanks. 12:35
cognome_ timotimo: in your otherwise great post, there is an alteration or an adulteration when you speak of alternation. $your-post ~~ s/alteration/alternation/
I meant s:g/// 12:36
12:36 thou left
jnthn ChoHag: $str ~~ /<GrammarName::tokename>/ 12:36
masak jnthn: does the token have to be 'our' for that to work? 12:37
moritz don't you use GrammarName.parse($str, :rule<tokenname>) for that? 12:38
tadzik m: gist.github.com/tadzik/bb7c2f1aee7bf6b8fc43 12:39
camelia rakudo-moar 3ad15f: OUTPUT«gist not found»
moritz or .subparse if it doesn't have to match the whole string
tadzik hrmm
moritz tadzik: camelia doesn't like the "new" gists
tadzik anyway, the above prints "True True False", is that a bug?
moritz (patches from anybody welcome)
yes, the LHS of ~~ doesn't autothread anymore
jnthn masak: I...think that's actually sugar for some method call...
moritz s/yes/no/
"it's a feature" 12:40
though I have trouble finding the commit that changed that 12:41
masak huh, I would have kind of expected that to autothread. what's the reasoning/use case behind it not doing so? 12:42
moritz it's in the backlog (of the last few weeks) 12:43
12:43 rurban joined
moritz maybe it was to make ~~ Junction DWIM 12:44
masak that seems rather a small reward for making (x & y) ~~ z not DWIM. 12:45
12:46 xenoterracide left
Ven that whole "matching on Junction" is kind of eww to start with :/ 12:47
and well, it works with subs at least
moritz the DWIM part should be on the RHS 12:48
masak moritz: how would you write (x & y) ~~ z so that it DWIMs? 12:50
12:50 woolfy joined, woolfy1 left 12:51 lizmat_ joined
moritz masak: I wouldn't; nor am I in favor of that change 12:51
12:51 lizmat left 12:55 sqirrel joined
masak TimToady: how would you write "x and y both smartmatch on z" in idiomatic Perl 6? 12:57
12:57 anaeem1 left 13:02 darutoko- joined 13:14 dakkar left, bjz left, pecastro left, Vlavv left, kaleem left, cooper_ left, ren1us left, eiro left, colomon left, dmol left, [Sno] left, akaseki left, Psyche^ left, sqirrel left, telex left, dayangkun left, brrt left, vendethiel left, Bucciarati left, Celelibi left, takesako left, eternaleye left, darutoko left, haroldwu left, smash left, salv0 left, ilbot3 left, sftp left, anocelot_ left, Alula_ left, lizmat_ left, xragnar left, kaare_ left, denis_boyun left, araujo left, ponbiki left, xinming left, bcode left, Juerd left, Tene left, dylanwh left, lestrrat left, cotto left, Exodist left, lee_ left, lustlife left, egrep left, labster left, Gothmog_ left, erdic left, sivoais left, PerlJam left, Ven left, woolfy left, DarthGandalf left, Alina-malina left, ivanshmakov left, ribasushi left, rjbs- left, integral left, brother left, breinbaas left, rurban left, PZt left, ivan`` left, xfix left, cooper- left, yogan left, mr-foobar left, spider-mario left, virtualsue left, FROGGS_ left, groky left, yeltzooo4 left, silug left, btyler left, carlin left, tadzik left, raydiak left, baest left, sjn left, cognome_ left, kivutar left, ggoebel111119 left, psch left, krunen left, Khisanth left, fling left, mhasch left, sjohnson left, hugme left, sergot left, synopsebot left, xiaomiao left, revdiablo left, jlaire left, zengargoyle left, ChoHag left, oetiker left, jercos left, avar left, c1sung left, sunnavy left, yoleaux left, itz left, atta left, xusia left 13:26 sqirrel joined, lizmat_ joined, woolfy joined, rurban joined, telex joined, dayangkun joined, DarthGandalf joined, xragnar joined, mr-foobar joined, dakkar joined, brrt joined, Ven joined, kaare_ joined, colomon joined, spider-mario joined, virtualsue joined, zengargoyle joined, bjz joined, pecastro joined, Vlavv joined, cognome_ joined, dmol joined, Alula_ joined, kivutar joined, breinbaas joined, kaleem joined, denis_boyun joined, [Sno] joined, cooper_ joined, egrep joined, lustlife joined, ggoebel111119 joined, ChoHag joined, FROGGS_ joined, ren1us joined, akaseki joined, PZt joined, Psyche^ joined, araujo joined, vendethiel joined, Alina-malina joined, ivan`` joined, ivanshmakov joined, groky joined, oetiker joined, eiro joined, ribasushi joined, yeltzooo4 joined, rjbs- joined, ponbiki joined, labster joined, psch joined, krunen joined, jercos joined, xinming joined, haroldwu joined, integral joined, smash joined, brother joined, Bucciarati joined, avar joined, xfix joined, Gothmog_ joined, salv0 joined, Celelibi joined, erdic joined, takesako joined, ilbot3 joined, silug joined, sivoais joined, Khisanth joined, c1sung joined, eternaleye joined, btyler joined, cooper- joined, carlin joined, bcode joined, tadzik joined, sftp joined, anocelot_ joined, fling joined, xiaomiao joined, sunnavy joined, revdiablo joined, jlaire joined, yoleaux joined, itz joined, yogan joined, vike joined, felher joined, [Coke] joined, epochbell joined, bloonix_ joined, firnsy joined, asimov.freenode.net sets mode: +v yoleaux, Possum joined, djanatyn joined, ashleydev joined, go|dfish joined, timotimo joined, robinsmidsrod joined, ssutch joined, dalek joined, Pleiades` joined, tempire joined, charsbar__ joined, _sri joined, daxim_ joined, huf joined, nickpatc1 joined, Maddingue joined, coffeeyy joined, apejens joined, clkao joined, Util joined, eMBee joined, yakudza joined, Rounin joined, mattp__ joined, pochi joined, lue joined, wtw joined, mls joined, mhasch joined, atta joined, sjohnson joined, xusia joined, raydiak joined, hugme joined, baest joined, sjn joined, sergot joined, Juerd joined, PerlJam joined, synopsebot joined, lee_ joined, Exodist joined, cotto joined, lestrrat joined, dylanwh joined, Tene joined, asimov.freenode.net sets mode: +vv dalek hugme, amkrankr1leuen joined, mtj_ joined, mtj joined, rhr_ joined, retupmoca joined, betterworld joined, ingy joined, mathw joined, arnsholt joined, simcop2387 joined, broquaint joined, stux|RC-only joined, zamolxes joined, muraiki joined, felipe joined, Timbus joined, SHODAN joined, risou joined, pnu joined, tokuhirom joined, sorear joined, cxreg joined, camelia joined, flussence joined, obra joined, moritz joined, ggherdov joined, hoelzro joined, jnthn joined, tony-o joined, clkaoud joined, isacloud___ joined, jtpalmer_ joined, nwc10 joined, diakopter joined, Grrrr joined, BooK joined, geekosaur joined, mst joined, masak joined, BinGOs joined, nebuchadnezzar joined, asimov.freenode.net sets mode: +v camelia
colomon btyler++ # improved JSON performance is fantastic news for me. 13:27
tadzik oh, when did it happen?
colomon maybe it's not done yet? I'm just catching up on p6weekly.wordpress.com/2014/08/05/2...this-time/
lizmat_ commute to Amsterdam.PM meeting&
13:27 lizmat_ left
colomon largely out of the loop this week, we're on vacation in Newfoundland. 13:27
13:27 kaare_ left
tadzik Newfoundland always sounds to me like a placeholder name :D 13:27
like VisualStudioApp17 13:28
or "New Folder" in Windows
13:28 xfix left
masak :) 13:30
13:32 pmurias joined
brrt lol 13:34
pmurias what would be a good way to map perl6 or nqp modules/packages to node modules?
does compiling each distribution (which might contain several perl6 modules) into a single node module seems sane? 13:35
13:36 sqirrel left, Woodi joined
timotimo colomon: it's a module you use instead of JSON::Tiny 13:37
13:40 robinsmidsrod left
FROGGS_ jnthn: I was rong, I have to change every QAST::Node<foo> (twice) :o( 13:41
13:41 robinsmidsrod joined 13:44 robinsmidsrod left 13:45 robinsmidsrod joined 13:46 robinsmidsrod left 13:49 robinsmidsrod joined 13:52 robinsmidsrod left, rurban left
FROGGS_ jnthn: why did you remove that line? github.com/rakudo/rakudo/commit/f2...c4395L1009 13:52
13:53 robinsmidsrod joined
jnthn FROGGS_: Was never read anywhere 13:54
So, effectively dead code. 13:55
decommute via le pub &
FROGGS_ ahh
nice
13:57 sqirrel joined 13:58 kst joined, grondilu joined
btyler colomon: well, it isn't strictly 'improved', just 'using a C lib' :) I'm low on tuits until next wednesday, but feel free to leave github issues for improvements/bugs 14:13
14:13 gfldex joined, thou joined, brrt left, treehug88 joined 14:14 kaleem left 14:15 colomon left 14:22 amkrankr1leuen left 14:31 MilkmanDan left, MilkmanDan joined 14:32 rurban joined 14:34 PZt left 14:36 python joined
hoelzro morning #perl6 14:38
14:38 rindolf joined
masak \o 14:39
14:40 treehug88 left 14:47 chenryn joined 14:54 btyler left 14:56 dmol left 14:57 btyler joined 14:58 raiph joined 14:59 dayangkun left 15:00 kaleem joined 15:05 Ven left 15:06 xfix_ joined 15:07 kaare_ joined, python left, xfix_ is now known as xfix, xfix left, xfix joined 15:11 denis_boyun left 15:14 dmol joined
japhb lizmat, re: 3ad15f3292fc53c0d98b8a9599f84f8a8d4214e2 -- why leave the null set character in double quotes? 15:21
.ask jnthn Anything you'd like me to prioritize with my perl6-bench hack time to support your run up to the YAPC::EU performance talk? 15:25
yoleaux japhb: I'll pass your message to jnthn.
hoelzro does anyone have any input on my question on documenting parametric roles? 15:27
15:30 ventica2 joined, cooper_ left 15:31 chenryn left 15:32 cooper_ joined, ventica3 joined 15:33 guru joined, guru is now known as Guest4986 15:34 ventica2 left 15:35 sqirrel left, Guest4986 is now known as ajr_
dalek kudo-star-daily: 6658196 | coke++ | log/ (14 files):
today (automated commit)
15:41
rl6-roast-data: c997c8e | coke++ | / (5 files):
today (automated commit)
15:42 chenryn joined
[Coke] FROGGS++ 15:42
n: 1386; jvm: 31
camelia ( no output )
[Coke] moar: 6, parrot: 15
mmhehe. 15:43
15:45 kaleem left
jnthn home 15:46
yoleaux 15:25Z <japhb> jnthn: Anything you'd like me to prioritize with my perl6-bench hack time to support your run up to the YAPC::EU performance talk?
15:49 pecastro left
TimToady masak: I've decided it's probably okay for ~~ to autothread the LHS, but in order to preserve optimizability, either 'given' must not be fed a junction, or we have to autothread the entire block of the given 15:54
we need to find a better term than autothreading for this...but superpositioning is too long 15:55
jnthn I'm not convinced either discontinuity is worth it...
TimToady we do want a switch of all integers to optimize to a jump table 15:56
masak *nod*
TimToady which you can't if you bind $_ to the junction
jnthn Right.
TimToady so for now we could just prohibit given taking junctions
jnthn How exactly?
masak runtime error? 15:57
jnthn = extra type check on every given...
And thus bigger code for every given.
15:57 chenryn left
jnthn Not a huge deal. 15:58
I just tend to worry about such things these days :)
TimToady if we optimize to jumptable, we have to coerce to int
that might fail
15:58 chenryn joined
TimToady (for "free") 15:58
jnthn Trouble is, $junction.Int gives...a Junction
Our general approach to coercions being method calls is kinda...annoying.
Oh, I think you can overload invoke on the type object or something too... 15:59
TimToady m: say Int(1|2).WHAT 16:00
camelia rakudo-moar 3ad15f: OUTPUT«(Junction)␤»
TimToady well, at what point do we "really int()" to get the value of the integer to do the jump? 16:01
there's gotta be a primitive to pull an integer out of a boxed object; what would that do with a Junction? 16:02
timotimo "this object cannot unbox to a native int" :)
TimToady okay, that's probably sufficient to prevent people feeding junctions to an optimized jumptable 16:03
we can simply spec that you're not allowed to feed a junction to a given that might get optimized to a jumptable 16:04
or that it is at least erroneous 16:05
16:05 ren1us left
TimToady and the workaround is to wrap the switch in a binding context that will autothread the whole given 16:05
masak which `given` statements might get oprimized to a jumptable?
timotimo right, like a sub?
github.com/kanatohodets/p6-json-ja...son.pm#L69
^- masak
16:06 denis_boyun_ joined, ren1us joined
TimToady well, if all the cases are small integers, it's a no brainer 16:06
16:07 Alina-malina left
TimToady if all the cases are string matchers with a known set of first characters, it's equivalent to an ord() plus an integer dispatch 16:07
16:07 Alina-malina joined
TimToady if the first N cases are jumpable, it's worth building the jumptable, for some N in the neighborhood of 3 or 4 16:08
jnthn Yeah, an int() coercion/unbox would do it.
TimToady (I think Perl 4 put the threshold about there.)
timotimo wow, that's how early it's worth it?
TimToady jumptables are fast 16:09
compared to comparisons
they're just computed gotos
timotimo how do we best deal with non-contiguous targets?
TimToady depends on how big the holes are 16:10
timotimo we could use our existing sequence deduction method %)
TimToady for small holes, you just put a bunch of goto's to the first statement
for larger, you either give up or put some range guards
er, goto the first statement that is after the excluded casees, I should say 16:11
so you still get a speedup even on a non-match
timotimo if we have 1, 2, 4, 8, 16, ... we can log2 the number beforehand %)
TimToady and it's only the excluded initial cases you worry about, since we just fall through on nonmatch 16:12
the jumptable is not in charge of "succeed" semantics, the 'when' is (or the if/else gotos, if you optimize those too)
16:13 raiph left
TimToady if you optimize general conditionals, you also get to worry about inequalities :) 16:14
timotimo that'll make that part easier.
TimToady an inequality might just define one end or the other of the jumptable 16:15
16:15 Alina-malina left
TimToady anyway, that's all certainly possible, since Perl 4 did it 16:15
well, it gave up if there were large holes, and didn't try to do the sparse thing 16:16
but it did all the rest of it
being able to examine a bunch of when's and deduce a jumptable was one of the main motivations for making smartmatch asymmetric. 16:18
you can't do that if @array ~~ 4 means to check if @array[4].so 16:19
so we broke that
16:19 raiph joined 16:20 [Sno] left
TimToady m: my @array = 0,0,0,0; say so @array ~~ 4 16:20
camelia rakudo-moar 3ad15f: OUTPUT«True␤»
TimToady instead it means that
16:21 Alina-malina joined
TimToady the optimizer should be allowed to turn that into @array == 4 16:24
jnthn What (if anything) does it have to know in order to do that? 16:25
That the RHS is of type Int (or Num, or Rat...) and certainly not a type object?
If we know it's a type there on the RHS, can we compile it into an nqp::istype(a, b), for example? 16:26
That is, when is it OK to completely circumvent calling ACCEPTS?
At the moment we don't optimize ~~ at all. I've never had a good feeling how aggressive we're allowed to be, and what we can get away with. :) 16:27
timotimo well, the 4 we have there is a WVal, so it has a compile-time known value, so we can see if it has "the default ACCEPTS for Int" and the compiler can know "what that means" for the LHS, which we know is of type Array
jnthn Well, except method calls are (a) late-bound, and (b) augment can happen after we see it 16:28
timotimo ah, of course.
jnthn And you can potentially write a multi method ACCEPTS(Foo:U: $topic) { ... }
Or augment one of those in too.
timotimo oh, you can just write a multi method outside of a class and it'll plop right in? 16:29
that does require monkey typing, though, right?
jnthn No, but you can augment.
Right.
timotimo OK
jnthn Of course, that's the *wrong* way to customize type checking.
16:29 virtualsue left
jnthn So I personally don't mind if we make it not work. 16:29
timotimo how does that interact with the "we consider most things static/known at optimize-time"?
jnthn If you want to do that, you should be using the MOP.
timotimo aye, i wouldn't mind it either
16:29 chenryn left
jnthn Which will behave consistently. 16:29
Since we already make no promise at all that type checks go through ACCEPTS. 16:30
timotimo m: my int $a; say $a ~~ int;
camelia rakudo-moar 3ad15f: OUTPUT«False␤»
timotimo should this be a smartmatch-way of using nqp::isint?
jnthn No
Well, hmm...urgh 16:31
timotimo m: my int $a; say $a; say $a.perl;
camelia rakudo-moar 3ad15f: OUTPUT«0␤0␤»
jnthn Nah, it'll be too hard to get it consistent.
timotimo m: my int $a is default(42); say $a; say $a.perl;
camelia rakudo-moar 3ad15f: OUTPUT«===SORRY!=== Error while compiling /tmp/QoN3iaXiht␤Can't use trait 'is default' on a native.␤at /tmp/QoN3iaXiht:1␤------> my int $a is default(42)⏏; say $a; say $a.perl;␤ expecting any of:␤ postfix…»
timotimo mhm.
jnthn It will autobox.
timotimo ah, of course it would
for the method call
jnthn Anyway, I'm all for more aggresively optimizing ~~ things; I just think we might want toput some langauge into the spec first to make clear what's kosher. 16:32
timotimo say, jnthn, what position on your prioritized to-do list does the tricky thing that'll make native/shaped arrays and $i++ on natives and such work?
(and read-writable Bufs or Blobs or something like that?)
oh, i'll be AFK for a bit 16:33
jnthn That probably goes as "after YAPC"
Autumn sometime. I really would like to deal with those.
timotimo i would also really like to have them. but not enough for me to try to tackle it myself ;) 16:34
16:39 treehug88 joined
jnthn Anyone fancy another second off CORE.setting build time? 16:39
timotimo raises hand
[Coke] if we all raise our hands, can we one second each? 16:40
16:40 Rotwang joined
dalek p: 775ac85 | jnthn++ | src/QRegex/Cursor.nqp:
Optimize NQP Match object construction.

Before, CAPHASH built a hash, which we then re-walked and turned into the list and hash needed for the Match object. This meant an extra throwaway Hash and iterator every Match object, as well as the time iterating them. This reduces the cost by eliminating one of the passes. CAPHASH remains since Rakudo's Match construction still needs it; porting the optimization to Rakudo is an exercise for the reader.
16:41
16:42 treehug88 left
timotimo oooooh 16:42
you went and did that. great!
[Coke] doesn't literal unicode in the grammar slow down parrot? 16:46
timotimo we thought so, but lizmat said this doesn't cost us anything 16:47
[Coke] regarding "No need to beat around the bush wrt ∅"
she tested it? ok.
16:49 pmurias left
PerlJam Why are calls to $*throw() sometimes like $*W.throw($/, 'X::Comp::NYI', ... ) and other times like $*W.throw( $/, ['X', 'Placeholder', 'Block'], ...) ? 16:53
lee_ wow with that last commit CORE.setting parses in 29.988s for me 16:55
new record jnthn++!
PerlJam (i.e. why is the second arg sometimes a string and other times an array?)
jnthn Yes, it was my first time under 30s for stage parse too :)
TimToady PerlJam: circularity issues maybe? 16:56
jnthn PerlJam: I don't know of a deep reason off hand...I think if it is a string it simply splits it up 16:57
PerlJam yeah, that's what it looks like. 17:01
17:02 noganex joined
jnthn If you're interested in clearing it up, I think the array form ($*W.throw( $/, ['X', 'Placeholder', 'Block'], ...)) is the preferable one. 17:03
17:03 Ulti joined
PerlJam I think I'd prefer <X PlaceHolder Block> myself :) 17:04
I was just wondering why there were two different ways to call throw with no obvious (to me) reason.
TimToady 29.929 seconds here :) 17:05
jnthn PerlJam: ooh, that's pretty :)
PerlJam: Well, there may be a historical reason... :) 17:06
Heh, I found an easy way to shave another chunk off stage mbc
Down from 0.275 to 0.159. profiler++ 17:07
masak tadzik++ # panda 17:09
tadzik (: 17:10
masak it works great, *and* it has a cute name!
tadzik I'm glad it works well :)
TimToady in 0,1,*+*...* do currently we have any way of optimizing *+* into &infix:<+>? 17:18
jnthn No
TimToady I didn't think so
jnthn I don't actually know quite where to put it either. 17:19
TimToady and we can't just turn *+* into &infix<+> unless we determine that it will not be subject to further *-ification
jnthn Yeah...
That's what makes it tricky. 17:20
timotimo hmm, isn't that the "reverse" of what i did with the whatevercode inlining thingie? 17:21
TimToady I suppose if the innards of &infix:<+> are inlined into *+*, it's only duplicate code, not an extra call 17:22
jnthn I'd have to check if that actually happens
But should do, I guess 17:23
TimToady or we could have something somewhere that says "I'm about to really call this; try optimizing it first."
something that is capablie of updating the function pointer
timotimo "i'm gonna do it! for real! you better believe me! here i go! better be ready!" 17:24
can we use the mixin mechanism to "replace" the WhateverCode with the actual + sub?
jnthn m: say (823161 - 64) * (6.5 * 8)
camelia rakudo-moar 3ad15f: OUTPUT«42801044␤»
jnthn m: say ((823161 - 64) * (6.5 * 8)) / 4194304 17:25
camelia rakudo-moar 3ad15f: OUTPUT«10.20456409␤»
jnthn Wowser.
timotimo: That sounds kinda odd... :)
timotimo just making uneducated guesses
TimToady is not sure it's even wrong... :P 17:26
timotimo jnthn: pray tell, where did you get a factor of ten speed improvement from this time? :)
(looks more like 10 GC runs eliminated, though)
jnthn That's not a speed improvemnet, it's a number of GC runs I can get rid of.
timotimo called it! :)
jnthn m: say ((828017 - 128) * (6.5 * 8)) / 4194304 # worth it?
camelia rakudo-moar 3ad15f: OUTPUT«10.26397419␤»
jnthn Nah. 17:27
timotimo: int -> str caching.
Basically, what happens if we keep a cache of the strings for the first 64 integers starting at 0.
128 is not worth much extra
timotimo holy hell 17:28
that's a good one.
TimToady or you can do something like P5, where you cache the string with the int, if you think the string value will get reused more often than the int will change
that'd work for any int 17:29
timotimo our ints don't change
(yet?)
but they also don't really get deduplicated
TimToady an int container, I mean
jnthn Well, this is a native int, which means no container.
TimToady sure, it has a container, just not a P6 container
computer can't have values without containers :) 17:30
except very temporarily in the traces between CPU locations
timotimo you gotta read between the registers! 17:31
17:31 ajr_ left
TimToady but yeah, native ints are special, and would take more work to cache, especially for an array of ints 17:31
jnthn I'm not convinced making every native int 64 bits bigger so we can pass a string pointer around with it will be a win :) 17:32
TimToady didn't say "every" :)
jnthn I'm also pretty sure the JIT will be aghast too :)
17:32 guru joined, guru is now known as ajr_
jnthn BTW, the dynvar caching strategy seems to be suboptimal. 17:33
FROGGS_ yay, v5 (the Perl 6 version) does now work after the .ann/.annotate change :o)
17:33 raiph left
TimToady jnthn: well, you said at the time you thought it needed tuning 17:33
FROGGS_ need to fix the nqp version when I want to compare how something is parsed...
17:33 virtualsue joined
jnthn TimToady: Yes, I'm just not quite sure how exactly to tune it. 17:34
TimToady: Other than "fiddle with the numbers"
2% of CORE.setting compilation time currently goes on dynvar lookup.
17:35 Alina-malina left
TimToady well, you'd like to guess that you want it close, so optimal is probably some fibonacci distance away from the leaf 17:35
17:36 Alina-malina joined
jnthn TimToady: github.com/MoarVM/MoarVM/blob/mast...me.c#L1008 is the current cache installation code, fwiw. 17:36
FROGGS_ the NFA still drives me nuts, s/a/b/ is parsed as identifier=s infix=/ ... 17:37
timotimo bbl 17:38
17:38 virtualsue left
timotimo FROGGS_: did you make extra-extra sure that it's the NFA part and not the actual grammar that bails for the other branch? 17:39
FROGGS_ timotimo: I did some research for the last weirdness, and it was the NFA... not so sure about this time
17:42 Alula_ left
japhb jnthn: Any thoughts on my earlier question about what you'd like from perl6-bench in the next couple weeks? Or do you already have all that you need at this point? 17:43
jnthn japhb: I should look at some recent graphs more closely; I do know that the filtering of early noise made the last set of graphs I produced look weird. 17:44
japhb: As in, I thought the cure was worse than the disease. I'm sure there's a flag for it though :)
japhb Checking that ... but if it's not there, and you need it, I can do that. :-) 17:45
jnthn OK. If the noise filtering was tuned since I last tried it (probably; you'd only just put it in) then it may be OK anyway.
japhb I did tune it. But right now it exists as a constant masquerading as a variable: $min_time, at the top of compare_scaled_times in analyze. You can locally fudge that until I have something better for you. 17:47
(I simplified the filter down to just that, because the early filtering was both confusing and not sufficiently helpful.)
17:48 khisanth_ joined 17:50 Khisanth left 17:53 spider-mario left 17:54 [Sno] joined, dakkar left
japhb The next thing I'm interested in adding is the ability to mark a test as being not considered in the total summary score, because e.g. empty loops don't measure anything useful to an end user; it's only useful for the implementor, to gauge loop overhead. 17:54
jnthn True, though don't underestimate the marketing value of such things. :)
japhb So that when people inevitably throw a summary score plot into a slide deck, at least the audience is seeing something that actually relates to the real world. 17:55
Oh sure, I was going to keep those tests in the per-test plots, just not in the summary.
[Coke] i think our detractors would argue that perl6 has taken longer to do nothing than our competitors. 17:56
japhb To avoid e.g. r-j appearing way faster for normal use than it really is, because it can make empty native loops wicked fast, but is much more in line with other implementations as soon as the loop is non-empty.
17:56 treehug88 joined
jnthn Ah, OK, I follow :) 17:58
17:58 Alula_ joined
TimToady m: say '∅' ~~ /\w/; # funny how people keep thinking of ∅ as alphanumeric 18:01
camelia rakudo-moar 3ad15f: OUTPUT«Nil␤»
TimToady I suspect it's the visual correspondence with 0 and ø 18:03
but Perl will never autoquote the null set on the left of =>
18:04 lizmat joined
TimToady (unless Unicode changes its classification) 18:04
18:05 denis_boyun___ joined 18:06 denis_boyun_ left, treehug88 left
japhb wonders if, now that perl6-bench does historical plots, it would be useful to have a set of benchmarks that essentially test whether an optimization is happening as expected; sortof regression tests for the optimizer 18:07
18:09 denis_boyun_ joined
masak TimToady: no, it's the similarity to ø, of course ;) 18:10
18:10 denis_boyun___ left 18:13 lustlife left
psch m: "abc".comb(/./, :match).WHAT.say # this should be a Match i think? 18:15
camelia rakudo-moar 3ad15f: OUTPUT«(List)␤»
psch also: hi #perl6 o/
psch realizes that there's much more to the whole m:g// and smartmatch thing
ah, no, that's supposed to be a List, says S32::Str 18:18
18:20 virtualsue joined 18:21 raiph joined
vendethiel sjn: hey, will you have time to finish the PR until the end of the week, or should I merge as-is ? 18:22
18:24 sqirrel joined, lustlife joined 18:26 raiph left, prevost joined 18:30 Hansel joined
itz while attempting to build v5 18:41
===SORRY!=== 18:42
Could not find Perl5 in any of:
ideas?
sergot .seen supernovus 18:43
yoleaux I saw supernovus 19 Feb 2014 00:12Z in #perl6: <supernovus> Well, I'll test some more of my libraries out on the various backends another day. Have a good * #perl6 :-)
18:44 anaeem1 joined 18:47 anaeem1 left 18:48 anaeem1 joined
itz oh maybe I should have read the docs :) 18:49
18:50 darutoko- left 18:53 brrt joined 18:54 virtualsue left 19:02 rindolf left 19:07 sqirrel left 19:09 anaeem1 left, anaeem1 joined 19:18 dwarring joined
FROGGS_ itz: v5 needs a fix with current rakudo anyway 19:21
itz I was seeing "This type does not support associative operations 19:24
FROGGS_ correct, one of the latest nqp patches does that... 19:25
I need to fix master, nqp_to_perl6 already is patched 19:26
itz: are you actually using v5?
itz I was just curious and experimenting 19:27
FROGGS_ k
:o)
v5 will be installable via panda in a few months, so there won't be any README reading needed by then :o) 19:28
19:30 brrt left 19:33 guru joined, ajr_ left, anaeem1 left, guru is now known as Guest80016 19:35 Guest80016 is now known as ajr_, virtualsue joined, ajr_ left 19:46 kurahaupo joined 19:49 virtualsue left
lizmat [Coke]: re: irclog.perlgeek.de/perl6/2014-08-05#i_9136422 , it only slows down when in the settings, *not* in the grammar 19:49
not sure why, but that is what I've seen 19:50
[Coke] lizmat: ah, great. Thanks for following up.
PerlJam Is there a ticket for the "unicode slows things down" problem? Adding that little tidbit would be useful it's not already there. 19:52
19:54 anaeem1 joined
lue and the slowdown is just for Parrot, right? 19:56
19:57 colomon joined 19:58 virtualsue joined 19:59 anaeem1 left
timotimo parrot has to scan from the very beginning of the string for every string access "at a given grapheme" 20:01
it doesn't cache iterators
so it ends up going quadratic
PerlJam timotimo: but only in the setting? 20:02
20:03 kurahaupo left
PerlJam timotimo: or is it that there's only one character in this case (since we've been avoiding them), so it's not noticably slow? 20:03
timotimo PerlJam: the setting is just a super huge string
lizmat lue: yes
colomon btyler: I am using JSON::Tiny for $work, and it is SLOW. A significant speed up would be brill. 20:04
timotimo exactly, at the moment it can do O(1) lookups
btyler colomon: well, if you don't mind the native library installation jig, jansson is pretty fast. not as fast as perl5's JSON::XS, though 20:05
but the major cavaet at the moment is that json::jansson doesn't just dump everything into p6 data structures -- the data stays in jansson's realm and it gets manipulated there. so you'll probably very quickly run into hash or array methods/operations that work with normal p6 data structures but don't with json::jansson 20:06
20:06 brrt joined
btyler I'll have some time next week to improve that a bit, but I suspect that'll always be the case to some degree 20:07
colomon btyler: yes, well, so far I've avoided switching to p5 so far...
20:12 bjz left 20:14 Sqirrel joined 20:15 rurban left 20:16 rurban joined, ajr_ joined 20:19 fhelmberger joined 20:20 fhelmberger left 20:21 fhelmberger joined, fhelmberger left 20:23 grondilu left, fhelmberger joined 20:24 fhelmberger left 20:25 raiph joined 20:27 itz_ joined 20:29 fhelmberger joined, fhelmberger left 20:30 itz left, lizmat left 20:34 colomon left 20:36 perlfan joined 20:38 Hansel left 20:45 kaare_ left 20:57 ventica3 left 21:06 virtualsue left 21:07 rurban left 21:11 colomon joined
masak m: say 4195835 / 3145727 21:11
camelia rakudo-moar 3ad15f: OUTPUT«1.33382045␤»
masak www.trnicely.net/pentbug/pentbug.html 21:12
timotimo m: my @a = $(1, 2, 3); say [>>+<<] @a; 21:17
camelia rakudo-moar 3ad15f: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in block at src/gen/m-CORE.setting:17636␤ in sub at src/gen/m-CORE.setting:17527␤ in block at /tmp/sodTCpvGK3:1␤␤»
timotimo m: my @a = $(1, 2, 3), $(0, 0, 0); say [>>+<<] @a;
camelia rakudo-moar 3ad15f: OUTPUT«1 2 3␤»
timotimo ^- i don't know how to formulate the bug report for this
masak "[BUG] instance of the reduce metaop which should work with one-element list only works with two or more elements in Rakudo" 21:18
timotimo perfect
would you do the honors? :)
masak submits rakudobug
timotimo thank you :)
21:21 colomon left
timotimo i can't &[>>+<<] to get the >>+<< operator as an object? 21:21
masak you oughta. 21:22
I think there's an RT ticket about that already, though.
timotimo probably
masak m: my @a; say [>>+<<] @a 21:25
camelia rakudo-moar 3ad15f: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in block at src/gen/m-CORE.setting:17636␤ in sub at src/gen/m-CORE.setting:17525␤ in block at /tmp/GywDsUPozD:1␤␤»
timotimo i'd like to try passing one or 0 arguments to >>+<< 21:27
sadly, i can't get a handle on it 21:28
masak a cursory search of RT for a &[op] ticket finds nothing. 21:29
that's only weak evidence that it's not there, though.
cxreg ponders some kind of code review / best practices / idiomatic perl 6 / 6monks style site. any such thing yet? 21:30
[Coke] perlmonks itself? 21:32
masak cxreg: there's (the really small) github.com/moritz/perl6-wtop/blob/...ctices.pod
21:32 bjz joined
masak 'night, #perl6 21:32
timotimo gnite masak 21:33
lue Might be of interest to some of you here :) rdstar.wordpress.com/2014/08/05/the...al-growth/
masak o/
sjn vendethiel: do as you wish :) 21:34
[Coke] oh, I just realized I can go revisit my app I was writing in perl6 months ago and add a GUI and be faster. whee.
sjn vendethiel: I think it's a step in the right direction, at least. But since you noticed quite a few nits to pick too, you'll have to be the arbitor of taste here :) 21:36
21:38 gfldex left
timotimo [Coke]: when you start work on the gui, make sure to get in touch so you can help motivate and guide improvements to GTK::Simple 21:38
21:42 rurban joined 21:48 Sqirrel left
raydiak lue: weird, I was just doing the same calculations today for space instead of time 21:51
21:51 Sqirrel joined, kivutar left
lue raydiak: I actually did them a while ago. I know they're correct because I've gone through the process a few times between when the thought first came to me and that post :) 21:52
(I usually got hung up on forgetting which units applied to which numbers. Not this last time, fortunately :P)
raydiak the other interesting thing is that the result for space (per dimension) and for time is similar 21:56
well, if you use the size of the observable universe
whatever that's worth
lue raydiak: you're using planck lengths, right? 21:57
raydiak ya
lue observable universe, predictable history, it's all the same not-sure-about-all-of-it :) 21:58
raydiak then we can at least say that our ignorance seems to be well-balanced, dimensionally speaking :) 21:59
lue pastwards, yes. futurewards, I'd say time starts growing more unknowable than what's ahead of you spatially. 22:01
22:03 brrt left, yoleaux left, lustlife left, yoleaux joined, ChanServ sets mode: +v yoleaux 22:04 yoleaux left, yoleaux joined, ChanServ sets mode: +v yoleaux
raydiak how so? 22:05
lue raydiak: probably just our minimal understanding of how time works, really. My thoughts don't feel well-formed enough for me to say much more, so ignore them at will :) 22:07
egrep wonders what people here recommend egrep use to gain a better understanding and knowledge of perl6... 22:11
22:11 sftp_ joined 22:13 robinsmidsrod left
FROGGS_ egrep: this? github.com/Nami-Doc/learnxinyminut...l.markdown 22:13
22:13 robins joined, haroldwu left, sftp left, sftp_ is now known as sftp
jnthn Also, if coming from Perl 5, then moritz++'s 5 to 6 tutorial is likely also worth a look, I think. 22:14
22:14 anocelot_ left, haroldwu joined 22:15 salv0 left, prevost left
egrep I'm coming from not really good with any perl whatsoever 22:16
jnthn Ah, then the learnxinyminutes is probably better
avuserow m: say "Welcome egrep! You can also run code here if you have questions about it :)" # or via privmsg to camelia too 22:17
camelia rakudo-moar 3ad15f: OUTPUT«Welcome egrep! You can also run code here if you have questions about it :)␤»
22:20 salv0 joined 22:21 ivanshmakov left, anocelot joined 22:29 kivutar joined 22:31 Psyche^_ joined 22:35 Psyche^ left
timotimo egrep: that's cool, i've never written a single line of perl before i came to the perl6 community 22:52
i was a python user before that
FROGGS_: you should probably link to the learnxinyminutes.com/something/something/perl6 instead
egrep Heh. I have actually written a bit in perl6 and perl5 before, though.
timotimo they have a nicer (?) rendering
egrep I think the something is docs 22:53
They should make their rendering even nicer... stuff flows out of that nice gray box.
22:56 dmol left, lizmat joined 22:57 rurban left
timotimo yes :( 22:58
23:00 denis_boyun_ left
egrep wonders how that could be done, though... the only option egrep sees is scrolling 23:00
timotimo HTML and CSS are pain. 23:01
23:16 colomon joined 23:17 rurban joined
dalek kudo/nom: 574266a | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Locally.pm:
Layout esthetics to please Amsterdam.pm
23:22
lizmat and with that, good night #perl6!
23:24 colomon left 23:26 bjz left 23:35 PZt joined
[Coke] (look at old perl6 app) ZOMG SO MUCH FASTER. jnthn++ and everyone++ 23:35
timotimo %) 23:36
[Coke] it was unusably slow before. had to emit debug output so I knew it was not dead. now runs in under 2s. whee.
timotimo can we have numbers? :)
whoa.
that does sound lovely
[Coke] was able to clean up a bunch of code and refactor things that were ugly, but it was so painfully slow to change and test, I left it alone. 23:37
timotimo well, that's definitely good news and i'm glad to hear it :) 23:38
egrep Wait... so if I do a git pull in rakudo... what's the relationship with nqp and moarvm... I'm assuming they don't get git pulled because they're a separate repo... but... how do I update those then? 23:42
[Coke] timotimo: right now I'm happy with term::ansicolor && unicode. (it's dealing with a deck of cards)
egrep: reconfigure rakudo
dalek ast: 6b28a6c | (David Warring [email@hidden.address] | integration/advent2011-day04.t:
removed stray 'say' - was breaking TAP
[Coke] it will update nqp/moar if needed.
egrep [Coke]: Okay... so I need to figure out how to do that. :P
[Coke] perl Configure.pl --gen-moar --gen-nqp --backends=moar (will grab the versions required of nqp/moar, not HEAD) 23:43
egrep Oh... okay. :|
I'm assuming head just won't work or isn't 100% certain of being working or something like that.
timotimo i have a ~/perl6 where i have a checkout of moarvm, nqp and rakudo and i Configure.pl them all to have --prefix=../install 23:44
head is usually in good shape
egrep Oooh... I think I'll try that out for no reason. :
:P
timotimo :)
[Coke] if you always want latest, you can configure with:
perl Configure.pl --gen-moar=master --gen-nqp=master --backends=moar 23:45
egrep Or I can do that. ._. 23:46
timotimo aye.
egrep This must be the perl way, more than one way. :P
[Coke] but you really won't need that, unless you're working on nqp or moar.
we update the required version pretty frequently
egrep Meh. Why not anyway? 23:47
[Coke] knock yourself out.
timotimo:
1: 6♥ 6♠ A♣ 9♦ 4 ??
2: 3♠ 8♣ 5♦ 8♦ 3 ??
aw. that's in color here.
egrep hits egrep on the head with a perl 23:49
timotimo %) 23:52
23:55 kurahaupo joined, colomon joined 23:58 thou left