»ö« 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:00 Alula joined 00:05 thou left 00:16 ab5tract left 00:21 ajr_ left 00:33 risou is now known as risou_awy, risou_awy is now known as risou 00:37 grettis joined 00:38 fhelmberger joined 00:42 grettis left 00:43 fhelmberger left 00:54 legrady left 00:59 thou joined 01:03 thou left 01:16 erkan joined, erkan left, erkan joined 01:19 immortal left 01:23 jfredett left
TimToady m: say [=>] <a b c d> 01:44
camelia rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d"␤»
TimToady S-EXPR in a can...
m: say [=>] <a b c d>, Nil 01:45
camelia rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d"␤»
TimToady m: say [=>] <a b c d>, Mu
camelia rakudo-moar 315ec6: OUTPUT«"a" => "b" => "c" => "d" => Mu␤»
TimToady if you want everyhing in the CARs 01:46
01:56 jfredett joined 02:04 hypolin joined 02:06 hypolin left 02:08 jack_rabbit joined 02:12 chenryn joined 02:21 tinyblak left 02:26 davido__ left 02:33 dayangkun joined 02:35 leont left 02:39 davido__ joined 02:41 davido__ left 02:47 thou joined 02:51 thou left 03:07 gfldex joined 03:08 tinyblak joined 03:12 noganex_ joined 03:14 noganex left 03:21 bjz left, davido_ left 03:22 davido_ joined 03:25 araujo left 03:52 vendethiel- joined 03:53 vendethiel left 03:56 rmgk left 03:57 rmgk joined 04:03 vendethiel- left 04:06 mauke_ joined 04:07 anaeem1_ joined 04:09 mauke left 04:12 mauke_ is now known as mauke 04:27 molaf left 04:28 chenryn left 04:29 chenryn joined 04:35 thou joined 04:36 tinyblak left 04:37 tinyblak joined 04:39 thou left 04:40 gfldex left 04:41 chenryn left 04:49 Alina-malina joined, dj_goku joined
dj_goku I brought this up awhile back, but I want to take what is on rosetta code and add it to perl6/roast 04:55
05:05 BenGoldberg left 05:07 chenryn joined 05:18 gtodd left 05:19 gtodd joined 05:22 kaare_ joined 05:24 anaeem___ joined 05:26 tinyblak left 05:27 tinyblak joined, anaeem1_ left 05:31 tinyblak_ joined 05:32 tinyblak left 05:45 jfredett left 06:12 anaeem___ left, anaeem1 joined
moritz +1 06:15
06:24 thou joined 06:28 kaleem joined, thou left 06:36 tinyblak_ left 06:39 fhelmberger joined 06:43 fhelmberger left 06:53 dayangkun left 06:56 jack_rabbit left 06:57 vendethiel joined 07:00 vendethiel left
masak mornin', #perl6 07:06
timotimo blogs.perl.org/users/brad_gilbert/2...tions.html 07:07
07:09 erkan left 07:10 erkan joined
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:10
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
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
masak it's quite good code. 07:18
m: sub prefix:<1/>($x) { "it works!" }; say 1/ "test" 07:19
camelia rakudo-moar 315ec6: OUTPUT«it works!␤»
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␤»
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)␤»
masak m: say (3/4).perl
camelia rakudo-moar 315ec6: OUTPUT«0.75␤»
timotimo ah, precedence too tight?
masak oh!
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;
camelia rakudo-moar 315ec6: OUTPUT«<4/3>␤FatRat.new(1, 42)␤»
masak indeed. 07:22
timotimo++
07:22 darutoko joined
timotimo that's exactly what brad gilbert was worried about :) 07:22
masak heh :)
masak .oO( unfounded, I tell you! unfounded! )
timotimo the rosettacode on continued fraction has a pretty sweet bit of code that makes a lazy list for the continued fraction 07:23
rosettacode.org/wiki/Continued_fraction#Perl_6 - at the bottom of this section
mapping .($x) over the triangle-reduction of the composition operator is a bit brainfucky if you're not familiar with continued fractions :D 07:24
map { @a[$_] + @b[$_] / * } - this is supposed to create a WhateverCode for every step of the way? 07:25
masak stability as a deliverable -- blog.rust-lang.org/2014/10/30/Stability.html -- interesting.
timotimo that is quite crafty, but close to "obscure", IMO 07:26
07:27 abraxxa joined 07:29 abraxxa left 07:30 abraxxa joined 07:32 Exodist left 07:36 immortal joined 07:39 erkan left 07:47 virtualsue joined, rindolf joined 07:49 Sqirrel joined
masak timotimo: hm yes. not so obvious, IMO. 07:51
07:52 jack_rabbit joined 07:56 [Sno]_ joined 07:57 [Sno]_ left, [Sno]_ joined, [Sno] left, [Sno]_ is now known as [Sno] 08:00 rindolf left 08:09 jack_rabbit left 08:11 rindolf joined 08:12 thou joined 08:16 thou left 08:19 gfldex joined 08:26 denis_boyun_ joined
sergot hi o/ 08:28
08:31 tgt joined, denis_boyun_ left
FROGGS hi sergot 08:37
sergot: do we want to start working on server support based on HTTP::UserAgent code? 08:38
because... HTTP::Easy is not that reliable
nor fast...
08:39 zakharyas joined 08:51 sqirrel_ joined
masak hi sergot 08:55
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 08:59
09:02 grondilu joined
grondilu say Blob.new but role {}; 09:02
m: say Blob.new but role {};
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
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␤␤»
grondilu n: say Blob.new but role {};
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤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…»
grondilu can't Blob be mixed in?
moritz nope
09:04 virtualsue left 09:05 kjs_ joined 09:15 ptc_p6 joined 09:17 kjs_ left
arnsholt r-m: say Blob.new.REPR 09:19
camelia rakudo-moar 315ec6: OUTPUT«VMArray␤»
arnsholt VMArray is the REPR that implements packed arrays. Adding fields to that wouldn't be a good idea, I think 09:20
09:26 bjz joined 09:30 rurban joined 09:32 mls left 09:33 mls joined 09:41 fhelmberger joined 09:45 davido__ joined, kjs_ joined 09:46 kjs_ left 09:48 davido_ left, sqirrel_ left 09:51 spider-mario joined 09:58 kjs_ joined
dalek rlito: 629bbbe | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
09:58
10:00 thou joined 10:04 thou left 10:05 simcop2387 left 10:06 simcop2387 joined
dalek rlito: 2417608 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - parser - VSTRING tweak
10:14
rlito: 4d5d7c5 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - parser - VSTRING tweak
10:15
10:18 abraxxa left 10:19 abraxxa joined 10:25 virtualsue joined
dalek rlito: 1b95122 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
10:26
10:26 onur joined
onur Hi guys. I am wondering why $fh.say ("something"); is different than $fh.say("something"); 10:26
moritz onur: background is that in perl 5, print (1 + 2) * 3 will print 3, not 9 10:28
onur: that's because it allows whitespace between the routine name and the parameter list
10:29 pecastro joined
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
onur I see, I am used to space after routine names. Need to change this habit. 10:31
masak yes :)
moritz though for methods, you can also the colon
$fh.say: 'something'
onur: also, Perl 6 uses it disambiguate subruotines and keywards
*keywords
masak and for subs you can `say\ ("something");`
moritz m: sub if() { 42 }; say if()
camelia rakudo-moar 315ec6: OUTPUT«42␤»
masak m: say\ ("something"); 10:32
camelia rakudo-moar 315ec6: OUTPUT«something␤»
moritz that way later-introduced keywords won't break your function calls
masak or just not use the parens, of course.
m: say "something";
camelia rakudo-moar 315ec6: OUTPUT«something␤»
onur thats great. tyvm for explanation. 10:33
masak yvw.
sergot FROGGS: I'm in! :) 10:34
masak .tell lizmat getting a deprecation warning (in one of my in-production tools) for this line in the setting: github.com/rakudo/rakudo/blob/nom/...mar.pm#L16 10:41
yoleaux masak: I'll pass your message to lizmat.
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: github.com/rakudo/rakudo/blob/nom/...mar.pm#L16
lizmat masak: what is the warning (more precisely?)
masak Method slurp (from IO::Handle) called at: src/gen/m-CORE.setting, lines 14114,14116
Deprecated since v2014.10, will be removed with release v2015.10!
Please use IO::Path.slurp instead. 10:43
sergot FROGGS: btw. can't we apply timotimo's PR (github.com/supernovus/perl6-http-e.../17/files) to the HTTP::UserAgent module as well?
10:43 ghostlines joined, prevost joined
masak I don't really see why one'd need to do open/slurp/close there instead of just slurp. 10:45
we don't even take in a filehandle, we take in a string.
lizmat testing this diff now:
- my $fh := open($filename);
- my $match := self.parse($fh.slurp, |%opts);
- $fh.close;
+ my $match := self.parse($filename.IO.slurp, |%opts);
masak lizmat++
is `$filename.IO.slurp` preferable to `slurp($filename)`? 10:46
10:46 rurban left
lizmat Stage parse : moar(22247,0x7fff7bf29310) malloc: *** error for object 0x7ff92d0efd10: pointer being freed was not allocated 10:46
*** set a breakpoint in malloc_error_break to debug
grrrr
masak :(
lizmat (sorry Grrrr)
sometimes this happens... could be just a matter of adding some whitespace to not have that anymore
did I mention that rakudo feels less stable lately ? 10:47
masak dunno, but that's something to take seriously. 10:49
Grrrr :)
masak can this be traced back to some point?
FROGGS sergot: hmmm, but then we should also profile it... so that we can be sure it is a speedup for HTTP::UA
masak maybe even worth doing a bisect to try to find what introduced the instability.
lizmat but what to bisect?
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
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
(because current rakudo uses nqp::closefh_i, which is just a few days old)
and that's just one recent example 10:52
lizmat: to me a Heisenbug is something that changes its behaviour when you poke it...
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
FROGGS or remove unrelated stuff for that matter
"In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behavior when one attempts to study it."
wikipedia - always right :P
lizmat hehe
ok, fair enough 10:54
10:55 brrt left
FROGGS if I had an osx box I'd probably build the setting under valgrind 10:55
though, it could also mean that it works out in that combination
lizmat yeah 10:56
in this case, adding a dummy method, makes it work :-(
dalek rlito: 5946b0f | (Flavio S. Glock)++ | src5/lib/Perlito5/Javascript2/Runtime.pm:
Perlito5 - js - overload wip
lizmat gets valgrind 10:58
masak: slurp $filename will just do the $filename.IO.slurp for you 10:59
dalek kudo/nom: 6fc0d5e | (Elizabeth Mattijsen)++ | src/core/Grammar.pm:
Simplify .parsefile, spotted by masak++

Please note there is a dummy method in there, as without it, the settings would not compile: instead you would get:
Stage parse : moar(22277,0x7fff7bf29310) malloc: *** error for object 0x7fda5c32bf40: pointer being freed was not allocated
  *** set a breakpoint in malloc_error_break to debug
11:01
11:02 ptc_p6 left
sergot FROGGS: when do you want to start working on this HTTP server? 11:06
11:06 TuxCM left 11:10 TuxCM joined
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:14
FROGGS sergot: maybe this evening? 11:26
lizmat alas, valgrind doesn't build for me :-( 11:27
11:27 chenryn left
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:28
11:31 kurahaupo joined 11:38 kaleem left, kaleem joined
lizmat putting a symlink in /usr/include to XCode's mach dir, brings me a lot further 11:38
11:38 kaleem left, kaleem joined
lizmat now problems in linking :-( 11:39
11:41 kaleem left
lizmat gives up on valgrind for now 11:43
11:45 bjz left 11:48 thou joined 11:49 bjz joined 11:50 mls left 11:52 thou left 11:58 tinyblak joined
dalek kudo/nom: 4187566 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
Initial version of IO::Dir

Not used anywhere yet
11:59
12:01 abraxxa left
timotimo didn't notice changes to Grammar 12:02
moritz we really are running in circles 12:04
12:04 tinyblak_ joined
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 ?
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
*shows
moritz I'm merely remarking that we had that in the past, and it turned out to be not beneficial
maybe the version you are writing will be, though
lizmat what was the reason for getting rid of it in the past ?
moritz 1) there was a big overlap between IO::Path and IO::Dir 12:07
2) it was a hassle to always generate the right one (Path vs. Dir), with not much benefit
12:07 tinyblak left
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
fwiw, I would never put that in the hands of the user, unless they really want to
moritz I didn't benchmark it; I argued from a conceptual and ease-of-use PoV
lizmat I'm trying to make it easier to use *and* get better performance
the user need not know whether it is an IO::Dir or an IO::Path that got created 12:09
or returned from e.g. a dir()
moritz but if dir() returns a list of either, there should be a common role with the common functionality 12:10
12:10 leont joined
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
but yes, I'm thinking of usurping the IO role for that
moritz both should support file tests, at the very least?
lizmat which would make perfect sense in light of the .IO coercer 12:11
yes, they wouild
of course, .d on IO::Dir would just be True :-)
12:11 ggoebel111111118 joined
timotimo the common role would be like FileTestable? 12:12
moritz ... which lizmat++ killed at the start of the month :-)
lizmat yes, and which may get resurrected after all 12:13
shit happens :-)
moritz well, IMHO they should both also have in common that there's an absolute path and a basename
luckily, 'git revert' is very easy
12:15 ggoebel111111117 left
lizmat absolute path I agree with, basename I'm not sure yet :-) 12:15
indeed :-)
12:16 ghostlines left 12:18 ghostlines joined
PerlJam greetings Perl people! 12:28
timotimo hello PerlJam 12:29
thanks again for doing the release :) 12:30
12:33 mauke_ joined
PerlJam timotimo: welcome :) 12:35
Woodi hallo #perl6 :) 12:36
PerlJam hey Woodi
12:36 mauke left
masak gureetings, PerlJam, Woodi 12:36
timotimo saluton Woodi
Woodi is it possible in Perl 6 to use scalar as "base" of the class (like in Perl5) ?
timotimo "the class"? 12:37
masak Woodi: what do you want to accomplish? :)
Woodi in v5 you usually use blessed hash refference, but using plain scalar was possible too..
masak Woodi: what do you want to accomplish? :)
12:38 mauke_ is now known as mauke
Woodi masak: just consider using strings as base for io::dir_or_something :) 12:38
but question is general
masak ah, so subclassing Str?
lizmat m: my $s = Set; $s.new(<a b c>).perl.say
camelia rakudo-moar 315ec6: OUTPUT«set("a","b","c")␤»
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)
Woodi no, just give methods to scalar
12:39 kaleem joined
masak PerlJam: good point. 12:39
lizmat m: my $s = "Set"; ::($s).new(<a b c>).perl.say
camelia rakudo-moar 315ec6: OUTPUT«set("a","b","c")␤»
lizmat Woodi: something like that? ^^
masak Woodi: my $s = "foo"; $s does role { method foo { say "OH HAI" } }; $s.foo
12:39 anaeem___ joined
masak m: my $s = "foo"; $s does role { method foo { say "OH HAI" } }; $s.foo 12:39
camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤»
Woodi lizmat: I do not know :)
masak Woodi: something like that? ^^
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␤␤»
timotimo hmm.
12:40 anaeem1 left
Woodi masak: probably... 12:41
moritz m: my $s; $s := $s but role { method foo { say "OH HAI" } }; say $s.foo
camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤True␤»
moritz m: my $s; $s := $s but role { method foo { say "OH HAI" } }; $s.foo; $s = 42; $s.foo
camelia rakudo-moar 315ec6: OUTPUT«OH HAI␤Cannot assign to an immutable value␤ in block <unit> at /tmp/pIy_t_P2h_:1␤␤»
moritz hah, it becomes immutable by mixing in
timotimo strange 12:43
moritz actually I'm surprise that containers don't have an optimized representation 12:44
timotimo as in: why doesn't this say "this repr cannot change type"? 12:45
12:45 mls joined
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>}␤»
moritz uhm 12:49
it didn't mix into the container :(
timotimo ah, hmm
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...
moritz m: my $s; say $s.VAR.^name
camelia rakudo-moar 315ec6: OUTPUT«Scalar␤»
timotimo so "but" will decont
which makes sense
moritz notices he has no idea how VAR works 12:50
12:50 mls left
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
Woodi moritz: that's not explaining anything ;) 12:51
masak no, it's more of a recommendation ;) 12:52
Woodi so sh like user experience ? @a = dir "/etc"; for @a { chmode 000, $_ } # ? :)
lizmat dir("/etc")>>.chmod(0) 12:53
Woodi it's perlish way, I like it :)
12:53 ugator joined
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
in c you have struct DIR an you readdir it
lizmat Woodi: also on WIn32 ?? 12:55
12:55 anaeem___ left
dalek kudo/nom: 3f0f5ce | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
Add chdir/open, handle //unc/
12:56
Woodi lizmat: c is just an example....... we _create_ our own api... 12:57
12:57 notfix is now known as xfix
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 ?
and c/win/java/ whatever is all the same just use other names...
moritz Woodi: github.com/perl6/doc/blob/master/htmlify.p6#L88 12:59
if we just used strings, file tests wouldn't be so easy
and you'd have to worry about absolute vs. relative paths
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
with IO::Path, those worries are all gone
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
moritz aye
timotimo fwiw, i hate paths :P
huf "did i add the trailing slash? can i concat to this string?"
timotimo you *never* concat paths as strings unless you *are* the path implementation :)
huf that's because they're a separate datastructure but we always use them in their string-serialied format 13:02
which is weeeeeird :)
13:02 jfredett joined
huf the syscalls expect strings instead of path objects too :) 13:02
it's a bit like not having arrays, and just using csv-strings instead... 13:03
moritz tcl, I'm looking at you :-)
PerlJam heh 13:04
timotimo huf: that's a very, very apt comparison
huf ... i've seen similar solutions when someone wanted to store arrayesque data in a mysql column :D 13:05
timotimo yes, of course
PerlJam ... or multi-level data structures in Perl 4 ;)
13:06 guru joined
Woodi moritz: with IO::Path you worry about directories... so you don't like 'sh'-like code: @a = dir; ? 13:06
13:06 guru is now known as Guest99576, Guest99576 is now known as ajr_
moritz Woodi: I don't understand your question 13:07
m: my @a = dir
camelia ( no output )
moritz that's how it can work with and without IO::Path
Woodi which one we need to implement ? :) 13:08
PerlJam moritz: I think he's assuming a dichotomy between "objects" and "strings" there.
Woodi PerlJam: maybe I see difference in usage
PerlJam Woodi: Then please elaborate :) 13:09
dalek rlito: 4b51a26 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - 0+ overload
13:11
13:12 Grrrr left
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:13
13:13 ajr_ left 13:15 ajr joined, ajr left 13:17 ptc_p6 joined, ajr joined, mls_ joined, ajr left 13:19 ajr joined, ajr is now known as Guest28598
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:21 mls left, Guest28598 left 13:22 ajr_ joined 13:25 ugator left 13:26 Grrrr joined
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:26
13:27 kaare_ left
Util #ps time 13:30
moritz there's still a parrotsketch? 13:32
PerlJam heh ... that's exactly what I was thinking :) 13:33
moritz and judging from the logs, it's even active-ish 13:34
13:35 kaleem left 13:37 thou joined 13:41 thou left 13:44 tinyblak_ left 13:46 ptc_p6 left 13:47 thou joined
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
of course if you iterate over the list part, that's a GLR thing 13:52
dalek rlito: 2263d03 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - fix scope in "if" statement
13:53
Woodi timotimo: so it's just my invalid "hunch" from gigantic output from 'say Match.perl' :)
timotimo if perlito6 is not going to be developed further, should we just get rid of the dalek notifications? 13:54
Woodi: .perl is slow, yes :(
also it's kind of weird to see a "tree" of Match objects that all have the orig string set
moritz well, that's what they all 13:55
have
timotimo right
moritz .perl isn't supposed to be pretty, it's supposed to be exact
timotimo in theory, the perl output could have a local $foo that gets set once and referenced over and over again :P
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:57 kjs_ left
Woodi hey, I'm talking about gigantic size of Match object not .perl performance :) 13:59
big so must be slow :)
if context could help to reduce unsed features in compile time then design in that way cold be perfect
*unused...
13:59 ajr_ left
timotimo Match objects all just reference the same string for orig, so that part is cheap 13:59
the from and to parts are just integers, so that's cheap, too
13:59 tinyblak joined
Woodi still, yo need to get memory for all of that lists :) 14:00
timotimo yeah
Woodi and allocating takes time
timotimo you'll get a little performance improvement if you turn not-really-needed captures into non-captures
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
then the list would be 1 shorter
and lists are nested in perl6 match objects
re-ordering groups and such can make a difference
i have no measurements to back this up 14:02
Woodi will try to test it with grammar
timotimo good idea
extra good idea if you can contribute a little benchmark to perl6-bench :)
moritz timotimo: you could just introduce a capture in token ws in the Perl 6 grammar, and measure setting compilation before and after
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 ?
timotimo i don't know what you mean 14:04
Woodi keyboard have problems...
PerlJam probably wanted to have IO:: package to be like Match object...
moritz it's not a tree, if that's what you're asking 14:05
14:05 guru joined, guru left
Woodi moritz: for now I just stuck on "automagic or not automagic" part :) 14:06
14:06 guru joined 14:07 guru left, ggherdov_ left, ggherdov_ joined, ggherdov_ left, ggherdov_ joined
timotimo what does that difference mean for IO::Path? 14:07
14:07 ggherdov_ is now known as ggherdov
moritz Woodi: an IO::Path is just a structure of three components: a volume, a directory, and a basename 14:07
Woodi: there's nothing magical about it
14:08 guru joined
Woodi moritz: but IO::Dir appeared again... 14:08
moritz Woodi: but IO::Dir isn't IO::Path
14:09 anaeem1 joined, guru is now known as Guest29601
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...
moritz it's a bit like "is this pen magical?" -- "no, it's just a pen" -- "but a glass of water showed up!"
timotimo i want that pen 14:10
moritz then commit it :-)
14:10 Exodist joined
Woodi I'm not sure I have skills to code something nicely... just can't stand circularity in discusions... 14:11
14:13 Guest29601 left
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:14
timotimo i sometimes imagine five impossible things before breakfast 14:16
PerlJam never really thought of cognitive dissonance as a feature 14:17
masak I'm not saying put the cognitive dissonance in the language :)
just be able to handle it in order to evolve the language in a useful manner
14:18 exixt left
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:18
14:19 exixt joined
moritz is glad he only designed tiny bits of the language 14:19
[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:22
14:26 ajr joined
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
14:26 kjs_ joined 14:27 ajr is now known as Guest19752, Guest19752 is now known as ajr_ 14:34 ruoso left 14:36 funjon left 14:39 anaeem1 left
masak well, now I just have to name something "the moritz maneuver"... 14:39
14:40 anaeem1 joined 14:41 dg left
moritz lying on your back, gazing at the sky 14:41
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
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 )
PerlJam heh
14:43 ruoso joined
masak though "jamming with your Perl data" sounds like a pretty awesome talk title. 14:43
dalek rlito: 19efcc6 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - js - TODO update
14:44
[Coke] tcl has arrays. :P
moritz [Coke]: I knew you'd speak up :-) 14:45
[Coke] arrrr.
14:47 ruoso left, funjon left, ruoso joined, funjon joined
[Coke] looks like today is parrot's day to die. 14:51
masak could you be more specific? 14:52
14:53 funjon left
[Coke] build failure (I assume) as all spectests are dying. 14:53
14:53 dg joined
[Coke] S02-lexical-conventions/begin_end_pod.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...
[Coke] looks like the same error bit moarvm-jit 14:54
moarvm-nojit seems fine.
96d6011 : introduce method for what? 14:56
(yes, I get it. :P) 14:57
14:57 ruoso left, anaeem1 left 14:58 funjon joined
masak ah, use and mention. we meet "again". 14:59
moritz [Coke]: 10 seconds after I pushed I realized I should have used quotes :-) 15:01
15:03 ruoso joined
[Coke] jvm seems mostly ok today. 15:04
15:05 liztormato joined 15:07 araujo joined, kaare_ joined 15:13 anaeem1_ joined 15:18 tinyblak_ joined, tinyblak left 15:19 kurahaupo left
[Coke] hurls blogs.perl.org/users/brad_gilbert/2...tions.html 15:24
liztormato BradGilbert++ 15:26
Or is he known by another name here? 15:28
15:29 mls joined, treehug88 joined
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:29
that is, at compile time, you can correlate the definition of (say) a type with its actual runtime representation. 15:30
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:31
15:32 mls_ left 15:39 tinyblak_ left 15:40 tinyblak joined 15:43 DetroitDan joined
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:48
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
camelia rakudo-moar 315ec6: OUTPUT«Array.new("5", "6")␤»
PerlJam ugexe: what was wrong with the straight-forward assignment?
15:50 oetiker_ joined
masak PerlJam: it flattens (@c, @a, @b) 15:50
15:51 xinming_ left
PerlJam oh 15:51
masak pre-GLR and post-GLR.
PerlJam masak++ for reading my mind on the follow-up question :)
TimToady the issue isn't so much flattening as it that assignment can't rebind a symbol 15:52
15:53 DetroitDan left
ugexe straight assignment works but if your array names are longer the code doesnt look quite so nice 15:54
15:54 DetroitDan joined
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"]␤»
TimToady there's how you could do it with assigment
ugexe i see
TimToady or you could put them into an array, and .rotate that 15:56
any reason the arrays have to be named?
15:57 darutoko left
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
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")␤»
TimToady nope, alias to array elem stays with the elem
16:05 kaleem joined
japhb TimToady: Curious about the implementation's current semantics, or curious about whether you would agree or disagree with the result? :-) 16:07
16:13 anaeem1_ left 16:23 liztormato left 16:26 ajr_ left, guru joined 16:27 guru is now known as Guest20677, Guest20677 is now known as ajr_ 16:34 kaleem left 16:38 kaleem joined, [particle] left, kaleem left
TimToady was just wanting to make sure my intuition matched reality, and it did :) 16:41
16:48 zakharyas left 17:00 ajr_ left 17:01 pecastro left 17:20 anaeem1 joined 17:21 araujo left 17:28 grettis joined 17:32 ghostlines left, erkan joined, davido__ left, tgt left 17:33 immortal left 17:34 DetroitDan left 17:35 guru joined, guru is now known as Guest48751, Guest48751 is now known as ajr_ 17:37 tgt joined 17:39 ghostlines joined, ghostlines left 17:40 davido_ joined
raydiak good morning #perl6 17:49
17:50 FROGGS_ joined 17:51 [particle] joined 17:52 virtualsue left 17:53 FROGGS left 17:54 Sqirrel left 17:57 Sqirrel joined
dalek rl6-roast-data: 02993e9 | coke++ | / (4 files):
today (automated commit)
18:06
18:08 grettis left, tgt left 18:15 grettis joined
[Coke] ^^ moar jit and parrot, DOA. 18:19
lizmat [Coke]: at which commit ? 18:20
dalek ast: bfa19a5 | (Elizabeth Mattijsen)++ | integration/advent2013-day14.t:
winner is now called earliest
18:23
18:24 fhelmberger left, tgt joined, prevost left, fhelmberger joined
[Coke] parrot: gist.github.com/coke/f2575a058941847dca6e 18:25
at rakudo 3f0f5ce
18:26 molaf joined
timotimo could someone please implement select-your-own-installation-path for the rakudo star msi for moarvm at least? 18:28
18:28 fhelmberger left 18:31 bowtie joined 18:32 bowtie is now known as Guest93762 18:33 molaf_ joined 18:34 tinyblak left, molaf left, Alina-malina left 18:35 Alina-malina joined, Alina-malina left, Alina-malina joined 18:42 kjs_ left
lizmat [Coke]: I only see different flappers each run: gist.github.com/lizmat/a64eca487f56b35c6a61 18:43
all of these run fine by themselves :-(
18:57 kurahaupo joined 18:59 cognominal joined 19:01 kjs_ joined 19:05 kjs_ left 19:10 Isp-sec joined, mauke left 19:15 cognominal left
TimToady is testing a patch to make /$string/ run 7 times faster 19:15
lizmat b2gills++ (blogs.perl.org/users/brad_gilbert/2...ions.html) 19:16
19:17 immortal joined 19:18 erkan left 19:20 ivanshmakov left 19:24 araujo joined
dalek ast: 64db5b5 | TimToady++ | S05-metasyntax/litvar.t:
\@array is not an array ref
19:31
kudo/nom: b908ce2 | TimToady++ | src/core/Cursor.pm:
speed up /$string/, fix /$array/ to stringify

INTERPOLATE was setting up a very slow loop to traverse a single item. It was also depending on $order sometimes being a Perl 6 value and sometimes being an NQP value. It was also incorrectly introspecting positionals that are supposed to be hidden inside of scalars.
This method is still doing far too much introspection and should be split up into more specialized routines.
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
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 ?
geekosaur macports install works fine, if sloooow, on 10.9.5
it doesn't like git for some reason but seems to be working otherwise 19:38
but it's taken 3 hours to reach S01-magicals/args.t
er, S02-magicals
timotimo oh wow. 19:42
[Coke] geekosaur: oh, it's like spectesting jvm without the eval server. :) 19:43
FROGGS_ Error while compiling, type X::Comp::AdHoc
payload: Please use !! rather than :
line: 14795
on parrot 19:44
lizmat: does your setting build when you fix that? 19:45
rakudo/src/core/IO/Handle.pm:56: $!pipe = $p ?? 1 : 0;
timotimo nativecall needs a bit of adjusting to be able to find the SDL2 libs ...
lizmat FROGGS_: will check 19:46
timotimo hm actually
maybe not!
dalek kudo/nom: cb99523 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
Fix stupid P5o that crippled rakudo on parrot

  FROGGS++ for pointing it out
19:47
lizmat did I mention how I hate VM dependent code ? 19:48
FROGGS_ :o)
ohh, then it can't have an effect for you on moar 19:49
masak m: my $p = 5; say $p ?? 1 : 0
camelia rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/_dxlRLRSl7␤Please use !! rather than :␤at /tmp/_dxlRLRSl7:1␤------> my $p = 5; say $p ?? 1 ⏏: 0␤ expecting any of:␤ postfix␤ infix stopper␤ …»
lizmat indeed, that's why I didn't notice it
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 anaeem1 left
lizmat no, if it had compiled on moar, I would have noticed it was broken 19:50
dir() is one of those areas in the settings that has VM dependent code for all 3 backends 19:51
masak I see.
lizmat actually, open()
in this case
masak well, Rakudo's error message is pretty good in this case.
[Coke] so the moar failure was probably something else? checking... 19:52
lizmat yes, it is.. :-)
masak the problem was more that the code didn't get tried before it got pushed.
lizmat masak: yup 19:53
19:53 grettis left
lizmat [Coke]: have you tried running spectest with MVM_SPESH_DISABLE=1 ? 19:53
I get a lot fewer test failures that way
[Coke] lizmat: no.
moar jit didn't even build here. 19:54
lizmat huh?
[Coke] I just went back to the folder and typed "make" and it started building the setting.
lizmat is that a memory alloc error you're getting?
[Coke] ... and now it's building fine. probably the random moarvm segfault.
19:54 kjs_ joined
[Coke] so yes, moarvm on osx, less stable :P 19:55
19:55 araujo left
lizmat I'll see if I can start a build late tonight under valgrind 19:55
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
19:56 kjs_ left
lizmat FROGGS_: parrot builds again, running spectest now 19:56
FROGGS_ cool
[Coke] lizmat: I have a beefy box here, I can try that also. 19:59
19:59 darutoko left
lizmat [Coke]: could you take 6fc0d5e980f and remove the dummy method from Grammar.pm ? 20:00
[Coke] and see if it builds?
lizmat that was for me *the* way to create a memory allocation error during parsing
that way it did not build for me
adding the dummy method made it work
20:01 anaeem1 joined
lizmat method wemusthavethishereotherwiserakudowontcompile { } 20:01
[Coke] ok, doing a fresh build (at head, but minus that method)
lizmat not at 6fc0d5e980f ?
at HEAD without that method, it builds for me 20:03
FROGGS_ timotimo++ # cpandatesters feels way faster today 20:04
lizmat [Coke]: confirmed: only 6fc0d5e980f minus method breaks for me 20:05
[Coke] so, rollback to that commit? ok. (head minus that worked fine)
FROGGS_ hmpf 20:06
[2014-10-31T20:05:53Z] GET /dists HTTP/1.1
Commands out of sync; you can't run this command now
in method execute at lib/DBDish/mysql.pm6:170
timotimo FROGGS_: oh no! what did i do! :-P
FROGGS_ timotimo: the HTTP::Easy PR
[Coke] ok. I can't easily rebuild nqp/moarvm here (because there's no way to force a rebuild of the defaults), building...
worked fine. let me try in my non-standard build dir where I can start over easily... 20:07
20:08 kjs_ joined
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
also, ah that's you! :)
b2gills /msg nickserve info Brad-Gilbert 20:09
*nickserv 20:10
20:10 BenGoldberg joined, grettis joined
[Coke] lizmat: using defaults nqp/moarvm on a fresh build (building everything), at that rakudo rev, without that method, I have no issues. 20:11
20:12 anaeem1 left
lizmat [Coke]: ok, I'll try later tonight then myself under valgrind 20:12
20:13 anaeem1_ joined 20:15 anaeem1_ left 20:17 anaeem1 joined
dalek rl6-bench: 0192ab8 | TimToady++ | microbenchmarks.pl:
add a test for scanning /$string/
20:18
[Coke] do we have a "how to use valgrind" doc somewhere? 20:19
sweet! I complain about stuff, and TimToady++ fixes it, write benchmarks, the whole deal! ;) 20:20
TimToady japhb: I did not test ^^^ except on the command line, so was just guessing on scale 20:21
20:22 anaeem1 left
timotimo [Coke]: usually you just "cat (which perl6) and call that with "valgrind" in front 20:23
20:24 virtualsue joined
moritz github.com/lucasbuchala/specs/comm...8b731L1628 is the s/general/specific/ correct here? 20:26
BenGoldberg Or even, valgrind $(which perl6) ..., depending on your shell 20:27
[Coke] danke. 20:28
dalek nda/reporter: 14223c6 | (Tobias Leich)++ | lib/Panda/ (2 files):
switch to new pipe() sub
lizmat FROGGS_: is that wise ? 20:29
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
lizmat ok :-)
FROGGS_ this branch already relies on the new nqp::closefh_i op... so I can't merge it before 2014.11
20:36 xfix is now known as notfix
tony-o is there a way to find installed modules that *do* a role? 20:39
lizmat installed? probably never, unless we add it to the META6.json 20:41
loaded? some introspection magic might be possible, but I wouldn't know atm
tony-o maybe available is a better word
not loaded but present in the system
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
tony-o lizmat: thank you
20:47 anaeem1_ joined 20:54 anaeem1_ left 20:56 lucas_ joined
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:58
lucas_ moritz: hello. thanks for the note. 20:59
should it be spelled "an heredoc introduction line", then? 21:00
I'm in doubt about the generic/specific roles as well. 21:01
Does concatenation and replication/repetition makes sense on Blobs or just on Strs?
21:02 jack_rabbit joined
dalek href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: 5770453 | (Tobias Leich)++ | setup/cpandatesters_pg.sql:
add initial postgresql setup
21:02
timotimo postgres! <3 21:03
if you have postgres trouble, feel free to ask me
i may be able to halp
masak 'night, #perl6
FROGGS_ timotimo: ohh, nice :o)
colomon o/
lizmat gnight masak!
colomon \o 21:04
colomon lizmat, o/
FROGGS_ timotimo: that's the first thing I am going to do with postgres...
colomon hopes #perl6 has been having a good Halloween while he was out and about.
21:05 cognominal joined
FROGGS_ colomon: I had! it was fun to stroll around with $kids :D 21:05
lizmat Halloween++
colomon afk # back to carving out pumpkin guts. :)
dalek kudo/nom: aa28c0f | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Introduce filetest and abspath primitives

At one point we probably want to have these live in a role. But at the moment it is unclear to me how that role would work in the different classes. So for now, I create these as primitive subs. And maybe they will stay this way, because they are better optimizing / inlining targets this way.
21:07
kudo/nom: 8117cbc | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Use filetest primives, add .rw and .rwx
21:12
kudo/nom: b7f32f4 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
More work on IO::Dir
21:13
21:15 kjs_ left
dalek ast: 7bcc20a | (Elizabeth Mattijsen)++ | S17-supply/uniq (2 files):
It's .unique now!
21:16
ast: 31e6e32 | (Elizabeth Mattijsen)++ | S17-supply/unique.t:
Really, it's .unique now
kudo/nom: ba7eee2 | (Elizabeth Mattijsen)++ | t/spectest.data:
It's really, really .unique now
21:17
moritz you are a .uniq*ue* snowflake! 21:19
[Coke] I of course got the spec test and the rakudo in between thoe 2 commits. 21:20
geekosaur mrr, I think this thing really did get stuck. guess valgrind doesn't quite work after all 21:21
21:22 firefish5000 joined
lizmat [Coke]" sorry 21:23
timotimo valgrind does make things extraordinarily slow
geekosaur took kill -9 to exorcise it, even
lizmat well, valgrind takes the concept of a VM to a very high level :-)
geekosaur in 2 hours it had accrued zero cpu time 21:24
colomon OO::Monitors and Text::Levenshtein::Damerau both failed the last two days smoke run 21:26
21:33 kjs_ joined 21:38 wollmers joined
wollmers \0 21:40
timotimo hi!
21:41 kaare_ left
japhb In my console font, that looks like a large cyclops waving 21:42
(It uses a dotted 0)
wollmers m: "ab" ~~ :p5/a/; 21:47
camelia rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/SAUsxEXZv4␤Bogus statement␤at /tmp/SAUsxEXZv4:1␤------> "ab" ~~ :p5/a/⏏;␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
wollmers the specs lacck examples
lack
21:51 kjs_ left
wollmers m: "ab" ~~ m:P5/a/; 21:52
camelia ( no output )
wollmers m: "ab" ~~ m:P5/\X/; 21:53
camelia rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/UwhrFp2zUH␤Unrecognized Perl 5 regex backslash sequence␤at /tmp/UwhrFp2zUH:1␤------> "ab" ~~ m:P5/\⏏X/;␤ expecting any of:␤ colon pair (restricted)␤»
wollmers Is this a known bug? 21:54
BenGoldberg p56: "ab" =~ /a/;
camelia p5-to-p6 : OUTPUT«'ab' ~~ m:P5!a!␤»
21:54 treehug88 left
BenGoldberg p56: "ab" =~ /\X/; 21:54
camelia p5-to-p6 : OUTPUT«'ab' ~~ m:P5!\X!␤»
BenGoldberg std: 'ab' ~~ m:P5!\X!; 21:55
camelia std 14ad63b: OUTPUT«ok 00:01 160m␤»
BenGoldberg m: 'ab' ~~ m:P5!\X!;
camelia rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/8aoeIxFUdO␤Unrecognized Perl 5 regex backslash sequence␤at /tmp/8aoeIxFUdO:1␤------> 'ab' ~~ m:P5!\⏏X!;␤ expecting any of:␤ colon pair (restricted)␤»
dalek osystem: b3337ee | tony-o++ | META.list:
Add Fuzzy Equals operator 'feq' and related role

adds clean, fuzzy distance operator for pleasant to say and read if statements (if $i feq $me { ... }) -
21:56 kjs_ joined, kjs_ left
timotimo how come we have uint32, but NativeCall doesn't know how to use it? 21:57
22:00 erkan joined, erkan left, erkan joined
tony-o colomon: ugexe is working on fixing Test::Levenshtein::Damerau 22:00
22:02 immortal left 22:05 raiph joined
wollmers std: "ab".comb(m:P5/\X/) 22:05
camelia std 14ad63b: OUTPUT«ok 00:01 160m␤»
wollmers m: "ab".comb(m:P5/\X/) 22:06
camelia rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/GLsnjuT06f␤Unrecognized Perl 5 regex backslash sequence␤at /tmp/GLsnjuT06f:1␤------> "ab".comb(m:P5/\⏏X/)␤ expecting any of:␤ colon pair (restricted)␤»
wollmers std: "ab".comb(m:P5/\w/).say; 22:07
camelia std 14ad63b: OUTPUT«ok 00:01 160m␤»
wollmers m: "ab".comb(m:P5/\w/).say;
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:09 cognominal left 22:11 virtualsue left
moritz wollmers: that can't ever work 22:11
wollmers: m// is an immediate match against $_
so you call .comb with a Match object, not with a regex 22:12
m: say 'ab'.comb(rx:P5/\w/)
camelia rakudo-moar 315ec6: OUTPUT«a b␤»
raiph wollmers: say 'nope' if not $*RT.search: <\X backslash P5> :by 'raiph'; # prints 'nope'
wollmers moritz: this an example for the specs being not understandable 22:18
raiph: \X is valid P5 22:20
timotimo hum. 22:21
i'd really like a "has CArray[uint8] $.bytes is length(58);" for NativeCall
wollmers it allows me to work with graphemes in Perl 5 22:22
my @graphemes = $string =~  m/(\X)/g; 22:24
raiph wollmers: so \X is both NYI (not yet implemented) and a striking omission. 22:25
22:25 kjs_ joined
wollmers raiph: \X in P6 is specced as not \x (AFAIK) 22:27
raiph wollmers: I meant \X under :P5 22:28
timotimo well, "int64 $.dummy1; int32 $.dummy2; int16 $.dummy3; int8 $.dummy4" is less terrible than having 56 int8 fields 22:29
wollmers raiph: if :P5 should be fully compatible, then yes. 22:30
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 kjs_ left
wollmers std: "ab" ~~ /\w/; 22:35
camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
wollmers std: "!" ~~ /\w/;
camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
wollmers m: "!" ~~ /\w/;
camelia ( no output )
wollmers m: "!" ~~ /\x/;
camelia rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/_OQBxrC7bD␤Unrecognized backslash sequence: '\x'␤at /tmp/_OQBxrC7bD:1␤------> "!" ~~ /\x⏏/;␤ expecting any of:␤ postfix␤ infix stopper␤ inf…»
wollmers std: "!" ~~ /\x/; 22:36
camelia std 14ad63b: OUTPUT«===SORRY!===␤Unrecognized regex backslash sequence at /tmp/KK7cVrZPY3 line 1:␤------> "!" ~~ /\⏏x/;␤Check failed␤FAILED 00:00 139m␤»
wollmers std: "!" ~~ /\X/;
camelia std 14ad63b: OUTPUT«===SORRY!===␤Unrecognized regex backslash sequence at /tmp/8yHFCns1T7 line 1:␤------> "!" ~~ /\⏏X/;␤Check failed␤FAILED 00:00 139m␤»
22:38 spider-mario left
wollmers std: "!" ~~ /\X7F/; 22:38
camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
22:38 tgt left
wollmers m: "!" ~~ /\X7F/; 22:40
camelia ( no output )
wollmers m: "!" ~~ /\x7F/;
camelia ( no output )
22:40 j4janicej is now known as j4jackj 22:45 grettis left, lucas_ left
raiph wollmers: Have you tried mixing P6 and P6 using Inline::P5 yet? 22:46
22:48 cognominal joined
raiph s/P6/P5/ 22:48
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:49
22:50 ClarusCogitatio left
timotimo oh damn, even p5 is too slow? 22:50
what chance do we have!
22:53 rindolf left
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:53
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:56 j4jackj is now known as j4janicej
japhb adds "build a nice Perl 6 environment" to his "setup a new box" script 22:57
22:59 raiph left 23:00 wollmers left 23:01 thou left 23:03 raiph joined
timotimo damn. i can't nativecast a CStruct 23:13
whhyyyyy
FROGGS_: i have a feature request :) 23:14
23:15 ajr_ left
timotimo it is now a zavolaj issue 23:19
23:20 virtualsue joined 23:23 Isp-sec left 23:24 grettis joined
dalek kudo/nom: 7ee9752 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Primitives for basename and dir, for 3 backends
23:26
23:29 grettis left 23:34 wollmers joined
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:42
timotimo mhh, fair enough 23:47
dalek kudo/nom: c7e4401 | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
Some more work on IO::Dir
lizmat and with that, I wish #perl6! good night!
timotimo good night, lizmat!
wollmers Oh, P6 has bitwise shift etc. Very nice for prototyping algorithms. 23:50
What would be idiomatic P6 for the P5: unshift @{ $bMatches->{$_} },$index++ for @$b[$bmin..$bmax]; 23:55