»ö« 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 12a2 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 12a2 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«TrueTrueFalse» | ||
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«FalseTrue» | ||
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«00» | ||
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/QoN3iaXihtCan'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
|