»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 25 June 2010.
tylercurtis It looks like just about everything has its own .perl method defined, ingy. paste.scsys.co.uk/45333 00:00
Which probably does not make what you want to do easy. 00:01
cuppe hm. should first always work like grep, just returning the first match? working with block syntax? 00:04
ingy tylercurtis: nod. I guess I could monkey patch *
[Coke] ah, I assumed it was actually a method on cool. Presumably you could put a .json at the top level object, invoke .perl, get the result, and have a common way to dump the results)
s/object/class/
00:04 lest_away is now known as lestrrat
[Coke] but who knows, might be easier to add .json everywhere. 00:04
is there a channel for pod-people? 00:05
cuppe rakudo: say first {/B/ and !/F/}, "BED" 00:06
p6eval rakudo 451b40: OUTPUT«Method 'match' not found for invocant of class ''␤ in 'Regex::Bool' at line 5042:CORE.setting␤ in 'prefix:<!>' at line 351:CORE.setting␤ in <anon> at line 11:/tmp/EtuAYSA0BC␤ in 'Block::ACCEPTS' at line 4985:CORE.setting␤ in 'infix:<~~>' at line 322:CORE.setting␤ in
..'Any::fir…
00:11 sftp left 00:16 songmaster joined
dukeleto sorear++ # thanks for answering my question about @_ 00:18
00:29 rgrau_ left 00:33 felliott left, azert0x left 00:43 Chillance left 00:44 felliott joined 00:47 lkk- joined 00:49 felliott left 00:54 bluescreen joined, bluescreen is now known as Guest49617 00:57 masonkramer_ joined, masonkramer left, masonkramer_ is now known as masonkramer
whiteknight Are the rakudo people looking at this new "organizations" feature in github? 00:58
pmichaud I'll probably look at it after R* is released 00:59
I've often wanted it, but this is not the month to be rocking the boat :)
(an "organizations" feature, that is)
whiteknight I'm sort of interested in seeing how it works, but I'm not going to create an organization myself 01:02
so I want you people to be the guinea pigs :)
pmichaud I'll very likely convert the perl6 account to be an organizational account
and I can see about converting the parrot account to the same
so yes, we can be the guinea pigs, if you can handle waiting a month 01:03
01:03 skids joined
whiteknight I can definitely wait. 01:04
colomon rakudo: say "5/4".eval 01:06
p6eval rakudo 36998b: OUTPUT«1.25␤»
sorear diakopter: Why hasn't dalek reconnected yet? 01:07
01:08 sorear sets mode: +oooo pmichaud whiteknight [Coke] dukeleto
diakopter dunno 01:09
i'll hup
01:10 dalek joined
diakopter dalek: WELCOME BACK YOU BOT YOU 01:10
01:10 plobsing joined 01:13 gbacon left 01:20 kensanata joined, kensanata left 01:22 meppl left 01:25 sorear sets mode: +vv dalek p6eval
sorear hugme and pugssvn are still out 01:25
diakopter I don't know how to retrieve those 01:30
well let me see
oops 01:32
I guess I could hijack moritz_'s screen session, though people growl about that 01:33
ah well; I've done worse
feather2, mind you
01:39 hugme joined
diakopter success 01:39
moritz_: kill me later :) 01:40
01:43 pugssvn joined
diakopter mruhaha 01:44
phenny: tell moritz_ let's run the bots in looping shell scripts if possible so a sighup from another root user can restart them more easily 01:45
phenny diakopter: I'll pass that on when moritz_ is around.
01:45 ashleydev left 01:49 tylercurtis_ joined, tylercurtis left, tylercurtis_ is now known as tylercurtis 01:51 whiteknight left
pmichaud the series operator documentation is either ambiguous or contradictory 01:55
when is the paragraph beginning with "The exact function deduced..." supposed to apply? 01:56
01:57 sorear sets mode: +vv hugme pugssvn
colomon ciphertext and I were thinking it should be after the left hand values are passed along. 01:58
pmichaud that sentence doesn't really make sense to me 01:59
01:59 Guest49617 left
pmichaud if I follow that paragraph precisely, then it would mean 01:59
1, 2, 3 ... $n would result in 1, 2, 3, 2, 1, 0, -1 when $n is == -1
and I'm pretty sure that's not what is intended 02:00
(as it contradicts earlier statements)
colomon ah, I think I see what you're getting at. 02:01
pmichaud I think the function has to be deduced based on the first value of the lhs, not the last one.
one part of the spec says "values on opposite sides of the limit" 02:03
this part of the spec says "deduced from the final value on the left to the limit on the right"
still a third part says "on the wrong side of the first value of the left list" (granted, only for intuited numeric generators) 02:04
seems like it really ought to be one rule.
colomon agreed. 02:05
(I think, on the tired side to follow this.)
My impression is the limit rule we are using in the master branch seems to do what TimToady wants. 02:06
pmichaud looking 02:07
colomon even though it's not exactly what the spec says.
pmichaud but my last impression was that limit rule has some broken edge cases
colomon (I wrote it under direction from him.)
for sure it won't work as is on the very first element 02:08
[Coke] for those that remember packy from YAPC:
packy.livejournal.com/156186.html
pmichaud yes, what is in master now is too complex to really be correct, imo.
02:09 Guest49617 joined
colomon packy++ 02:11
pmichaud okay, so here's my current guess 02:12
when we intuit a numeric generator, we use that generator to determine the limit condition
when we don't intuit a numeric generator, we use the last element of the lhs and the first element of the rhs to determine the limit condition 02:13
so: 'a', 'b', 1 ... $n would indeed produce 'a', 'b', 1, 0, -1, -2 when $n == -2
colomon pmichaud: errr... that's intuiting the generating function, not the limit, right? 02:14
pmichaud it's both.
with 'z' ... 'a' we automatically determine the generating function (.pred) and the limit 02:15
oh, bad example. 02:16
colomon nod
pmichaud with 99 ... 3 we automatically ....
colomon what do you think the limit function is here? 02:17
pmichaud well, we're not intuiting an arithmetic or geometric series 02:18
therefore our generating function is .pred, and we stop when { $^a !after 3 } 02:19
or, put another way, we continue as long as { $^a !before 3 }
(to strictly match the spec) 02:20
02:21 agentzh joined
pmichaud I'm also curious about 02:22
1, 2, 3, *+1 ... 0 # infinite? 02:23
as opposed to
1, 2, 3 ... 0 # Nil?
colomon my first thought is infinite.
pmichaud alas, no. spec says: 02:24
colomon the Nil rule is for "intuited numeric generators"
pmichaud okay then
so, the first one is infinite, the second is nil
colomon yes
pmichaud and 1, 2, 3 ... $n is not always the same as 1, 2, 3, *+1 ... $n
*that* will confuse people a lot.
colomon because the code block could be anything.
agreed. 02:25
it's like the mostly eager stuff -- the Nil rule is an attempt to rule out cases where the series probably isn't doing what the author intends. 02:28
but that means it doesn't really fit in well with the big picture DWIMiness for series. 02:29
pmichaud part of me wants to examine the entire lhs for increase/decrease to determine the limit
er, the relation to the limit 02:30
colomon but it doesn't have to be consistent at all.
pmichaud sure, and in that case, we don't deduce a limit.
sorry, we don't deduce a relation
colomon 2, -3, 1, -1, 33, { * + (-1, 1).pick } ... 10 is legal, after all.
pmichaud and you'd want to stop as soon as we get a value that is 10 or before? 02:31
I could almost argue that this series should continue until 10 is reached exactly, otherwise infinite
colomon that's supposed to stop *only* reached exactly.
*when ten is reached
sigh. very tired. 02:32
pmichaud ah. current spec says that it would stop when we get 10 or a value less than 10.
colomon wait, that's not right either.
pmichaud (the "either side" rule.)
colomon yes, I think you're right.
pmichaud (and the fact that there's confusion about what should happen just shows how the spec has the dwimminess or ambiguity knobs turned up too high) 02:34
I think as a general rule it might be nicer if we simply say "if monotonicity can be determined from the lhs, we use that to determine the relation to the limit. otherwise, stop only when the limit is reached exactly." 02:35
colomon I absolutely think the spec here has some maturing to do uyet.
pmichaud because "the absolute value when geometric with sign changes" is also a bit weird to deal with. 02:36
or, stated differently, the spec as it exists now involves memorization of too many special cases, and in Perl 6 we're trying to eliminate that :) 02:37
colomon :)
pmichaud so, if all(@lhs) !after $limit, then the condition becomes $_ !after limit 02:39
lue thinks the spec needs to be a bit more accessible. :)
pmichaud hmm, that's not quite right.
colomon wouldn't it be something like if [before] @lhs? 02:41
if you want @lhs to be monotonic.
[!after] is legal, isn't it? crazy language we've got here.
rakudo: say [!after] 1, 1, 2, 3, 3, 4, 5 02:42
p6eval rakudo 36998b: OUTPUT«1␤»
colomon rakudo: say [!after] 1, 1, 2, 3, 3, 2, 5
p6eval rakudo 36998b: OUTPUT«0␤»
colomon rakudo: say [before] 1, 1, 2, 3, 3, 4, 5 02:43
p6eval rakudo 36998b: OUTPUT«0␤»
colomon rakudo: say [before] 1, 1.2, 2, 3, 4, 5
p6eval rakudo 36998b: OUTPUT«1␤»
02:49 am0c joined 02:51 agentzh left
colomon so if [!after] @lhs, then the termination case is $latest after $rhs? 02:53
no, because the case is, if the $latest equals the limit, the output $latest and we're done.
frew rakudo: say 1 before 2 02:54
p6eval rakudo 36998b: OUTPUT«1␤»
frew rakudo: say 0 before 2
p6eval rakudo 36998b: OUTPUT«1␤»
frew rakudo: say 2 before 0
p6eval rakudo 36998b: OUTPUT«0␤»
frew how is before different than < ? 02:55
colomon sorry that's not clear, pmichaud, but the point I'm trying to make is it's not enough to say $latest after $rhs, because you can only return the $rhs (the limit) once. 02:56
lue rakudo: say 'a' before 'z'; say 'a' < 'z';
p6eval rakudo 36998b: OUTPUT«1␤0␤»
lue well, there's one reason.
frew ah interesting
so < is numeric and before is generic
that makes sense
colomon after / before is anything.
< is numeric
frew :-)
colomon sorry, running very slow brain-wise here. 02:57
ash_ catch blocks set $_ to the exception, right?
frew rakudo: say [<foo frew frioux bar baz biff zong>].sort {$^a before $^b}
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "say [<foo "␤»
frew rakudo: [<foo frew frioux bar baz biff zong>].sort {$^a before $^b}.perl.say 02:58
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "[<foo frew"␤»
frew rakudo: <foo frew frioux bar baz biff zong>.sort {$^a before $^b}.perl.say
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "<foo frew "␤»
frew :-(
ash_ rakudo: ([<foo member:frew frioux bar baz biff zong>].sort: {$^a before $^b}) .perl.say
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "([<foo mem"␤»
frew rakudo: (<foo frew frioux bar baz biff zong>).sort {$^a before $^b}.perl.say
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "(<foo frew"␤»
ash_ rakudo: (<foo member:frew frioux bar baz biff zong>.sort: {$^a before $^b}).perl.say
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "(<foo memb"␤»
ash_ rakudo: (<foo frew frioux bar baz biff zong>.sort: {$^a before $^b}).perl.say 02:59
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Confused at line 11, near "(<foo frew"␤»
ash_ grr
frew rakudo: (<foo frew frioux bar baz biff zong>).sort({$^a before $^b}).perl.say
lue
.oO(interesting clock)
ash_ thats weird
p6eval rakudo 36998b: OUTPUT«("frew", "frioux", "foo", "bar", "biff", "zong", "baz")␤»
frew \o/
so that's probably the default sort I'd bet
colomon what, why \o/ 03:00
?
before and after are not for sorted
frew uh
because it worked?
colomon for bar zong is sorted?!?
frew after we tried 7 different ways and failed
what?
lookj at the result 03:01
oh wait
ywah
colomon "frew", "frioux", "foo", "bar", "biff", "zong", "baz" -- how is that sorted?
frew can't read
colomon if you pass a two argument comparison to sort, it has to return -1 0 +1, just like cmp
frew oooh
colomon rakudo: (<foo frew frioux bar baz biff zong>).sort({$^a cmp $^b}).perl.say 03:02
p6eval rakudo 36998b: OUTPUT«("bar", "baz", "biff", "foo", "frew", "frioux", "zong")␤»
colomon which is the standard default sort.
03:02 molaf joined
colomon before only returns true or false. 03:02
(and yes, cmp is the default sort)
rakudo: (<foo frew frioux bar baz biff zong>).sort.perl.say
frew so the reduce form just returns *if* the list is sorted then?
p6eval rakudo 36998b: OUTPUT«("bar", "baz", "biff", "foo", "frew", "frioux", "zong")␤»
colomon [before], you mean?
yes
frew that's reduce right? 03:03
colomon yes.
frew k, just making sure
colomon that's not just sorted, there cannot be any duplicates
lue hm, according to the spec, loose and & loose or are list associative, not left assoc. (as Grammar.pm would have us believe)...
colomon [!after] is sorted with duplicates
I sooooo need to go to bed. 03:04
lue
.oO(let's change it and see what happens...)
03:05
03:08 ash_ left
colomon 'night, all. 03:08
lue goodnight colomon o/ 03:09
colomon one last thought, pmichaud: are you thinking that the monotonic test you're proposing should work for series where you pass in the generating code block? That 1, 1, *+* ... 400000 series I used the other day was really slick, requiring the user to find the exact limit value on something like that would be a big drawback. 03:18
of course, the problem with that is what do you do for the 1, { code } ... 4000000 case? Hmmm... guess it can be based on 1 versus 4000000 03:20
pmichaud: what were you saying about comparing the first value on the LHS to the limit? :)
....sleep
03:20 broquaint left 03:21 broquaint joined
dalek meta: r359 | stefa...@cox.net++ | trunk/vicil (4 files):
[vicil] Switch to generated code for testing. Extend code generator to handle
03:29
diakopter impressive 03:33
lue heh. I changed one thing (well, two) in Grammar.pm, and every single spectest test returns dubious :) 03:41
03:43 Guest49617 left, mikehh left, mikehh joined 03:47 tedv left 03:55 ashleydev joined 03:56 jaldhar left, jaldhar joined, am0c left
sorear How does Perl 6 interpret the return value of .Bool? 03:58
lue afk 04:03
04:04 ashleydev left 04:09 ashleydev joined
cxreg o_O how do you use a variable in hash subscript? <> seems to work like q{} 04:11
04:11 am0c joined
frew cxreg: %has{$foo} 04:13
04:13 molaf left
cxreg ah, i thought {} was always a block 04:13
PerlJam cxreg: <> is the "quote words" operatior
er, operator
cxreg: {} is always a block, except when it's not :)
cxreg um ok, but i thought that was a big emphasis of TimToady, that {} was unambiguous in 6 04:14
anyway, {} it is.
PerlJam cxreg: yeah, except that {} for subscripting is still pretty fundamental to PErl 04:16
cxreg its just syntax 04:17
i thought <> replaced {} as a subscript, across the board 04:18
PerlJam nope, <> is just a convienent shorthand
{} is even used for user-defined indexing into @arrays 04:19
04:22 skids left
frew for some reason I can't seem to get nqp to match a ';' 04:27
after some other stuff...
in perl 5 I'd so something like, ([^;]+); 04:28
how do I do the same thing in perl 6?
I tried [!';']; 04:29
sorear <![;]>
(.*?); 04:30
(<![;]>*);
[particle] (<![;]>*) ;
sorear tomorrow, I'm going to have to pick brains (TimToady? pmichaud?) on exactly what BEGIN means in a compiled context 04:31
[particle] hrmm, do you need to quote the semicolon? i think not
frew I did the first with a +
[particle] well, s/*/+/
frew man
I'm getting some kind of infinit loop
[particle] back to plotting my weekend backpacking...
frew paste.scsys.co.uk/45336 04:32
input of '$frwe:1;'
04:41 justatheory left
sorear Oh wait nevermind. I already came up with the answer to this one; it's in my notes. 04:41
frew ?
04:58 mberends left 05:02 ashleydev left 05:16 IllvilJa left 05:22 kaare joined, kaare is now known as Guest30036
ingy hi [particle] 05:25
05:27 amkrankruleuen joined
amkrankruleuen Hello. (: 05:28
PerlJam greetings
05:29 Su-Shee joined
PerlJam Suuuuuuuuu-Sheeeeeeeeee 05:31
PerlJam is tired
05:35 cono left
songmaster Question — I have a 2-dimensional array, [[1,2],[3,4]. How do I flatten it to [1,2,3,4]? 05:41
(missing second ] in my array)
05:46 cono joined 05:49 songmaster left 05:50 agentzh joined
sorear Hello amkrankruleuen 05:55
dalek meta: r360 | stefa...@cox.net++ | trunk/vicil/Kernel.cs:
[vicil] Implement protoobjects
05:57
06:00 rcsheets` joined 06:05 amkrankruleuen left
Su-Shee PerlJam: no wonder.. it's early in the morning ;) 06:08
06:09 uniejo joined, Guest63979 left
sorear invents not one, but two compiler-specific phasers. Just like that. 06:11
dalek meta: r361 | stefa...@cox.net++ | trunk/vicil/ (2 files):
[vicil] Tiny change of plans. There is no KERNEL frame; very low-level
06:12
06:20 Guest30036 is now known as kaare_
sorear I need a new name for my Perl 6 implementation 06:23
I've deviated far enough from diakopter's plans that I don't feel right keeping his name 06:24
06:25 am0c left 06:27 mmcleric joined 06:28 Mowah joined 06:31 mberends joined 06:39 am0c joined
cxreg is there some way to make a method private to everyone except privileged classes? 06:55
sorear make it private and use trusts? 06:56
but accessibility is only a convention in Perl
07:04 lestrrat is now known as lest_away 07:05 TiMBuS joined
TiMBuS i got a seasoned perl5er to report back on how accessible perl6 is at the moment. he wrote up a nice little 'trip report' about it 07:10
i will nopaste it
nopaste?
wheres purl :<
tylercurtis TiMBuS: nopaste.snit.ch/ 07:14
TiMBuS got it, thanks :)
nopaste.snit.ch/21695 <- needs wordwrap 07:16
07:16 Ross joined
TiMBuS nopaste.snit.ch/21695?wr=on&sub...Format+it! i guess that's the link you'd want. 07:17
when you word wrap it ruins the actual paragraphs. a bit annoying :<
07:18 amkrankruleuen joined 07:19 cuppe left
tylercurtis nopaste.snit.ch/21695?tx=on&sub...Format+it! works fine for me: word-wrap without breaking paragraphs. 07:20
07:20 cuppe_ left 07:21 cuppe joined 07:22 cuppe_ joined 07:23 junior_ joined 07:24 junior_ left 07:29 amkrankruleuen left, amkrankruleuen joined
TiMBuS probably your browser wrapping ti for you. oh well regardless its all useful imo 07:35
dalek meta: r362 | stefa...@cox.net++ | trunk/vicil/notes.pod:
[vicil] Tonight's insights
08:00
sorear this stefa...@cox.net guy 08:01
stealing all my karma
08:01 aesop left
kaare_ Stefans are like that 08:02
08:05 aesop joined 08:07 masak joined
masak oh hai, #perl6! 08:07
www.marriedtothesea.com/092607/tgiw.gif
sorear Hello masak 08:16
I need your help naming something
masak :) 08:17
sorear You seem to be good at it
masak why, thanks.
what is it?
sorear It's a Perl 6 implementation I'm hacking on
masak oh, I read about that.
tell me a bit more.
08:18 dakkar joined
sorear I used to call it Sprixel/VICIL but it's veered quite far from diakopter's spec and I feel his name is no longer mine to use 08:18
masak so what characterizes it?
sorear it targets the CLR. its experimental focus is static compilation support and CHECK time optimization
masak nice.
you could call it "Czech" :) and no-one would be able to spell it. 08:19
sorear Do you have something a little more unique? 08:21
I suppose Czech is better than Go
masak hm, maybe a variation of "Nie mamy czas" would be appropriately punny.
I was also thinking along the lines of "Optimus Prime". 08:22
but that's both a keyboard and a giant robot, so it'd have to be different somehow.
maybe "Optimus Six"?
still sounds more like a language than an implementation... 08:23
mathw # And you look like a victim of a surgical crime / A little Darth Vader a little Optimus Prime
masak mathw: we listen to different kinds of music. :P
mathw So do I, but that song's funny 08:24
also desperately sad
sorear wants something compact, cheery
maybe I'll try Niecz
(what's 'mamy')? 08:25
arnsholt What's "Nie mamy czas"? =)
masak it means "We don't have time" in Czech.
mathw O6
masak sorear: you could call it "Maglev". 08:26
(because it's fast, and has no friction)
sorear Niecza has a very good Google Uniqueness Quotient 08:27
masak that's nice. 08:28
08:28 thebird joined
masak looks a bit like "Nietzsche", too. 08:28
sorear and it has a nice semi-meaningful expansion, and it rolls like Rakudo or Yapsi or Sprixel
sorear takes
thanks
masak you're welcome.
mathw \o/ 08:29
08:29 mathw sets mode: +o masak
masak phenny: tell jnthn lol we named sorear++'s Perl 6 implementation based on "Min man e kass" :P 08:30
phenny masak: I'll pass that on when jnthn is around.
08:34 Ross left
sorear What's that? 08:37
08:37 timbunce joined
kaare_ Nietzsche declared that God is dead. Perhaps Niecza will declare Perl5 to be dead ;-) 08:38
masak sorear: it's a song in Czech that somebody put Swedish subtitles on. 08:39
sorear: www.youtube.com/watch?v=y3oFc-phIBA
sorear ah. 08:42
masak jnthn started his exploration of Swedish by forming sentences of the form "Min X är kass" -- "My X is broken/bad" 08:43
so don't be surprised if people send bug reports starting "Min Niecza e kass" :P 08:44
moritz_ diakopter: the evalbot did run in a loop
phenny moritz_: 01:45Z <diakopter> tell moritz_ let's run the bots in looping shell scripts if possible so a sighup from another root user can restart them more easily
sorear Are Swedish and Czech closely related? 08:45
masak sorear: not in any immediate sense. 08:47
sorear: but there's a subculture/tradition here in Sweden (and to a lesser extent in the anglosphere) of subtitling lyrics which "sound like" Swedish if you don't listen too closely. 08:48
& # posing with milk 08:49
08:49 mikehh left 08:50 mikehh joined, plobsing left 08:51 mj41 left 08:52 mikehh left, mikehh joined 08:59 mikehh left
dalek meta: r363 | stefa...@cox.net++ | trunk/vicil/Compiler.pm:
[vicil] Start on tree compiler
08:59
09:00 lkk- left
tylercurtis moritz_: about to go to bed, but thought I should let you know that :min_depth and :descend_until are both implemented for transformation and appear to work(by which I mean, they pass all my tests, including tests of the two together). 09:03
moritz_ tylercurtis: yay 09:04
tylercurtis: I don't know if I'll have time to play around with them, but if yes I'll let you know the result
tylercurtis moritz_: thanks. 09:08
09:09 cuppe left, cuppe joined, cuppe_ left, cuppe_ joined
pugssvn r31509 | moritz++ | [t/spec] tests for RT #72912, .perl on result of series operator 09:12
09:19 tadzik joined, tylercurtis left
jnthn morning, #perl6 09:23
phenny jnthn: 08:30Z <masak> tell jnthn lol we named sorear++'s Perl 6 implementation based on "Min man e kass" :P
jnthn lol
moritz_ good morning jnthn
bbkr morning P6 09:24
rakudo; my %h; %h<one><two> = 1; 09:25
bbkr pokes rakudo eval
moritz_ try it with : instead of ;
bbkr rakudo: my %h; %h<one><two> = 1;
arnsholt IIRC that doesn't work
p6eval rakudo 36998b: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Proxy'␤ in main program body at line 1␤»
bbkr yep, sleepy :)
arnsholt (Autovivification is NYI) 09:26
jnthn masak: Hmm...do the Czechs really spell it czas?
jnthn checks
masak: They don't - the z to imply softness is a Polishism. :-) The Czech is čas. ;-) 09:27
bbkr czas is polish word :)
jnthn bbkr: Means "time"?
bbkr yes
jnthn :-) 09:28
At least the meaning is consistent then. :)
sorear Does Nie mean anything in Polish? 09:29
bbkr "nie mam czasu" means "i don't have time for that". useful phrase to remember :)
Nie means "no"
or "i don't"
negation
jnthn bbkr: At least the meaning was the same. :-) Woulda been far worse if they'd chosen the Polish verb szukam and expected it to mean something good in Slovak. :-)
Su-Shee it means never in german. 09:30
jnthn Su-Shee: I managed to order beer and currywurst in German on Sunday. \o/ 09:32
09:32 mmcleric left
bbkr Slovak, Czech and Polish are very similiar languages. I think relation can be compared to case of Ukrainian and Russian - they use their own languages but can understand each other without dictionary 09:32
jnthn had a short time in Cologne.
09:32 mmcleric joined
Su-Shee jnthn: and did you actually _get_ beer and currywurst (UAH.. :) ? 09:33
jnthn Su-Shee: I did! \o/
And it was very nice. :-)
Su-Shee I've never eaten currywurst once... or bavarian weisswurst..
amkrankruleuen o polak! 09:34
Su-Shee my polish collegue immediately recognized zavolaj, btw. and found it funny.
jnthn bbkr: Well...maybe native speakers can. While I found I could guess my way through a decent bit of Czech, Polish felt that bit more distant.
pugssvn r31510 | moritz++ | [t/spec] test for RT #76068, two iterations of a loop share the same $_ if it is not a formal parameter of the block 09:35
jnthn Su-Shee: Huh, most of what I eat in Germany is wurst. :-)
sorear I've finished renaming and extracting niecza; it now lives on github
Su-Shee jnthn: I think it's similar that I understand dutch and can read it "somehow".
jnthn :-) 09:36
Su-Shee jnthn: man, can't you go for the better things of german food? like our variety of bread? or cakes? :)
amkrankruleuen Polish have hard grammar.
sorear Who do I poke to get a new repo on dalek?
tadzik sure we do :) 09:37
jnthn You mean I've been eating the wurst thing you have? :-)
moritz_ sorear: maybe diakopter knows
jnthn Su-Shee: I agree on the cakes though. :-)
They are also great.
sorear out
bbkr Su-Shee: Czech is funny for people from Poland because Czech words sounds similiar to Polish diminutives
Su-Shee jnthn: ok, then try bratwurst as well and go for hams next. ;)
bbkr: for me, dutch has a "cute" sound. :) 09:38
jnthn takes notes for his next trip to Germany :-)
cono bbkr: It's funny for Ukrainian too :)
Su-Shee jnthn: oh, and short before christmas: cookies. that's something we really do very well. christmas cookies. all kinds of regional stuff, some recipes are like 800 years odl.. 09:39
bbkr cono: for me Ukrainian was quite understandable without learning. reading was a bit more difficult, but cyrylic is in fact very cute. 09:40
cono bbkr: Are you from Poland? 09:41
bbkr cono: yes
cono neighbour :
)
jnthn Su-Shee: Conveniently, I have a sleeper train from here to Cologne, and from there I can easily get to the UK to see family. So I now have a great excuse to visit a German christmas market in Germany. :-) 09:42
Su-Shee harhar. who isn't a neighbour on continental europe? ;)
jnthn (German christmas markets seem to happen all over the UK these days too, but I suspect the real thing is far better.)
Su-Shee jnthn: you could probably get away with asking randomly housewife-ish looking middle aged women in a small town for christmas cookies ;)
cono Su-Shee: ofc, but Ukraine and Poland so close to each other 09:43
Su-Shee cono: well historically spoken, poland's position in between has been more of a curse but a blessing. ;) 09:44
masak right, "čas". 09:45
cono between what countries?
Su-Shee sweden, russia, germany/prussia 09:46
food!
masak Su-Shee: this could be a solution to Poland's problems: www.economist.com/node/16003661?sto...d=16003661
cono haha, Ukraine rocks :D 09:47
tadzik oh no
it's rainy enough alredy 09:48
jnthn masak: hah :-)
cono: Indeed. :-)
bbkr masak: hahaha, nice one. amazing how they reorganized countries with maintaining continent shape
jnthn I love how they moved Switzerland up to the Nordics. :-) 09:49
bbkr rakudo: class A { has $.foo }; my A $a .=new( foo => 42 ); say $a.perl
p6eval rakudo 36998b: OUTPUT«A.new()␤»
masak bbkr: .perl on user-created classes is LTA. 09:50
jnthn It's also unspec'd.
masak jnthn: the idea of .perl is to serialize so that an eval() restores the object as best possible, no?
jnthn masak: something laik that. 09:51
bbkr leaving #61918 open then, with comment that it does not crash now
jnthn masak: otoh, do we want .perl to go exposing an object's privates?
moritz_ sure 09:52
09:52 perlygatekeeper1 joined, perlygatekeeper left
bbkr rakudo: my Int $x = +"2"; 09:54
masak jnthn: what moritz_ said. I think using .perl is sufficiently "meta" to consider it not a real breach of OO principles.
p6eval rakudo 36998b: OUTPUT«Type check failed for assignment␤ in '&infix:<=>' at line 1␤ in main program body at line 11:/tmp/Kd2cLlQ1a9␤»
masak bbkr: mmmr, I hate that bug. :/ 09:55
bbkr rakudo: (+"2").WHAT.say
p6eval rakudo 36998b: OUTPUT«Num()␤»
masak also, why doesn't it say which type it expected and which one it got?
moritz_ masak: I think colomon++ has been preparing to fix that
masak nice.
cono what means LTA?
moritz_ cono: less than awesome
cono :) 09:56
bbkr rakudo: say 'hello-world'.split(/<ws>/).perl;
cono thanks
p6eval rakudo 36998b: OUTPUT«("", "ello", "", "", "orld", "", Mu)␤»
masak moritz_: re stackoverflow.com/questions/3147776...-for-perl6
moritz_: nice reply.
moritz_: however, we seriously need to find a URL that doesn't contain the word 'proto'.
nor 'pls'.
moritz_ masak: modules.perl6.org?
masak yes.
bbkr rakudo: say 'a-b-c'.split(/<ws>/).perl; # doesn't look good 09:57
p6eval rakudo 36998b: OUTPUT«("", "", "", "", "", "", Mu)␤»
masak it doesn't highlight the level difference between 'project' and 'module' that I've sometimes been advocating, but maybe that's just as well.
moritz_ "project" is just *very* general
masak bbkr: huh. is that an RT ticket.
moritz_: true. so is 'ecosystem'. 09:58
bbkr masak: rt.perl.org/rt3/Ticket/Display.html?id=63066 - related
masak bbkr: yeah, but it's seemingly gotten worse.
bbkr masak: i added comment there, but it looks now like higher priority than just end of line mismatch 10:00
moritz_ zero-width matches in general seem to set it up
more or less
masak bbkr: indeed. it's more or less another bug now.
bbkr rakudo: sub s($i is copy) { my @array; for 1..3 { @array.push($i); my $i = 1 + $i; }}; s(9); 10:02
p6eval rakudo 36998b: OUTPUT«Use of uninitialized value in numeric context␤Use of uninitialized value in numeric context␤Use of uninitialized value in numeric context␤»
moritz_ stackoverflow.com/questions/3144043...72#3148172
dalek kudo: 261eb2a | moritz++ | README:
README: emphasize that installing Rakudo is really necessary
10:03
masak not running 'make install' gives a divide by zero now?
moritz_ seems like 10:04
masak couldn't we just detect that situation once and for all, and put a nice error message there? :)
bbkr rakudo: my $x = "foo"; class A { my $.y = $x } 10:05
p6eval rakudo 36998b: ( no output )
bbkr rakudo: my $x = "foo"; class A { my $.y = $x }; A.new.y.say;
p6eval rakudo 36998b: OUTPUT«Method 'y' not found for invocant of class 'A'␤ in main program body at line 11:/tmp/flkcISPHqk␤»
moritz_ masak: I'm kinda surprised it doesn't blow up in a more helpful way, since .loadlib now fails loudly 10:06
masak bbkr: that's right, as far as I can see.
or does 'my' also create accessors?
jnthn moritz_: If you can dig through perl6.pir in alpha
bbkr masak: it is right. i'm testing rt.perl.org/rt3/Ticket/Display.html?id=63588
jnthn moritz_: Then the code we used to have is in there.
moritz_: It'd want to go into src/Perl6/Compiler.pir
moritz_ jnthn: I'll take a look
bbkr rakudo: my $x = "foo"; class A { my $.y = $x; sub foo {say $.y} }; A.new.foo; 10:07
p6eval rakudo 36998b: OUTPUT«Method 'foo' not found for invocant of class 'A'␤ in main program body at line 11:/tmp/5zh9sYrXBv␤»
bbkr rakudo: my $x = "foo"; class A { my $.y = $x; method foo {say $.y} }; A.new.foo;
p6eval rakudo 36998b: OUTPUT«Method 'y' not found for invocant of class 'A'␤ in 'A::foo' at line 11:/tmp/eHqN_GnKLq␤ in main program body at line 11:/tmp/eHqN_GnKLq␤»
jnthn bbkr: We don't do anything with my $.foo yet in Rakudo afaik
Beyond creating the lexical
I think we probably should generate a method too 10:08
But...I'm not quite sure how that should look...
(The normal route goes through the meta-model...)
moritz_ I'm kinda convinced that class attributes need a re-design in Perl 6 10:09
bbkr rakudo: "foo" ~~ /<B::TOP>/ 10:11
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 11, near "::TOP>/"␤»
bbkr ? why it complaints about regex assertion instead of nonexisting grammar?
jnthn moritz_: It's hard to have class attributes when you don't really have a "class" object. :-) 10:12
class Foo { ... } # installs Foo in the namespace 10:13
erm
bbkr rakudo: my ::MyType ::= :(Num, Str);
p6eval rakudo 36998b: OUTPUT«===SORRY!===␤Malformed my at line 11, near "::MyType :"␤»
jnthn s/Foo/type-object/
10:16 agentzh left 10:18 amkrankruleuen left
TiMBuS hey there, just wondering if masak, jnthn, other higher ups saw that paste before 10:18
masak cognominal: the thing you submitted to RT feels more like a topic for p6l than a ticket in RT.
TiMBuS: this one? nopaste.snit.ch/21695?tx=on&sub...Format+it! 10:20
TiMBuS thats the one 10:21
10:21 literal left
masak TiMBuS: I'm getting an unusual tl;dr reaction to that text. could you summarize a bit? like, two or three bullet points? 10:22
cognominal masak: yea. I hit a snag and it triggers a lot of thoughts
masak cognominal: even besides that, it's a Perl 6 feature request more than a Rakudo feature request. 10:23
hence, p6l.
10:24 azert0x joined
cognominal I made my mind on one thing, I think Range should be a parametric class. I don't know if parametric classes have a sensible default. 10:24
masak, feel free to follow up on p6l
10:25 HarryS joined
TiMBuS dot points is a bit hard since its a bit of a detailed um. journey to find perl 6 10:25
masak cognominal: was there a use case in there somewhere? what do you want this for?
TiMBuS: what's the most sailent point in what you wrote? 10:26
TiMBuS finding perl6 is a little bit difficult, and could use some polish 10:27
masak agreed.
TiMBuS in particular, the perl download page could use a link
masak url?
TiMBuS since googlig for perl 6 takes you there
www.perl.com/download.csp
cognominal masak, using Range on Ints, excluded values are a lot of trouble and unecesseraly complicates the code 10:28
TiMBuS The second hit (on google) is the perlfoundation.org page for downloading Perl 6 [ www.perlfoundation.org/perl6/index....oad_perl_6 ]
masak right. who has the keys to that page?
TiMBuS also not a great link
10:30 am0c left, ruoso left
masak bbkr: the reason '"foo" ~~ /<B::TOP>/' gives the error 'regex assertion not terminated by angle bracket' is that the <B::TOP> syntax isn't implemented in nqp-rx. 10:30
bbkr: so the only thing that tells us is that right now, it's not possible to make the bug manifest. 10:31
bbkr masak: thanks
masak cognominal: do you have a code example of how you picture using your proposed addition? 10:32
10:32 mmcleric left 10:34 mmcleric joined
cognominal I guess I will golf one 10:35
masak s/sailent/salient/
'salient' means 'jumping [out]', apparently.
dalek kudo: aa015ad | moritz++ | src/Perl6/Compiler.pir:
more awesome error message when running a non-installed Rakudo outside of the

  masak++ for complaining, jnthn++ for telling me where to steal the code
  (alpha's perl6.pirg)
10:38
masak \o/
frettled masak: I just read your p6c post regarding a monkey-typed Bool.pick. You suggest: defined self ?? self || (True, False).pick; - couldn't that be easier implemented as: self // (True, False).pick
moritz_ rakudo.org/submit-a-bug-report 10:39
masak frettled: oh, 'course. much better. thanks. :)
moritz_ now somebody needs to change the title in the navigation bar
I don't know how to do that (and I don't know if i have the privileges to do it)
frettled was useful again! Woot! 10:41
xinming '11 10:43
10:44 figg joined, am0c joined 10:45 tadzik left, figg left 10:46 hugme left, hugme joined 10:47 amkrankruleuen joined
moritz_ hugme: tweet rakudoperl #rakudo now supports the $*ARGFILES magic file handle, which replaces the 'while (<>) { ... }' which you might know from Perl 5 10:48
hugme hugs moritz_; tweet delivered
10:58 tadzik joined
bbkr rakudo: sub example ($x is rw) { $x = 3; my @a; @a.push($x); $x = 5; say @a[0]; }; example(3); 11:07
p6eval rakudo 261eb2: OUTPUT«Cannot assign to readonly value␤ in '&infix:<=>' at line 1␤ in 'example' at line 11:/tmp/Px0mu1JHtu␤ in main program body at line 11:/tmp/Px0mu1JHtu␤»
bbkr where is raadonly value here?
readonly* 11:08
masak that's the question.
bbkr rakudo: sub example ($x is rw) { $x = 3; my @a; @a.push($x); $x = 5; say @a[0]; }; example(); 11:09
p6eval rakudo 261eb2: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in 'example' at line 11:/tmp/PeJ2HXfitk␤ in main program body at line 11:/tmp/PeJ2HXfitk␤»
hejki rakudo: class Foo { has Int $.x is rw; method bar { "type of x: $.x.WHAT".say } }; my $f = Foo.new(); my $str = "foobar"; $str ~~ /(oo)/; $f.x = $0; $f.bar
p6eval rakudo 261eb2: OUTPUT«type of x: oo.WHAT␤»
masak bbkr: ah. it's the 3.
bbkr rakudo: sub example ($x is rw) { $x = 3; my @a; $x = 5; }; example(3);
p6eval rakudo 261eb2: OUTPUT«Cannot assign to readonly value␤ in '&infix:<=>' at line 1␤ in 'example' at line 11:/tmp/RnjdwmwGFk␤ in main program body at line 11:/tmp/RnjdwmwGFk␤»
hejki rakudo: class Foo { has Int $.x is rw; method bar { "type of x: " ~ $.x.WHAT ~ "".say } }; my $f = Foo.new(); my $str = "foobar"; $str ~~ /(oo)/; $f.x = $0; $f.bar
p6eval rakudo 261eb2: OUTPUT«␤»
masak bbkr: in your first one-liner.
hejki rakudo: class Foo { has Int $.x is rw; method bar { "type of x: {$.x.WHAT}".say } }; my $f = Foo.new(); my $str = "foobar"; $str ~~ /(oo)/; $f.x = $0; $f.bar 11:10
masak bbkr: the 3 is a literal, hence read-only.
p6eval rakudo 261eb2: OUTPUT«type of x: Match()␤»
bbkr rakudo: sub example ($x is rw) { $x = 3; my @a; @a.push($x); $x = 5; say @a[0]; }; my $z = 3; example($z); 11:11
p6eval rakudo 261eb2: OUTPUT«3␤»
bbkr masak: if this is expected behavior, then rt.perl.org/rt3/Ticket/Display.html?id=61982 can be closed as not spec-compatible?
masak moritz_: could you have a look at rt.perl.org/rt3/Public/Bug/Display.html?id=61982 ? 11:12
moritz_: I can't see how `$x = 5` could be legal if $x is bound to the argument 3.
fwiw, it should work fine (and output 3) for 'is copy'. 11:13
bbkr rakudo: say $x; my $x=4; 11:19
p6eval rakudo 261eb2: OUTPUT«Any()␤»
bbkr rakudo: my @a = "foo", "foot"; if @a[all(0,1)] ~~ /^ foo/ { say "OH MY!" } 11:23
p6eval rakudo 261eb2: OUTPUT«OH MY!␤»
bbkr yay
masak bbkr++
bbkr this test belongs more to array indexing or junctions or smartmatch/ 11:24
?
colomon pmichaud, et al: just finished some more timings. It appears that stringifying an array of 100 strings (each < 80 chars) into a single Str takes about 17 seconds on my MBP.
moritz_ masak: huh? $x is rw 11:25
masak moritz_: 3 isn't.
colomon 50 strings appears take 5.4 seconds, suggesting we might be O(N^2) here. 11:26
masak moritz_: sub example($x is rw) { ... }; example(3)
bbkr: junctions, I'd say.
moritz_ masak: then the dispatch should fail
masak moritz_: oh, indeed.
moritz_ masak: but modulo that, and calling it as example(my $y = 3), the problem is gone
moritz_ -> afk 11:27
masak moritz_: right. just checking what it was you were reporting.
colomon 200 strings, 77 secs 11:28
masak colomon: Schlemiel, probably. en.wikipedia.org/wiki/Schlemiel_the..._algorithm 11:31
colomon masak: interesting. I had assumed it probably had something to do with copying the entire string at each stage of the concat. 11:34
masak colomon: that's an equivalent statement of the problem.
pugssvn r31511 | bbkr++ | [t/spec] tests for RT #63126 Junctions in array and hash indices dont work in Rakudo 11:36
11:39 literal joined 11:41 sftp joined
bbkr rakudo: map { say "$^a - $^b"}, 1..10 Z 1..10 11:43
p6eval rakudo 261eb2: OUTPUT«No candidates found to invoke␤ in 'map' at line 1593:CORE.setting␤ in main program body at line 11:/tmp/b5qrcyUWOD␤»
11:43 sftp left
colomon rakudo: map { say "$^a - $^b"}, (1..10 Z 1..10) 11:43
p6eval rakudo 261eb2: ( no output )
colomon oh, not eager 11:44
rakudo: (1..10 Z 1..10).map( { say "$^a - $^b"}).eager
p6eval rakudo 261eb2: OUTPUT«1 - 1␤2 - 2␤3 - 3␤4 - 4␤5 - 5␤6 - 6␤7 - 7␤8 - 8␤9 - 9␤10 - 10␤»
masak rakudo: for 1..10 Z 1..10 -> $a, $b { say "$a - $b" }
bbkr not fixed then :)
p6eval rakudo 261eb2: OUTPUT«1 - 1␤2 - 2␤3 - 3␤4 - 4␤5 - 5␤6 - 6␤7 - 7␤8 - 8␤9 - 9␤10 - 10␤»
masak bbkr: what was the bug? 11:45
11:45 xinming_ joined
bbkr masak: rt.perl.org/rt3/Ticket/Display.html?id=64568 11:45
rakudo: say <<:a(1)>>.perl 11:46
p6eval rakudo 261eb2: OUTPUT«":a(1)"␤»
masak bbkr: not so sure... infix:<,> binds tighter than infix:<Z>... 11:47
11:47 xinming left
masak bbkr: the error message is unfriendly, but it's essentially complaining about &map being fed just a List. 11:48
bbkr then it shuld get "rejected" status?
masak bbkr: as far as I can see, yes.
bbkr should*
masak: ok, rejecting. thanks
masak bbkr++
11:49 TiMBuS left, TiMBuS joined
jnthn There's a ticket about said error being LTA. 11:50
It offers a beer to the fixer.
<- motivated
bbkr rakudo: say "\c[LATIN CAPITAL LETTER A]".ord # segfault! 11:51
p6eval rakudo 261eb2: OUTPUT«65␤»
bbkr hmm
checking HEAD
11:52 sftp joined
masak someone points out on friendfeed that the Rakudo Star release on July 29 is two days after (or before?) the StarCraft 2 release. friendfeed.com/zag/1a0a4bf9/rakudo-...-starcraft 11:53
bbkr rakudo: sub foo(*$a) { say $a.WHAT }; foo(reverse(3, 4)); 11:55
p6eval rakudo 261eb2: OUTPUT«Array()␤»
bbkr rakudo: say "improper collapse" if 10 < (5|25) < 20; 11:58
p6eval rakudo 261eb2: OUTPUT«improper collapse␤»
11:58 rv2733 joined
bbkr rakudo: sub foo { fail }; sub bar { foo(); 2; CATCH { 1; } }; say bar(); 11:59
p6eval rakudo 261eb2: OUTPUT«Null PMC access in type()␤ in main program body at line 11:/tmp/D8viQ_pk5t␤»
jnthn bbkr: Is that junction one actually wrong?
10 < 25 and 5 < 20 12:00
masak jnthn: agree.
jnthn And it's certainly defined as two calls to <
masak bbkr: could you give the RT url?
jnthn Not some kind of list infix.
bbkr masak: sure, rt.perl.org/rt3/Ticket/Display.html?id=61676 12:01
masak jnthn: it's a bit of a hybrid, I'd say. :) but your argument still holds.
bbkr: rejected. 12:02
bbkr say "impossible" if 10 < any(5,25) < 20
rakudo: say "impossible" if 10 < any(5,25) < 20
masak bbkr: transitive behavior does not hold when junctions are involved.
p6eval rakudo 261eb2: OUTPUT«impossible␤»
bbkr masak++
masak junctions stubbornly refuse to do more than they were built to do :) 12:03
jnthn :)
masak what people often seem to expect is something like this: blog.woobling.org/2009/08/abstracti...guity.html 12:04
12:04 TiMBuS|Away joined
bbkr is this: (0,1)[*..*] expected to go into infinite loop? 12:06
jnthn I very much doubt it. 12:07
colomon it's not supposed to, but it certainly does last time I checked.
12:07 TiMBuS left 12:08 envi^home joined
bbkr colomon: already reporetd? if so - ticket can be merged rt.perl.org/rt3/Ticket/Display.html?id=61844 with this report 12:09
colomon bbkr: no idea if it's reported or not.
bbkr colomon: ok, i'm at 70% RT queue checking so I'll find it anyway 12:10
12:11 jaldhar left
masak bbkr: my hero! 12:12
hugme: hug bbkr
hugme hugs bbkr
12:13 azert0x left
colomon loliblogged: justrakudoit.wordpress.com/2010/06/...and-speed/ 12:13
masak colomon++ # nice! 12:14
colomon masak++ # good link explaining the sort of performance issue we have. :) 12:15
jnthn (This relies on the $*ARGFILES patch from yesterday, making lines basically the equivalent of while () from Perl 5.) 12:16
colomon: <> eated as HTML tag?
colomon oh, probably.
jnthn omnomnomtag
colomon jnthn++ # updated 12:18
12:18 ruoso joined
colomon slurp is supposed to default to $*ARGFILES in the long run, isn't it? 12:19
masak blog engines should have a "warning, <> symbols nommed" label on preview or something.
colomon right now it doesn't even work with $*ARGFILES.
12:22 szbalint left 12:24 azert0x joined 12:26 pmurias joined
pmurias ruoso: hi 12:26
sorear: ping
12:28 skids joined
ruoso pmurias, hi... long time no see... 12:28
pmurias yes.. 12:29
had my last exam yesterday now will try to catch up with the GSoC
ruoso: could you try installing the SMOP from the repo on your box? 12:30
ruoso yes... I'll try
12:33 IllvilJa joined
bbkr rt.perl.org/rt3/Ticket/Display.html?id=68762 - does .lines on descriptor produce lazy list now? 12:38
masak bbkr: sounds like a question perfectly suited for some empirical studies. 12:40
bbkr: do you have Rakudo installed locally?
bbkr yes, both Kiev and yesterday build
rakudo: say 1..{$_} # checking rt.perl.org/rt3/Ticket/Display.html?id=68788 12:41
p6eval rakudo 261eb2: ( no output )
bbkr rakudo: say (1..{$_}).WHAT.say
p6eval rakudo 261eb2: OUTPUT«Range()␤1␤»
bbkr nice, aiming at <630 tickets in RT today :) 12:43
masak best of luck. 12:44
hm, autovivification isn't on in docs/ROADMAP?
jnthn I thought it was?
masak ah, it's among "Nice to have" as "vivification"...
jnthn oh, I didn't realize it goet demoted.
masak probably makes sense.
it *will* be nice to have, but it's not a showstopper. 12:45
jnthn *nod* 12:50
colomon bbkr: lines is lazy now, but it might still be slow. probably worth testing. 12:51
12:52 amkrankruleuen left 12:53 kaare_ left
bbkr colomon: thanks. what status should ticket have then? there is no "acceptable" speed level defined, "very slow" is too general, at which point we can reply "resolved"? 12:54
pugssvn r31512 | bbkr++ | [t/spec] tests for RT #68788 segmentation fault on the "say 1..{$_}" 12:57
12:57 masonkramer_ joined, masonkramer left, masonkramer_ is now known as masonkramer
masak bbkr: I'd just reject the ticket. but I'm known to be very unsentimental about these things, so maybe check with someone else too. 12:58
(i.e. I often reject tickets with no clear bug description) 12:59
pugssvn r31513 | pmurias++ | [STD] better error message when loading STD withought having run make
13:01 grandmoun joined
pugssvn r31514 | pmurias++ | [mildew] say 1 parses 13:03
13:03 am0c left
bbkr masak: I also think it should be rejected. The only precisely described issue (.lines not being lazy) is now solved. 13:03
masak bbkr: nod.
bbkr: it's worth noting, of course, that the submitter considers Rakudo to be so slow that the problem doesn't even need to be explicitly pointed out :) 13:04
but that says more about the expectations of the submitter (and perhaps our relative tolerance) than anything else.
13:05 IllvilJa left, mmcleric_ joined, mmcleric left, mmcleric_ is now known as mmcleric 13:12 plainhao joined 13:14 felliott joined 13:15 ive joined
masak mathw: ping 13:15
13:17 am0c joined
mathw masak: pong 13:18
13:18 gbacon joined
masak "Form.pm uses a Makefile generated by the ufo script. The Makefile is included in the source tree..." nononono... :/ 13:18
see, github.com/mattw/form/blob/master/Makefile contains a path which likely only exists on your computer... 13:19
'git rm Makefile && git push origin master'
er, and a 'git commit' in between.
mathw: sorry I did not check this earlier. :/ 13:20
masak thinks of ways to make the ufo README clearer on this point
mathw You could mention it at all 13:21
Your documentation's a little too on the 'this is simple' rather than 'this is what you do' side
masak mentioning it would probably help.
masak tries that
mathw: so, ufo makes a Makefile that obviates the need to set PERL6LIB. this can't be done without knowing the absolute path of the project's lib/ dir. 13:23
13:24 felliott left
mathw Sure 13:25
masak in that sense, ufo is actually replacement for Configure.pm et al, not just out to destroy them.
mathw you just need to mention that this Makefile can't be distributed, and people will require ufo as a build-time dependency
masak aye. ufo or pls.
pugssvn r31515 | bbkr++ | [t/spec] tests for RT #74624 Any + 0.1 is a Num, not a Rat in Rakudo 13:27
masak mathw: fixed, thanks. github.com/masak/ufo/commit/a3a059d...fba23a483f 13:28
mathw github.com/mattw/form/commit/a80e32...1919fd65fa 13:30
masak mathw++
pmichaud good morning, #perl6
mathw oh hai pmichaud
masak hi pm 13:31
pmichaud autovivification is "nice to have"?
that feels wrongish to me.
masak it does? oh good. :) 13:32
mathw isn't it a crucial part of Perl being Perl?
bbkr rakudo: $_ = "test"; s/t/x/; .say;
pmichaud anyway, I should have it ready shortly.
p6eval rakudo aa015a: OUTPUT«test␤»
mathw \o/
masak ++pmichaud
mathw So instead of changing it to 'essential' it can be changed to 'done', I like
bbkr rakudo: $_ = "test"; $_ ~~ s/t/x/; .say; 13:33
p6eval rakudo aa015a: OUTPUT«xest␤»
bbkr bare s/// does not default to $_ as in P5?
pmichaud bbkr: nyi
masak $ perl6 -e 'say @*ARGS.perl' 13:34
["-"]
wtf?
this must be a recent change.
it seems to have broken ufo.
pmichaud bug
masak submits
I can work around it easily.
just letting you know.
bbkr rakudo: $_ = "test"; $_ ~~ tr/t/x/; .say;
p6eval rakudo aa015a: OUTPUT«===SORRY!===␤Confused at line 11, near "$_ ~~ tr/t"␤»
pmichaud the bug is in IO::ArgFiles
(which has quite a few bugs atm)
masak good to know. 13:35
mathw well no 13:37
bugs are bad
pmichaud IO::ArgFiles needs to be much lazier about grabbing things from @*ARGS, and much more direct about manipulating @*ARGS 13:38
masak mathw: they are. but having them as unknown unknowns is worse.
mathw This is true 13:40
If they are unknown unknowns, you get like I've got at work
We know there's a bug somewhere... quite probably two of them... but neither makes any sense or is very obvious
13:41 dakkar left
masak by the way, if anyone is interested in helping with a small patch to ufo, let me know. 13:41
there's an easy possible improvement to the 'install' target.
arnsholt What kind of improvement? 13:44
masak I'm preparing a small gist outlining it. hold on.
gist.github.com/458666 13:46
13:48 synth_ joined
pugssvn r31516 | pmurias++ | [smop] fix building smop tests 13:48
mberends loliblogged: blogs.perl.org/users/martin_berends...bases.html 13:49
13:50 synth left
masak mberends++! 13:51
pugssvn r31517 | bbkr++ | [t/spec] one of tests description was in double quotes which caused unwanted interpolation and broke whole test file 13:52
bbkr try.t fixed :)
[Coke] wonders why people reply to the RT "info" email and not the actual response. 13:53
13:54 synth_ left 13:58 dakkar joined
hejki btw.. what's the state of sockets? 13:59
pmichaud some of them are open. others are blocked.
:-)
hejki rakudo: class Vuvuzela { has $.note = "BZZzzzZZzz"; method play { while 1 { $.note.say } } }; my $vuvuzela = Vuvuzela.new(); $vuvuzela.play; 14:00
hehe
p6eval rakudo aa015a:
..OUTPUT«BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZ…
hejki i meant 'what's the state of sockets in <insert any p6 compiler here>'
pmichaud iirc, rakudo has sockets, but not non-blocking sockets
arnsholt masak: Umm, ufo with no arguments seems to be broken
masak arnsholt: try the very latest ufo. 14:01
just fixed it.
TiMBuS|Away does parrot have non blocking sockets?
pmichaud TiMBuS|Away: I don't think Parrot has non-blocking I/O, which is partially why Rakudo doesn't have it yet.
bbkr rakudo: sub foo($bar:) {}; # I have no idea how this should behave 14:02
p6eval rakudo aa015a: ( no output )
TiMBuS|Away is there any particular reason for this? maybe i could hack it in
arnsholt masak: There's a bug in your bugfix. If @*ARGS is empty you get the usage message 14:03
masak rakudo: class Vuvuzela { has $.note = "BZZzzzZZzz"; method play { loop { say $.note } } }; Vuvuzela.play
p6eval rakudo aa015a: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!note␤ in 'Vuvuzela::play' at line 67␤ in main program body at line 11:/tmp/Q4TOe05JSa␤»
masak oh right.
rakudo: class Vuvuzela { has $.note = "BZZzzzZZzz"; method play { loop { say $.note } } }; Vuvuzela.new.play
pmichaud TiMBuS|Away: afaik, it's just that nobody's looked at it. It may be also blocking on some design issue.
TiMBuS|Away i recall whiteknight wanted to build a big nonblocking socket solution thing on which to add blocking and scheduled and callbacked socket stuff and aaahh
p6eval rakudo aa015a:
..OUTPUT«BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZZzz␤BZZzzzZ…
jnthn mberends: fwiw, I'd rather see the Postgres DBD done in terms of Zavolaj rather than calling down to the Parrot hting.
masak arnsholt: oh, indeed. I fixed it as if everyone has the newer Rakudo.
jnthn *thing
masak arnsholt: fixing fix. 14:04
jnthn mberends: Then it only takes porting Zavolaj in order for FakeDBI to be useful on other backends/implementations.
PacoLinux I just compiled rakudo head in a pII with 312Mb of ram and 172 Mb of swap in 868m14.925s
masak arnsholt: fixed, thanks. github.com/masak/ufo/commit/917839a...ed8b4e2afc
mberends jnthn: yes, thanks for mentioning :)
BinGOs masak: I call prior art! search.cpan.org/dist/Acme-Vuvuzela/ 14:05
masak BinGOs: :)
pmichaud masak: *sigh* stuff like that is why I don't like accepting known-buggy code into raudo.
*rakudo
it encourages too many incorrect workarounds.
hejki BinGOs: i was inspired strongly by it
masak pmichaud: agree. and this is an especially hard-to-test one. 14:06
pmichaud maybe I'll just fix argfiles now.
BinGOs add a fork() and you have something truely annoying.
masak pmichaud: keeping high standards in this regard will only get more important as time passes and more people rely on Rakudo.
pmichaud agreed
14:06 plobsing joined
pmichaud I'm thinking that once I get past these remaining Pm-shaped obstacles, the bulk of my time is going to be reviewing patches and saying "no, you can't apply this yet because ..." 14:07
masak pmichaud: I like it when you do that, yes.
arnsholt masak: I think you meant "@*ARGS > 1 && @*ARGS[0] ne '-'"
pmichaud i.e., I'll morph more into a patch pumpking than a code generator
here, I'll fix argfiles now.
masak arnsholt: @*arrgh!
pmichaud seeing the workarounds makes me very sad.
arnsholt With the || it's still a no-go
pmichaud actually, I'm just going to commit a disable patch for the moment. 14:08
masak arnsholt: no, && isn't it either. 14:10
arnsholt: let me reset my brain and try again.
arnsholt With && it runs with my Rakudo at least =)
masak that's just because you're not passing two or more arguments.
pmichaud masak: as soon as I do "make test" (not "make spectest") I'll push an argfiles disable. 14:11
14:11 colomon left, azert0x left
pmichaud you can then work from that, and hopefully avoid the workaround altogether. 14:11
14:12 ash_ joined
masak arnsholt: I get this now: 14:13
elsif !(!@*ARGS || @*ARGS[0] ne '-')
De Moivre tells me it's equal to this:
[Coke] moritz_: will 'make install' always install into the local directory? ;)
masak elsif @*ARGS && @*ARGS[0] eq '-'
no, wait. 14:14
it's right as it is. arnsholt++
pmichaud well, except that it fails if someone puts '-' on the commandline explicitly.
dalek kudo: 806efc8 | pmichaud++ | src/ (2 files):
Disable IO::ArgFiles for the time being, it's got bugs and is forcing people to
masak I can live with that.
in the short term. 14:15
14:15 azert0x joined
pmichaud with 806efc you can avoid the issue altogether -- @*ARGS is no longer getting '-' prepended to it prematurely. 14:15
masak thanks. pmichaud++
removing fix. :)
pmichaud oh, but I might've broken something else. 14:16
bbkr rakudo: $_ = "foo"; say .=subst(/o/, { ~$/ }, :g)
p6eval rakudo aa015a: OUTPUT«fAny()Any()␤»
bbkr it above output corect? 14:17
masak no.
bbkr: ~$/ should contain an 'o' in both evaluations of the closure. 14:18
s/contain/be/
bbkr masak: thanks, #66782 still not fixed
pmichaud rakudo: $_ = 'foo'; say .subst(/(o)/, { $0 })
p6eval rakudo aa015a: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤ in <anon> at line 1␤ in 'Cool::subst' at line 1941:CORE.setting␤ in main program body at line 11:/tmp/pJ53NlDHLz␤» 14:19
pmichaud looks like $/ isn't being set properly.
masak aye.
jnthn $_ = "foo"; say .subst(/o/, { ~$/ }, :g)
rakudo: $_ = "foo"; say .subst(/o/, { ~$/ }, :g)
p6eval rakudo aa015a: OUTPUT«fAny()Any()␤»
jnthn ah, not specific to .= 14:20
pmichaud I'm not too surprised that $/ stopped working, given the recent container changes I've been making.
I am surprised that there doesn't seem to be a test that is catching it.
bbkr rakudo: / <[\x10000..\xEFFFF]> /; say "alive" # testing 67122 14:21
p6eval rakudo aa015a: OUTPUT«alive␤»
bbkr yay
pmichaud that's less "yay" than might be evident at first
it doesn't fail because <[\x10000.\xeffff]> doesn't do anything at present :-|
afk, bbiab 14:22
14:23 colomon joined
bbkr rakudo: "\x[10001]" ~~ /<[\x10000..\xEFFFF]>/ 14:23
p6eval rakudo aa015a: ( no output )
bbkr rakudo: say "\x[10001]" ~~ /<[\x10000..\xEFFFF]>/
p6eval rakudo aa015a: OUTPUT«␤»
bbkr pmichaud: indeed, parses but doesn't work as expected. 14:24
14:27 ash_ left
bbkr rakudo: (for 1 {}).WHAT.say; # RT #70888 does not crash now, but I have doubts if it should be tested just with lives_ok or isa_ok and compare to ParrotIter (ParrotIter is not in the Spec) 14:34
p6eval rakudo aa015a: OUTPUT«ParrotIter()␤»
14:34 uniejo left 14:35 clintongormley left
[Coke] I'm pretty sure that ParrotIter shouldn't appear in the spectests. 14:36
colomon +1
14:38 mj41 joined
jnthn oh my...are all our for loop iterations being marshalled through ParrotIter? 14:39
arnsholt masak: ai forkeded ur gist
And added a patch 14:40
bbkr rakudo: /[ ]/ # is this allowed in current spec? reported in 71800, previously crashing with Null PMC access, now parsing fine, but ticket says it's expected to throw "Null pattern not allowed"
p6eval rakudo aa015a: ( no output )
masak arnsholt: cool, thanks!
arnsholt Not sure if it's beautiful code, but it's working code at least
masak rakudo: say "abcd".index("xyz") == 0 14:42
p6eval rakudo aa015a: OUTPUT«Method 'Bridge' not found for invocant of class 'Failure'␤ in 'infix:<==>' at line 3203:CORE.setting␤ in main program body at line 11:/tmp/ZxB0qUmBCP␤»
masak arnsholt: possible issue :)
masak submits rakudobug
arnsholt Heh
masak rakudo: Failure == 0 14:43
p6eval rakudo aa015a: OUTPUT«Method 'Bridge' not found for invocant of class ''␤ in 'infix:<==>' at line 3203:CORE.setting␤ in main program body at line 11:/tmp/OiVcR_FiiT␤»
14:43 plobsing left
arnsholt Oh, if I'd read the doc properly I'd've seen that. Failure is 0 in numeric context 14:43
masak arnsholt: I think you want to check for definedness instead.
arnsholt definedness and == 0, yeah
masak aye. 14:44
in that order.
14:44 pmurias left
arnsholt Certainly not the other way 'round, yeah ^^ 14:44
masak is not sure he likes .Bridge :/
jnthn std: /[ ]/ 14:46
p6eval std 31517: OUTPUT«Potential difficulties:␤ [ ] appears to be an old-school character class; horizontal whitespace should be matched with \h instead at /tmp/bqQ2RrZVf6 line 1:␤------> /[ ]⏏/␤ok 00:01 111m␤»
TimToady hmm 14:47
I'd still expect Null pattern not allowed 14:48
masak +1
TimToady std: /[]/
p6eval std 31517: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/nX8i59okz3 line 1:␤------> /[⏏]/␤ expecting regex atom␤Parse failed␤FAILED 00:01 108m␤»
colomon rakudo: say Failure ~~ Real
p6eval rakudo 806efc: OUTPUT«1␤» 14:49
TimToady std: /[ ]/
p6eval std 31517: OUTPUT«ok 00:01 108m␤»
colomon rakudo: say Failure ~~ Positional
masak bbkr: re [perl #65904] -- I'd expect it to give an error, as I wrote in the original bug report.
p6eval rakudo 806efc: OUTPUT«1␤»
masak o.O 14:50
colomon is Failure supposed to do every role?
masak not that I know.
colomon rakudo: say Failure ~~ Stringy
p6eval rakudo 806efc: OUTPUT«1␤»
jnthn rakudo: say Failure.^roles.perl 14:51
bbkr masak: #65904 left unchanged then, thanks.
p6eval rakudo 806efc: OUTPUT«()␤»
colomon rakudo: role Foobar { method no-need() { say "boo!"; }; }; say Failure ~~ Foobar
p6eval rakudo 806efc: OUTPUT«1␤»
jnthn Oh, I wonder if this is to do with the "failure is always acceptable" thing
masak bbkr: well, you wrote "I'm not sure what is expected result." -- The expected result was outlines in the ticket. 14:52
bbkr rakudo: sub foo(Bool :$x) { say "works!"}; foo(:x); # #69200, where can i put tests for this one?
p6eval rakudo 806efc: OUTPUT«works!␤»
14:53 clintongormley joined
jnthn In with the other colonpair tests maybe 14:53
colomon rakudo: my $a = Failure; say +$a 14:54
masak arnsholt: nice solution with the lexicographic sorting, by the way. didn't think of that.
p6eval rakudo 806efc: OUTPUT«Use of uninitialized value in numeric context␤0␤»
masak arnsholt: one simplification would be to ditch the gather and just $makefile.say instead of 'take'.
bbkr masak: I appreciate your huge patience :) ticket was more than 1 year old and I wasn't sure if spec hasn't changed since then because it parses fine now. 14:55
rakudo: sub { "hello" #`(test) }.() 14:57
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤Confused at line 11, near "sub { \"hel"␤»
14:58 JimmyZ joined
masak bbkr: well, a sub still doesn't take an invocant. :P 14:59
jnthn rakudo: (sub { "hello" #`(test) }).()
p6eval rakudo 806efc: ( no output )
jnthn (note problem is that the #` but the .() on a sub decl without parens)
arnsholt masak: Very true with the say
jnthn guesses maybe the ticket was about #`(...)
arnsholt And thanks for the compliment. I was kinda happy with that (which is why I commented it as well =) 15:00
15:00 rlb3 joined
bbkr jnthn: 69012 15:00
masak arnsholt: if you prepare a new diff with the proposed changes, based off the latest ufo, I'll apply it. 15:02
pmichaud 14:39 <jnthn> oh my...are all our for loop iterations being marshalled through ParrotIter? 15:04
at the moment, yes. That will change when we s/for/map/
[particle] rakudo: say { "hello" #`(test) }.()
jnthn pmichaud: OK
p6eval rakudo 806efc: OUTPUT«hello␤»
jnthn pmichaud: Heh. I guess we know that ParrotIter works reliably now. ;-)
pmichaud also, ParrotIter is significantly changed from what you wrote :)
jnthn Well, yes - iterators probably significantly changed too. :-) 15:05
pmichaud right
[particle] oh, now i see jnthn++ meant s/that/not/ above
jnthn [particle]: er, yes :-)
pmichaud goes back to ArgFiles work 15:06
15:06 ash_ joined
[Coke] wonders if pmichaud is darning his argfiles. # really needs a silent F there, but work with me. 15:09
15:10 mberends left
arnsholt Hmm. My current Rakudo dies if it can't find a prefix with index 15:11
arnsholt updates
15:12 kensanata joined
pmichaud [Coke]: right now I'm darning someone else's argfiles. 15:13
ash_ is the patch for argfiles being applied to master?
pmichaud when it's ready, yes.
ash_ oh, btw, has anyone seen cygx? I was just wondering how the try.rakudo.org backend was coming along? I wanted to see if we could start testing the frontend and backend together 15:14
15:16 rlb3 left, am0c left
masak last seen almost exactly 48 hours ago. 15:16
15:16 rlb3 joined
ash_ alright, well, i'll see if i can catch him later 15:18
arnsholt rakudo: my $string = "abcd"; my $prefix = "xyz"; $string.index: $prefix; 15:26
p6eval rakudo 806efc: ( no output )
arnsholt Hmm. At the REPL it does 15:27
say defined "abcd".index: "xyz" 15:29
rakudo: say defined "abcd".index: "xyz"
p6eval rakudo 806efc: OUTPUT«0␤»
15:30 ashleydev joined 15:35 justatheory joined 15:37 JimmyZ left
Tene www.tbray.org/ongoing/When/201x/201...140.235379 -- apparently, in Fortress, it's a syntax error for spacing cues to not match the actual precedence of an expression. 15:41
15:41 alexbobP joined
alexbobP so what's the deal with perl 6? is it ever going to have it's own interpreter? 15:42
pmichaud alexbobP: I don't understand the question.
masak alexbobP: how do you mean?
Tene alexbobP: I'm not quite sure what you're asking about here?
arnsholt masak: Updated: gist.github.com/458738
15:43 patspam joined
masak arnsholt: thanks! will look. 15:43
ash_ lol 3 responses saying the same thing but different
alexbobP pmichaud: I was under the impression that, currently, perl6 exists only in the form of various modules you can import 15:44
15:44 rlb3 left
alexbobP pmichaud: does that mean I can't get the benefits such as strong typing and syntax changes? 15:45
pmichaud alexbobP: perl6.org/
15:45 rlb3 joined
pmichaud alexbobP: rakudo.org/ 15:45
alexbobP pmichaud: thanks
pmichaud Perl 6 has gone far beyond the Perl6:: modules in CPAN.
alexbobP oh, so it *does* have a compiler now! 15:46
cool.
Tene rakudo: class A { has Str $.msg; method frob { say $.msg; } }; my A $a .= new( :msg("Look, it works!") ); $a.frob();
p6eval rakudo 806efc: OUTPUT«Look, it works!␤»
cxreg adds more methods to Pg
pmichaud also: rakudo.org/node/73
ash_ is blizkost specific to a version of perl5 or does it link to any perl5? 15:49
jnthn ash_: I don't know about any version. 15:50
ash_: But certainly it's not too specific, afaik. 15:51
15:51 macdaddy joined, Ross joined, macdaddy is now known as Guest80095, mmcleric left
ash_ cool, so it would work with either 5.10 or 5.12 (i guess thats the more direct question i should ask) 15:52
masak alexbobP: yes. that's why people were a bit confused at your initial question. :) 15:53
jnthn ash_: afaik.
pmichaud alexbobP: you might also be interested in perl6advent.wordpress.com/2009/12/01/
jnthn ash_: Most important is you have the libperl or whatever it's called
pmichaud (perl6advent isn't listed on perl.org?)
alexbobP masak: I see XD
masak arnsholt: applied; pushed. thanks! arnsholt++ 15:54
arnsholt Cool!
alexbobP masak: I knew that it was just the perl6 cpan module a long time ago, and I hadn't heard anything since, so I just didn't know about this development
this makes me happy
pmichaud: I'll check it out
masak alexbobP: there was a big project called Pugs already in 2005.
[Coke] alexbobP: is there a place we could have been talking about it that we missed?
alexbobP [Coke]: yeah dude, it's all your fault 15:55
you guys weren't on the ball with notifying me! sheesh XD
I think there's a rule somewhere that alexbobP has to be notified of all cool new things. I suppose you didn't bother to look where that rule was. ;) 15:56
[Coke] heh. I'm just wondering if there's some marketing opportunity we missed. we're not very good at that sort of thing. =-)
masak alexbobP: next time we'll spam you sooner. :P
pmichaud alexbobP: we're curious where you would have expected to hear more about Perl 6 (that we've obviously missed for 3+ years)
[Coke] alexbobP: share and enjoy.
alexbobP yeah I dunno
pmichaud I phrased that wrong. :)
alexbobP I didn't really have my feelers out
I could have googled "perl 6" and found all this
pmichaud alexbobP: no problem. Glad we were able to surprise you today. :) 15:57
alexbobP but I didn't :P
pmichaud: me too.
[Coke] hokay. if you have any good marketing ideas, you're obligated to share them now. ^_^
er, going forward.
alexbobP okay, how about a "why perl 6 whomps python" page
masak .oO( Mention Perl 6 at next Superbowl )
alexbobP python's all the rage
so we gotta beat it, right?
masak alexbobP: nah :)
cuppe can't we all just get along
alexbobP ubuntu didn't get on desktop computers by being all "who wants to use this software you've never heard of" 15:58
it's all about the "we can do everything windows can do and better"
cxreg how do you spell before/after/around like in Moose?
masak cxreg: callsame/nextsame
pmichaud we're not really far enough along to talk about "why perl6 whomps python".
masak cxreg: see S06.
cxreg masak: ok thanks
pmichaud because the first retort will be "python is 100x faster than perl6" :-) 15:59
alexbobP haha aww
(so we're still faster than ruby, right?)
masak only 100x? :P
pmichaud sometimes.
rakudo is still painfully slow.
15:59 cdarroch joined, cdarroch left, cdarroch joined
pmichaud (we're working on it.) 15:59
masak alexbobP: as soon as you try Rakudo, you'll notice that it's... slightly speed-impaired.
pmichaud s/slightly// 16:00
16:00 colomon left
masak alexbobP: but that's OK, because we tend to think it's cool to be the first to be using Perl 6 features as they come online. 16:00
alexbobP masak: right. Well I won't be doing that for work XD
but I'll try it in my spare time!
masak \o/
alexbobP: that's about what we want to hear right now. 16:01
alexbobP: want to see a few cool things in Perl 6? :)
[Coke] I think partcl is about 160X slower than tclsh8.5
er, partcl-nqp. 16:02
alexbobP masak: sure.
masak rakudo: .say for grep { $_ % all 2..$_/2 }, 2..* # print all primes, forever
p6eval rakudo 806efc: OUTPUT«2␤3␤5␤7␤11␤13␤17␤19␤23␤29␤31␤37␤41␤43␤47␤»
alexbobP lol, "␤"
masak rakudo: class Vuvuzela { method play { say "BZZZZ!" } }; Vuvuzela.new.play # easy-to-use OO
p6eval rakudo 806efc: OUTPUT«BZZZZ!␤»
alexbobP XD
ash_ lol @vuvuzela 16:03
arnsholt alexbobP: Perl 6 supports Unicode, and we're not afraid to use it =)
alexbobP rakudo: Vuvuzela.new.play
p6eval rakudo 806efc: OUTPUT«Could not find sub &Vuvuzela␤ in main program body at line 11:/tmp/K4W9KgOTwq␤»
alexbobP I guess the class doesn't stick around?
diakopter rakudo: class Vuvuzela { method play { say "BZZZZ!" } }; Vuvuzela.play
p6eval rakudo 806efc: OUTPUT«BZZZZ!␤»
masak alexbobP: no, new session each time.
ash_ pugs: class Vuvuzela { method play { say "BZZZZ!" } }; Vuvuzela.new.play # old school perl6
p6eval pugs: OUTPUT«BZZZZ!␤»
masak rakudo: say [<=] 3, 4, 4, 5, 5, 6, 8; # look at that operator! it means "is the list sorted non-decreasing?"
p6eval rakudo 806efc: OUTPUT«1␤»
cxreg masak: A method named 'AutoCommit' already exists in class 'FakeDBD;Pg;Connection'. It may have been supplied by a role. 16:04
that was from "my proto method AutoCommit"
masak cxreg: moritz_ reported something similar the other day.
(to RT)
cxreg masak: ok, so i'm doing the right thing, it just dont work yet?
masak cxreg: hard to say without a nopaste. 16:05
how could I guarantee you're doing the right thing? :P
cxreg psych(ic|osis)
masak :)
16:05 patspam1 joined, patspam left, patspam1 is now known as patspam
masak cxreg: I seem to be mistaken, it was another proto-related bug that moritz_ submitted. 16:06
cxreg: feel free to submit yours, with adequate means to replicate it.
cxreg masak: my main question is, are you expected to be able to supply a proto method for a generated accessor
masak hm.
what's your goal here?
cxreg to "tie" AutoCommit
masak ooh, naughty. 16:07
yeah, I'd expect that to fail. :)
cxreg :(
pmichaud I love it when a fix causes the source to become 50% shorter. :-)
masak (because no-one's tried it before)
cxreg masak: heh.
masak rakudo: class A { has $.b; proto method b {} } 16:08
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤A method named 'b' already exists in class 'A'. It may have been supplied by a role.␤»
masak cxreg: that's your error, right?
cxreg right
masak I don't think I've seen this addressed in S12. 16:09
and I know TimToady has been thinking about multi methods recently-ish.
moritz_ putting the proto first should make it work
16:09 Guest23195 joined
cxreg moritz_: before the accessor declaration? 16:09
masak rakudo: class A { proto method b {}l has $.b }
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
masak oops.
rakudo: class A { proto method b {}; has $.b } 16:10
moritz_ s/l/;/
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤A method named 'b' already exists in class 'A'. It may have been supplied by a role.␤»
16:10 meppl joined
moritz_ accessor generation doesn't honor protos. That's a bug 16:10
ash_ rakudo: class A { proto method b {}; has $!b }
p6eval rakudo 806efc: ( no output )
cxreg puts some toothpaste in the hole
masak submits rakudobug
ash_ granted that doesn't mean the same thing... 16:11
16:11 Su-Shee left
masak swimming & 16:13
16:13 rlb3 left 16:14 masak left, rlb3 joined
cxreg ash_: that might be an ok solution for now though, since it can just do the setting 16:14
ash_ rakudo: class A { multi method b {}; has $.b } 16:19
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤A method named 'b' already exists in class 'A'. It may have been supplied by a role.␤»
ash_ should that work?
rakudo: class A { method b {}; has $.b }
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤A method named 'b' already exists in class 'A'. It may have been supplied by a role.␤»
pmichaud iirc, yes, you should be able to define a method and have it suppress the automatically generated one 16:20
but if you're defining a method, you probably don't need to be using $.
ash_ yeah, i know, you'd probably just want to $! the variable, but i was wondering if it should die because you made a method with the same name (or even a multi with the same name) 16:21
rakudo: class A { multi method b($) {}; has $.b }
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤A method named 'b' already exists in class 'A'. It may have been supplied by a role.␤»
pmichaud ash_: iiuc, it's not supposed to die.
jnthn I think it's not meant to either. 16:22
I thought Attribute.nqp's compose method even had logic to check if a method was already defined. 16:23
ash_ that last one, should that make a mutli out of b? (so if you did .b it would call the normal accessor, and .b($scalar) would call the multi?)
jnthn Hmm...maybe.
pmichaud ash_: I'm pretty sure that if you define any method you don't get an automatically generated one.
jnthn What pmichaud++ just proposed is far simpler though ;-)
ash_ kk, just curious 16:24
pmichaud I have been wrong many times before about such things, though. :)
I'm wrong.
S12: "You may write your own accessors to override any or all of the 16:25
autogenerated ones.
jnthn "any or all"
pmichaud Yes.
ash_ so, the multi would add one, not override? (since the signatures differe)
differ*
jnthn Thing htat's any or all of the auto-genrated ones though (accross all attributes)
And maybe not a reference to multis.
pmichaud oh, that could be. 16:26
jnthn omg my typing!
pmichaud that's a bit ambiguous :)
jnthn *think, that's
pmichaud jnthn: yes, I think you're right.
since the earlier packages talk about "the autogenerated accessor", that implies there's only one.
jnthn *nod* 16:27
pmichaud I'd prefer that paragraph I quoted above to say "You may write your own accessors to suppress the autogenerated ones."
as opposed to "override".
unless we assume the autogenerated ones always exist, and we are indeed overriding.
ash_ any or all, so $. makes a accessor, but $.a is rw; makes an accessor and assigner(??) so is that the only case you'd have more than 1 auto generated function?
jnthn I think suppress would be a better word, yes.
ash_: no, it's still making one thingy 16:28
ash_: with "is rw" it's just an lvalue thing.
pmichaud ash_: "is rw" just means the accessor is also "is rw"
cxreg pmichaud: my goal was to leave the accessor, but supply a proto too 16:29
pmichaud cxreg: right. The spec is a bit ambiguous here.
cxreg: If we assume that any same-named method suppresses the accessor, then you'd have to write your own accessor.
[particle] if you don't supply proto or multi, it assumes only, no? 16:30
ash_ yeah, it sounds like we should ask for clarification on this one
pmichaud anyway, in the meantime I suggest using $!b and explicitly providing the methods you want. :)
cxreg pmichaud: i'm such a troublemaker :)
pmichaud cxreg: we all are.
moritz_ hugme: tweet rakudoperl current state of #perl6 database access with #rakudo: tinyurl.com/p6db-blog 16:32
hugme hugs moritz_; tweet delivered
16:35 TiMBuS|Away left, rlb3 left
pmichaud I have to run for a bit, so I'm pushing my IO::ArgFiles patch without a full spectest. ("No! Bad pumpking!") I'll spectest in about 30, feel free to revert if I've broken anything. 16:36
bbi30
16:38 colomon joined
dalek kudo: 8e7bf30 | pmichaud++ | src/core/IO.pm:
Add IO.open to allow attaching an existing IO object to a file. Also now
16:39
kudo: 7df2c27 | pmichaud++ | src/ (2 files):
Refactor IO::ArgFiles.
moritz_ pmichaud: $*ARGFILES understood - as meaning $*IN already 16:40
16:40 dakkar left
moritz_ oh 16:43
now open() does
I wonder if that's a security risk or not
16:45 ruoso left
jnthn hmm 16:45
Yeah, I thought open wasn't going to have the "magical" chars like in Perl 5...
moritz_ maybe we should have a named argument that does magic for convenience 16:46
speaking of perl 5 oddities...
perl -pe '' '| echo "pwnd"'
pwnd
-p uses magic <> 16:47
which interprets shell meta characters
16:53 tadzik left
pmichaud I was just copying the p5 semantics; didn't see anything that claimed p6 was different in this respect. 16:54
pmichaud runs 'make spectest' to validate his push. 16:55
moritz_ well, perl 6 open() is more like perl 5's 3-argument open
pmichaud anyway, I'm fine if we need to patch .open() -- getting ArgFiles to work was my primary goal here. 16:57
16:58 amkrankruleuen joined
pmichaud also, I like that ArgFiles can be attached to any array, not just $*ARGS 16:58
amkrankruleuen Hello.
pmichaud my $handle = IO::ArgFiles.new(:args['a', 'c', 'x']); # read from 'a', then 'c', then 'x' 16:59
rakudo: say $*IN.get; 17:00
p6eval rakudo 806efc: OUTPUT«Land der Berge, Land am Strome,␤»
pmichaud rakudo: say $*ARGFILES.get; 17:01
p6eval rakudo 806efc: OUTPUT«Method 'get' not found for invocant of class 'Failure'␤ in main program body at line 11:/tmp/OsQyDHIYkj␤»
pmichaud ah, I think that @*ARGS and $*ARGFILES initialization is in the wrong place. ;-(
moritz_ works locally here
pmichaud for some reason it's in UNIT_START -- needs to be much more global than that. 17:02
fails in the repl
which is probably why it fails in p6eval
colomon can somebody reply to this? justrakudoit.wordpress.com/2010/06/.../#comments 17:03
bbkr how this should work? can i use $*ARGFILES.lines to get lines of all file names given in ARGS?
colomon (I'm in the middle of trying to get a release out for $work)
pmichaud bbkr: yes.
bbkr pmichaud: awesome, more dataprocessing power
pmichaud and lines() is supposed to be a shortcut for $*ARGFILES.lines
17:04 cygx joined
pmichaud (replaces the p5 <> operator) 17:04
17:04 thebird left
frettled pmichaud: ooh, that's nice 17:04
moritz_ rakudo: say lines().elems 17:05
bbkr pmichaud: even more awesome. will it accept ranges as well? "lines(1, 2, 32..45, 78 ..*)" ?
p6eval rakudo 806efc: OUTPUT«No applicable candidates found to dispatch to for 'lines'. Available candidates are:␤:(IO $filehandle, Any :bin($bin) = { ... }, Any :enc($enc) = { ... }, Any :nl($nl) = { ... }, Any :chomp($chomp) = { ... })␤:(Str $filename, Any $limit = { ... })␤␤ in main program body at
..line 11…
moritz_ also works locally here 17:06
pmichaud right
17:06 patspam left, patspam1 joined
pmichaud the problem is that @*ARGS and $*ARGFILES aren't being initialized at the proper time for the repls 17:06
17:06 patspam1 is now known as patspam
pmichaud bbkr: lines[1, 2, 32..45, 78..*] # maybe 17:06
17:09 justatheory left
jnthn rakudo: say $*IN.lines[0,2,4....*] 17:10
p6eval rakudo 806efc: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11␤»
bbkr rakudo: sub foo { return 1,2,3}; say foo[0,2]; # just checking if sub output can be indexed without .
p6eval rakudo 806efc: OUTPUT«13␤»
jnthn rakudo: say $*IN.lines[0,2,4...*]
rakudo: say $*IN.lines[0,2,4...100]
p6eval rakudo 806efc: ( no output ) 17:11
rakudo 806efc: OUTPUT«Land der Berge, Land am Strome,Land der Hämmer, zukunftsreich!Volk, begnadet für das Schöne,vielgerühmtes Österreich!Heiß umfehdet, wild umstritteneinem starken Herzen gleich.hoher Sendung Last getragen,vielgeprüftes Österreich!Mutig in die neuen Zeiten,arbeitsfroh und
..hoffnungsrei…
jnthn heh :-)
pmichaud hint: try a range, not a series.
colomon jnthn: for sure infinite series are never going to work in [ ], are they?
jnthn pmichaud: I wanted every other line. ;-)
colomon: No, I think not. :-)
colomon pmichaud: does range work now?
jnthn colomon: I realized that rihgt after typing it. :-)
colomon rakudo
rakudo: my @a = 1, 2, 3; say @a[1..*]
17:11 kensanata left
pmichaud colomon: no, it probably doesn't work yet either. 17:12
p6eval rakudo 806efc: ( no output )
colomon drat. I was hoping someone had fixed that and I hadn't noticed.
cygx moritz_: I just wanted to mention that I'm still on track with try.rakudo.org - I might actually get a (somewhat) working prototype done as early as tomorrow, but barring major disasters definitely this week
phenny cygx: 28 Jun 17:51Z <ash_> tell cygx how is the backend going? Is there anyway I could start testing any of it with the backend? I can run it on my server, also i don't mind if some of the responses are faked for now
ash_ cygx: could you not use a cookie to store the session ID instead of putting it into the template? (it requires less parsing, and no special template variables) 17:14
cygx ash_: sure, could be easily done; but the problem is that I wanted to allow multiple different sessions from the same client 17:15
ash_: for now, just put __RAKUDO_SHELL__ID__ anywhere you want the id to appear 17:16
ash_ alright, can do
17:17 patspam left
cygx I also did some major re-thinking of the backend design, and I think I figured out a way to do it that would work in Rakudo; I'll do it in Perl5 for now so that I can re-use code from the frontend 17:18
I don't think porting the frontend is feasible as long as there's no mod_rakudo for Apache, though (startup times :()
17:18 envi^home left
ash_ but there is a mod_parrot 17:19
(which can load rakudo)
www.parrot.org/mod_parrot
cygx last I looked, mod_parrot was seariously out-of-date...
ash_ ah
i haven't tried it, i just know someone started it at one point
17:23 Cyrus joined
ash_ cygx: is it okay to get the results via javascript? 17:26
cygx ash_: sure; the idea is to use long polling to have a persistent connection to the server so new output can be passed along as soon as it's ready 17:28
alexbobP long polling? 17:29
is that when the server holds up the connection as long as possible when there's no data
and the client reconnects as soon as a connection breaks?
ash_ yea
alexbobP I did that in second life once for a script that was accessing web data 17:30
cygx alexbobP: en.wikipedia.org/wiki/Comet_%28prog...ng_polling
alexbobP I found that connections from their servers would time out after, like, 30 seconds, so I made a php script that holds for up to 25 seconds before sending back emptiness
had no idea that it had a name at the time :P 17:32
cygx alexbobP: imo the most elegant solutionimo would be a chunked XHR, which is basically only supported by firefox :(
*solution
alexbobP cygx: what's that?
ash_ if everyone had a modern browser i'd say use a websocket 17:33
17:33 pyrimidine joined
ash_ but not everyone has an html5 browser 17:33
huf that's a constant 17:34
at least, as long as the web is evolving, "not everyone has a modern browser" will remain true
cygx alexbobP: http supports partial transfer using chunks; you'll get this if you call flush() fromn php but the problem is that the client-side code won't trigger apropriate events in most browsers
alexbobP cygx: ah, I see
[particle] if the web stops changing, we'll all upgrade our browsers?
cygx before AJAX was around, web developers would use hidden iframes and chunked transfer to get persistent connections 17:35
I prefer long polling because it's cleaner, imo
alexbobP http is a protocol designed for fetching existing pieces of data, that's the issue
ash_ cygx: gmail still uses that trick
moritz_ cygx++ # try.rakudo.org hacking
alexbobP we will be doing hacks (like reconnecting after getting the chunk) until there is a new protocol that works right
cygx: chunked transfer sounds like it's a subset of long polling, since you're still holding a connection open 17:36
cygx moritz_: could you see if IO::Pty::HalfDuplex works on the intended server - couldn't get it to work on the *nix box I have access to :(
ash_ WebSocket is the new protocol to solve that problem in a standard way, till then you need long polling, a hidden iframe, or javascript comet
pugssvn r31518 | moritz++ | [t/spec] switch reduce.t to planless testing (last patch forgot to update its plan) 17:37
moritz_ cygx: will try
cuppe rakudo: say first {/B/ and !/F/}, "BED" # is this supposed to work?
cygx ash_: comet is the generic term for the various techniques like log polling/chunked transfer and not a seperate thing ;)
p6eval rakudo 7df2c2: OUTPUT«Method 'match' not found for invocant of class ''␤ in 'Regex::Bool' at line 5186:CORE.setting␤ in 'prefix:<!>' at line 351:CORE.setting␤ in <anon> at line 11:/tmp/LnI9T39R9M␤ in 'Block::ACCEPTS' at line 5129:CORE.setting␤ in 'infix:<~~>' at line 322:CORE.setting␤ in
..'Any::fir…
moritz_ cygx: at least all tests pass 17:40
cygx: do you need any more testing than that? 17:41
cygx moritz_: that's good to hear, but I still need to find a machine I can develop on :(
moritz_ cygx: I can give you an account there
cygx moritz_: that would be easiest for me, please do 17:42
pmichaud cuppe: yes, that should probably work. I suspect an error in Regex::Bool
cuppe works if you change first to grep 17:43
rakudo: say grep {/B/ and !/F/}, "BED"
17:43 ashleydev left
p6eval rakudo 7df2c2: ( no output ) 17:43
cuppe yeah
ash_ hmmm cygx i setup my server on my computer (running locally) and its not giving any response back, is there some way i can test that my computer is working right? 17:44
pmichaud shouldn't that have said "BED"?
moritz_ it should have
pmichaud I still get the error here locally.
ash_ err, the try.rakudo.org code is running on my computer, thats what i mean
pugssvn r31519 | moritz++ | [t/spec] un-TODO a passing test for rakudo
cygx ash_: the code in the repository is somewhat... incomplete ;) 17:45
pmichaud it's the prefix:<!> that is causing problems.
ash_ alright, i just wanted to start integrating my code with yours
cuppe pmichaud: yeah I noticed it was the ! specifically. with grep I don't get the error, it's just silent
pmichaud I get the error with grep also.
cygx ash_: I basically scrapped the old code once I decided on how to do the backend so that I could re-use the frontend code 17:46
cuppe weird, I don't. my version is just a few days old
pmichaud .....and the problem is that prefix:<!> is introducing a new context that has a $_ that isn't the $_ we want to match. 17:47
moritz_ why does it introduce a new context?
pmichaud every block has its own $_ 17:48
and prefix:<!> is defined as
ash_ cygx: we should come up with an api for our communication that we both follow, like input requests go to /send?id=sesison_id with X data, and Y expected result
pmichaud our multi prefix:<!>(Mu $a) { $a.Bool ?? False !! True;
}
so when the regex ($a) gets .Bool invoke on it, it's currently doing a contextual find for $_ and getting the one from prefix;<!>
colomon ooooo
moritz_ but that evaluates $a in the original context, no?
at least it should 17:49
pmichaud not if $a.Bool is using a contextual
(which it is)
colomon $a in the original context is a regex
pmichaud $a *is* a regex
that's not the problem
the problem is that Regex.Bool does a contextual lookup of $_
moritz_ ah
pmichaud I guess it needs to do an outer lookup instead
moritz_ right 17:50
pmichaud but *that's* going to cause some issues also.
colomon special version of prefix:<!> which takes a regex?
would that work?
[Coke] (mod_parrot) could use some love. I can put you in touch with the author if you like.
pmichaud colomon: not really.
PerlJam Is lift implemented?
moritz_ colomon: sounds more like a workaround, not like a solution
PerlJam: no 17:51
pmichaud colomon: I think we have to fix Regex.Bool, not the operators that enforce boolean context.
it's more a question of
my $regex = /.../;
ash_ [Coke]: that would be cool, especially if it came out around Rakudo*, it might be nice to have another toy in the * toolbox
pmichaud { if $regex .... }
do we use the $_ from the block in which the regex was defined, or the one in which it was evaluated?
[Coke] ash_: it's jhorwitz - if you want an intro, ping me at [email@hidden.address] and I'll forward intros. 17:52
PerlJam pmichaud: the latter surely.
pmichaud PerlJam: in which case it's dynamic, not lexical.
lue ohai o/
pmichaud and prefix:<!>($regex) would be evaluating $regex inside of the code for prefix:<!>
the same problem exists for prefix:<?> btw 17:53
say grep {/B/}, "BED"
rakudo: say grep {/B/}, "BED"
p6eval rakudo 7df2c2: OUTPUT«BED␤»
pmichaud rakudo: say grep {?/B/}, "BED" 17:54
p6eval rakudo 7df2c2: ( no output )
cygx ash_: there already is an api in place, at least for sending input; how output is returned is not implemented yet because I first implemented the non-JS version 17:55
ash_: I'll write it up for you when I upload my current version later today
17:55 davidfetter joined
davidfetter !fakedbi 17:55
no info bot? 17:56
pmichaud no info bot.
cygx ash_: basically, you send a POST to /send?<session-id> and get different HTTP status codes depending on the backend state
17:58 justatheory joined
pmichaud I'm not even certain that 'lift' truly helps in this case. 18:00
lue rakudo: say ("hi" andthen 0 andthen "hiagain") 18:02
p6eval rakudo 7df2c2: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤»
pmichaud huh?
that's.... weird.
lue hrm, I guess andthen and orelse are still NYI. 18:03
pmichaud we can at least warn about them.
lue pmichaud: I agree, weird error.
PerlJam weird that it's parsed as postcircumfix 18:04
(or attempted to parse)
lue would andthen and orelse be defined in Grammar.pm?
pmichaud lue: I think so -- check STD.pm6 18:05
lue checks
because it isn't, BTW. 18:06
pmichaud right, I'm sure it isn't currently defined.
We should define them in Grammar.pm and then have them fail.
lue From STD.pm6 (only occurence of andthen): 18:08
token infix:sym<andthen>
{ <sym> <O(|%loose_and)> }
so yes, it should be defined (/me defining)
[Coke] is there a difference between foo( :name('bar') ) and foo( :name<bar> ) ? both variants are used in the Actions.pm for rakudo, it seems. 18:09
pmichaud there's no difference for that case 18:10
PerlJam [Coke]: syntax :)
pmichaud but :name<one two> is the same as :name(['one', 'two']) and not :name('one two')
[Coke] pmichaud: might be worth going through the code base and picking one type, neh? 18:11
lue hrm, any place I can get the different pasttypes? (all the and/or stuff has them)
[Coke] lue: in parrot, src/compiler/pct/src/PAST/Node.pir
pmichaud [Coke]: might be. I don't see it as an important sort of consistency.
18:11 clintongormley left
pmichaud lue: don't try to associate a pasttype with it -- there isn't one. 18:12
lue ah, ok.
pmichaud for now it will just have to fail.
[Coke] pmichaud: I'm the sort of guy that will go through p5 code and insure that we use '' everywhere we can. =-) 18:13
[particle] instead of letting Perl::Critic do that for you? 18:15
PerlJam [particle]: Perl::Critic groks NQP?
oh, he did say p5 code
[Coke] [particle]: Perl::Critic does not, last I played it with, edit the code. 18:16
sorear hello #perl6 18:17
phenny: tell pmurias pong. 18:18
phenny sorear: I'll pass that on when pmurias is around.
sorear hey, it's alexbobP 18:22
18:23 mberends joined, sftp left
lue where would I define andthen and orelse so it could fail? (after defining in Grammar.pm, still gives the circumfix err) 18:23
colomon does qqx{ } not work yet in master? 18:24
18:24 supernovus joined
moritz_ rakudo: say qqx/ echo { 2 + 3 } / 18:24
p6eval rakudo 7df2c2: OUTPUT«operation not permitted in safe mode␤ in <anon> at line 1:/tmp/1DQPik5SJC␤ in main program body at line 11:/tmp/1DQPik5SJC␤»
colomon that actually seems promising...
moritz_ works, yes
pmichaud works locally 18:25
18:25 sorear sets mode: +oo colomon mberends
colomon I'm trying to debug a $work script which worked fine under master. 18:25
gives me
maximum recursion depth exceeded
in 'postcircumfix:<{ }>' at line 1
under aa015ad043fc11ca10aecaf866b4158bea8edd47
pmichaud are the curlies next to something that looks like a variable?
18:26 sorear sets mode: +v hugme
moritz_ colomon: typically happens on %hash{$/} 18:26
colomon moritz_: bingo!
pmichaud also $foo{...}
18:26 IllvilJa joined
lue will assume operators.pm 18:26
colomon script is working now, moritz_++
alexbobP hey, sorear!
pmichaud lue: operators.pm, yes. 18:27
lue: although you should no longer be getting the postcircumfix err, so something is very amiss here.
alexbobP sorear: s'been a while. I guess we've been cohabitating in #interhack all this time, but nobody has said anything there for months XD
supernovus Has a method for allowing multiple versions of a library (as per S11) been spec'ed for Rakudo?
sorear supernovus: no.
PerlJam supernovus: S11 is the spec ;)
pmichaud supernovus: I have some general ideas about how we'll do it, but it's not a priority at present.
primarily we'll have to get rid of our namespace-based classes. 18:28
(in the parrot sense of "namespace")
supernovus Ah, I was going to look at helping with that feature, but I don't know how the parrot side of things work :( 18:29
lue well, operators.pm says something about ||, and, or, and && as being weird in the grammar. 18:30
pmichaud supernovus: we have a lot of prep work to do with lexically-scoped classes before I think we can justifiably address versioned modules
lue: they are -- those are the :pasttype's you saw earlier.
lue: the trick with ||, and, or, andthen, etc. is that they have to "thunk" their arguments
i.e., unlike most other operators, these operators have to evaluate the arguments after the operation has started, not before 18:31
anyway, the postcircumfix error reads like a parsing error, so it's a problem in the grammar and not in the operators.pm file. 18:32
18:32 clintongormley joined
lue IIUC, andthen and orelse are defined as being loose_and and loose_or in the spec. 18:33
pmichaud that's their precedence level, yes.
lue which should have list associativity, not left like Grammar.pm says.
pmichaud that shouldn't make a difference to parsing either 18:34
lue [ I changed it last night (just to see what happens) and every spectest ended up failing :) ]
pmichaud right. Our implementations of 'and' and 'or' aren't list operators yet. 18:35
we can make them that way when we decide how we want to generally handle thunked arguments in Rakudo and/or Perl 6
lue *sigh* even after defining them in core/operators.pm, :
Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1 18:36
timbunce std: class Foo { ... }; role Foo { ... };
p6eval std 31519: OUTPUT«ok 00:01 110m␤»
pmichaud lue: I did say that the problem isn't in operators.pm.
*tap* *tap* Is this thing on?!?
moritz_ std: package Foo { ... }; class Foo { }
p6eval std 31519: OUTPUT«ok 00:01 107m␤»
timbunce do classes and roles have separate namespaces?
pmichaud timbunce: no.
moritz_ no
lue I heard you :). I thought though that explicitly redefining it would help. hrm...
timbunce so shouldn't "class Foo { ... }; role Foo { ... };" be an error? 18:37
pmichaud timbunce: yes, it should.
oh
wait
not if you explicitly use the ...'s
timbunce pmichaud: because?
pmichaud rakudo: class Foo { has $.a; }; role Foo { method b() { ... } };
p6eval rakudo 7df2c2: OUTPUT«Null PMC access in isa()␤ in main program body at line 1:/tmp/GV_zXZUdIr␤»
pmichaud bah. 18:38
[Coke] colomon: perhaps it might be worth using a StringBuffer when doing concats of big lists.
pmichaud timbunce: I think S11 says something about this... checking.
colomon [Coke]: that indeed seems very likely, if we do have a working StringBuffer. :)
pmichaud but essentially "class Foo { ... }" simply declares Foo as a package-ish identifier, iirc.
it doesn't explicitly say 'Foo' has to be a class. 18:39
std: class Foo { ... }; role Foo { ... }
p6eval std 31519: OUTPUT«ok 00:01 107m␤»
pmichaud the standard grammar thinks it's okay. :)
moritz_ phenny: tell masak github.com/moritz/modules.perl6.org - my approach at phasing out the web/ folder from proto
phenny moritz_: I'll pass that on when masak is around. 18:40
18:41 amkrankruleuen left, plainhao left
[Coke] colomon: parrot does. feel free to borrow it. =-) 18:41
PerlJam pmichaud: S12:52
[Coke] (worth checking to see if it's faster than Str ~ Str , anyway.)
18:44 supernovus left
pmichaud Ah, what I'm thinking of is S10:128 18:45
"Such empty packages may be subsequently be redeclared as any other 18:46
package-like object (module, class, etc.), and no redeclaration warning will be issued
for such a redeclaration."
I'm not sure that exactly applies to timbunce++'s question.
PerlJam I don't think the spec is explicit about timbunce's case. 18:47
pmichaud However, since a role can function as a class, and vice-versa, it seems to me that declaring a package via either role/class could be considered legal.
cygx is someone working on #58258 (ie making the REPL useful?) 18:48
pmichaud cygx: me.
cygx: I have to do some significant refactors in rakudo to get it to work properly.
18:48 kfo_ joined
pmichaud cygx: but it should be done by July 9th. 18:48
timbunce pmichaud: that's handy. What about the case where Foo is already defined as a role, say, and then perl sees "class Foo { ... }". The spec doesn't cover that. It sounds like the intent is that it wouldn't complain.
pmichaud I would think it wouldn't complain. 18:49
cygx pmichaud: that's promising - otherwise, try.rakudo.org would have to suffer the same shortcomings as I'm just piping the input to a rakudo process
pmichaud I don't think we want the person writing "class Foo { ... }" to make sure "Foo" is declared to have to recognize that Foo is in fact a role.
PerlJam std: role Foo { hash $.x; }; class Foo { ... } 18:50
p6eval std 31519: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/PjYv7cjXDd line 1:␤------> role Foo { hash $.x; }; class Foo ⏏{ ... }␤Illegal redeclaration of symbol 'Foo' (see line 1) at /tmp/PjYv7cjXDd line 1:␤------>
..r…
timbunce pmichaud: that's exactly the situation I'm in :)
pmichaud std: class Foo { hash $.x; }; class Foo { ... }
p6eval std 31519: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/5uTXFoqCyV line 1:␤------> class Foo { hash $.x; }; class Foo ⏏{ ... }␤Illegal redeclaration of symbol 'Foo' (see line 1) at /tmp/5uTXFoqCyV line 1:␤------>
..[32…
pmichaud looks like a std bug to me.
timbunce Anyone here know java and want to help out with my java2perl6 utility (for DBDI)? 18:51
18:51 kfo left
pmichaud cygx: fwiw, the REPL in NQP already solves RT #58258 18:52
so if you wanted to try it out with NQP, that might be a valid approach :-)
PerlJam timbunce: I wish. Having DBDI and DBI and some DBDs worked out would be quite cool to have before R*
pmichaud (and if you can get it working in nqp, then there's a good chance that you could provide an interactive web interface for all of Parrot's PCT-based languages)
s/in/with/
timbunce PerlJam: that would be nice, though I've no idea about timescales. I'm hoping FakeDBI can at least "tick the box" for R*. At some point FakeDBI can migrate to using DBDI, once it's usable. 18:54
PerlJam timbunce: yeah ... but for PR it should probably just be called DBI :) 18:55
pmichaud: earlier was a people bug s/hash/has/
pmichaud PerlJam: I'm not sure I agree with that last remark.
PerlJam pmichaud: why not? 18:56
pmichaud (calling it DBI)
it might be implying something that isn't true.
timbunce I think FakeDBI doesn't have the right foundations for that. It's a pity the name is so blunt though.
cygx pmichaud: sorear++ suggested using IO::Pty::HalfDuplex, ie the web shell will workd with any program which uses blocking io to read from stdin (which I'm assuming the Rakudo REPL does/will do?)
pmichaud I'd hate for someone to say "Perl 6 has DBI already" 18:57
cygx: rakudo REPL blocks on stdin, yes.
PerlJam yeah, I guess that would be sort of a "bait and switch" kind of situation
cxreg i'm having a hell of a time declaring a lvalue method
pmichaud cxreg: what sort of lvalue method do you need? 18:58
18:58 hercynium left
timbunce Something like ProtoDBI would be a better name. Still, I can't grumble. I'm delighted it's there and it'll certainly help me down the road. 18:58
PerlJam timbunce: what needs doing for DBDI exactly?
pmichaud "EarlyDBI"
"SimpleDBI"
cxreg this is back to earlier, when i wanted a proto for one. i gave up on that and made a private member, and want a lvalue sub to make my own accessor.
timbunce pmichaud: yeap, anything like that would be fine. 18:59
[Coke] timbunce: I have some java experience and would be willing to help out.
pmichaud cxreg: most methods in rakudo act like lvalue methods already, I think.
cxreg hrm
timbunce [Coke]: great, please join #dbdi so I can pick your brains :) 19:00
pmichaud rakudo: class XYZ { has $!x; method x() { $!x } }; my $a = XYZ.new; $a.x = 3; say $a.x;
p6eval rakudo 7df2c2: OUTPUT«3␤»
pmichaud yes, that's a bug.
but it's a bug you could exploit until we have "is rw" working on methods. :-)
ash_ which part of it is a bug?
cxreg heh
ash_ whats the right way?
pmichaud ash_: method x() is rw { ... }
ash_ got ya
cxreg pmichaud: i dont understand, why did the proto have no args? 19:01
pmichaud cxreg: what proto?
cxreg er, the sub declaration
"method x()"
pmichaud doesn't need any
you're returning the container
cxreg oh..
pmichaud you're not defining how to store a value into it
cxreg i misunderstood what that code did
19:02 pyrimidine left
cxreg so really the issue is that "method ... is rw" is not implemented yet 19:02
timbunce PerlJam: I'll write up a blog post in the next day or so. Basically get java2perl6 to produce a set of perl6 class/role modules that match the JDBC API and then start writing implementations that match those interfaces.
pmichaud cxreg: well, that's *an* issue, yes.
but note that an "is rw" method never sees the value being assigned to the thing it returns as rw
cxreg sigh 19:03
pmichaud what you may be looking for instead is proxy values (in S06) 19:04
i.e., a proxy value has a STORE method that says what to do when something attempts to store a value in the proxy
cxreg i wanted callnext :p
pmichaud (and proxy values are still somewhat conjectural in the spec) 19:05
moritz_ cxreg: it's spelled nextwith 19:07
cxreg callsame, rather 19:08
whats nextwith?
ash_ next in the multi-dispatch with different parameters
cxreg oic
moritz_ next candidate, called with a specified signature
cxreg ok lunch. i'll hammer on this again later. 19:09
ash_ rakudo: multi foo(Int $a) { nextwith("Hi"); }; multi foo(Str $b) { say $b; }; foo 3;
p6eval rakudo 7df2c2: OUTPUT«Null PMC access in clone()␤ in 'foo' at line 1␤ in main program body at line 11:/tmp/GrUAuBvmhO␤»
ash_ hmm 19:10
does nextwith not work right now?
pmichaud ash_: I don't know.
ash_: looks like "no."
moritz_ I think it's a bit broken, but your example won't work anyway
ash_ well, i could of written it wrong
moritz_ because the first dispatch limits it to the (Int $a) candidate 19:11
jnthn ash_: It works
ash_: But it should die more gracefully
Or maybe shouldn't die at all.
moritz_ so the candidate list is empty then
jnthn Anyway, what moritz_++ said.
pmichaud rakudo: multi foo(Int $a) { nextwith("hi"); }; multi foo($b) { say $b; }; foo 3; 19:12
ash_ ah, i guess that should of been callwith not nextwith
p6eval rakudo 7df2c2: OUTPUT«Null PMC access in clone()␤ in 'foo' at line 1␤ in main program body at line 11:/tmp/W313wCwRs_␤»
pmichaud how about that one?
19:15 felliott joined
jnthn ...that should work 19:18
Oh, it probably did
oh, wait
Hm
ash_ i thought nextwith redispatched (like a new call completely) 19:19
kinda like just doing (in that case) foo(args); (just without having to write the sub's name 19:20
jnthn rakudo: multi foo(Int $a) { say "here"; nextwith("hi"); }; multi foo($b) { say "and here"; say $b }; foo(3);
p6eval rakudo 7df2c2: OUTPUT«here␤Null PMC access in clone()␤ in 'foo' at line 1␤ in main program body at line 11:/tmp/IIg0PyIgEa␤»
jnthn No, that's certainly wrong.
oh!
I bet it works fine on methods.
Just not multi subs for some reason.
ash_ ah, but it should work with mult subs too, right? 19:22
jnthn yeah
I think that's NYI for now though
And I can't really be bothered to invest too much time in it given spec changes mean I'm going to have to re-do the whole dispatchy stuff anyway in a bit.
ash_ no worries 19:23
just wonder if it was supposed to be right
jnthn The one pm pasted shoulda worked, yes
ash_ why wouldn't the orginal? 19:24
jnthn Because you're walking through a candidate list 19:30
And the list was formed based on the arguments you initial passed. 19:31
ash_ i think i understand, thanks 19:32
19:33 Guest80095 left 19:36 rgrau left
ingy greetings 19:36
davidfetter waves to mr. döt net 19:37
19:37 justatheory left 19:39 justatheory joined
Guest23195 hmm this blogs.perl.org/users/martin_berends...bases.html 19:40
19:40 Guest23195 is now known as kaare_
kaare_ I would have thought that cxreg's implementation using libpg would be fast and right? 19:41
19:41 justatheory_ joined, justatheory left, justatheory_ is now known as justatheory, synth joined
kaare_ What's the ++ og using Pg.pir if you have direct access through libpg? 19:42
og -> of
Or doesn't it really use direct library calls? 19:43
19:47 justatheory left 19:58 ilogger2 joined
timbunce S06 seems to have very little to say about the return type of a subroutine, like what the effect of defining a return type is. Is that specified elsewhere? 20:01
mberends on incoming parameters, types are constraints that are checked at call time. Returns could be handled as an output parameter, subject to the same constraint type checking at runtime. 20:05
20:06 justatheory joined
mberends but the checking is NYI :( 20:08
timbunce Can I say sub Foo (--> Container) to mean the sub returns an object that does the Container role? 20:09
mberends rakudo: sub a(Str $s, --> Int){ $s.uc }; say a("Foo"); # should complain about no Int
p6eval rakudo 7df2c2: OUTPUT«FOO␤»
timbunce std: sub Foo (--> Container)
p6eval std 31519: OUTPUT«===SORRY!===␤Unable to parse signature at /tmp/RlLrIwYJqN line 1:␤------> sub Foo ⏏(--> Container)␤Couldn't find final ')'; gave up at /tmp/RlLrIwYJqN line 1:␤------> sub Foo (--> ⏏Container)␤ expecting typename␤Parse
..faile…
mberends std: class Container { ... }; sub Foo (--> Container) {...} 20:11
p6eval std 31519: OUTPUT«ok 00:01 109m␤»
timbunce mberends: so role names can't be used to express return types? ever? 20:12
20:13 zamolxes joined
pmichaud I'm pretty sure that role names would be acceptable as return constraints. 20:13
mberends timbunce: oh, sorry, I tried class instead of role. role should also be fine.
std: role Container { ... }; sub Foo (--> Container) {...}
p6eval std 31519: OUTPUT«ok 00:01 109m␤»
pmichaud phone
mberends rakudo: role Container { ... }; sub Foo (--> Container) {...} 20:14
p6eval rakudo 7df2c2: ( no output )
timbunce ah, so my failure was because Container isn't predefined (yet), ok, thanks.
20:14 dju_ joined 20:18 dju_ is now known as dju
jnthn Yes, role types are fine as return types 20:36
lue pmichaud: would it be safe for me to experiment with getting := working, or will that be an exercise in futility? 20:41
pmichaud lue: it's safe to experiment 20:45
lue Alright. Time to head into my Molybdenum bunker (in case of BOOM) and start experimenting! 20:48
pmichaud at its core, you want to do 20:50
(given 'source' and 'target' pmcs)
$P0 = new ['ObjectRef'], source
copy target, $P0
.return (target)
you might try defining &infix:<:=> just with that to begin with, and see what works/breaks. 20:52
I know that rebinding sources is likely to cause problems/confusion. 20:53
(and possibly enough confusion that it's a good argument not to have := implemented to begin with.)
oh wait, &infix:<:=> is defined in the settings?! 20:54
that's.... going to make things much more difficult.
jnthn why?
pmichaud unless 'is ref' is working.
jnthn Just make sure the parameters are \$foo'd
pmichaud oh, is the backslash the new 'is ref'? 20:55
jnthn pmichaud: "is parcel" but it's always written with \ these days, iirc
pmichaud okay, that might simplify it a bit.
is it really a parcel?
jnthn No
pmichaud or just whatever argument gets passed.
jnthn It means "apply no context whatsoever to this"
pmichaud okay
jnthn Just binds exactly what was passed
pmichaud might not be so difficult then.
jnthn No, it should work
We need it in the setting really
pmichaud yes, I know. 20:56
jnthn Since it almost certainly wants to be a multi
We already have some candidates
So it should just be a case of filling out the one that currently throws an error saying that case is NYI
pmichaud yeah. I haven't figured out how to handle the $b := $a; $a := $x; case though. 20:57
we'll either need to put another level of indirection on our containers (ick), or find a way to rebind symbols in the lexpad (also ick)
21:01 jferrero joined
ash_ pmichaud: is it hard (possible) to add your own phaser? 21:01
or to the world in general, i just figured pmichaud would know
pmichaud ash_: I'm not sure I understand "add your own phaser"
you mean, add a new stage?
(what I like to call a "phaser bank"?) 21:02
ash_ ummm yes? (not familiar with stage as its being used)
pmichaud give me an example of what you're wanting to do, then. 21:03
ash_ role Foo { COMPOED { say 'here'; } }; $a does Foo; # would say 'here' now 21:04
COMPOSED*
lue apparently made a big BOOM just walking to the bunker
pmichaud ash_: that would likely require a grammar modification and some other stuff.
ash_: it's not (yet?) a simple thing to add a new phaser. 21:05
21:05 pmurias joined
ash_ could i do that with a meta class? 21:05
if i made that like a sub
instead of a phaser
pugssvn r31520 | lwall++ | [STD] simplify charname matching 21:06
r31520 | parse the \| parameter specially
r31520 | unbreak the null pattern matcher
pmichaud iiuc, the metaclass controls composition, yes.
ash_ rakudo: role Foo { our sub COMPOSED { say 'here' }}; Foo::COMPOSED; # is there a way to call that sub? 21:09
p6eval rakudo 7df2c2: OUTPUT«Can not find sub Foo::COMPOSED␤ in main program body at line 1␤»
cxreg mberends: my Pg class is updated, now with many more methods, and commit/rollback 21:11
one issue I haven't solved yet is making AutoCommit commit when set to true
due to various setbacks with multimethods and lvalue methods :/ 21:12
mberends cxreg++ very nice though
cxreg: thanks, I'm very happy with what you've done
cxreg np :) I think it's ready for general inclusion, if you like 21:13
mberends two things before that: 1. the repo has been renamed to MiniDBI, see backlog. and 2. have you also added a test script that evals 99-common.pl6 ? 21:14
cxreg kaare_: one advantage of using Pg.pir is that you dont have to maintain your own thunks and NCI-fu, or depend on a middle layer like zavolaj
oops, yeah still need to produce a test. i guess it requires instructions on stubbing out an empty db like the mysql test? 21:15
mberends yes, the postgresql example in zavolaj is the easiest to copy 21:16
the s/FakeDBI/MiniDBI/g in all files is almost ready to push 21:17
cxreg some of the links in your post are now or soon to be outdated btw
mberends yeah, I'll definitely revise the blog post :)
... and rewrite some yapc::eu slides ;) 21:18
jnthn cxreg: But Pg.pir *is* a "middle layer" and it does pretty much what Zavolaj does for you. 21:19
mberends <- happy bunny
cxreg jnthn: fair enough. it's just that you already have it :)
zavolaj++ btw
dukeleto does the *+* operator have a name? 21:20
cxreg snowman?
jnthn *+* operator?
mberends starry-eyed ?
pmichaud "cheerleading plus"?
cxreg cheerleading jesus?
cxreg ducks 21:21
alexbobP cheesus
pmichaud dukeleto: that's just a plain infix:<+> with two "whatever" operands.
kaare_ Perhaps Pg.pir has the advantage of support from the pl/parrot folks?
dukeleto pmichaud: aha! thanks for the explanation
pmichaud the whatever operands cause it to become a closure
dukeleto kaare_: i am pretty much "the pl/parrot folks", but there are a few other brave souls helping me. what is your question? 21:22
dukeleto is working on a blog post about PL/Perl6 and will mention the awesome work done with Pg.pir + friends recently
cxreg dukeleto: mberends has one up, maybe you could link it - blogs.perl.org/users/martin_berends...bases.html 21:23
kaare_ dual: Yes, I meant you :-) I thought that maybe you maintain Pg.pir?
dukeleto kaare_: nope, I didn't write Pg.pir
kaare_: according to svn blame, leo wrote most of it, with some patches from "The Usual Suspects" 21:25
kaare_ ok 21:26
mberends FakeDBI is dead. Long live MiniDBI ! (well, not too long ;) 21:30
dukeleto mberends++ 21:31
ash_ FakeDBI got renamed? 21:32
mberends yes :) now editing the blog posting
jnthn mberends: I prefer the new name. 21:35
timbunce mberends: "Perl 5 DBI (v1) became hard to maintain and is no longer being actively developed" doesn't paint the right picture. There's a *lot* of work going on in the DBD::File area for example. Can you soften the wording? Something like "Perl 5 DBI (v1) is very widely used. The stability of the API is paramount so radical changes are unlikely."
pmichaud I greatly prefer the new name. 21:37
kaare_ yeah, MiniDBI++
mberends timbunce: thanks, doing it right now. :)
cosimo_ I was a bit surprised when i read "no longer being actively developed" 21:38
timbunce mberends: also "translate the Java classes of JDBC into Perl 6" could lead people to think it's translating more than just the class/interface APIs.
mberends yes, that's wrong too
timbunce mberends: all it does is spit out .pm6 files that define roles with stub method definitions. Someone still has to write the code behind those stubs :) 21:39
mberends heh, I half remembered that and forgot to write it. sorry, will fix :) 21:40
21:43 skids joined 21:45 tylercurtis joined
kaare_ night & 21:49
21:49 pnate2 joined, hercynium joined 21:50 rgrau joined 21:51 jferrero left
lue afk 21:52
ingy how do I get t the length of $foo.bar.array ?
gi!mf
21:53 opx^away joined
dukeleto ingy: @array.elems 21:53
ingy thx
dlimf! 21:54
dukeleto ingy: say join " ", @foo.^methods is useful
ingy yay1
yay!
ash_ ~@foo.^methods # is a bit shorter
dukeleto ash_++ 21:55
ash_ +@array # also a shortcut for the length of an array
rakudo: my @a = <a b c>; say +@a, ~@a.^methods(:local);
p6eval rakudo 7df2c2: OUTPUT«3at_pos new exists splice delete perl␤»
21:55 pnate joined
ash_ rakudo: my @a = <a b c>; say +@a, ' ', ~@a.^methods(:local); 21:55
p6eval rakudo 7df2c2: OUTPUT«3 perl delete at_pos new exists splice␤» 21:56
21:57 pnate2 left 22:05 timbunce joined 22:07 pmurias left 22:08 kfo_ joined, davidfetter joined, colomon joined, pjcj_ joined, kloeri joined, PZt joined, buubot joined, Lorn joined, farmer.freenode.net sets mode: +ov colomon buubot, PZt left, stef_ joined 22:09 hercynium left, whiteknight joined 22:14 kensanata joined 22:19 synth joined 22:20 skids left 22:29 justatheory left 22:33 hercynium joined 22:36 Trashlord joined
mberends loli(re)blogged: blogs.perl.org/users/martin_berends...bases.html # s/Fake/Mini/g and other tweaks 22:36
22:37 hercynium_ joined
mberends sleep & 22:38
22:38 hercynium left 22:48 saaki joined 22:49 ive joined 22:50 timbunce left
dalek meta: r364 | stefa...@cox.net++ | trunk/vicil:
[vicil] Delete. It now lives at git://github.com/sorear/niecza.git
22:55
sorear diakopter: ping 22:56
diakopter PLONG 23:00
sorear: how is Niecza pronounced 23:01
23:01 ashleydev joined
sorear I hadn't thought about that much. I'd been going knee + tsar - r 23:02
Anyway. Who do I talk to about adding repositories to dalek? 23:03
jnthn sorear: nee-yee (dipthong) 23:04
cha
gah 23:05
nee-yeh cha
But pallated.
(the n is)
Consult your nearest friendly local Slav for help. ;-)
23:07 Sanitoeter joined 23:12 PZt joined 23:18 tedv joined 23:22 kensanata left 23:33 ive left 23:46 rgrau_ joined 23:48 rgrau left 23:54 Psyche^ joined 23:55 Psyche^ is now known as Patterner