»ö« 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:09 kurahaupo1 joined 00:11 nbrown joined 00:12 JM3 left 00:18 nbrown left
timotimo t.h8.lv/p6bench/2014-09-26-many_rak...story.html - still rather humbling ... this one is more sensible to look at: t.h8.lv/p6bench/2014-09-26-many_rak..._nop5.html 00:19
00:19 grondilu left 00:23 jerrycheung joined
timotimo in the summary we're not even reaching 1/10 of the score of perl5 ... 00:23
00:34 ssutch_ joined 00:49 dayangkun joined 00:51 leont left 00:59 FROGGS_ joined 01:02 Sqirrel left, FROGGS left 01:17 Mso150_u joined 01:20 yeahnoob joined 01:23 yeahnoob left 01:36 yeahnoob joined 01:50 Mso150_u left 01:51 ssutch_ left 01:53 ssutch_ joined
TimToady in Bella Vista, AR 01:55
02:00 FROGGS__ joined, Sqirrel joined 02:04 FROGGS_ left 02:10 dayangkun left 02:11 vendethiel joined 02:12 prevost left, vendethiel- left 02:13 noganex_ joined 02:16 noganex left 02:17 aborazmeh joined 02:47 dwarring left
dalek ast: aa5ffd7 | (David Warring [email@hidden.address] | integration/99problems-41-to-50.t:
[integration/99-problems] solve P48 Truth tables for logical expressions (3).

Added basic operator precedence logic.
02:56
03:06 eMBee left, jerrycheung left 03:11 xenoterracide joined 03:12 ssutch_ left
dalek ast: 5a471e8 | (David Warring [email@hidden.address] | integration/99problems-41-to-50.t:
[integration/99-problems] P48 removed precedence cheat - no long needed
03:12
03:15 ssutch_ joined 03:17 immortal joined, erkan left, aborazmeh left 03:22 jerrycheung joined 03:24 Ben_Goldberg joined 03:26 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 03:28 molaf_ left 03:30 nbrown joined 03:32 zeropool joined 03:34 nbrown left 03:35 anaeem1_ left 03:48 [Sno] left 03:58 firefish5000 left 04:02 ifim left 04:08 anaeem1_ joined, mberends joined 04:14 colomon joined, anaeem1_ left 04:15 anaeem1 joined 04:19 yeahnoob_ joined, SevenWolf joined, SevenWolf left 04:21 yeahnoob_ left 04:22 yeahnoob_ joined, yeahnoob left, yeahnoob_ is now known as yeahnoob 04:27 colomon left 04:29 yeahnoob left 04:32 araujo left 04:34 kurahaupo left 04:37 kurahaupo joined, kurahaupo left 04:41 kaare_ joined, anaeem1 left 04:43 BenGoldberg left 04:49 anaeem1_ joined 04:53 anaeem1_ left 04:55 anaeem1_ joined, tinyblak left 04:57 mr-foobar left 05:00 SamuraiJack_ joined 05:02 tinyblak joined 05:03 tinyblak left, xenoterracide left, tinyblak joined 05:11 tinyblak left, tinyblak joined 05:15 SamuraiJack_ left 05:20 tinyblak left 05:21 tinyblak joined 05:22 [Sno] joined 05:25 tinyblak left 05:26 mberends left 05:30 kurahaupo1 is now known as kurahaupo 05:38 ggoebel2 joined 05:39 yeahnoob joined 05:41 ggoebel left 05:46 mr-foobar joined 05:52 gfldex joined
FROGGS[mobile] firefish5000: already done yesterday :o) 05:53
TimToady: what is AR? 05:54
06:06 mr-foobar left 06:07 virtualsue joined 06:08 gfldex left 06:10 telex left 06:12 telex joined 06:18 immortal left 06:28 d4l3k_ joined, atta left 06:29 atta joined, vukcrni left, vukcrni joined, Psyche^ left, dalek left 06:30 Psyche^ joined, d4l3k_ is now known as dalek 06:31 broquaint joined, exixt joined, exixt left, exixt joined
dalek ar: d73e079 | (Tobias Leich)++ | modules/Template-Mojo:
update revision of Template-Mojo
06:32
06:35 Mso150_u joined 06:36 Bucciarati joined 06:37 FROGGS__ left 06:59 brrt joined 07:02 darutoko joined 07:06 FROGGS joined 07:08 yeahnoob left 07:11 mberends joined 07:15 yeahnoob joined, vukcrni left 07:16 vukcrni joined 07:39 ghostlin_ joined
nine timotimo: If we were already close to Perl 5, we would have less room for improvement than we really have. Which would be a shame since we're really slow at times :) But we will get there eventually. 07:48
brrt nine: it is my personal suspicion that getting to perl5-level will take some serious rethinking of the GLR type :-) 07:51
which is ok
keeps us from the streets
but boy would it be nice to have a full-time team on this
nine It would :) But don't go there. Even the Perl 5 world has almost no paid support despite the language making billions around the world. Wishing such things can only end in frustration. 07:55
07:56 yeahnoob left
nine But as I see it: we only started pushing performance a year ago. And most of the work was basics like porting to MoarVM, spesh and the JIT. I guess there's loads of optimizations waiting to be implemented on top of these basics. 07:56
07:59 _slade_ left 08:02 pmurias joined
pmurias GLR type? 08:03
brrt well.. i'd also add that our JIT is the worlds most toyish production JIT 08:04
but yeah, you're not wrong, there's still a lot that we can do 08:05
both on the high and low levels
but very few of these are low-hanging fruits
nine pmurias: the great list refactor 08:09
pmurias are lazy lists a big performance bottleneck? 08:10
nine seems so 08:12
08:14 kurahaupo left, kurahaupo joined 08:30 Ven joined
Ven o/, #perl6. 08:30
08:31 kjs_ joined
moritz pmurias: yes 08:31
08:33 kurahaupo left
brrt \o Ven 08:33
08:33 kaleem joined, daxim joined 08:34 kurahaupo joined 08:36 kjs_ left
moritz pmurias: in most profiles I've seen, ListIter.reify and MapIter.reify together make up at least 20% of the time, often more 08:38
dalek ast: 06d3aa3 | usev6++ | S (5 files):
Avoid some warnings and a few cosmetic changes
brrt well, that means a 10 fold speed increase will take at most 18% of the total runtime 08:39
moritz brrt: the 20% is more of a lower boundary
brrt fair enough 08:40
08:40 bartolin joined
moritz brrt: just as another databpoint, for lines() { } is limited by CPU, not IO 08:40
brrt what
o.O
not jitted yet probably?
moritz dunno, I profiled without JIT 08:41
brrt i'd be interested :-)
08:42 fhelmberger joined 08:49 virtualsue left 08:56 Mso150_u left 09:02 jerrycheung left 09:03 kjs_ joined 09:11 vendethiel left
lizmat Good *, #perl6! 09:17
FROGGS[mobile]: AR = Arizona
brrt \o lizmat 09:22
lizmat \o brrt
moritz brrt: gist.github.com/moritz/71e80df7a6756ac5251e 09:25
brrt very excellent :-)
is see 09:26
i see
wow
we should JIT better :-)
moritz that's the bottom-up approach
brrt true 09:27
moritz if we spend >60% in list iteration code, we're doing things utterly wrong.
nine Improving the JIT for this case probably will improve other cases as well...
moritz though TBH I don't know how to make them better
nwc10 this is a short example demonstrating the need/acting as a test case for the Grand List Refactor? 09:28
brrt i'd say
moritz yes
brrt this is especially annoying since timotimo and i already optimized-and-jitted list iteration on the moarvm level 09:29
here's.. the thing though 09:31
because of many reasons, the frame invocation code is a pretty slow path
anything that relies on a lot of calls to a lot of subroutines is going to hurt 09:32
moritz aye
there are 99k lines here in /usr/share/dict/words
and it seems we have at least 5x as many invocations 09:33
dalek ast: 4b5dd97 | (Elizabeth Mattijsen)++ | S16-filehandles/open.t:
Unfudge now passing test on rakudo
moritz actually, a lot more
just looking at the numbers, we seem to invoke ~13 frames per list item 09:34
Ven :(
moritz on the plus side, we spend only 11% of the time GC-ing 09:35
that's quite good, IMHO
dalek ast: 3164e55 | usev6++ | S03-operators/autoincrement.t:
Add test for RT #99732
09:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=99732
brrt that's not bad, no :-)
i think i argued for frame allocation optimising (as in, making optimistic) some time ago on #moarvm
i'd argue for that again but it is mightily complex 09:37
09:38 denis_boyun_ joined 09:48 pmurias left 09:49 virtualsue joined 09:52 Alina-malina left 09:53 Alina-malina joined 09:55 pecastro left 09:56 mberends left 10:00 mberends joined 10:01 pecastro joined
dalek ast: 2b143b6 | usev6++ | S03-operators/misc.t:
Remove duplicate test

There is already a test for this in S03-metaops/zip.t
10:19
brrt afk
10:19 brrt left
nine Interesting way to "fix" ShellShock: lwn.net/Articles/613346/ 10:20
10:22 xinming joined 10:23 erkan joined 10:24 jerrycheung joined 10:25 xinming_ left 10:35 grondilu joined
grondilu shouldn't grep conserve typing? 10:36
m: my Real %a; %a{^3}»++; say %a.grep(*.key %% 2).perl
camelia rakudo-moar 85c4c0: OUTPUT«("2" => 1, "0" => 1).list␤»
grondilu m: my Real %a; %a{^3}»++; say %a.perl 10:37
camelia rakudo-moar 85c4c0: OUTPUT«Hash[Real].new("2" => 1, "0" => 1, "1" => 1)␤»
grondilu see what I mean?
lizmat I think it's more a deficiency in Hash.perl
or even Pair.perl 10:38
grondilu m: my Real %a{Int}; %a{^3}»++; %a.=grep(*.key %% 2); say %a.perl
camelia rakudo-moar 85c4c0: OUTPUT«Hash[Real,Int].new(2 => 1, 0 => 1)␤»
grondilu not sure 10:39
10:39 Ven left 10:42 pecastro left 10:43 pecastro joined 10:50 yeahnoob joined 11:03 erkan left 11:04 erkan joined, erkan left, erkan joined 11:13 colomon joined
carlin is it possible to declare a MAIN sub with two commands, so something like `multi MAIN('foo'|'bar') { }` so that both foo and bar run the same sub 11:26
11:27 kurahaupo left, prevost joined
FROGGS m: multi MAIN($ where 'foo'|'bar') { say 42 }; MAIN('foo'); MAIN('bar'); MAIN('baz'); 11:28
camelia rakudo-moar 85c4c0: OUTPUT«42␤42␤Cannot call 'MAIN'; none of these signatures match:␤:(Any $ where { ... })␤ in sub MAIN at /tmp/2_B1So36Hz:1␤ in block <unit> at /tmp/2_B1So36Hz:1␤␤»
FROGGS carlin: ^^
carlin thanks FROGGS++ 11:30
that makes the Usage a bit weird though
11:30 leont joined
carlin Usage: test.pl6 -> ($_) { #`(Block|52813472) ... } 11:30
FROGGS yeah... 11:31
we'd need to improve how such code blocks gistify
m: multi MAIN($ any <foo bar>) { say 42 }
camelia rakudo-moar 85c4c0: OUTPUT«===SORRY!=== Error while compiling /tmp/VJYPbsk006␤Missing block␤at /tmp/VJYPbsk006:1␤------> multi MAIN($ ⏏any <foo bar>) { say 42 }␤ expecting any of:␤ statement list␤ prefix or term␤ …»
FROGGS m: multi MAIN($ where any <foo bar>) { say 42 }
camelia rakudo-moar 85c4c0: OUTPUT«Usage:␤ /tmp/5iAw9KyYvp -> ($_) { #`(Block|50648384) ... } ␤»
FROGGS :/ 11:32
11:32 colomon left 11:37 scumdog1 joined
TimToady FROGGS: Arkansas 11:41
lizmat oops
AZ is Arizona, right ? 11:42
TimToady yup
lizmat FROGGS: sorry for the FUD
errands&
nine I'd hope that TimToady visiting Arizona would not instill fear :)
11:43 scumdog1 left
FROGGS Arrr! :o) 11:43
grondilu std: my Real %{Int}; # testing anonymous typed hashes 11:44
camelia std fc92e1e: OUTPUT«ok 00:01 142m␤»
grondilu m: my Real %{Int}; # testing anonymous typed hashes
camelia rakudo-moar 85c4c0: OUTPUT«===SORRY!=== Error while compiling /tmp/SBgaMBykC_␤Unsupported use of %{Int}; in Perl 6 please use %Int␤at /tmp/SBgaMBykC_:1␤------> my Real %{Int}⏏; # testing anonymous typed hashes␤»
11:45 kurahaupo joined, yeahnoob left 11:47 yeahnoob joined 11:51 pmurias_ joined, pmurias joined
dalek p-js: 489db46 | (Pawel Murias)++ | src/vm/js/ (3 files):
A tiny bit of progress on deserializing objects.
11:51
p-js: 9158711 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
A tiny bit more progress.
p-js: c2f2d39 | (Pawel Murias)++ | / (6 files):
Wrap subs in a CodeRef object.
11:54 anaeem1__ joined 11:55 anaeem1__ left
TimToady -> LA (the state, not the city) 11:55
11:56 anaeem___ joined 11:57 anaeem1_ left
nwc10 TimToady: implying that you've made it past Texas? 11:59
I honestly don't know if Texas is a hard place to get out of 12:00
12:00 pmurias_ left
nine I sometimes have the feeling that Perl 6 is overengineered and overcomplicated. But then I just tried to explain to a developer the difference between a function call and a method call in Perl 5 and why you should never call a method as a function without the prefixed $self->. 12:06
12:07 kaleem left
dalek p-js: ac78dbd | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
Start of methods support.

knowhow Foo {
   method lol() {
   say("yay, this works");
   }
  }
  Foo.lol();
12:12
nine OTOH Perl 5 seems very consistent in that it's always the user deciding what something is: sub foo {} foo() # a function; $self->foo() # a method; Foo->foo() # a static method. $a + $b # numbers! $a . $b # strings!
12:14 PZt left 12:16 zeropool left
FROGGS nine: foo bar # method! 12:16
(static, even, maybe)
nwc10 are you sure? I think it ends up depending whether bar has been opened as a file handle
nine FROGGS: you mean indirect object syntax? 12:17
FROGGS nine: yes
nwc10: that's not restricted to filehandles, is it?
nine FROGGS: well that's still the caller deciding, not the writer of the sub
nwc10 FROGGS: I can't remember. I know that there are various bits of syntax which are determined by heuristics, and I (a) can't remember exactly which syntax (b) can't remember exactly what the heuristics are 12:18
FROGGS nine: which leaves room for confusion and errors
nwc10 but it's ugly
FROGGS perl -E 'package Foo { sub bar { say 42 } }; bar Foo'
nine In Perl 6 we still have operators deciding the operation. $a + $b will always be an addition, not string concatenation. But a method is a method and cannot be called as a function anymore.
FROGGS 42
12:19 lue left
nwc10 perl -E 'sub Foo::bar { say 42 }; bar Foo' 12:20
42
FROGGS nine: which is good IMO
nine In Perl 5 it's the -> operator deciding. There's no method without the method call operator. All in all very consistent. Ugly (in the case of indirect object syntax), surprising to foreigners, but at least consistent.
nwc10 $ perl -E 'open bar, "</dev/null"; sub Foo::bar { say 42 }; bar Foo'
Bareword found where operator expected at -e line 1, near "bar Foo" (Do you need to predeclare bar?)
syntax error at -e line 1, near "bar Foo
"
Execution of -e aborted due to compilation errors.
FROGGS nine: I prefer introspection over using methods as subs... so there must be some distinction 12:25
though, you can kinda mix them: 12:26
m: class Foo { method bar is export { say 42 } }; import Foo; bar(Foo)
camelia rakudo-moar 85c4c0: OUTPUT«42␤»
FROGGS (only kinda)
nine FROGGS: the bottomline probably is: language design is really hard.
FROGGS very very true 12:27
nine Though I like Perl 5's consistency in this regard, I've a hard time explaining to the beginner :)
FROGGS I have the feeling though that Perl 6 is easier to learn, because it has less warts
but... rakudo has other Stolpersteine 12:28
nine FROGGS: maybe. At the same time I _still_ don't know how to pass on a variable list of parameters to another function call. And all the talk about Parcels, Captures and slurpy arguments and | and * and whatnot does not make it easier. In Perl 5 it's sub foo { my ($self, $foo, @rest); bar(@rest); } and I'm done. 12:29
FROGGS like, try to explain this wart:
perl -E 'say 1 .beer'
1beer
nine: true... it always felt like there were to many array-ish primitives for example 12:30
nine FROGGS: that's why _everyone_ repeats the use strict; use warnings; mantra to newbies.
FROGGS maybe it will be the default in 5.30 :o) 12:31
nine Sure list context still bites me after 15 years of Perl, but at least it's a simple concept.
12:32 anaeem___ left
nine And it never bites me when passing parameters. Just on return values of functions. 12:32
12:32 lue joined 12:34 anaeem1_ joined, kaare_ left 12:37 anaeem1_ left, yeahnoob left 12:38 rurban joined 12:43 rjbs joined
rjbs Yow, I don't have this channel on auto-rejoin. For shame. 12:43
timotimo meep meep 12:44
[Coke] r: sub a($a,$b,$c,$d) { say "$a $b $c $d" } ; my @things=3,4; a(1,2,|@things); 12:45
camelia rakudo-jvm 85c4c0: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-{parrot,moar} 85c4c0: OUTPUT«1 2 3 4␤»
[Coke] mnemonic: | flattens 12:46
FROGGS[mobile] and * is for Whatever I shall get 12:47
12:50 cognome joined
nine but there's also @things.list? 12:50
12:51 yeahnoob joined
[Coke] r: my @things=1,2; { |@.things }.perl.say 12:51
camelia rakudo-jvm 85c4c0: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-{parrot,moar} 85c4c0: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable @.things used where no 'self' is available␤at /tmp/tmpfile:1␤------> my @things=1,2; { |@.things⏏ }.perl.say␤ expecting any of:␤ st…»
FROGGS that does not flatten
[Coke] ^^ | isn't valid generically, I don't think. 12:52
FROGGS m: my @things=1,2; { |@things }.perl.say
camelia rakudo-moar 85c4c0: OUTPUT«===SORRY!=== Error while compiling /tmp/w8ttO3OGl3␤Variable '&prefix:<|>' is not declared␤at /tmp/w8ttO3OGl3:1␤------> my @things=1,2; { ⏏|@things }.perl.say␤»
FROGGS [Coke]: only valid in a call/return
[Coke] right. 12:53
nine There's also: method postcircumfix:<( )>(\args) { 12:54
$.perl5.execute($.ptr, |args);
}
and: -> \self, |args {
$.parent.perl5.invoke($package, $.parent.ptr, $name, self, args.list);
}
That's already three different and non-interchangeable ways to pass on those parameters 12:55
[Coke] |args is the same as @args as far as flattening.
er:
|args is the same as |@args as far as flattening. 12:56
(the lack of the @ is a separate issue)
nine As far as I understood there's differences in how named arguments are handled. 12:59
gtodd nine: hmm is it normally the case in perl that things are sort of more interchangeable ? 13:00
PerlJam good * #perl6 13:01
FROGGS hi PerlJam
nine gtodd: you mean the there's more than one way thing? Yes. But in this case it's not exactly the same thing. There are subtle differences. And subtlety makes learning harder. 13:03
gtodd yes
nine Of course most people probably don't learn a language by writing a generic bridge to another language :)
So my hurdles where quite a bit different to the usual ones I'd guess. 13:04
PerlJam nine: actually .... I bet they do. It's just the bridge live in their head :)
gtodd otoh once you learn something like perl5's idea of "context " you have new powers :-)
even though context is hard for beginners
nothing matters now though ... since " #cyber attacks start to exploit #Shellshock bug and threaten critical infrastructure " 13:05
PerlJam gtodd: context is hard for experts sometimes too :)
13:05 yeahnoob_ joined
gtodd true 13:06
13:06 bjz_ left 13:07 bjz joined
timotimo i'm actually not entirely sure why method postcircumfix:<( )> takes a single argument named args 13:08
the \ just says "i don't want to impose a sigil on this variable"
13:08 yeahnoob_ left, yeahnoob left, SamuraiJack_ joined 13:12 yeahnoob joined 13:18 molaf joined 13:22 yeahnoob left
[Coke] I would say not impose context. 13:26
13:32 yeahnoob joined 13:34 kurahaupo left 13:35 yeahnoob left
timotimo right 13:38
13:43 cognome left 13:44 cognome joined 13:46 yeahnoob joined 13:49 cognome left 13:53 kurahaupo joined 13:57 Alula joined 13:58 [Sno] left
grondilu m: role A { multi method gist(A:) { "A!" } }; say 1 but A; 14:11
camelia rakudo-moar 85c4c0: OUTPUT«Ambiguous call to 'gist'; these signatures all match:␤:(Numeric:D: *%_)␤:(A: *%_)␤ in sub say at src/gen/m-CORE.setting:15503␤ in block <unit> at /tmp/HGoXy7liH4:1␤␤»
grondilu m: role A { multi method gist { "A!" } }; say 1 but A;
camelia rakudo-moar 85c4c0: OUTPUT«A!␤»
jnthn grondilu: And that's the reason that the invocant type is generic in roles ;) 14:12
grondilu doesn't quite understand 14:14
does that mean I should never use invocant polymorphism for roles? 14:15
dalek line-Perl5: aa27ba0 | moritz++ | lib/Inline/Perl5.pm6:
Cache path to p5helper.so in a state variable
grondilu the thing is I had a subset of a role, and I wanted a specific gist for this subset
dalek line-Perl5: b639c31 | moritz++ | lib/Inline/Perl5.pm6:
remove exception type that is not used anymore
grondilu It didn't quite work, for it triggered the "ambigious call" error
jnthn grondilu: It's funny you call it invocant polymorphism when it's exactly the polymorphism that you're removing by writing the A there ;-) 14:16
role Foo { method m() { } } 14:17
Is really
grondilu I was thinking of the longuest example:
m: role A is Cool {...}; subset B of A where * %% 2; role A { multi method gist { "A!" }; multi method gist (B:) { "B!!" } }; say 2 but A;
camelia rakudo-moar 85c4c0: OUTPUT«A!␤»
jnthn role Foo { method m(::?CLASS:) { } }
grondilu was expecting B!
or rather 'B!!'
grondilu realises Cool is not needed here 14:18
m: role A {...}; subset B of A where * %% 2; role A { multi method gist { "A!" }; multi method gist (B:) { "B!!" } }; say 2 but A;
camelia rakudo-moar 85c4c0: OUTPUT«A!␤»
grondilu m: role A {...}; subset B of A where * %% 2; role A { multi method gist { "A!" }; multi method gist (B:) { "B!!" } }; say (2 but A) ~~ B;
camelia rakudo-moar 85c4c0: OUTPUT«True␤»
grondilu ^see?
jnthn Hmm, interesting. 14:19
dalek line-Perl5: 6a57058 | moritz++ | lib/Inline/Perl5.pm6:
be a bit more idiomatic
14:20
line-Perl5: 964a9cb | moritz++ | lib/Inline/Perl5.pm6:
Use a native int for iterating

it might be a bit faster
Woodi hallo #perl6 :) 14:21
jnthn grondilu: Yeah, that one surprises me a bit. I mean, I know it wil pick the subset apart into a nominal part and a constraint part.
grondilu: I *think* it could be a bug that you don't get B there. I can't think about a bunch of stuff that happens, but none of it seems to explain the B candidate not winning. 14:22
Woodi it's good shellbleed was uncovered now :) but seence ~2001 when libresolver from always-buggy-BIND DNS soft was uncovered I just assume all things are remote hackable :) 14:25
and, sadly, perl5 is not exception...
but I have perl6-redis library a bit unrotted, I need to put it on github or something to share ? 14:27
jnthn Woodi: Github is the place most modules live
nine moritz++ # cleaning up 14:28
Woodi sorry, I just need to learn git usage... i have git cloned repo on disk but not in github ? i need to clone from source on github and then somehow merge local changes ? 14:29
moritz Woodi: does the repo already exist on github? 14:30
Woodi not on my account
moritz Woodi: then you should probably fork it into your account on github 14:31
Woodi: and then in your local copy, run 'git remote add woodi <url to your github repo>'
Woodi: and then you can 'git push woodi master', for example, to push your local master branch to your new github repo 14:32
dalek kudo-star-daily: 6b5b81d | coke++ | log/ (15 files):
today (automated commit)
Woodi that's a moment when incantations starts :) ok, i will try. thank you very much :)
dalek line-Perl5: 0762b31 | moritz++ | lib/Inline/Perl5.pm6:
hide handle_p5_exception from backtraces
line-Perl5: d6fe199 | moritz++ | lib/Inline/Perl5.pm6:
micro optimizations

I think that return at the end of a routiine is not optimized out
14:34 Alula left, Alula joined 14:38 kaare_ joined, sqirrel_ joined 14:40 rurban left
nine moritz: regarding d6fe199: as Inline::Perl5 is bound to be slow in any case I'm not sure if reducing readability for slightly better performance is really worth it. 14:41
moritz nine: if you find it less readable this way, feel free to revert it 14:43
dalek nda: 2a0f08f | (Tobias Leich)++ | lib/Panda/ (3 files):
use $*DISTRO.is-win instead of $*OS

The usage of $*OS was buggy anyway because it gives "mswin32" instead "MSWin32" nowadays.
14:44
moritz nine: I'm quite used to the last-value-returned thing
nine moritz: missing explicit return statement is a level 5 (highest) issue in perlcritic. Mostly because it's often surprising what ends up as being the last value evaluated. 14:45
But I better get back to fixing those bugs I just discovered ;) 14:46
14:47 muraiki left, kurahaupo left 14:48 SamuraiJack_ left
timotimo i seem to recall FROGGS worked on "remove return at the very end of a statementlist" optimization 14:48
dalek nda: 51fc726 | (Tobias Leich)++ | lib/Panda.pm:
create tempdir so we do not rely on git doing it

Seems like git on windows does not want to do it, so we do instead.
14:49
FROGGS timotimo: no...
I just stripped it from some internal subs/methods :o)
I've never implemented an optimization, really
timotimo oh 14:50
it kind of sounds like a simple optimization to do, no?
jnthn I thought somebody did it... 14:51
Maybe it was moritz++? :)
14:52 muraiki joined
nine jnthn: if it were moritz, he wouldn't have stripped the return from Inline::Perl5's methods ;) 14:53
jnthn oh...good point
<== tired :)
moritz I'm sure it was discussed a few weeks ago
dalek ar: 7b959aa | (Tobias Leich)++ | modules/panda:
use a panda that also works on windows
moritz and I mentioned that it has to be aware of lexical overrides of &return 14:54
m: my &return = -> $x { $x * 2 }; sub a { return 21 }; say a
camelia rakudo-moar 85c4c0: OUTPUT«42␤»
14:54 SamuraiJack joined
timotimo .tell japhb when we are fast enough or use a sufficiently high --enough-time, won't the benchmarks that do native integer loops overflow their counter and infinitely loop? 14:58
yoleaux timotimo: I'll pass your message to japhb.
jnthn timotimo: On 64-bit? 14:59
14:59 mberends left, brrt joined
jnthn timotimo: I think I once calcuated how long it'd take for a C program doing x++ on a 64-bit integer to overflow 15:00
15:00 kurahaupo joined
nine Could there be some limit to levels of callbacks NativeCall survives? 15:01
15:01 ghostlin_ left
brrt i think i tried that too and it's far longer than you would imagine 15:02
jnthn timotimo: And, uh, I'm pretty sure that unless anti-aging technology comes a long way we don't need to worry about it during our lifetimes :P
timotimo OK :) 15:03
15:03 treehug88 joined 15:04 bartolin left, ghostlin_ joined 15:05 telex left, kjs_ left 15:06 telex joined, sqirrel_ left
leont Hehe. Reminds me of certain cryptographic cases, where "we couldn't brute force this if all atoms in the universe were trying a million keys per second until the heat-death of the universe" 15:08
timotimo right, that's a thing
jnthn It's not *that* big a value, but it's quite some orders of magnitude beyond where we need to be worrying about perl6-bench overflowing it :) 15:09
dalek ar: b79eb13 | (Tobias Leich)++ | tools/build/panda-state.p6:
just try to mkdir (in case it exists)
15:10
jnthn FROGGS: Does that fix the annoying long-standing windows panda bug I occasionally see? :)
FROGGS jnthn: yes, panda actually works now :o) 15:11
15:11 denis_boyun_ left
PerlJam I don't know what optimizations have been done this week, but whatever it is, is awesome 15:12
15:12 denis_boyun_ joined
FROGGS jnthn: and it knows what is installed, so it won't reinstall shipped modules just because 15:12
PerlJam: there were any?
PerlJam I have a one-liner that processes a large file. When I ran it earlier in the week it took 10 minutes. Today I ran it again (because I wanted to see the difference between with jit and without jit) and without jit it took ~4 minutes. 15:13
with jit its just shy of 3 minutes
FROGGS that might have been lizmat++, though I'm not sure :o) 15:14
PerlJam yeah, I think so too
lizmat PerlJam: you might want to sprinkle in :eager if you're using lines or words :-)
moritz FROGGS++ optimized match object creation, no? 15:15
FROGGS hehe, well
moritz and jnthn++ optimized Array.push 15:16
FROGGS that did not improve anything... .MATCH is not slightly slower than before
now*
damn fat fingers
15:16 brrt left
PerlJam well, my one liner is using slurp, comb, match, map, and substr. Something in there got faster. 15:16
15:18 denis_boyun_ left, kurahaupo left
lizmat PerlJam: I would think match then, in that case 15:18
15:18 SamuraiJack left
b2gills Is there a good reason `* + *` doesn't just return `&infix:<+>` 15:22
PerlJam b2gills: what do you mean "return"? 15:24
15:24 Kaliber46 joined
moritz b2gills: there's a reason, but probably not a good one: the type should be WhateverCode, not Sub 15:25
b2gills: also, &infix:<+> is a multi that supports separate arities; *+* must accept exactly two arguments 15:26
m: say &infix:<+>()
camelia rakudo-moar 85c4c0: OUTPUT«0␤»
moritz m: say &infix:<+>(42)
camelia rakudo-moar 85c4c0: OUTPUT«42␤»
moritz m: say &infix:<+>(20 + 22)
camelia rakudo-moar 85c4c0: OUTPUT«42␤»
moritz m: say &infix:<+>(20, 22)
camelia rakudo-moar 85c4c0: OUTPUT«42␤»
jnthn Those are quite good reasons :) 15:27
b2gills moritz: I thought about that immediately after posting.
jnthn I don't think we cache whatever closures
and compile a differnet one each time
Which is perhaps vaguely naive at first, but probably means the dynamic optimizer has a good shot at inlining. 15:28
(Since types at a given usage site tend to vary little)
So perhaps we needn't worry about the cost of the extra level of call :) 15:29
15:31 BenGoldberg joined 15:32 kurahaupo joined
timotimo t.h8.lv/p6bench/2014-09-26-many_rak..._nop5.html - updated to go back to january 15:33
15:35 ssutch_ left, kjs_ joined, FROGGS left
b2gills I think in something like `@array.map( sub ($a,$b) returns Int { $a + $b } )` map could check the .returns method of the sub to help determine that the resultant list would have the same .infinate value as the @array. 15:37
and it would be good if `@array.map(*+*)` could too. 15:41
15:43 Kaliber46 left 15:51 tinyblak joined 15:53 kjs_ left
moritz b2gills: that's not quite sound reasoning 15:53
b2gills: and infinite list can be mapped with a sub that returns Int, and returns a finite list by calling "last" 15:54
gtodd see RT #122810 15:56
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122810
gtodd moritz: I wrote a "test" that works for that bug
15:57 FROGGS joined
gtodd moritz: well something that fails for the old build and works for post jnthn fix to not flatten args to bags 15:58
errrm Bags.new 15:59
moritz gtodd: does it need anything more than the bag() call?
b2gills moritz: in the general case yes. Perhaps the compiler can annotate the sub indicating it doesn't appear to do things like that
16:01 Mso150_u joined, fhelmberger left 16:03 Ben_Goldberg joined 16:04 ghostlin_ left 16:05 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
gtodd moritz: it builds a big array as per your hint/recipe from yesterday ... but I have no idea where to put it or if the test is really needed in this case or not ... since it fails which then just confirms his fix (??) maybe roast/S03-operators/bag.t ? 16:05
b2gills moritz: Perhaps it is rather far off before such a minor optimization is worthwhile 16:06
gtodd moritz: I had something like this:
lives_ok { (bag @large_arr.words).pairs.sort(*.value).reverse[^5] } , "large array goes into a bag";
with .... my @large_arr = ('a'...*)[^50000] ; in there somewhere 16:07
16:07 bjz left, bjz joined 16:09 ssutch_ joined
[Coke] github.com/mrhdias/perl6-GD/issues/3 - GD build busted. 16:10
gtodd moritz: here it would fail at ^49151 ... largish, but I thought the test should really be more to see that Bags can handle a large array as args .... now that jnthn made ir so Bag args aren't flattened that fixes the issue but it's not what we'd want test for. This issue could have been Moar backend related (this wasn't breaking under jvm or parrot ) 16:12
16:13 jerrycheung left
FROGGS [Coke]: mrhdias is not very active btw 16:13
16:15 kaleem joined
gtodd moritz: I will see if I can simplify the failing case ... and then I guess make a pull request on bag.t ? 16:16
moritz gtodd: or push it directly... what's your github username? 16:17
gtodd grtodd likely :-) 16:18
moritz gtodd: then you can already push directly to perl6/roast 16:20
gtodd ok thanks 16:22
16:25 erkan left 16:27 tinyblak left
[Coke] (duplicate RTs) there i s a way to combine multiple RTs into a single ticket. 16:28
16:28 yeahnoob left, pmurias left, lsm-desktop left
moritz "Links" -> "Merge into" 16:30
16:31 kaare_ left 16:39 lsm-desktop joined 16:40 tinyblak joined, SamuraiJack joined 16:43 virtualsue left 16:48 ab5tract joined
ab5tract ahoy #perl6! 16:48
FROGGS hi ab5tract
ab5tract i'm currently hacking on a small HTML parsing library 16:49
and just wanted to double check that i am not duplicating efforts 16:50
FROGGS I am working on XML::LibXML wich can do that too 16:51
16:51 Psyche^ left
tony-o i started on an XML::LibXML because i saw a squirrel ;-) 16:52
and quit because^
16:52 Psyche^ joined
FROGGS *g* 16:52
tony-o there is a pp6 HTML Parser tho
and i'm happy to take pulls ab5tract
or if you rewrite it better i'll transfer the repo to you 16:53
ab5tract: github.com/tony-o/perl6-html-parser-xml 16:54
dalek ast: 6cb7067 | moritz++ | S03-operators/misc.t:
fix test plan for S03-operators/misc.t

a test was removed in 2b143b6f, so need to decrease the plan too
[Coke] 12:54 < [Coke]> yay, GD fixed. 16:56
12:55 < [Coke]> looks like someone else submitted a patch for one of the issues back on Jun 10
12:55 < [Coke]> we should probably change the modules version to point elsewhere, I guess.
12:56 < [Coke]> or talk it about it, anyway
16:57 erkan joined 16:58 erkan left 16:59 DarthGandalf left, vendethiel joined 17:01 erkan joined, erkan left, erkan joined, kurahaupo left, sam__ joined, DarthGandalf joined
[Coke] FROGGS: if someone reports a bug to star instead of RT, I'd probably move the bug myself and make them a watcher and put a reference in the star ticket. 17:02
(ideally) ; we don't make it easy for people to figure out where to go.
(I mean, unless it's already someone we know
17:03 ssutch left
FROGGS [Coke]: I had done that if it was somebody unknown/new, aye 17:03
ab5tract tony-o: thanks for the link
i have something slightly different in mind 17:05
tony-o whatre you up to?
ab5tract i was thinking of a simple interface that can be used for testing or otherwise munging about with html structures 17:07
tony-o what kind of testing?
timotimo .tell japhb do you have a good idea for a design that'd let us cover moarvm rakudos before the configure.pl unification? 17:08
yoleaux timotimo: I'll pass your message to japhb.
ab5tract you could use it to wire up content tests, presence-of-tags tests, attribute values, etc
tony-o github.com/supernovus/perl6-xml-query/
there is that one, it sounds like yours is slightly different tho
i wrote the html parser so i could plug in html to that module ^ 17:09
ab5tract yes, but not much i think
ah, i see :)
tony-o then i wrote web scraper so i could scraper the webs :-)
17:10 colomon joined
tony-o github.com/tony-o/perl6-web-scraper 17:10
ab5tract nice one 17:11
tony-o xpath would be a much welcomed module
ab5tract i have a similar plan
tony-o whether it was PP or lib
FROGGS XML::LibXML would have xpath support
ab5tract sorry, i'm not grokking PP yet 17:12
tony-o pure perl
ab5tract ah
tony-o FROGGS: forgot about that,
vendethiel tried to parse XML yesterday using p6, but eventually fell back to ruby... 17:13
ab5tract FROGGS: how is that going? NativeCall looks super slick, but i haven't gotten a chance to use it yet
vendethiel though all my other text-processing scripts of that day were written in p6.
FROGGS ab5tract: nicely, look at: 17:14
github.com/FROGGS/p6-XML-LibXML/bl...Structs.pm
17:14 tinyblak_ joined
FROGGS and github.com/FROGGS/p6-XML-LibXML/bl.../Parser.pm 17:14
17:14 mberends joined
FROGGS I wanna make 1:1 bindings in the CStructs.pm without much Perl 6 magic, and all the sugar in their packages 17:15
or rather classes
ab5tract makes sense to me
tony-o does that work so far ?
dalek ast: d720ab5 | (Graham Todd)++ | S03-operators/bag.t:
Ensure bag() can take a large Array as argument.
FROGGS ideally one could autogenerate the CStructs.pm, at least partial
17:15 tinyblak left
FROGGS tony-o: I think so 17:15
tony-o the struct thing was failing when i tried but that was months ago 17:16
FROGGS tony-o: nowadays we have nativecast support, that helps a lot
tony-o ah 17:17
ab5tract man, NativeCall is wild. perl 6 is totally 'butterflies all the way down'
FROGGS yeah :o)
ab5tract loving it
FROGGS I really wanna steal more stuff from JNI/JNA
ab5tract i program p5 for my day job
and i love it too
but perl 6 is really special
FROGGS like adding .alloc and .free to OpaquePointer
ab5tract "perl without borders"
FROGGS that's an easy task... but time is limited 17:18
tony-o lol
dalek rl6-most-wanted: 2e991de | tony-o++ | most-wanted/modules.md:
Update modules.md
17:20
timotimo FROGGS: but for that you'd need the sizeof the thing you're representing
which is, to my knowledge, what we wanted to avoid doing in the first place
gtodd moritz: FROGGS: timotimo: hope that was ok --> github.com/perl6/roast/commit/d720ab5371 just trying to learn the process without breaking anything 17:21
FROGGS timotimo: aye
timotimo m: say ("a"...*)[^10]
camelia rakudo-moar 85c4c0: OUTPUT«a b c d e f g h i j␤» 17:22
FROGGS timotimo: NativeCall can unpack into a CStruct, so we must be able to calc its size
timotimo FROGGS: other than that, you could just use malloc and free. except if you're in C++ land ...
what? it is? how is that even possible without the .h file?
gtodd plus I want masak's cool wordcount golf to continue to work on massive numbers of text files ;-) 17:23
timotimo gtodd: at first glance, that commit looks good
fwiw, i've committed at least 20 separate commits that'd break the plan >_<
17:23 SamuraiJack left
FROGGS timotimo: we never have the .h file when we have a native sub that unpacks into a CStruct 17:24
timotimo em, what?
how does a native sub unpack? into a cstruct? huh?
FROGGS class Foo is repr('CStruct') { has int8 $foo } <-- we know how this is laid out in memory 17:25
tony-o does ruby do logging modules right? is there a good perl one i can port to p6?
FROGGS we know the offsets for every attribute
japhb botsnack
yoleaux 14:58Z <timotimo> japhb: when we are fast enough or use a sufficiently high --enough-time, won't the benchmarks that do native integer loops overflow their counter and infinitely loop?
17:08Z <timotimo> japhb: do you have a good idea for a design that'd let us cover moarvm rakudos before the configure.pl unification?
timotimo FROGGS: yeah, but if we have a "is repr('Opaque
Pointer') the point to it is that we don't have the has int8 $foo
it's opaque, that's what makes it nice to have 17:26
17:26 ssutch_ left
FROGGS timotimo: that's true 17:26
timotimo but it's also impossible to allocate an instance of that thing without knowing the size itself
FROGGS timotimo: but do we talk about that right now?
timotimo i thought you were talking about that?
FROGGS no
timotimo you wanted to add .alloc and .free to OpaquePointer
FROGGS true
17:27 kaleem left 17:28 kaleem joined
FROGGS pseudodcode: class Foo is repr('CStruct') { has int8 $foo }; my $p = OpaquePointer.malloc( Foo.size-of ); then pass it around or so 17:28
japhb timotimo: If something manages to overflow a 64 bit int during a benchmark run, I think we'll be over the moon with joy. Remember, if you were running the benchmark on a CPU core that could do 2 ** 32 ops per second, you'd still take 2**31 seconds to overflow a signed counter. That's a LONG DAMN TIME. Now 32-bit testing ... yeah, it's plausible we could get a native empty loop running so fast we'd have troubles with overflowing 2 ** 31.
17:28 kaleem left
japhb timotimo: I don't understand your other question. Context? 17:29
FROGGS timotimo: and .free in case we get a piece of mem from C land *we* are responsible for
17:30 ssutch joined
timotimo japhb: versions of rakudo-moar before 2014.01 require a different set of build steps to compile 17:30
japhb Oh, I see, yes, that's an issue. 17:31
Are versions before 2014.01 sufficiently feature-complete as to be able to run the whole benchmark suite?
gtodd timotimo: ok thanks 17:32
japhb (That was a known issue, BTW, I just figured 2014.01 was a defensible stake in the ground anyway, so it got deprioritized)
FROGGS timotimo: also stuff like memset might be useful to have
17:32 prevost left
FROGGS timotimo: though, I don't wanna add 100 moarvm+nqp ops for that... 17:32
gtodd everyone has a good weekend ... it's supposed to be 25+ degrees and sunny here :) 17:33
p6++
timotimo japhb: not 100% sure
gtodd o/
17:33 gtodd left
ab5tract se of uninitialized value of type Any in string context in any at src/Perl6/World.nqp:1702 17:33
does this error look familiar to anyone? 17:34
timotimo FROGGS: C compilers already have stuff like "this code looks like it could be replaced my a memset"; we could do this in the jit, too.
japhb timotimo: you can use bench to extract, then go in and compile manually, then continue testing as normal. All that's borken for old versions is `bench build`
FROGGS timotimo: I'll make sure to ask about details before starting to work on that then :o) 17:36
for*
17:38 Alina-malina left
timotimo ok 17:38
17:39 Alina-malina joined 17:46 colomon left 17:47 lichtkind joined
ab5tract tadzik++; #thanks for rakudobrew ! 17:48
timotimo aye, rakudobrew is nice 17:50
17:51 virtualsue joined 17:52 colomon joined 17:54 FROGGS[mobile] left
timotimo japhb: that's a good idea, i'll do that later today and make some older benchmark runs available in the history comparison thingie 17:55
maybe i'll add parrot, too
ab5tract timotimo: i think parrot would be cool to see on there 17:56
are you covering niecza?
japhb (disentangled, composable UI design)++
timotimo no, i couldn't build it the last time i tried
AFK for a bit
ab5tract :(
japhb ab5tract: niecza had been working for quite a while, but I think at some point it stopped working on newer mono/.NET
ab5tract if it were working, how far behind rakudo is it at this point? 17:57
dalek href="https://modules.perl6.org:">modules.perl6.org: ea26fb6 | asb-cpan++ | web/ (2 files):
added search box and legend

  * added some sort of limited search box using lustjs
  * added icon legend at the bottom of the table
href="https://modules.perl6.org:">modules.perl6.org: 22c9446 | asb-cpan++ | web/README:
added some details about the github token

I didn't know about GitHub tokens. I do now and as the script requires such a token, we should mention it somewhere.
modules.perl6.org: 713089c | moritz++ | web/ (3 files):
modules.perl6.org: Merge pull request #4 from asb-capfan/master
ab5tract for a while it was ahead in a few areas
japhb There are a few things it still does better than Rakudo, but I'd say it would be behind on quite a few things -- probably could do most of the perl6-bench suite, though.
(And current perl6-bench is much more resilient to a compiler failing individual tests, as long as it doesn't infiniloop)
ab5tract that's good :) 17:59
i'm really interested to see the historical data
the evolution of rakudo over time, as told through benchmarks :) 18:00
japhb :-)
PerlJam sounsd like a good talk for YAPC or something :)
maybe a lightning talk
ab5tract PerlJam: i am stewing on a presentation about the history of perl 18:01
through the context of "perl" as i understand the philosophy, community, etc 18:02
so being able to have such an illustration would be great when discussing specifically the 'rakudo' corner of the perliverse
(oh, and i count python, ruby, and php as all perls ;) 18:03
lichtkind jnthn: ping
nwc10 lichtkind: I believe that he's gone to bed. 18:04
lichtkind thanks
PerlJam speaking about benchmarks .... I remember a time I was leery of Perl 5 because it was slower than Perl 4. That seems so ridiculous today :)
ab5tract won't spend much time on them, but discussing them provides a very smooth segway into perl 6 syntax ;)
lichtkind are there mahor changes upcoming the next weeks ?
moritz lichtkind: I know that lizmat++ is working on some IO changes 18:05
lichtkind: dunno if they qualify as "mahor"
ab5tract ah, i was not around for that transition! i found perl around 5.004, when i was 15 ... my the time has passed ... 18:06
18:09 lichtkind left 18:10 lichtkind joined
[Coke] FROGGS++ # thanks for bugmongering 18:10
timotimo actually, 2013.12 didn't have moar support
japhb timotimo: Ah, I thought you were looking into that past to compare against old r-j or r-p 18:11
timotimo yeah, i thought so, too ... 18:12
18:12 sqirrel_ joined
timotimo well, anyway ... i'll do parrot and jvm runs for this evening 18:12
i'll have a guest crash on my couch over night, so i won't be running the desktop over night
japhb heh 18:13
So might as well spin up the CPUs and provide a space heater for your guest? ;-)
timotimo sadly it also provides a space noisifier
japhb (quiet computing)++ 18:14
japhb fondly remembers the sudden piece when he got his first workstation with shock mounted everything and wide-bore slow spinning fans ... aaaah. 18:15
*peace
timotimo oooh 18:16
dalek ar: 2a32ff7 | (Tobias Leich)++ | docs/announce/2014.09.md:
add release announcement for 2014.09
18:22
ar: 5a050f0 | (Tobias Leich)++ | README:
update release number in README
18:24
18:25 molaf_ joined
timotimo building so many rakudo-parrots now ... 18:26
18:26 gfldex joined
ab5tract it seems that on moar i cannot do this when defining a class: has $!answer is Bool; 18:28
18:28 molaf left
ab5tract nor in method signatures 18:28
am i doing something wrong or is it broken?
FROGGS m: class Foo { has $!answer is Bool; } 18:29
m: class Foo { has Bool $!answer } 18:30
18:31 xinming left
camelia rakudo-moar 85c4c0: OUTPUT«(timeout)» 18:31
FROGGS m: say 1
camelia rakudo-moar 85c4c0: OUTPUT«1␤»
FROGGS m: class Foo { has Bool $!answer }
camelia ( no output )
FROGGS m: class Foo { has $!answer is Bool; }
camelia rakudo-moar 85c4c0: OUTPUT«use of uninitialized value of type Any in string context in any at src/Perl6/World.nqp:1702␤␤Unhandled exception: No exception handler located for warn␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:print…»
ab5tract that's the one
FROGGS yeah... has Bool $!answer works though
ab5tract ok
FROGGS is 'has $!answer is Bool' supposed to wokr? 18:32
work*
ab5tract FROGGS: perhaps not. i thought i had seen it somewhere though 18:33
lizmat lichtkind: the main changes in the coming weeks are mainly under the hood 18:34
1. .IO now gives an IO::Path rather than an IO::Handle 18:35
FROGGS under the hood but not "unter Dach und Fach" yet :o)
lizmat 2. $*SPEC contains the default IO::Spec::xxx class for path munging 18:36
3. IO::Path object contains the $*SPEC at creation
4: IO::Handle contains the IO::Path at creation
5. IO::FileTestable role will be usurped by IO::Path 18:37
6. file tests on IO::Handle are handled by the IO::Path in it
18:37 dwarring joined
lizmat the result: faster file tests, faster IO::Handel.get and .getc (the won't need to check to open the handle at each invocation anymore) 18:38
18:39 sqirrel__ joined
lizmat FROGGS: no, I'm currently looking at a bug that makes perl6 build ok, but makes it hang on startup :-( 18:39
18:39 FROGGS_ joined
FROGGS_ :/ 18:39
18:40 FROGGS left
FROGGS_ I don't like this kind of bugs... 18:40
I prefere a nice big explosion
lizmat neither
yup
18:40 FROGGS_ is now known as FROGGS, AndChat-458964 joined, sqirrel_ left, Sqirrel left
lizmat also, I found out that "handles" doesn't work in the settings :-( 18:41
ab5tract FROGGS: on reflection, i don't think 'has .. is .. ' is in the spec 18:42
FROGGS ab5tract: yeah, would be weird... 'is' outside of a package declaration is just a trait (a subroutine) and not about inheritance or types in general 18:43
ab5tract so: just me doing it wrong then
right makese sense
FROGGS like it would be confusion to mix it like: has $.foo is rw is Bool
ab5tract FROGGS: yes that's it! i saw that syntax and assumed i could also use it for types 18:44
makes sense in attribute context it doesn't work
18:50 bartolin joined, Pleiades` joined
leont lizmat: filetests sometimes make sense without an IO::Path 18:51
Like in fstat and such
18:51 Pleiades` left
lizmat IO::Path is just an encapsulation of methods, really 18:52
18:52 Pleiades` joined
lizmat we don't want fstat just on strings 18:52
"foo".IO.e is the shortest we can offer
lichtkind lizmat are there also other changes?
lizmat there's a new .all method on IO::Path
that allows you to chain file tests: 18:53
"foo".IO.all( <r w x> ) would be true for a file that you can read, write and execute
actually: "foo".IO.all( <f r w x> )
BenGoldberg What the f? 18:54
lizmat to make sure it's a "file"
and not a "directory" :-)
"foo".IO.all( <d r w x> ) would be true for a directory with full access
BenGoldberg Ok. I just *had* to say that, though, it just came out... ;)
18:55 psch joined, Pleiades` left
leont Apparently one of the reasons for PHP to skip version 6 is «Version 6 is generally associated with failure in the world of dynamic languages. PHP 6 was a failure; Perl 6 was a failure» 18:55
18:56 Pleiades` joined
leont :-/ 18:56
japhb lizmat, I thought leont was talking about wanting to do: my $foo = open("FOO"); say so $foo.all(< f r >);
leont yes, what japhb said
lizmat well, that will work too
leont It makes sense for IO::Handle to be FileTestable but not a Path 18:57
psch hi #perl6 o/
lizmat because under the hood, the open() creates an IO::Path for you to be put inside the IO::Handle
leont Some handles will not have a path, for example sockets
lizmat why wouldn't a Path be FileTestable ?
[Coke] Anyone mind if I make my fork the "official" one in the ecosystem? We've had some delays in original author's response to tickets. (pull request fixing a bug unfixed since June)
er, for "GD"
japhb lizmat: OK, then how about: say so $*ERR.w 18:58
timotimo leont: being called a failure by the PHP community is a strange feeling
18:58 Pleiades` left
lizmat japhb: lemme check that 18:58
timotimo did they actually end up skipping version 6? 18:59
japhb lunch &
nine Darn...I think my Perl stack gets corrupted somewhere :/
[Coke] psch: hi
psch hi [Coke] 19:00
nine When doing P6 -> call P5 function -> call P6 method -> call P5 function the latter ends up calling a P6 method again although it should only return 1; 19:01
psch i'm still not settled, but wanted to drop by. moving is more troublesome than was expected.
FROGGS hi psch 19:02
psch hey FROGGS
lizmat m: say $*ERR.w
psch FROGGS: i've had a play with cglobals, and i'm impressed
camelia rakudo-moar 85c4c0: OUTPUT«Type check failed in binding $s; expected 'Cool' but got 'Any'␤ in sub substr at src/gen/m-CORE.setting:4043␤ in method is-absolute at src/gen/m-CORE.setting:14156␤ in method rel2abs at src/gen/m-CORE.setting:14271␤ in method rel2abs at src/gen…»
FROGGS psch: why impressed?
lizmat japhb: that *will* work in the future :-) 19:03
FROGGS psch: by the shortness of the patch?
:o)
psch FROGGS: because it works and i'm easily impressed :)
FROGGS *g*
psch i've played around with building an autocomplete capable REPL via gnu-readline bindings, but doing that completely in p6 land is slow and cumbersome 19:04
lizmat japhb: probably by poking a special IO::Path version into the IO::Handle.$!path slot
leont: I'm still working on integrating the sockets... suggestions welcome (see S16 and S32/IO) 19:05
19:10 Mso150_u_n joined, sqirrel__ left 19:11 Mso150_u left
timotimo psch: we need a lot more work to make the repl awesome 19:17
an almost fundamental re-think of the way we do the "pieces of code at a time" 19:18
psch timotimo: yeah, i was really just exploring
in a rather high-level, messy way
timotimo the "nested scopes" thing ... naaah
19:19 darutoko left
timotimo japhb: how do you feel about putting timestamps in front of the outputs of p6bench? 19:22
japhb timotimo: To give you an idea how it's progressing? 19:23
timotimo and how long things take and such
also to help figure out "is this hanging?"
"this one has been running for 10 hours now, i don't think it'll finish" etc
japhb No particular objection. I thought of something like that a while ago, realized I was just patching over a problem at the time (certain tests running egregiously long), and set about to make that better. But since I've plucked the LHF on that front, go right ahead 19:24
19:24 bjz left, bjz_ joined, ssutch left
timotimo mhm 19:25
actually ... how do you feel about printing status lines that overwrite themselves with \r whenever something changes?
because time -v spams enormously, but without -v it's not as much info as i'd like to have 19:26
lizmat timotimo: only if .t is true, though
timotimo that's for "is stdout a tty"?
19:26 kurahaupo joined
lizmat yes, if there is a human watching most likely 19:27
timotimo m: say $*OUT.t
camelia rakudo-moar 85c4c0: OUTPUT«Cannot find method 'isatty': no method cache and no .^find_method␤ in method t at src/gen/m-CORE.setting:15125␤ in block <unit> at /tmp/KMBQmTd11c:1␤␤»
timotimo :o
i get that locally, too 19:28
lizmat yup
I didn't change that yet, I don't think
"self.opened && nqp::p6bool($!PIO.isatty)" 19:29
japhb timotimo: Well, we could do the \r trick -- but then we have to do cleanup and trimming when the new line is shorter than the old. I avoided that in favor of simplicity. I still like the idea of just timestamps. Or perhaps turn verbosity into levels (-v, -v -v, etc. in Perl 5 parlance)
timotimo ah 19:30
japhb lizmat: re: stuffing a magic IO::Path into IO::Handle!path when the handle wasn't generated from a file seems like a serious design smell. When you can be checking r/w bits on pipes, sockets, and other beasties, pathed filesystems are just one case among many, not the primary case.
timotimo well, we could just have the "39/64 testing split_string_constant ..." in a line and below that we have a line that displays the current scale and the how many'th time we're running this exact iteration this is 19:31
lizmat japhb: then I suggest you have a look at S16 | S32/IO and comment :-) 19:32
nine Ok, I now reduced it to P6 -> call P5 function -> XS -> call P5 function which loops endlessly
lizmat so far, *nobody* has made *any* comment about it
timotimo ah, finally that test has advanced to the next one
lizmat japhb: I only know that the current implementation is a gnarly web of interdependencies
japhb timotimo: Sure, that could work -- but remember that you have to be careful not to let TTY/terminal emulator scrolling delays and stdio buffer flushing alter the timing of short runs, or you turn the left side of every graph to garbage. 19:33
lizmat and is most definitely sub-par performance wise (especially $handle.getc, which at the moment check whether the handle is opened or not *every* time)
timotimo oh, hmm.
japhb lizmat: My apologies. My work has been approximately as time consuming as jnthn's (this week I've simultaneously had oncall rotation, ticket duty, and performance reviews to write, so basically zero coding time at all, and precious little of *any* personal time until today.) 19:35
lizmat japhb: no need to apologize
there aren't many people in the luxury situation that I'm in...
japhb And I'm off on vacation for a few days after this, so ... I probably wouldn't be able to review until late next week.
True.
moritz bartolin++ # tests, closing lots of tickets 19:36
lizmat japhb: so, enjoy your vacation
colomon lizmat++
yoleaux 25 Sep 2014 20:09Z <moritz> colomon: the Nonogram failure you see seems to be a genuine MoarVM spesh+inlining bug
japhb I plan to. :-)
19:36 prevost joined
lizmat meanwhile I'll have leont and others preventing me from making a bigger mess of it than it already is :-) 19:37
dalek href="https://modules.perl6.org:">modules.perl6.org: 24c0a75 | moritz++ | web/build-project-list.pl:
copy js folder to the output folder
19:39 ssutch joined
dalek href="https://modules.perl6.org:">modules.perl6.org: 13d2664 | moritz++ | web/build-project-list.pl:
do not try to copy now-dead medals
19:43
ab5tract colomon: poke :) 19:45
19:45 Psyche^_ joined, Psyche^ left
colomon ab5tract: not a good time, alas. sorry! e-mail me at my id at gmail.com ? 19:46
ab5tract sure
colomon ab5tract++ 19:47
lizmat FROGGS: found the loop 19:49
initializing $*CWD needed $*CWD :-)
FROGGS *g* 19:50
mberends lizmat++
19:51 colomon left 19:53 ab5tract left
japhb There's something philosophical about needing to know where you are in order to figure out where you are .... 19:56
lizmat yeah, that was not lost on me... :-) 19:57
19:58 Ven joined
tadzik ab<TAB><TAB> :( 19:58
I missed satisfied customer
19:59 colomon joined
lizmat m: say nqp::cwd() 19:59
camelia rakudo-moar 85c4c0: OUTPUT«/home/p6eval␤»
lizmat p: say nqp::cwd()
camelia rakudo-parrot 85c4c0: OUTPUT«/home/p6eval␤»
lizmat huh, locally I get something else ? 20:00
*sigh* -e helps :-) 20:01
colomon also, isn't your directory path different? ;) 20:02
FROGGS lizmat: that sounds like it is time for something else :o)
lizmat :-) yes, perhaps
lizmat goes off for a fresh cuppa 20:04
20:10 xragnar_ joined, xragnar is now known as Guest95010, Guest95010 left, xragnar_ is now known as xragnar
lichtkind lizmat: thank you i hope we can have a talk the next days 20:11
20:11 Pleiades` joined
dalek ar: 5eadd16 | (Tobias Leich)++ | docs/announce/2014.09.md:
update release announcement
20:14
Ven .seen cognome
yoleaux I saw cognome 25 Sep 2014 21:55Z in #perl6: <cognome> lizmat++, I am trying to keep pace with your changes. In S32/IO.pod, should not the @text be slurpy?
lizmat FROGGS++
.seen cognome 20:15
yoleaux I saw cognome 25 Sep 2014 21:55Z in #perl6: <cognome> lizmat++, I am trying to keep pace with your changes. In S32/IO.pod, should not the @text be slurpy?
lizmat selfupping karma :-)
Ven take it :)
dalek kudo/nom: 1613b0b | (Elizabeth Mattijsen)++ | src/core/Env.pm:
Remove old parrot wart
20:16
[Coke] ^^ fixing that would get you more karam!
... karma.
lizmat
.oO( karamba karma! )
20:17
20:20 ssutch left, njmurphy joined
[Coke] ... ay karmaba. 20:20
tadzik ayy lamo 20:21
er, *
itz l 20:23
20:41 Ven left, kurahaupo left 20:46 colomon left, denis_boyun joined 20:53 denis_boyun left
FROGGS github.com/coke/rakudo-star-daily/...c0d8eaccae :o( 21:01
[Coke]: have you seen that already?
+===SORRY!===
+I see a .git directory here -- you appear to be trying
+to run Configure.pl from a clone of the Rakudo Star git
+repository.
21:02 rindolf joined
rindolf Hi all. Shanah Tovah & Gmar Hatimah Tovah to all Perl6ers. 21:02
FROGGS o/ 21:03
21:06 noganex_ left 21:09 muraiki_ joined 21:10 muraiki left 21:16 Ven joined, ssutch_ joined, noganex joined
[Coke] FROGGS: nope. that sounds new. 21:18
btw, github.com/coke/rakudo-star-daily/...-build.log would be a much easier to read version of "there's a problem" :) 21:19
note that when I build rakudo star, I believe I cheat slightly.
(at least, I did when it was just parrot)
[Coke] kicks off another build... 21:21
21:23 Mso150_u_n left
[Coke] ./bin/star.sh: 60: cd: can't cd to MODULES.txt 21:24
perl6 tools/build/panda-state.p6 >>MANIFEST
Looks like you broke it with 54b69eba8141785d1839ade4e161e7d06fb6a800 21:26
21:26 Mso150 joined
[Coke] Is there really a perl6 available in the build process at this point? 21:26
(if so, use the full path)
21:30 psch left 21:35 Mso150_l joined 21:37 Mso150 left 21:39 Ven left
rindolf FROGGS: what's up? 21:44
lizmat FROGGS++ just did a Rakudo * release, what did you do, rindolf ? 21:47
rindolf lizmat: I've posted to /r/writing about challenges facing me in my quest to become the next big author and got quite a few comments. 21:49
lizmat: and I also came to Emma Watson's defence on /r/TheRedPill. 21:50
People accused her of being a hypocrite.
lizmat I'm sure that Emma is really happy with that 21:51
rindolf bugzilla.mozilla.org/show_bug.cgi?id=981378 - and this bug got closed despite the fact that it's real. the mozilla.org people are unbelievable.
lizmat: don't know if she noticed. 21:52
I don't think she has a reddit.com presence.
She's active on Twitter and Facebook though.
21:54 telex left
lizmat people close bugs without looking at them all the time 21:56
the other day, that happened to FROGGS as well
21:56 telex joined 21:58 lichtkind left 22:00 ggoebel2 left 22:06 treehug88 left 22:08 bartolin left 22:11 gfldex left
lizmat sleep& 22:23
22:25 BenGoldberg left 22:44 crncosta joined 22:49 virtualsue left 22:51 Pleiades` left 22:54 jerrycheung joined 22:57 Pleiades` joined
grondilu std: my $x //= do { $x = 1; $x += rand }; say $x; # checking syntax 23:12
camelia std fc92e1e: OUTPUT«ok 00:01 144m␤»
23:38 nebuchadnezzar joined
tony-o there any known bugs with nativecall & moar? 23:39
==> Building NativeCall 23:40
Compiling lib/NativeCall.pm6 to mbc
===SORRY!===
No registered operation handler for 'nativecallglobal'
arnsholt I think global variables are only implemented on Parrot and JVM 23:42
[Coke] tony-o: you need a newere moar. 23:44
tony-o is that new in nativecall?
i had it installed months ago
[Coke]: building a new one now :-)
[Coke] months is a SUPER long time in moar development.
tony-o i rebuilt moar a few weeks ago 23:45
just not nativecall
[Coke] when you configure, try --enable-jit.
(unrelated, but faster)
weeks is probably only kind of a long time.
we don't have a tagging system yet where panda can grab the latest "approved" version for your rakudo or anything.
tony-o when i run perl Configure? I don't --enable-jit as an option 23:46
[Coke] one sec.
perl Configure.pl --gen-moar --moar-option=--enable-jit --gen-nqp --backends=moar
assuming you build from a rakudo checkout. 23:47
tony-o thank you
i am
[Coke]: that worked, ty 23:55
23:58 BenGoldberg joined