Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-31

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Alula joined #perl6
00:37 grettis joined #perl6
00:38 fhelmberger joined #perl6
00:54 legrady left #perl6
00:59 thou joined #perl6
01:16 erkan joined #perl6
01:16 erkan joined #perl6
01:44 TimToady m: say [=>] <a b c d>
01:44 camelia rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d"␤»
01:44 TimToady S-EXPR in a can...
01:45 TimToady m: say [=>] <a b c d>, Nil
01:45 camelia rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d"␤»
01:45 TimToady m: say [=>] <a b c d>, Mu
01:45 camelia rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d" => Mu␤»
01:46 TimToady if you want everyhing in the CARs
01:56 jfredett joined #perl6
02:04 hypolin joined #perl6
02:08 jack_rabbit joined #perl6
02:12 chenryn joined #perl6
02:33 dayangkun joined #perl6
02:39 davido__ joined #perl6
02:47 thou joined #perl6
03:07 gfldex joined #perl6
03:08 tinyblak joined #perl6
03:12 noganex_ joined #perl6
03:22 davido_ joined #perl6
03:52 vendethiel- joined #perl6
03:57 rmgk joined #perl6
04:06 mauke_ joined #perl6
04:07 anaeem1_ joined #perl6
04:29 chenryn joined #perl6
04:35 thou joined #perl6
04:37 tinyblak joined #perl6
04:49 Alina-malina joined #perl6
04:49 dj_goku joined #perl6
04:55 dj_goku I brought this up awhile back, but I want to take what is on rosetta code and add it to perl6/roast
05:07 chenryn joined #perl6
05:19 gtodd joined #perl6
05:22 kaare_ joined #perl6
05:24 anaeem___ joined #perl6
05:27 tinyblak joined #perl6
05:31 tinyblak_ joined #perl6
06:12 anaeem1 joined #perl6
06:15 moritz +1
06:24 thou joined #perl6
06:28 kaleem joined #perl6
06:39 fhelmberger joined #perl6
06:57 vendethiel joined #perl6
07:06 masak mornin', #perl6
07:07 timotimo http://blogs.perl.org/users/brad_gilbert/20​14/10/perl6-pi-and-continued-fractions.html
07:10 erkan joined #perl6
07:10 timotimo especially that last loop that wants to find out what the most precise rat representation of pi is should be much, much easier with a ...
07:12 timotimo but i don't understand the line "last unless $current.Rat"; probably has to do with the exact way pi-fraction is implemented
07:13 timotimo also, why start the calculation of pi-fraction from the start each time; should be doable with a lazy list, too
07:16 FROGGS joined #perl6
07:18 masak it's quite good code.
07:19 masak m: sub prefix:<1/>($x) { "it works!" }; say 1/ "test"
07:19 camelia rakudo-moar 315ec6: OUTPUT«it works!␤»
07:20 masak m: multi prefix:<1/>(Rational ::R $rat) { R.new($rat.denominator, $rat.numerator) }; multi prefix:<1/>(Int $integer) { FatRat.new(1, $integer) }; say 1/ 3/4; say 1/ 42;
07:20 camelia rakudo-moar 315ec6: OUTPUT«0.083333␤0.023810␤»
07:21 masak m: multi prefix:<1/>(Rational ::R $rat) { R.new($rat.denominator, $rat.numerator) }; multi prefix:<1/>(Int $integer) { FatRat.new(1, $integer) }; say (1/ 3/4).perl; say (1/ 42).perl;
07:21 camelia rakudo-moar 315ec6: OUTPUT«FatRat.new(1, 12)␤FatRat.new(1, 42)␤»
07:21 masak m: say (3/4).perl
07:21 camelia rakudo-moar 315ec6: OUTPUT«0.75␤»
07:21 timotimo ah, precedence too tight?
07:21 masak oh!
07:21 masak m: multi prefix:<1/>(Rational ::R $rat) { R.new($rat.denominator, $rat.numerator) }; multi prefix:<1/>(Int $integer) { FatRat.new(1, $integer) }; say (1/ (3/4)).perl; say (1/ 42).perl;
07:21 camelia rakudo-moar 315ec6: OUTPUT«<4/3>␤FatRat.new(1, 42)␤»
07:22 masak indeed.
07:22 masak timotimo++
07:22 darutoko joined #perl6
07:22 timotimo that's exactly what brad gilbert was worried about :)
07:22 masak heh :)
07:22 * masak .oO( unfounded, I tell you! unfounded! )
07:23 timotimo the rosettacode on continued fraction has a pretty sweet bit of code that makes a lazy list for the continued fraction
07:23 timotimo http://rosettacode.org/wiki​/Continued_fraction#Perl_6 - at the bottom of this section
07:24 timotimo mapping .($x) over the triangle-reduction of the composition operator is a bit brainfucky if you're not familiar with continued fractions :D
07:25 timotimo map { @a[$_] + @b[$_] / * } - this is supposed to create a WhateverCode for every step of the way?
07:25 masak stability as a deliverable -- http://blog.rust-lang.org/​2014/10/30/Stability.html -- interesting.
07:26 timotimo that is quite crafty, but close to "obscure", IMO
07:27 abraxxa joined #perl6
07:30 abraxxa joined #perl6
07:36 immortal joined #perl6
07:47 virtualsue joined #perl6
07:47 rindolf joined #perl6
07:49 Sqirrel joined #perl6
07:51 masak timotimo: hm yes. not so obvious, IMO.
07:52 jack_rabbit joined #perl6
07:56 [Sno]_ joined #perl6
07:57 [Sno]_ joined #perl6
08:11 rindolf joined #perl6
08:12 thou joined #perl6
08:19 gfldex joined #perl6
08:26 denis_boyun_ joined #perl6
08:28 sergot hi o/
08:31 tgt joined #perl6
08:37 FROGGS hi sergot
08:38 FROGGS sergot: do we want to start working on server support based on HTTP::UserAgent code?
08:38 FROGGS because... HTTP::Easy is not that reliable
08:38 FROGGS nor fast...
08:39 zakharyas joined #perl6
08:51 sqirrel_ joined #perl6
08:55 masak hi sergot
08:59 timotimo i'd also like to find out at what places in the server code and farabi6 itself we can apply async i/o and concurrency
09:02 grondilu joined #perl6
09:02 grondilu say Blob.new but role {};
09:02 grondilu m: say Blob.new but role {};
09:02 camelia rakudo-moar 315ec6: OUTPUT«This REPR cannot change type␤  in any mixin at src/gen/m-Metamodel.nqp:1178␤  in sub infix:<but> at src/gen/m-CORE.setting:18615␤  in block <unit> at /tmp/ndgTcgM7NT:1␤␤»
09:02 brrt joined #perl6
09:03 grondilu p: say Blob.new but role {};
09:03 camelia rakudo-parrot 315ec6: OUTPUT«Representation does not implement change_type␤  in any mixin at gen/parrot/Metamodel.nqp:1173␤  in sub infix:<but> at gen/parrot/CORE.setting:18736␤  in sub infix:<but> at gen/parrot/CORE.setting:18731␤  in block <unit> at /tmp/DzTxL_ZNoI:1␤␤»
09:03 grondilu n: say Blob.new but role {};
09:03 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤       'Blob' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/camelia/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/camelia/niecza/src/STD.pm6 line 1147 (P6.comp_u…»
09:03 grondilu can't Blob be mixed in?
09:03 moritz nope
09:05 kjs_ joined #perl6
09:15 ptc_p6 joined #perl6
09:19 arnsholt r-m: say Blob.new.REPR
09:19 camelia rakudo-moar 315ec6: OUTPUT«VMArray␤»
09:20 arnsholt VMArray is the REPR that implements packed arrays. Adding fields to that wouldn't be a good idea, I think
09:26 bjz joined #perl6
09:30 rurban joined #perl6
09:33 mls joined #perl6
09:41 fhelmberger joined #perl6
09:45 davido__ joined #perl6
09:45 kjs_ joined #perl6
09:51 spider-mario joined #perl6
09:58 dalek Perlito: 629bbbe | (Flavio S. Glock)++ | TODO-perlito5:
09:58 dalek Perlito: Perlito5 - TODO update
09:58 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/629bbbed2e
09:58 kjs_ joined #perl6
10:00 thou joined #perl6
10:06 simcop2387 joined #perl6
10:14 dalek Perlito: 2417608 | (Flavio S. Glock)++ | / (2 files):
10:14 dalek Perlito: Perlito5 - parser - VSTRING tweak
10:14 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/2417608b39
10:15 dalek Perlito: 4d5d7c5 | (Flavio S. Glock)++ | TODO-perlito5:
10:15 dalek Perlito: Perlito5 - parser - VSTRING tweak
10:15 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/4d5d7c54ef
10:19 abraxxa joined #perl6
10:25 virtualsue joined #perl6
10:26 dalek Perlito: 1b95122 | (Flavio S. Glock)++ | TODO-perlito5:
10:26 dalek Perlito: Perlito5 - TODO update
10:26 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/1b95122682
10:26 onur joined #perl6
10:26 onur Hi guys. I am wondering why $fh.say ("something"); is different than $fh.say("something");
10:28 moritz onur: background is that in perl 5,   print (1 + 2) * 3  will print 3, not 9
10:28 moritz onur: that's because it allows whitespace between the routine name and the parameter list
10:29 pecastro joined #perl6
10:29 moritz onur: to avoid that pitfall, Perl 6 disallows the whitespace
10:29 masak parentheses-as-argument-list-container versus parentheses-as-grouping-circumfix-operator
10:30 onur I see, I am used to space after routine names. Need to change this habit.
10:31 masak yes :)
10:31 moritz though for methods, you can also the colon
10:31 moritz $fh.say: 'something'
10:31 moritz onur: also, Perl 6 uses it disambiguate subruotines and keywards
10:31 moritz *keywords
10:31 masak and for subs you can `say\    ("something");`
10:31 moritz m: sub if() { 42 }; say if()
10:31 camelia rakudo-moar 315ec6: OUTPUT«42␤»
10:32 masak m: say\    ("something");
10:32 camelia rakudo-moar 315ec6: OUTPUT«something␤»
10:32 moritz that way later-introduced keywords won't break your function calls
10:32 masak or just not use the parens, of course.
10:32 masak m: say    "something";
10:32 camelia rakudo-moar 315ec6: OUTPUT«something␤»
10:33 onur thats great. tyvm for explanation.
10:33 masak yvw.
10:34 sergot FROGGS: I'm in! :)
10:41 masak .tell lizmat getting a deprecation warning (in one of my in-production tools) for this line in the setting: https://github.com/rakudo/rakudo/​blob/nom/src/core/Grammar.pm#L16
10:41 yoleaux masak: I'll pass your message to lizmat.
10:42 lizmat messages, please
10:42 yoleaux 10:41Z <masak> lizmat: getting a deprecation warning (in one of my in-production tools) for this line in the setting: https://github.com/rakudo/rakudo/​blob/nom/src/core/Grammar.pm#L16
10:42 lizmat masak: what is the warning (more precisely?)
10:42 masak Method slurp (from IO::Handle) called at: src/gen/m-CORE.setting, lines 14114,14116
10:42 masak Deprecated since v2014.10, will be removed with release v2015.10!
10:43 masak Please use IO::Path.slurp instead.
10:43 sergot FROGGS: btw. can't we apply timotimo's PR (https://github.com/supernovus/​perl6-http-easy/pull/17/files) to the HTTP::UserAgent module as well?
10:43 ghostlines joined #perl6
10:43 prevost joined #perl6
10:45 masak I don't really see why one'd need to do open/slurp/close there instead of just slurp.
10:45 masak we don't even take in a filehandle, we take in a string.
10:45 lizmat testing this diff now:
10:45 lizmat -        my $fh    := open($filename);
10:45 lizmat -        my $match := self.parse($fh.slurp, |%opts);
10:45 lizmat -        $fh.close;
10:45 lizmat +        my $match := self.parse($filename.IO.slurp, |%opts);
10:45 masak lizmat++
10:46 masak is `$filename.IO.slurp` preferable to `slurp($filename)`?
10:46 lizmat Stage parse      : moar(22247,0x7fff7bf29310) malloc: *** error for object 0x7ff92d0efd10: pointer being freed was not allocated
10:46 lizmat *** set a breakpoint in malloc_error_break to debug
10:46 lizmat grrrr
10:46 masak :(
10:46 lizmat (sorry Grrrr)
10:46 lizmat sometimes this happens...  could be just a matter of adding some whitespace to not have that anymore
10:47 lizmat did I mention that rakudo feels less stable lately ?
10:49 masak dunno, but that's something to take seriously.
10:49 Grrrr :)
10:49 masak can this be traced back to some point?
10:49 FROGGS sergot: hmmm, but then we should also profile it... so that we can be sure it is a speedup for HTTP::UA
10:49 masak maybe even worth doing a bisect to try to find what introduced the instability.
10:49 lizmat but what to bisect?
10:50 FROGGS you cannot bisect a Heisenbug
10:50 lizmat Moar?  nqp?  rakudo?  we don't really have bisect tool that works on all 3 parts
10:51 lizmat FROGGS: this is not a Heisenbug: it reliably fails with the same error
10:51 FROGGS that's not the problem... the problem is that this is likely to be a bug in moarvm (or rakudo's extops), and you can't just build a very old moar
10:51 FROGGS (because current rakudo uses nqp::closefh_i, which is just a few days old)
10:52 FROGGS and that's just one recent example
10:52 FROGGS lizmat: to me a Heisenbug is something that changes its behaviour when you poke it...
10:53 FROGGS so when you add diagnostics to the setting for example, it is likely that it will vanish
10:53 lizmat to me a Heisenbug is different results *without* poking
10:53 FROGGS or remove unrelated stuff for that matter
10:53 FROGGS "In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behavior when one attempts to study it."
10:53 FROGGS wikipedia - always right :P
10:53 lizmat hehe
10:53 lizmat ok, fair enough
10:55 FROGGS if I had an osx box I'd probably build the setting under valgrind
10:55 FROGGS though, it could also mean that it works out in that combination
10:56 lizmat yeah
10:56 lizmat in this case, adding a dummy method, makes it work  :-(
10:56 dalek Perlito: 5946b0f | (Flavio S. Glock)++ | src5/lib/Perlito5/Javascript2/Runtime.pm:
10:56 dalek Perlito: Perlito5 - js - overload wip
10:56 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/5946b0f7ed
10:58 * lizmat gets valgrind
10:59 lizmat masak: slurp $filename will just do the $filename.IO.slurp for you
11:01 dalek rakudo/nom: 6fc0d5e | (Elizabeth Mattijsen)++ | src/core/Grammar.pm:
11:01 dalek rakudo/nom: Simplify .parsefile, spotted by masak++
11:01 dalek rakudo/nom:
11:01 dalek rakudo/nom: Please note there is a dummy method in there, as without it, the settings
11:01 dalek rakudo/nom: would not compile: instead you would get:
11:01 dalek rakudo/nom:
11:01 dalek rakudo/nom: Stage parse      : moar(22277,0x7fff7bf29310) malloc: *** error for object 0x7fda5c32bf40: pointer being freed was not allocated
11:01 dalek rakudo/nom: *** set a breakpoint in malloc_error_break to debug
11:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6fc0d5e980
11:06 sergot FROGGS: when do you want to start working on this HTTP server?
11:10 TuxCM joined #perl6
11:14 Ulti another second off of my little benchmark :) so that's a 12.5% speedup in a couple of days! I assume it's the changes I noticed to Grammar?
11:26 FROGGS sergot: maybe this evening?
11:27 lizmat alas, valgrind doesn't build for me  :-(
11:27 lizmat make[2]: *** No rule to make target `/usr/include/mach/mach_vm.defs', needed by `m_mach/mach_vmUser.c'.  Stop.
11:27 sergot FROGGS: ok :)
11:31 kurahaupo joined #perl6
11:38 kaleem joined #perl6
11:38 lizmat putting a symlink in /usr/include to XCode's mach dir, brings me a lot further
11:38 kaleem joined #perl6
11:39 lizmat now problems in linking  :-(
11:43 * lizmat gives up on valgrind for now
11:48 thou joined #perl6
11:49 bjz joined #perl6
11:58 tinyblak joined #perl6
11:59 dalek rakudo/nom: 4187566 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
11:59 dalek rakudo/nom: Initial version of IO::Dir
11:59 dalek rakudo/nom:
11:59 dalek rakudo/nom: Not used anywhere yet
11:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41875662b1
12:02 * timotimo didn't notice changes to Grammar
12:04 moritz we really are running in circles
12:04 tinyblak_ joined #perl6
12:05 moritz we had IO::File and IO::Dir objects in the path, and unified them to IO::Path; now we have IO::Path and IO::Dir again :-)
12:05 lizmat so, are you saying I should stop working on this ?
12:06 moritz I'm not
12:06 lizmat I mean, if we really are running in circles, it just show we haven't found the real solution yet
12:06 lizmat *shows
12:06 moritz I'm merely remarking that we had that in the past, and it turned out to be not beneficial
12:06 moritz maybe the version you are writing will be, though
12:06 lizmat what was the reason for getting rid of it in the past ?
12:07 moritz 1) there was a big overlap between IO::Path and IO::Dir
12:07 moritz 2) it was a hassle to always generate the right one (Path vs. Dir), with not much benefit
12:07 moritz 3) it put the hassle of creating the right type onto the user too
12:07 lizmat not much benefit from a perfomance point of view ?
12:08 lizmat fwiw, I would never put that in the hands of the user, unless they really want to
12:08 moritz I didn't benchmark it; I argued from a conceptual and ease-of-use PoV
12:08 lizmat I'm trying to make it easier to use *and* get better performance
12:09 lizmat the user need not know whether it is an IO::Dir or an IO::Path that got created
12:09 lizmat or returned from e.g. a dir()
12:09 moritz but if dir() returns a list of either, there should be a common role with the common functionality
12:10 leont joined #perl6
12:10 masak lizmat++ # doing really good work which incidentally has similarities to some good (but superseded) work from the past
12:10 lizmat not sure of a common role yet
12:10 lizmat but yes, I'm thinking of usurping the IO role for that
12:10 moritz both should support file tests, at the very least?
12:10 lizmat which would make perfect sense in light of the .IO coercer
12:11 lizmat yes, they wouild
12:11 lizmat of course, .d on IO::Dir would just be True  :-)
12:11 ggoebel111111118 joined #perl6
12:12 timotimo the common role would be like FileTestable?
12:12 moritz ... which lizmat++ killed at the start of the month :-)
12:13 lizmat yes, and which may get resurrected after all
12:13 lizmat shit happens  :-)
12:13 moritz well, IMHO they should both also have in common that there's an absolute path and a basename
12:13 moritz luckily, 'git revert' is very easy
12:15 lizmat absolute path I agree with, basename I'm not sure yet  :-)
12:15 lizmat indeed :-)
12:18 ghostlines joined #perl6
12:28 PerlJam greetings Perl people!
12:29 timotimo hello PerlJam
12:29 timotimo thanks again for doing the release :)
12:33 mauke_ joined #perl6
12:35 PerlJam timotimo: welcome :)
12:36 Woodi hallo #perl6 :)
12:36 PerlJam hey Woodi
12:36 masak gureetings, PerlJam, Woodi
12:36 timotimo saluton Woodi
12:36 Woodi is it possible in Perl 6 to use scalar as "base" of the class (like in Perl5) ?
12:37 timotimo "the class"?
12:37 masak Woodi: what do you want to accomplish? :)
12:37 Woodi in v5 you usually use blessed hash refference, but using plain scalar was possible too..
12:37 masak Woodi: what do you want to accomplish? :)
12:38 Woodi masak: just consider using strings as base for io::dir_or_something :)
12:38 Woodi but question is general
12:38 masak ah, so subclassing Str?
12:38 lizmat m: my $s = Set; $s.new(<a b c>).perl.say
12:38 camelia rakudo-moar 315ec6: OUTPUT«set("a","b","c")␤»
12:38 PerlJam masak:  IF you ever give the "goto" talk again (or just talk about your pause feature), consider mentioning pause as a testing or upgrade feature  (you pause the execution and transport the cont to another machine for testing or you can upgrade software in place while it's paused)
12:38 Woodi no, just give methods to scalar
12:39 kaleem joined #perl6
12:39 masak PerlJam: good point.
12:39 lizmat m: my $s = "Set"; ::($s).new(<a b c>).perl.say
12:39 camelia rakudo-moar 315ec6: OUTPUT«set("a","b","c")␤»
12:39 lizmat Woodi: something like that?  ^^
12:39 masak Woodi: my $s = "foo"; $s does role { method foo { say "OH HAI" } }; $s.foo
12:39 anaeem___ joined #perl6
12:39 masak m: my $s = "foo"; $s does role { method foo { say "OH HAI" } }; $s.foo
12:39 camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤»
12:39 Woodi lizmat: I do not know :)
12:39 masak Woodi: something like that? ^^
12:40 timotimo m: my $s = "foo"; $s.VAR does role { method foo { say "OH HAI" } }; $s.foo; $s = "bar"; $s.foo
12:40 camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤Cannot assign to an immutable value␤  in block <unit> at /tmp/aRXvvr19NP:1␤␤»
12:40 timotimo hmm.
12:41 Woodi masak: probably...
12:41 moritz m: my $s; $s := $s but role { method foo { say "OH HAI" } }; say $s.foo
12:41 camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤True␤»
12:41 moritz m: my $s; $s := $s but role { method foo { say "OH HAI" } }; $s.foo; $s = 42; $s.foo
12:41 camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤Cannot assign to an immutable value␤  in block <unit> at /tmp/pIy_t_P2h_:1␤␤»
12:41 moritz hah, it becomes immutable by mixing in
12:43 timotimo strange
12:44 moritz actually I'm surprise that containers don't have an optimized representation
12:45 timotimo as in: why doesn't this say "this repr cannot change type"?
12:45 mls joined #perl6
12:48 moritz m: my $s; $s := $s but role { method foo { say "OH HAI" } }; $s.foo; say $s.VAR.^name
12:48 camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤Any+{<anon>}␤»
12:49 moritz uhm
12:49 moritz it didn't mix into the container :(
12:49 timotimo ah, hmm
12:49 Woodi but about IO::thingies, what we realy want ?  end effect ~~ user experience...  becouse for me it looks we want to _allow_ users to program exactly like in sh and in Perl5. and _this_ destroys clean api design...
12:49 moritz m: my $s; say $s.VAR.^name
12:49 camelia rakudo-moar 315ec6: OUTPUT«Scalar␤»
12:49 timotimo so "but" will decont
12:49 timotimo which makes sense
12:50 * moritz notices he has no idea how VAR works
12:50 Woodi C and Java do not care about users like sh, they just give api, user must use it :)
12:50 moritz and there are reasons we want to program in Perl 6 instead of C and Java :-)
12:51 mls joined #perl6
12:51 Woodi moritz: that's not explaining anything ;)
12:52 masak no, it's more of a recommendation ;)
12:52 Woodi so sh like user experience ?  @a = dir "/etc"; for @a { chmode 000, $_ } # ? :)
12:53 lizmat dir("/etc")>>.chmod(0)
12:53 Woodi it's perlish way, I like it :)
12:53 ugator joined #perl6
12:54 PerlJam Woodi: Perl is glue still.  Also, TMTOWTDI is about not constraining the user into some paradigm.  IF the problem has more of a "sh-feel", then why not let the programmer have easy access to all the power Perl has to offer *and* let them code in a sh-way?
12:54 Woodi but that convenience sugar must be wrapper over c/java-like apis
12:54 Woodi in c you have struct DIR an you readdir it
12:55 lizmat Woodi: also on WIn32 ??
12:56 dalek rakudo/nom: 3f0f5ce | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
12:56 dalek rakudo/nom: Add chdir/open, handle //unc/
12:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f0f5ce1bf
12:57 Woodi lizmat: c is just an example....... we _create_ our own api...
12:57 moritz Woodi: right; and that's why we try to make them usable and so that they make sense
12:58 Woodi but in c and java you have some object like Path or File or DIR and in sh you have just strings everywhere... what our api need to use ?
12:58 Woodi and c/win/java/ whatever is all the same just use other names...
12:59 moritz Woodi: https://github.com/perl6/doc​/blob/master/htmlify.p6#L88
12:59 moritz if we just used strings, file tests wouldn't be so easy
12:59 moritz and you'd have to worry about absolute vs. relative paths
13:00 moritz there are dozens of questions on perlmonks why some custom recursive directory traversal isn't working, and the answer is always "because readdir returns relative paths, and you have to prepend the current path"
13:00 moritz with IO::Path, those worries are all gone
13:01 moritz not to mention platform-specific path manipulations, which are a real PITA to get right
13:01 huf it's a pita even in unix-only stuff
13:01 moritz aye
13:01 timotimo fwiw, i hate paths :P
13:01 huf "did i add the trailing slash? can i concat to this string?"
13:01 timotimo you *never* concat paths as strings unless you *are* the path implementation :)
13:02 huf that's because they're a separate datastructure but we always use them in their string-serialied format
13:02 huf which is weeeeeird :)
13:02 jfredett joined #perl6
13:02 huf the syscalls expect strings instead of path objects too :)
13:03 huf it's a bit like not having arrays, and just using csv-strings instead...
13:03 moritz tcl, I'm looking at you :-)
13:04 PerlJam heh
13:04 timotimo huf: that's a very, very apt comparison
13:05 huf ... i've seen similar solutions when someone wanted to store arrayesque data in a mysql column :D
13:05 timotimo yes, of course
13:05 PerlJam ... or multi-level data structures in Perl 4  ;)
13:06 guru joined #perl6
13:06 Woodi moritz: with IO::Path you worry about directories... so you don't like 'sh'-like code:  @a = dir; ?
13:07 moritz Woodi: I don't understand your question
13:07 moritz m: my @a = dir
13:07 camelia rakudo-moar 315ec6: ( no output )
13:07 moritz that's how it can work with and without IO::Path
13:08 Woodi which one we need to implement ? :)
13:08 PerlJam moritz: I think he's assuming a dichotomy between "objects" and "strings" there.
13:08 Woodi PerlJam: maybe I see difference in usage
13:09 PerlJam Woodi: Then please elaborate :)
13:11 dalek Perlito: 4b51a26 | (Flavio S. Glock)++ | / (3 files):
13:11 dalek Perlito: Perlito5 - js - 0+ overload
13:11 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/4b51a26695
13:13 PerlJam It should be light outside but a passing storm makes it look like it's still early morning just before the sun comes up.
13:15 ajr joined #perl6
13:17 ptc_p6 joined #perl6
13:17 ajr joined #perl6
13:17 mls_ joined #perl6
13:19 ajr joined #perl6
13:19 lizmat cycling&
13:19 Woodi PerlJam: for me: a) we have IO::namehere package (or few of it) using objects like struct DIR in C and wrappers for users returning strings to allow shell like programming; b) grammar-like magical and complex objets; c) strings everywhere... which one is prefered ?
13:22 ajr_ joined #perl6
13:26 Grrrr joined #perl6
13:26 PerlJam Woodi: Are you differentiating a) and b) based on efficiency concerns?  Because I'd like to think that we can achieve something akin to a) *and* b)    (simple, low-level-ish objects that can wield complex magic if needed)
13:30 Util #ps time
13:32 moritz there's still a parrotsketch?
13:33 PerlJam heh ... that's exactly what I was thinking :)
13:34 moritz and judging from the logs, it's even active-ish
13:36 thou joined #perl6
13:47 thou joined #perl6
13:51 Woodi PerlJam: I think that first part is user question: "how to use that thing ??". traditional or XXII-century like :)  second: different implementation;  and next is performance question. for now I have problems with using Match objects. and they are slow right now ?
13:51 timotimo hmm, not sure match objects are much slower than they should be
13:52 timotimo of course if you iterate over the list part, that's a GLR thing
13:53 dalek Perlito: 2263d03 | (Flavio S. Glock)++ | / (3 files):
13:53 dalek Perlito: Perlito5 - js - fix scope in "if" statement
13:53 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/2263d03b75
13:53 Woodi timotimo: so it's just my invalid "hunch" from gigantic output from 'say Match.perl' :)
13:54 timotimo if perlito6 is not going to be developed further, should we just get rid of the dalek notifications?
13:54 timotimo Woodi: .perl is slow, yes :(
13:54 timotimo also it's kind of weird to see a "tree" of Match objects that all have the orig string set
13:55 moritz well, that's what they all
13:55 moritz have
13:55 timotimo right
13:55 moritz .perl isn't supposed to be pretty, it's supposed to be exact
13:55 timotimo in theory, the perl output could have a local $foo that gets set once and referenced over and over again :P
13:56 moritz amusing fact: .perl on a match could just return "'abc' ~~ /(b)/" or so (that is, original string + regex that reproduces this match object)
13:56 timotimo right, could :)
13:59 Woodi hey, I'm talking about gigantic size of Match object not .perl performance :)
13:59 Woodi big so must be slow :)
13:59 Woodi if context could help to reduce unsed features in compile time then design in that way cold be perfect
13:59 Woodi *unused...
13:59 timotimo Match objects all just reference the same string for orig, so that part is cheap
13:59 timotimo the from and to parts are just integers, so that's cheap, too
13:59 tinyblak joined #perl6
14:00 Woodi still, yo need to get memory for all of that lists :)
14:00 timotimo yeah
14:00 Woodi and allocating takes time
14:00 timotimo you'll get a little performance improvement if you turn not-really-needed captures into non-captures
14:01 Woodi huh ? :)
14:01 timotimo well, if you have a (foo) inside your regex and you don't ever use the result, you could write [foo] instead
14:01 timotimo then the list would be 1 shorter
14:01 timotimo and lists are nested in perl6 match objects
14:01 timotimo re-ordering groups and such can make a difference
14:02 timotimo i have no measurements to back this up
14:02 Woodi will try to test it with grammar
14:02 timotimo good idea
14:02 timotimo extra good idea if you can contribute a little benchmark to perl6-bench :)
14:02 moritz timotimo: you could just introduce a capture in token ws in the Perl 6 grammar, and measure setting compilation before and after
14:03 timotimo that reminds me, i should work the excel formula evaluation thingie into a benchmark
14:03 Woodi so IO::Path idesign is specced as such automagic structre ?
14:04 timotimo i don't know what you mean
14:04 * Woodi keyboard have problems...
14:04 Woodi PerlJam probably wanted to have IO:: package to be like Match object...
14:05 moritz it's not a tree, if that's what you're asking
14:05 guru joined #perl6
14:06 Woodi moritz: for now I just stuck on "automagic or not automagic" part :)
14:06 guru joined #perl6
14:07 ggherdov_ joined #perl6
14:07 ggherdov_ joined #perl6
14:07 timotimo what does that difference mean for IO::Path?
14:07 moritz Woodi: an IO::Path is just a structure of three components: a volume, a directory, and a basename
14:07 moritz Woodi: there's nothing magical about it
14:08 guru joined #perl6
14:08 Woodi moritz: but IO::Dir appeared again...
14:08 moritz Woodi: but IO::Dir isn't IO::Path
14:09 anaeem1 joined #perl6
14:09 moritz so I don't see how IO::Dir can affect the magicalness of IO::Path
14:09 Woodi I just assume that IO subsystem wants to have nice design...
14:09 moritz it's a bit like "is this pen magical?" -- "no, it's just a pen" -- "but a glass of water showed up!"
14:10 timotimo i want that pen
14:10 moritz then commit it :-)
14:10 Exodist joined #perl6
14:11 Woodi I'm not sure I have skills to code something nicely... just can't stand circularity in discusions...
14:14 masak a very important quality in a language designer is the ability to entertain several, often conflicting world views at once, for comparison purposes.
14:16 timotimo i sometimes imagine five impossible things before breakfast
14:17 * PerlJam never really thought of cognitive dissonance as a feature
14:17 masak I'm not saying put the cognitive dissonance in the language :)
14:17 masak just be able to handle it in order to evolve the language in a useful manner
14:18 masak basically be prepared for "the rules just changed, and here are the new rules", at all levels: parsing, AST manipulation, operators, builtins, types...
14:19 exixt joined #perl6
14:19 * moritz is glad he only designed tiny bits of the language
14:22 [Coke] dj_goku: (from backscroll) 2 tests are already checked in. theoretically, ingy has a repo with the code ready to go in it. These two efforts could probably be combined. they should probably not be run as part of "spectest", but maybe stresstest would work.
14:26 ajr joined #perl6
14:26 PerlJam moritz: I guess it's also good to design tiny bits because no one is going to name something after you.  ("... then I performed the moritz maneuver to get my data in the right shape" :-)
14:26 kjs_ joined #perl6
14:39 masak well, now I just have to name something "the moritz maneuver"...
14:40 anaeem1 joined #perl6
14:41 moritz lying on your back, gazing at the sky
14:42 moritz though given my history on the channel, it's more likely creating a useful but extremly ugly website/service, in the hope that somebody will make it pretty
14:42 PerlJam ... then I did the masak mangle so that my data sets were uniquely identified.
14:43 funjon joined #perl6
14:43 moritz ... and I used the PerlJam Push to get them to the remote database
14:43 * masak .oO( ...so the data didn't end up in a big Perl-jam )
14:43 PerlJam heh
14:43 ruoso joined #perl6
14:43 masak though "jamming with your Perl data" sounds like a pretty awesome talk title.
14:44 dalek Perlito: 19efcc6 | (Flavio S. Glock)++ | TODO-perlito5:
14:44 dalek Perlito: Perlito5 - js - TODO update
14:44 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/19efcc691c
14:44 [Coke] tcl has arrays. :P
14:45 moritz [Coke]: I knew you'd speak up :-)
14:45 [Coke] arrrr.
14:47 ruoso joined #perl6
14:47 funjon joined #perl6
14:51 [Coke] looks like today is parrot's day to die.
14:52 masak could you be more specific?
14:53 [Coke] build failure (I assume) as all spectests are dying.
14:53 dg joined #perl6
14:53 [Coke] S02-lexical-conventions/begin_end_p​od.t............"load_bytecode" couldn't find file 'CORE.setting.pbc'
14:53 * masak confesses to having read that in a different way before the explanation...
14:54 [Coke] looks like the same error bit moarvm-jit
14:54 [Coke] moarvm-nojit seems fine.
14:56 [Coke] 96d6011 : introduce method for what?
14:57 [Coke] (yes, I get it. :P)
14:58 funjon joined #perl6
14:59 masak ah, use and mention. we meet "again".
15:01 moritz [Coke]: 10 seconds after I pushed I realized I should have used quotes :-)
15:03 ruoso joined #perl6
15:04 [Coke] jvm seems mostly ok today.
15:05 liztormato joined #perl6
15:07 araujo joined #perl6
15:07 kaare_ joined #perl6
15:13 anaeem1_ joined #perl6
15:18 tinyblak_ joined #perl6
15:24 * [Coke] hurls http://blogs.perl.org/users/brad_gilbert/20​14/10/perl6-pi-and-continued-fractions.html
15:26 liztormato BradGilbert++
15:28 liztormato Or is he known by another name here?
15:29 mls joined #perl6
15:29 treehug88 joined #perl6
15:29 masak one very powerful idea of Qtree-powered macros -- just throwing this out there now because I'm really doing $work -- is the ability to take a Qtree node -- a class declaration, say -- and from that ask for the corresponding class type object.
15:30 masak that is, at compile time, you can correlate the definition of (say) a type with its actual runtime representation.
15:31 masak that makes it very much not just "a game of words", a transformation of the source text itself (or the structure it induces), but also an interplay between that text and the things it represents during execution.
15:40 tinyblak joined #perl6
15:43 DetroitDan joined #perl6
15:48 ugexe whats the most perl6 way to swap 3 arrays? like (@a,@b,@c)=(@c,@a,@b)? i figured (@a,@b,@c).=rotate(-1); but that treats the array on the right hand of the assignment as a single array so its rotating the values of all arrays into 1 array which isnt what i mean to do
15:49 liztormato And with $@a?
15:50 masak m: my @a = <1 2>; my @b = <3 4>; my @c = <5 6>; :(@a, @b, @c) := (@c, @a, @b); say @a.perl # seems to work
15:50 camelia rakudo-moar 315ec6: OUTPUT«Array.new("5", "6")␤»
15:50 PerlJam ugexe: what was wrong with the straight-forward assignment?
15:50 oetiker_ joined #perl6
15:50 masak PerlJam: it flattens (@c, @a, @b)
15:51 PerlJam oh
15:51 masak pre-GLR and post-GLR.
15:51 PerlJam masak++ for reading my mind on the follow-up question :)
15:52 TimToady the issue isn't so much flattening as it that assignment can't rebind a symbol
15:54 ugexe straight assignment works but if your array names are longer the code doesnt look quite so nice
15:54 DetroitDan joined #perl6
15:55 TimToady m: my $a = [<a a>]; my $b = [<b b>]; my $c = [<c c>]; ($a,$b,$c) = $c, $a, $b; say $a.perl
15:55 camelia rakudo-moar 315ec6: OUTPUT«["c", "c"]␤»
15:55 TimToady there's how you could do it with assigment
15:55 ugexe i see
15:56 TimToady or you could put them into an array, and .rotate that
15:56 TimToady any reason the arrays have to be named?
15:57 TimToady m: my @abc = (<a a>; <b b>; <c c>); @abc .= rotate(-1); say @abc[0].perl
15:57 camelia rakudo-moar 315ec6: OUTPUT«$("c", "c")␤»
15:59 darutoko joined #perl6
16:00 TimToady m: my @abc = (<a a>; <b b>; <c c>); my @a := @abc[0]; @abc .= rotate(-1); say @a.perl;  # curious
16:00 camelia rakudo-moar 315ec6: OUTPUT«("a", "a")␤»
16:00 TimToady nope, alias to array elem stays with the elem
16:05 kaleem joined #perl6
16:07 japhb TimToady: Curious about the implementation's current semantics, or curious about whether you would agree or disagree with the result?  :-)
16:23 liztormato left #perl6
16:26 guru joined #perl6
16:38 kaleem joined #perl6
16:41 TimToady was just wanting to make sure my intuition matched reality, and it did :)
17:20 anaeem1 joined #perl6
17:28 grettis joined #perl6
17:32 erkan joined #perl6
17:35 guru joined #perl6
17:37 tgt joined #perl6
17:39 ghostlines joined #perl6
17:40 davido_ joined #perl6
17:49 raydiak good morning #perl6
17:50 FROGGS_ joined #perl6
17:51 [particle] joined #perl6
17:57 Sqirrel joined #perl6
18:06 dalek perl6-roast-data: 02993e9 | coke++ | / (4 files):
18:06 dalek perl6-roast-data: today (automated commit)
18:06 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/02993e9bf2
18:15 grettis joined #perl6
18:19 [Coke] ^^ moar jit and parrot, DOA.
18:20 lizmat [Coke]: at which commit ?
18:23 dalek roast: bfa19a5 | (Elizabeth Mattijsen)++ | integration/advent2013-day14.t:
18:23 dalek roast: winner is now called earliest
18:23 dalek roast: review: https://github.com/perl6/roast/commit/bfa19a54c2
18:24 tgt joined #perl6
18:24 fhelmberger joined #perl6
18:25 [Coke] parrot: https://gist.github.com/coke/f2575a058941847dca6e
18:25 [Coke] at rakudo 3f0f5ce
18:26 molaf joined #perl6
18:28 timotimo could someone please implement select-your-own-installation-path for the rakudo star msi for moarvm at least?
18:31 bowtie joined #perl6
18:33 molaf_ joined #perl6
18:35 Alina-malina joined #perl6
18:35 Alina-malina joined #perl6
18:43 lizmat [Coke]: I only see different flappers each run: https://gist.github.com/li​zmat/a64eca487f56b35c6a61
18:43 lizmat all of these run fine by themselves :-(
18:57 kurahaupo joined #perl6
18:59 cognominal joined #perl6
19:01 kjs_ joined #perl6
19:10 Isp-sec joined #perl6
19:15 * TimToady is testing a patch to make /$string/ run 7 times faster
19:16 lizmat b2gills++  (http://blogs.perl.org/users/brad_gilbert/201​4/10/perl6-pi-and-continued-fractions.html)
19:17 immortal joined #perl6
19:24 araujo joined #perl6
19:31 dalek roast: 64db5b5 | TimToady++ | S05-metasyntax/litvar.t:
19:31 dalek roast: \@array is not an array ref
19:31 dalek roast: review: https://github.com/perl6/roast/commit/64db5b56f3
19:31 dalek rakudo/nom: b908ce2 | TimToady++ | src/core/Cursor.pm:
19:31 dalek rakudo/nom: speed up /$string/, fix /$array/ to stringify
19:31 dalek rakudo/nom:
19:31 dalek rakudo/nom: INTERPOLATE was setting up a very slow loop to traverse a single item.
19:31 dalek rakudo/nom: It was also depending on $order sometimes being a Perl 6 value and
19:31 dalek rakudo/nom: sometimes being an NQP value.  It was also incorrectly introspecting
19:31 dalek rakudo/nom: positionals that are supposed to be hidden inside of scalars.
19:31 dalek rakudo/nom:
19:31 dalek rakudo/nom: This method is still doing far too much introspection and should be
19:31 dalek rakudo/nom: split up into more specialized routines.
19:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b908ce256e
19:32 FROGGS_ TimToady++ # you're fixing my mess :o)
19:32 TimToady actually, more like 10 times faster on the s/$stuff/.../ test
19:35 ivanshmakov joined #perl6
19:37 geekosaur wow, valgrind on the spectests is painfully slow
19:37 lizmat geekosaur: are you on OS X?  if so, how did you get valgrind to work ?
19:37 geekosaur macports install works fine, if sloooow, on 10.9.5
19:38 geekosaur it doesn't like git for some reason but seems to be working otherwise
19:38 geekosaur but it's taken 3 hours to reach S01-magicals/args.t
19:38 geekosaur er, S02-magicals
19:42 timotimo oh wow.
19:43 [Coke] geekosaur: oh, it's like spectesting jvm without the eval server. :)
19:43 FROGGS_ Error while compiling, type X::Comp::AdHoc
19:43 FROGGS_ payload: Please use !! rather than :
19:43 FROGGS_ line: 14795
19:44 FROGGS_ on parrot
19:45 FROGGS_ lizmat: does your setting build when you fix that?
19:45 FROGGS_ rakudo/src/core/IO/Handle.pm:56:        $!pipe = $p ?? 1 : 0;
19:45 timotimo nativecall needs a bit of adjusting to be able to find the SDL2 libs ...
19:46 lizmat FROGGS_: will check
19:46 timotimo hm actually
19:46 timotimo maybe not!
19:47 dalek rakudo/nom: cb99523 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
19:47 dalek rakudo/nom: Fix stupid P5o that crippled rakudo on parrot
19:47 dalek rakudo/nom:
19:47 dalek rakudo/nom: FROGGS++ for pointing it out
19:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb99523daa
19:48 lizmat did I mention how I hate VM dependent code ?
19:48 FROGGS_ :o)
19:49 FROGGS_ ohh, then it can't have an effect for you on moar
19:49 masak m: my $p = 5; say $p ?? 1 : 0
19:49 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_dxlRLRSl7â�¤Please use !! rather than :â�¤at /tmp/_dxlRLRSl7:1â�¤------> [32mmy $p = 5; say $p ?? 1 [33mâ��[31m: 0[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤       …»
19:49 lizmat indeed, that's why I didn't notice it
19:50 lizmat I run parrot only a few times a week
19:50 masak wait, you wrote code for parrot... but compiled it on moar...?
19:50 lizmat no, if it had compiled on moar, I would have noticed it was broken
19:51 lizmat dir() is one of those areas in the settings that has VM dependent code for all 3 backends
19:51 masak I see.
19:51 lizmat actually, open()
19:51 lizmat in this case
19:51 masak well, Rakudo's error message is pretty good in this case.
19:52 [Coke] so the moar failure was probably something else? checking...
19:52 lizmat yes, it is..  :-)
19:52 masak the problem was more that the code didn't get tried before it got pushed.
19:52 lizmat masak: yup
19:53 lizmat [Coke]: have you tried running spectest with MVM_SPESH_DISABLE=1 ?
19:53 lizmat I get a lot fewer test failures that way
19:53 [Coke] lizmat: no.
19:54 [Coke] moar jit didn't even build here.
19:54 lizmat huh?
19:54 [Coke] I just went back to the folder and typed "make" and it started building the setting.
19:54 lizmat is that a memory alloc error you're getting?
19:54 [Coke] ... and now it's building fine. probably the random moarvm segfault.
19:54 kjs_ joined #perl6
19:55 [Coke] so yes, moarvm on osx, less stable :P
19:55 lizmat I'll see if I can start a build late tonight under valgrind
19:56 japhb TimToady: Is there a perl6-bench test that exposes the performance problem you fixed today, and if not, can you add one pretty please?
19:56 lizmat FROGGS_: parrot builds again, running spectest now
19:56 FROGGS_ cool
19:59 [Coke] lizmat: I have a beefy box here, I can try that also.
20:00 lizmat [Coke]: could you take 6fc0d5e980f and remove the dummy method from Grammar.pm ?
20:00 [Coke] and see if it builds?
20:00 lizmat that was for me *the* way to create a memory allocation error during parsing
20:00 lizmat that way it did not build for me
20:00 lizmat adding the dummy method made it work
20:01 anaeem1 joined #perl6
20:01 lizmat method wemusthavethishereotherwiserakudowontcompile { }
20:01 [Coke] ok, doing a fresh build (at head, but minus that method)
20:01 lizmat not at 6fc0d5e980f ?
20:03 lizmat at HEAD without that method, it builds for me
20:04 FROGGS_ timotimo++ # cpandatesters feels way faster today
20:05 lizmat [Coke]: confirmed: only 6fc0d5e980f minus method breaks for me
20:05 [Coke] so, rollback to that commit? ok. (head minus that worked fine)
20:06 FROGGS_ hmpf
20:06 FROGGS_ [2014-10-31T20:05:53Z] GET /dists HTTP/1.1
20:06 FROGGS_ Commands out of sync; you can't run this command now
20:06 FROGGS_ in method execute at lib/DBDish/mysql.pm6:170
20:06 timotimo FROGGS_: oh no! what did i do! :-P
20:06 FROGGS_ timotimo: the HTTP::Easy PR
20:06 [Coke] ok. I can't easily rebuild nqp/moarvm here (because there's no way to force a rebuild of the defaults), building...
20:07 [Coke] worked fine. let me try in my non-standard build dir where I can start over easily...
20:08 kjs_ joined #perl6
20:08 b2gills timotimo: "last unless $current.Rat" checks for a failure to convert to a Rat, originally I used Rats instead of FatRats and just checked for silent conversion to a Num
20:08 timotimo ah, interesting
20:08 timotimo also, ah that's you! :)
20:09 b2gills /msg nickserve info Brad-Gilbert
20:10 b2gills *nickserv
20:10 BenGoldberg joined #perl6
20:10 grettis joined #perl6
20:11 [Coke] lizmat: using defaults nqp/moarvm on a fresh build (building everything), at that rakudo rev, without that method, I have no issues.
20:12 lizmat [Coke]: ok, I'll try later tonight then myself under valgrind
20:13 anaeem1_ joined #perl6
20:17 anaeem1 joined #perl6
20:18 dalek perl6-bench: 0192ab8 | TimToady++ | microbenchmarks.pl:
20:18 dalek perl6-bench: add a test for scanning /$string/
20:18 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/0192ab88af
20:19 [Coke] do we have a "how to use valgrind" doc somewhere?
20:20 [Coke] sweet! I complain about stuff, and TimToady++ fixes it, write benchmarks, the whole deal! ;)
20:21 TimToady japhb: I did not test ^^^ except on the command line, so was just guessing on scale
20:23 timotimo [Coke]: usually you just "cat (which perl6) and call that with "valgrind" in front
20:24 virtualsue joined #perl6
20:26 moritz https://github.com/lucasbuchala/specs/commi​t/aad6f1c3319cac45c302f43dbe5d5945d4c1e879#​diff-21ddd2f7467f302ff405498af278b731L1628 is the s/general/specific/ correct here?
20:27 BenGoldberg Or even, valgrind $(which perl6) ..., depending on your shell
20:28 [Coke] danke.
20:28 dalek panda/reporter: 14223c6 | (Tobias Leich)++ | lib/Panda/ (2 files):
20:28 dalek panda/reporter: switch to new pipe() sub
20:28 dalek panda/reporter: review: https://github.com/tadzik/panda/commit/14223c64f5
20:29 lizmat FROGGS_: is that wise ?
20:30 lizmat won't that break code that is running on 2014.10 ?
20:30 FROGGS_ lizmat: it is a branch, which won't get merged soon
20:30 lizmat ok  :-)
20:30 FROGGS_ this branch already relies on the new nqp::closefh_i op... so I can't merge it before 2014.11
20:39 tony-o is there a way to find installed modules that *do* a role?
20:41 lizmat installed?  probably never, unless we add it to the META6.json
20:41 lizmat loaded?  some introspection magic might be possible, but I wouldn't know atm
20:41 tony-o maybe available is a better word
20:41 tony-o not loaded but present in the system
20:42 japhb TimToady: Understood.  You can always just do: `./bench --tests=some,test_names --verbose time ...` or even `./bench --tests-tagged=included_tag,-excluded_tag --verbose time ...` to try out your new benchmark definition, and see how it's scaling and such
20:42 lizmat tony-o: then only if it is somehow available in the meta info, and it isn't atm afaik
20:42 tony-o lizmat: thank you
20:47 anaeem1_ joined #perl6
20:56 lucas_ joined #perl6
20:58 * geekosaur wonders if this thing just froze or something. it took forever to get to args.t but now isn't even consuming cpu time
20:59 lucas_ moritz: hello. thanks for the note.
21:00 lucas_ should it be spelled "an heredoc introduction line", then?
21:01 lucas_ I'm in doubt about the generic/specific roles as well.
21:01 lucas_ Does concatenation and replication/repetition makes sense on Blobs or just on Strs?
21:02 jack_rabbit joined #perl6
21:02 dalek cpandatesters.perl6.org: 5770453 | (Tobias Leich)++ | setup/cpandatesters_pg.sql:
21:02 dalek cpandatesters.perl6.org: add initial postgresql setup
21:02 dalek cpandatesters.perl6.org: review: https://github.com/perl6/cpandate​sters.perl6.org/commit/5770453ac6
21:03 timotimo postgres! <3
21:03 timotimo if you have postgres trouble, feel free to ask me
21:03 timotimo i may be able to halp
21:03 masak 'night, #perl6
21:03 FROGGS_ timotimo: ohh, nice :o)
21:03 colomon o/
21:03 lizmat gnight masak!
21:04 lizmat colomon \o
21:04 colomon lizmat, o/
21:04 FROGGS_ timotimo: that's the first thing I am going to do with postgres...
21:04 * colomon hopes #perl6 has been having a good Halloween while he was out and about.
21:05 cognominal joined #perl6
21:05 FROGGS_ colomon: I had! it was fun to stroll around with $kids :D
21:05 lizmat Halloween++
21:05 colomon afk # back to carving out pumpkin guts.  :)
21:07 dalek rakudo/nom: aa28c0f | (Elizabeth Mattijsen)++ | src/core/IO.pm:
21:07 dalek rakudo/nom: Introduce filetest and abspath primitives
21:07 dalek rakudo/nom:
21:07 dalek rakudo/nom: At one point we probably want to have these live in a role.  But at the
21:07 dalek rakudo/nom: moment it is unclear to me how that role would work in the different classes.
21:07 dalek rakudo/nom: So for now, I create these as primitive subs.  And maybe they will stay this
21:07 dalek rakudo/nom: way, because they are better optimizing / inlining targets this way.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aa28c0fecf
21:12 dalek rakudo/nom: 8117cbc | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
21:12 dalek rakudo/nom: Use filetest primives, add .rw and .rwx
21:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8117cbc0c4
21:13 dalek rakudo/nom: b7f32f4 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
21:13 dalek rakudo/nom: More work on IO::Dir
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b7f32f426e
21:16 dalek roast: 7bcc20a | (Elizabeth Mattijsen)++ | S17-supply/uniq (2 files):
21:16 dalek roast: It's .unique now!
21:16 dalek roast: review: https://github.com/perl6/roast/commit/7bcc20a7a4
21:16 dalek roast: 31e6e32 | (Elizabeth Mattijsen)++ | S17-supply/unique.t:
21:16 dalek roast: Really, it's .unique now
21:16 dalek roast: review: https://github.com/perl6/roast/commit/31e6e32952
21:17 dalek rakudo/nom: ba7eee2 | (Elizabeth Mattijsen)++ | t/spectest.data:
21:17 dalek rakudo/nom: It's really, really .unique now
21:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba7eee2613
21:19 moritz you are a .uniq*ue* snowflake!
21:20 [Coke] I of course got the spec test and the rakudo in between thoe 2 commits.
21:21 geekosaur mrr, I think this thing really did get stuck. guess valgrind doesn't quite work after all
21:22 firefish5000 joined #perl6
21:23 lizmat [Coke]" sorry
21:23 timotimo valgrind does make things extraordinarily slow
21:23 geekosaur took kill -9 to exorcise it, even
21:23 lizmat well, valgrind takes the concept of a VM to a very high level  :-)
21:24 geekosaur in 2 hours it had accrued zero cpu time
21:26 colomon OO::Monitors and Text::Levenshtein::Damerau both failed the last two days smoke run
21:33 kjs_ joined #perl6
21:38 wollmers joined #perl6
21:40 wollmers \0
21:40 timotimo hi!
21:42 japhb In my console font, that looks like a large cyclops waving
21:42 japhb (It uses a dotted 0)
21:47 wollmers m: "ab" ~~ :p5/a/;
21:47 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/SAUsxEXZv4â�¤Bogus statementâ�¤at /tmp/SAUsxEXZv4:1â�¤------> [32m"ab" ~~ :p5/a/[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤      â€¦Â»
21:47 wollmers the specs lacck examples
21:47 wollmers lack
21:52 wollmers m: "ab" ~~ m:P5/a/;
21:52 camelia rakudo-moar 315ec6: ( no output )
21:53 wollmers m: "ab" ~~ m:P5/\X/;
21:53 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/UwhrFp2zUHâ�¤Unrecognized Perl 5 regex backslash sequenceâ�¤at /tmp/UwhrFp2zUH:1â�¤------> [32m"ab" ~~ m:P5/\[33mâ��[31mX/;[0mâ�¤    expecting any of:â�¤        colon pair (restricted)â�¤Â»
21:54 wollmers Is this a known bug?
21:54 BenGoldberg p56: "ab" =~ /a/;
21:54 camelia p5-to-p6 : OUTPUT«'ab' ~~ m:P5!a!␤»
21:54 BenGoldberg p56: "ab" =~ /\X/;
21:54 camelia p5-to-p6 : OUTPUT«'ab' ~~ m:P5!\X!␤»
21:55 BenGoldberg std: 'ab' ~~ m:P5!\X!;
21:55 camelia std 14ad63b: OUTPUT«ok 00:01 160m␤»
21:55 BenGoldberg m: 'ab' ~~ m:P5!\X!;
21:55 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8aoeIxFUdOâ�¤Unrecognized Perl 5 regex backslash sequenceâ�¤at /tmp/8aoeIxFUdO:1â�¤------> [32m'ab' ~~ m:P5!\[33mâ��[31mX!;[0mâ�¤    expecting any of:â�¤        colon pair (restricted)â�¤Â»
21:55 dalek ecosystem: b3337ee | tony-o++ | META.list:
21:55 dalek ecosystem: Add Fuzzy Equals operator 'feq' and related role
21:55 dalek ecosystem:
21:55 dalek ecosystem: adds clean, fuzzy distance operator for pleasant to say and read if statements (if $i feq $me { ... }) -
21:55 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/b3337eebfa
21:56 kjs_ joined #perl6
21:56 timotimo how come we have uint32, but NativeCall doesn't know how to use it?
22:00 erkan joined #perl6
22:00 erkan joined #perl6
22:00 tony-o colomon: ugexe is working on fixing Test::Levenshtein::Damerau
22:05 raiph joined #perl6
22:05 wollmers std: "ab".comb(m:P5/\X/)
22:05 camelia std 14ad63b: OUTPUT«ok 00:01 160m␤»
22:06 wollmers m: "ab".comb(m:P5/\X/)
22:06 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GLsnjuT06fâ�¤Unrecognized Perl 5 regex backslash sequenceâ�¤at /tmp/GLsnjuT06f:1â�¤------> [32m"ab".comb(m:P5/\[33mâ��[31mX/)[0mâ�¤    expecting any of:â�¤        colon pair (restricted)â�¤Â»
22:07 wollmers std: "ab".comb(m:P5/\w/).say;
22:07 camelia std 14ad63b: OUTPUT«ok 00:01 160m␤»
22:07 wollmers m: "ab".comb(m:P5/\w/).say;
22:07 camelia rakudo-moar 315ec6: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D: Any $target, *%adverbs)␤  in block <unit> at /tmp/wmYjaZ1NUc:1␤␤»
22:11 moritz wollmers: that can't ever work
22:11 moritz wollmers: m// is an immediate match against $_
22:12 moritz so you call .comb with a Match object, not with a regex
22:12 moritz m: say 'ab'.comb(rx:P5/\w/)
22:12 camelia rakudo-moar 315ec6: OUTPUT«a b␤»
22:12 raiph wollmers: say 'nope' if not $*RT.search: <\X backslash P5> :by 'raiph'; # prints 'nope'
22:18 wollmers moritz: this an example for the specs being not understandable
22:20 wollmers raiph: \X is valid P5
22:21 timotimo hum.
22:21 timotimo i'd really like a "has CArray[uint8] $.bytes is length(58);" for NativeCall
22:22 wollmers it allows me to work with graphemes in Perl 5
22:24 wollmers my @graphemes = $string =~  m/(\X)/g;
22:25 raiph wollmers: so \X is both NYI (not yet implemented) and a striking omission.
22:25 kjs_ joined #perl6
22:27 wollmers raiph: \X in P6 is specced as not \x (AFAIK)
22:28 raiph wollmers: I meant \X under :P5
22:29 timotimo well, "int64 $.dummy1; int32 $.dummy2; int16 $.dummy3; int8 $.dummy4" is less terrible than having 56 int8 fields
22:30 wollmers raiph: if :P5 should be fully compatible, then yes.
22:31 timotimo spec says it's fully compatible!
22:31 raiph wollmers: I personally think :P5 should be declared a post 6.0 feature
22:35 wollmers std: "ab" ~~ /\w/;
22:35 camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
22:35 wollmers std: "!" ~~ /\w/;
22:35 camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
22:35 wollmers m: "!" ~~ /\w/;
22:35 camelia rakudo-moar 315ec6: ( no output )
22:35 wollmers m: "!" ~~ /\x/;
22:35 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_OQBxrC7bDâ�¤Unrecognized backslash sequence: '\x'â�¤at /tmp/_OQBxrC7bD:1â�¤------> [32m"!" ~~ /\x[33mâ��[31m/;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        inf…»
22:36 wollmers std: "!" ~~ /\x/;
22:36 camelia std 14ad63b: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex backslash sequence at /tmp/KK7cVrZPY3 line 1:�------> [32m"!" ~~ /\[33m�[31mx/;[0m�Check failed�FAILED 00:00 139m�»
22:36 wollmers std: "!" ~~ /\X/;
22:36 camelia std 14ad63b: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex backslash sequence at /tmp/8yHFCns1T7 line 1:�------> [32m"!" ~~ /\[33m�[31mX/;[0m�Check failed�FAILED 00:00 139m�»
22:38 wollmers std: "!" ~~ /\X7F/;
22:38 camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
22:40 wollmers m: "!" ~~ /\X7F/;
22:40 camelia rakudo-moar 315ec6: ( no output )
22:40 wollmers m: "!" ~~ /\x7F/;
22:40 camelia rakudo-moar 315ec6: ( no output )
22:46 raiph wollmers: Have you tried mixing P6 and P6 using Inline::P5 yet?
22:48 cognominal joined #perl6
22:48 raiph s/P6/P5/
22:49 wollmers No. At the moment I am deeply lost in the details of diff (LCS) algorithms, where P6 is very slow, and P5 is not fast enough.
22:50 timotimo oh damn, even p5 is too slow?
22:50 timotimo what chance do we have!
22:53 wollmers timotimo: the port of the P5 Algorithm::Diff to P6 is 300 times slower. And I got A::Diff in pure P5 50% faster for average cases.
22:56 japhb Sounds like an excellent benchmark to add to perl6-bench.  *cough*
22:56 wollmers The XS version is 4 times faster, i.e 80 kHz for n=10, d=4 (which is my average case for spelling correction)
22:57 * japhb adds "build a nice Perl 6 environment" to his "setup a new box" script
23:03 raiph joined #perl6
23:13 timotimo damn. i can't nativecast a CStruct
23:13 timotimo whhyyyyy
23:14 timotimo FROGGS_: i have a feature request :)
23:19 timotimo it is now a zavolaj issue
23:20 virtualsue joined #perl6
23:24 grettis joined #perl6
23:26 dalek rakudo/nom: 7ee9752 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
23:26 dalek rakudo/nom: Primitives for basename and dir, for 3 backends
23:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7ee975265a
23:34 wollmers joined #perl6
23:42 wollmers timotimo: This sort of algorithms is better written in C, a step better with bit vectors, and even fastest with bit vectors in the GPU (OpenGL/OpenCL)
23:47 timotimo mhh, fair enough
23:47 dalek rakudo/nom: c7e4401 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
23:47 dalek rakudo/nom: Some more work on IO::Dir
23:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c7e4401e73
23:47 lizmat and with that, I wish #perl6! good night!
23:47 timotimo good night, lizmat!
23:50 wollmers Oh, P6 has bitwise shift etc. Very nice for prototyping algorithms.
23:55 wollmers What would be idiomatic P6 for the P5: unshift @{ $bMatches->{$_} },$index++ for @$b[$bmin..$bmax];

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

Perl 6 | Reference Documentation | Rakudo