Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-30

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:12 ruoso pmurias, pong again ;)
00:14 am0c joined #perl6
00:15 pugssvn r30238 | lwall++ | [CURSOR] add mark_sinks method
00:15 pugssvn r30238 | [STD] call mark_sinks on statement list
00:15 pugssvn r30238 | [STD] get a start on marking which operators are pure
00:16 jnthn Oh wow.
00:16 jnthn :-)
00:16 colomon \o/
00:17 TimToady it's just a start
00:18 TimToady but it does set _sink on all but the last statement of a statementlist
00:19 TimToady it's probably wrong too, since it won't propagate sinkness too inner final statements yet
00:19 jnthn aha
00:19 jnthn my $final = pop(@s);
00:20 jnthn nod
00:20 TimToady in p5 this is done as a separate pass, which is correcter
00:20 jnthn Think we might be able to get away with it in one pass in Perl 6?
00:21 TimToady probably not; we don't usually know the outer reduction soon enough
00:22 TimToady { sink; { sink; sink; }; notsink }
00:22 TimToady we don't know there's going to a notsink after the inner block yet
00:22 jnthn Ah, I see.
00:22 jnthn Yes.
00:22 TimToady so don't pay too much attention to what I've got yet
00:27 pausenclown is there LWP functionality in rakudo?
00:30 pugssvn r30239 | lwall++ | [STD] include --> type in redundant 'of' type checking
00:31 jnthn pausenclown: There's certainly socket support, and I think there's some other modules that build on it.
00:31 * jnthn needs sleep
00:31 jnthn night all o/
00:31 pausenclown speaking of modules. where to look for them?
00:31 colomon jnthn: \o
00:32 pausenclown jnthn: sleep is overrated =)
00:32 lichtkind o/
00:32 lichtkind good night
00:33 pausenclown oh, hi herb
00:33 lue night
00:33 lue afk
00:33 pausenclown does kephra have perl6 syntax hiliting?
00:34 yinyin joined #perl6
00:34 lichtkind pausenclown: not really
00:34 lichtkind pausenclown: adding keywords is easy
00:34 pausenclown too bad, since padre has
00:34 pausenclown *kidding*
00:35 lichtkind pausenclown: but padre uses for that a very slow parser and lot of dependecies and I wanted stay small
00:35 lichtkind pausenclown: i know the guy who wrote that personally so no news there :)
00:37 pausenclown i personally would be fine with something that doesnt get utterly confused when i write regex foo { \' }
00:38 pausenclown i comment such things out by adding #' or the like but thats itchy
00:38 lichtkind pausenclown: tell it ahmadzawawi
00:39 pausenclown i'm just ranting. i use 'Notepad
00:39 pausenclown ++' || Kate
00:39 lichtkind pausenclown: i almost only use kephra
00:40 pausenclown i am almost only not surprised =)
00:41 lichtkind g night
00:41 pausenclown for me the problems are twofold. on windows i failed to install it twice (using ActivePerl and Strawberry) and on linux there was a strange problem with the wx lib
00:41 lichtkind i can tell you tomorrow why np++sucks :)
00:42 lichtkind pausenclown: with padre or kephra?
00:42 pausenclown kephra
00:43 eiro joined #perl6
00:43 pausenclown problem with ui was that the whole UI looked rasterized or dithered
00:43 lichtkind pausenclown: i you most propably did mot fail, there was small problem a simple copy would had solved that but its now solved anyway next release i hop will come this week
00:44 diakopter [OT] np++ is the coolest.
00:44 lichtkind cant say anything about that
00:45 diakopter TimToady: type-checking!  !!!
00:45 lichtkind diakopter: yes they same a long way but still no sense for beauty there :)
00:46 pausenclown did u consider creating install packages (.deb et al)?
00:46 snarkyboojum rakudo: (1, 3, *+2 ... -1)
00:46 p6eval rakudo 534afd:  ( no output )
00:46 Helios joined #perl6
00:46 snarkyboojum rakudo: (1, 3, *+2 ... -1)[4]
00:48 snarkyboojum oops - that seems to hang rakudo
00:48 gfx joined #perl6
00:48 pausenclown no, the bot just likes to hang itself
00:49 snarkyboojum just tried it on my local build and it hangs
00:49 eiro joined #perl6
00:49 pausenclown anyway, what the heck is whatever+2?
00:49 snarkyboojum Whatever + @
00:49 snarkyboojum 2
00:50 pausenclown rakudo: say *+1 == Inf -1
00:50 diakopter phenny: tell lichtkind I care only about the beauty of the text-editing box itself (ClearType, Ctrl-scroll to zoom, line-highlight, C#/Perl/JS syntax highlighting), I use it in full-screen mode so the rest of the UI is invisible to me.
00:50 phenny diakopter: I'll pass that on when lichtkind is around.
00:50 snarkyboojum > (1, 3, *+2 ... 9).say
00:50 snarkyboojum 13579
00:51 pausenclown std: say * + 1 == Inf - 1
00:51 pausenclown there he goes
00:51 snarkyboojum but I guess the ... -1 generates an infinite list and accessing it with an array subscript is making it hang
00:52 pausenclown rakudo: my @a=(1,2,3,4,5); say @a[2..*];
00:53 pausenclown std: my @a=(1,2,3,4,5); say @a[2..*];
00:53 snarkyboojum rakudo: say "Boo"
00:53 snarkyboojum rakudo bot is hanging I guess
00:53 pausenclown oh yeah it did not rejpin
00:54 pausenclown s/pi/oi/
00:54 pausenclown anyway, that code doesnt work in rakdo (yet)
00:55 * pausenclown misses purl
00:55 snarkyboojum hanging seems a bit buggy
00:55 snarkyboojum or maybe not :)
00:56 snarkyboojum but yeah - buggy vs nyi type of issue
00:57 payload joined #perl6
00:59 pausenclown nyi, yeah. the other day i was dreaming i try to flush my new fancy internet toilet and it greeted me with exactly that =)
01:00 snarkyboojum (1, *+2 ... -1).batch(10).say # gives me results
01:01 diakopter hee
01:01 diakopter pausenclown: you killed p6eval
01:01 snarkyboojum diakopter: it was me :|
01:01 diakopter oh
01:02 snarkyboojum with (1, *+2 ... -1)[4] or similar
01:02 * diakopter investigates
01:03 p6eval rakudo 534afd: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
01:03 p6eval std 30239: OUTPUT«ok 00:01 108m␤»
01:03 p6eval joined #perl6
01:03 snarkyboojum or (1, *+2 ... *)[-3] probably
01:04 snarkyboojum any array subscript on an infinite-ish list I guess
01:04 pausenclown std: my @a=(1,2,3,4,5); say @a[2..*];
01:04 p6eval std 30239: OUTPUT«ok 00:01 107m␤»
01:04 pausenclown rakudo: my @a=(1,2,3,4,5); say @a[2..*];
01:04 p6eval rakudo 534afd:  ( no output )
01:04 pausenclown mmh.
01:04 pausenclown on my copy that just croaks
01:06 snarkyboojum hangs on my copy
01:06 diakopter yeah it hangs on p6eval
01:06 diakopter but it kills it after 15 seconds
01:07 snarkyboojum but (1, *+2 ... *)[1] didn't get killed after 15s?
01:07 snarkyboojum it killed p6eval after 15s ho ho
01:08 eiro joined #perl6
01:09 pausenclown maybe the computer running p6eval is moving very fast and his 15s aren't our 15s
01:09 diakopter I think there were a couple of rebuilds going on that prevented p6eval from ponging the irc server
01:09 snarkyboojum ah
01:09 snarkyboojum can I try again?
01:09 diakopter yeah
01:09 snarkyboojum rakudo: (1, *+2 ... *)[1]
01:10 p6eval rakudo 534afd:  ( no output )
01:10 snarkyboojum yay
01:10 diakopter rakudo: say (1, *+2 ... *)[0]
01:10 snarkyboojum that seems more robust :)
01:10 p6eval rakudo 534afd:  ( no output )
01:11 pausenclown positive test
01:11 pausenclown rakudo: say 1
01:11 snarkyboojum rakudo: (1, *+2 ... *)[1 + 2i]
01:11 p6eval rakudo 534afd: OUTPUT«1␤»
01:11 snarkyboojum complex indices! :P
01:11 diakopter linux people: if you 'nice up' a process by "nice +10 ...", are its children also niced up by default?
01:11 p6eval rakudo 534afd:  ( no output )
01:11 snarkyboojum std: (1, *+2 ... *)[1 + 2i]
01:11 p6eval std 30239: OUTPUT«ok 00:01 106m␤»
01:11 snarkyboojum heh
01:11 pausenclown rakudo: say Inf - 1
01:11 snarkyboojum td: (1, *+2 ... *)[-2i]
01:11 p6eval rakudo 534afd: OUTPUT«Inf␤»
01:12 diakopter rakudo: say Inf - Inf
01:12 pausenclown smart!
01:12 p6eval rakudo 534afd: OUTPUT«NaN␤»
01:12 snarkyboojum std: (1, *+2 ... *)[-2i]
01:12 p6eval std 30239: OUTPUT«ok 00:01 107m␤»
01:12 pausenclown not so smart
01:12 snarkyboojum do complex indices make sense? heh
01:12 diakopter !!!!
01:12 diakopter rakudo: say Inf - say Inf
01:12 p6eval rakudo 534afd: OUTPUT«Inf␤Inf␤»
01:13 diakopter ;)
01:13 pausenclown shouldnt that be 0?
01:13 snarkyboojum rakudo: say (Inf - (Inf +1))
01:13 pausenclown rakudo: say say 99
01:13 p6eval rakudo 534afd: OUTPUT«NaN␤»
01:13 p6eval rakudo 534afd: OUTPUT«99␤1␤»
01:13 diakopter rakudo: say 11 - say 4
01:13 p6eval rakudo 534afd: OUTPUT«4␤10␤»
01:13 snarkyboojum hehe
01:14 diakopter (that's correct)
01:14 pausenclown how can that be correct
01:14 snarkyboojum do complex array subscripts make sense?
01:14 pausenclown ugh
01:15 pausenclown ignore
01:15 snarkyboojum rakudo: +(1+2i).say
01:15 p6eval rakudo 534afd: OUTPUT«1 + 2i␤»
01:16 pausenclown rakudo: say say 2 - say 3
01:16 snarkyboojum rakudo: (1+2i).re.say
01:16 p6eval rakudo 534afd: OUTPUT«3␤1␤1␤»
01:16 p6eval rakudo 534afd: OUTPUT«1␤»
01:16 snarkyboojum rakudo: (1+2i).re.WHAT
01:16 p6eval rakudo 534afd:  ( no output )
01:16 snarkyboojum rakudo: (1+2i).re.WHAT.say
01:16 p6eval rakudo 534afd: OUTPUT«Int()␤»
01:16 pausenclown what does 2i mean?
01:17 snarkyboojum so it gets coerced to an int in an array subscript or similar?
01:17 snarkyboojum 2 * i where i = sqrt(-1) :)
01:18 colomon I'd argue that using a complex number for an array index should be an error.
01:18 pausenclown we have built in in imaginery numbers?
01:18 colomon but maybe not the sort of error that STD detects.
01:18 colomon pausenclown: yes.
01:18 snarkyboojum see Complex.pm
01:18 pausenclown wow
01:20 colomon rakudo: say e ** pi * i
01:20 p6eval rakudo 534afd: OUTPUT«Could not find non-existent sub &i␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
01:20 colomon whoops, standalone i still doesn't work.
01:20 colomon rakudo: say e ** pi * 1i
01:20 p6eval rakudo 534afd: OUTPUT«0 + 23.1406926327793i␤»
01:20 colomon gack
01:20 colomon rakudo: say e ** (pi * 1i)
01:20 p6eval rakudo 534afd: OUTPUT«-1 + 1.22464679914735e-16i␤»
01:21 colomon third try is the charm.  :)
01:21 snarkyboojum rakudo: say (e ** (2 * pi * 1i))
01:21 p6eval rakudo 534afd: OUTPUT«1 + -2.44929359829471e-16i␤»
01:21 snarkyboojum :)
01:22 TimToady std: my Str sub x (--> Int) {...}
01:22 p6eval std 30239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Extra 'of' type; already declared as type Str at /tmp/OxnTlVDsLE line 1:␤------> [32mmy Str sub x (--> Int[33m⏏[31m) {...}[0m␤    expecting typename␤FAILED 00:01 107m␤»
01:22 TimToady that's better
01:22 pausenclown ok. since we have a pi keyword we should have a ∅ operator ( and somesuch =)
01:23 snarkyboojum rakudo: say pi
01:23 p6eval rakudo 534afd: OUTPUT«3.14159265358979␤»
01:23 snarkyboojum rakudo: say phi
01:23 snarkyboojum :)
01:23 p6eval rakudo 534afd: OUTPUT«Could not find non-existent sub &phi␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
01:23 TimToady ∅ is a term, not an operator
01:23 diakopter TimToady: yay for strongly-typed-ness.
01:23 pausenclown *
01:23 colomon rakudo: say pi.Rat(1e-10).perl
01:23 p6eval rakudo 534afd: OUTPUT«312689/99532␤»
01:24 TimToady .u ∅
01:24 phenny U+2205 EMPTY SET (∅)
01:24 diakopter .u empty
01:24 phenny U+2205 EMPTY SET (∅)
01:24 eiro joined #perl6
01:24 diakopter .u set
01:24 phenny U+2205 EMPTY SET (∅)
01:24 pausenclown we had
01:24 diakopter .u 2205
01:24 phenny U+2205 EMPTY SET (∅)
01:25 snarkyboojum rakudo: sub phi { (1 + sqrt(5))/2 }; say phi
01:25 p6eval rakudo 534afd: OUTPUT«1.61803398874989␤»
01:25 snarkyboojum heh
01:25 am0c oh hai
01:26 TimToady unicode contains twenty or so phi's, none of which are the empty set  :)
01:26 poincare101 joined #perl6
01:26 snarkyboojum oh that ϕ
01:26 poincare101 how long does rakudo take to compile on something that's not very new (say, a pentium 3, 800 mhz)? 30 mins?
01:27 poincare101 I'm looking to get into perl6 development.
01:27 snarkyboojum poincare101: how much memory?
01:27 TimToady .u ϖ
01:27 phenny U+03D6 GREEK PI SYMBOL (ϖ)
01:27 poincare101 snarkyboojum: 512 MB
01:27 am0c moritz_: it seems the two announcements are duplicated there http://rakudo.org/
01:28 snarkyboojum poincare101: you might have issues with swapping and that amount of memory.. last I heard compilation was maxing out at 700MB or so
01:28 TimToady then there's ⌽ of course
01:28 snarkyboojum poincare101: though I don't really know :)
01:28 TimToady .u ⌽
01:28 phenny U+233D APL FUNCTIONAL SYMBOL CIRCLE STILE (⌽)
01:29 poincare101 snarkyboojum: wow, that's pretty heavy. I can compile perl5 on this thing pretty easy.
01:29 TimToady .u ⍉
01:29 phenny U+2349 APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH (⍉)
01:29 sorear poincare101: I have a P4, 2 GHz, 384 MB RAM (the RAM is the limiting factor here, I think, so your should be faster) - it takes 12 hours
01:29 eiro joined #perl6
01:29 poincare101 APL is very annoying.
01:29 sorear however this was before the PCC overhaul
01:30 pausenclown rakudo: multi sub prefix:<Ø> (*@n) { ( [+] @n ) / @n.elems }; say Ø(1,2,3);
01:30 p6eval rakudo 534afd: OUTPUT«2␤»
01:30 snarkyboojum poincare101: the devs are working on reducing it, not sure how much luck they've had
01:30 poincare101 the parrot VM is pretty heavy...
01:30 sorear snarkyboojum: after the PCC overhaul, compilation memory usage was at 1.5-2G, chromatic cut it down to 700MB
01:30 snarkyboojum sorear: yeah, see above :)
01:30 pausenclown why does p6eval give me different results in private chatter?
01:31 snarkyboojum sorear: so no major inroads after that?
01:31 sorear poincare101: the parrot VM is about as heavy as the P5 VM; however, Rakudo (analagous to the Perl5 parser) is quite underoptimized at the moment
01:32 poincare101 I see. thank you very much for this info.
01:32 TimToady o⃠ is kinda cool
01:32 sorear it doesn't do much in the way of incremental parsing, and it retains a lot more than it ought to
01:32 snarkyboojum hehe.. frog with a black eye?
01:32 sorear fun fact: using Unicode characters anywhere in your source file will slow down parsing by an order of magnitude
01:33 sorear for the entire file
01:33 snarkyboojum which means core.pm when it's concatenated I suppose
01:33 pausenclown thats like $&
01:33 sorear it stores the translation unit as a single string, and if it has unicode characters, it has to use a variable width encoding
01:33 sorear there's a GSoC project, iirc, to implement a suitable fixed width encoding
01:33 * pausenclown fights the urge to make an A20 gate joke
01:34 sorear What does A20 have to do with anything
01:34 TimToady rakudo: sub Ø  (*@n) { ( [+] @n ) / @n.elems }; say Ø(1,2,3);
01:34 snarkyboojum pausenclown: I get the same results in private chatter with p6eval
01:34 p6eval rakudo 534afd: OUTPUT«2␤»
01:35 TimToady rakudo: sub Ø (*@n) { ( [+] @n ) / @n.elems }; say Ø 1,2,3;
01:35 p6eval rakudo 534afd: OUTPUT«2␤»
01:35 snarkyboojum pausenclown: provided I still address a particular implementation e.g. rakudo:
01:35 pausenclown i try open a new query window
01:36 TimToady rakudo: sub φ (*@n) { ( [+] @n ) / @n.elems }; say φ 1,2,3;
01:36 colomon TimToady: is that last one correct?
01:36 p6eval rakudo 534afd: OUTPUT«2␤»
01:36 TimToady colomon: that's not a 0
01:36 sorear one of the projects I've assigned to myself is a Parrot memory profiler
01:36 TimToady nor is it an empty set
01:36 TimToady .u Ø
01:36 phenny U+00D8 LATIN CAPITAL LETTER O WITH STROKE (Ø)
01:36 colomon TimToady: yes, I was worried about the lack of parens on the sub call.  :)
01:36 sorear Parrot is different in enough ways from the P5 VM that I think it's actually doable
01:37 TimToady it's just a list operator like any normal function can be
01:37 colomon okay.
01:37 TimToady if you don't want list operator precedence, then you have to get fancier
01:37 poincare101 how can I get started developing for rakudo? Is there a "cheatsheat" for the source structure?
01:38 sorear see docs/
01:38 sorear especially docs/compiler_overview.pod
01:38 sorear and feel free to pick #perl6's collective brains
01:38 TimToady they're already pretty picked over, so only the unwanted ones are left
01:40 stepnem joined #perl6
01:41 snarkyboojum .u Φ
01:41 phenny U+03A6 GREEK CAPITAL LETTER PHI (Φ)
01:41 TimToady .u ጲ
01:41 phenny U+1332 ETHIOPIC SYLLABLE PHI (ጲ)
01:43 snarkyboojum rakudo: (1,2,3).[1+2i].say
01:43 p6eval rakudo 534afd: OUTPUT«Method 'Int' not found for invocant of class 'Complex'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
01:43 snarkyboojum std: (1,2,3).[1+2i].say
01:43 p6eval std 30239: OUTPUT«ok 00:01 108m␤»
01:44 TimToady imaginary semantics :)
01:44 eiro joined #perl6
01:44 TimToady dinner &
01:44 snarkyboojum I can imagine what it'd return
01:45 snarkyboojum TimToady: did you ever get that IRC text to speech converter installed?
01:45 pausenclown bed &
01:46 snarkyboojum I was watching an old vid where someone mentioned you thinking about that :)
01:50 poincare101 where can I find a good PIR tutorial?
01:54 eiro joined #perl6
01:55 snarkyboojum poincare101: I learned bits and pieces from http://docs.parrot.org/parrot/latest/html/
01:56 snarkyboojum poincare101: notably the PIR book section
01:57 snarkyboojum poincare101: tho this looks good too http://www.parrot.org/wiki/pir-tutorial-and-faq
01:58 poincare101 wow, parrot looks like a really ambitious project, it has, like, a dozen different langs inside of it (NQP, PIR, PASM0
02:01 snarkyboojum poincare101: look at parrot/examples when/if you d/l it
02:05 Psyche^ joined #perl6
02:10 cotto joined #perl6
02:10 payload joined #perl6
02:10 poincare101 hmm... I did ./Configure.pl --gen-parrot inside the rakudo checkout, it compiled parrot, but when I type in parrot, the command is not found.
02:12 snarkyboojum the parrot executable will be in the parrot directory inside the rakudo checkout
02:12 snarkyboojum is that what you meant?
02:15 eiro joined #perl6
02:22 Psyche^ joined #perl6
02:26 poincare101 snarkyboojum: yup. thanks.
02:27 poincare101 I'm getting this error when I try to do make install:
02:29 poincare101 http://pastebin.com/CWmZmS0w
02:30 poincare101 what's going on?
02:30 poincare101 perl6: say3;
02:30 poincare101 perl6: say 3;
02:31 p6eval pugs: OUTPUT«*** No such subroutine: "&say3"␤    at /tmp/0eiFo3Tslu line 1, column 1-5␤»
02:31 p6eval ..rakudo 534afd: OUTPUT«Could not find non-existent sub &say3␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:31 p6eval ..elf 30239: OUTPUT«Undefined subroutine &GLOBAL::say3 called at (eval 122) line 3.␤ at ./elf_h line 5881␤»
02:31 p6eval elf 30239, pugs, rakudo 534afd: OUTPUT«3␤»
02:31 poincare101 snarkyboojum: could you help? Its not building!
02:32 snarkyboojum poincare101: did you do a 'make' before this?
02:33 poincare101 yup.
02:34 poincare101 oh wait, I just had to do sudo :dense:
02:34 eiro joined #perl6
02:35 snarkyboojum you're building parrot separately?
02:37 poincare101 no.
02:37 poincare101 i just did make install and that's where it got stuck.
02:37 snarkyboojum you shouldn't need to do sudo for make install of rakudo
02:37 snarkyboojum afaik
02:38 poincare101 hmm... it seems to work when I do sudo. Well, I'll find out anyway.
02:42 snarkyboojum afk&
03:03 cotto joined #perl6
03:05 mepplock joined #perl6
03:13 lue echo hello!
03:20 snarkyboojum joined #perl6
03:34 agentzh joined #perl6
03:39 meppel joined #perl6
03:50 isitfosho joined #perl6
03:51 isitfosho When is perl6 going to become a production tool?
03:51 isitfosho I didn't get on the perl5 bandwagon, but I am considering giving it a spin if it's going to bust out of academic stages anytime soon
03:52 alester joined #perl6
04:06 sorear isitfosho: perl 6 has reached a catch-22 development stage
04:06 sorear isitfosho: it can only advance if people use it in production to find what's missing
04:06 sorear but few people want to use it until it's finished!
04:07 sorear help break this cycle - name a feature and I'll tell you if it's ready
04:08 isitfosho So, I download perl6 - use it to build something cool, THEN, if it becomes a cool thing, I get to be the one of the first early adopters, and thereby more cool?
04:08 isitfosho I'm downloading it now, btw
04:09 sorear Yes, basically
04:09 isitfosho I will use it to write a photo thing for my website.
04:10 isitfosho And I will put a big button that says, "Perl6"
04:10 isitfosho that's the most I can do for now
04:11 sorear It's not really a matter of exposure.
04:11 sorear It's more a case of - we need to interact with users in order to decide some design issues
04:12 isitfosho in that case, my purposes should be substantial
04:13 sorear Insubstantial things are good too.
04:14 sorear It's no good if we make the hard things easy and the easy things impossible.
04:14 isitfosho many languages are already in the business of making easy things impossible
04:14 sorear I/O heavy programs are a particularly good bet, since right now we don't really have I/O
04:15 isitfosho I could do a perl6 irc bot
04:15 isitfosho do you have one in here?
04:15 sorear I'm already working on a perl6 irssi replacement
04:15 isitfosho how about a perl6 code cross-referencer and searching framework
04:16 isitfosho I wanted to write that in PHP, but PHP is not "cool"
04:16 sorear that sounds really cool
04:16 isitfosho Ok, I'll take a crack at that
04:16 isitfosho I'll let you know how I do in a couple weeks
04:16 isitfosho see ya
04:16 sorear drop by often
04:17 sorear and learn about pir::, Q:PIR, and the NCI
04:26 cotto joined #perl6
04:32 am0c joined #perl6
04:42 mantovani joined #perl6
04:55 rekhajos joined #perl6
05:36 payload joined #perl6
05:41 stepnem joined #perl6
05:41 payload1 joined #perl6
05:43 mepplock joined #perl6
05:44 payload joined #perl6
05:44 payload1 joined #perl6
05:46 meppel joined #perl6
05:46 payload joined #perl6
05:47 payload joined #perl6
05:48 eternaleye joined #perl6
05:56 lue good night
05:59 dignan joined #perl6
06:00 dignan Ok so I started writing some perl6, but I need to know this information if anyone can please help: 1. is there a function that can print all the attributes of an object? 2. where do I go to install modules? Is it cpan still?
06:01 colomon 1. no  2.  proto is probably the best existing Perl 6 module tool, but it doesn't work at the moment.
06:02 TimToady well, .perl will usually approximate 1
06:02 colomon TimToady: right, was just going to get to that.
06:02 colomon is there a default .perl that will print out the attributes on a user-defined class yet, though?
06:02 colomon or rather, .perl.say will approximate 1
06:02 dignan I don't care so much for the user defined classes as much as basic things like a built-in type
06:03 colomon oh, then you definitely want .perl
06:03 dignan ah
06:03 dignan excellent, thanks guys
06:03 colomon It doesn't always do exactly what you want, but it does dump all the attributes somehow or the other.
06:03 colomon so for instance
06:04 colomon rakudo: (-1 + 0i).sqrt.perl.say
06:04 p6eval rakudo 534afd: OUTPUT«Complex.new(0, 1)␤»
06:04 dignan my @x = ("a", "b", "c"); print @x.perl; >> (a,b,c)
06:05 dignan i would like to know about methods this has, perhaps it has @x.elems.. I am pretty sure
06:05 dignan how do I find out what kind of functionality it has
06:05 TimToady rakudo: my @x; say @x.^methods.perl
06:06 p6eval rakudo 534afd: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 14088 (src/builtins/Block.pir:19)␤»
06:06 TimToady heh
06:06 colomon rakudo: my @x; say @x.WHAT
06:06 TimToady rakudo: my @x; say Array.^methods.perl
06:06 p6eval rakudo 534afd: OUTPUT«Array()␤»
06:06 p6eval rakudo 534afd: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 14088 (src/builtins/Block.pir:19)␤»
06:06 dignan same deal here
06:06 dignan I'm trying these as you type
06:06 TimToady rakudo: my @x; say [1,2,3].^methods.perl
06:07 colomon rakudo: my @x; say Array.^methods
06:07 p6eval rakudo 534afd: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 14088 (src/builtins/Block.pir:19)␤»
06:07 p6eval rakudo 534afd:  ( no output )
06:07 TimToady alpha: say [1,2,3].^methods.perl
06:07 p6eval alpha 30e0ed: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }]␤»
06:07 colomon isn't there supposed to be a .name in there somewhere?
06:07 TimToady probably
06:07 colomon rakudo: my @x; say Array.^methods>>.name
06:07 p6eval rakudo 534afd: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 14088 (src/builtins/Block.pir:19)␤»
06:08 colomon looks like a wacky new bug.
06:08 uniejo joined #perl6
06:08 colomon dignan: of course, the other way to do it is to look at the spec.
06:08 TimToady alpha: say [1,2,3].^methods».name.perl
06:08 p6eval alpha 30e0ed: OUTPUT«["pop", "item", "values", "delete", "Scalar", "", "shift", "Array", "push", "splice", "exists", "unshift"]␤»
06:08 dignan Well, the bright side of this is a bug can be filed.
06:08 dignan AH!
06:08 dignan colomon: I will be doing just that
06:08 TimToady rakudo: say [1,2,3].^methods».name.perl
06:09 p6eval rakudo 534afd: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 14088 (src/builtins/Block.pir:19)␤»
06:09 TimToady looks like definitely a bug of some sort
06:09 colomon rakudo: my @x; say Array.^methods.WHAT
06:09 p6eval rakudo 534afd:  ( no output )
06:10 dignan TimToady: I need to use that unicode character in my command line?
06:10 dignan say [1,2,3].^methods».name.perl ?
06:10 TimToady rakudo: say [1,2,3].HOW.methods(Array)».name.perl
06:10 TimToady no
06:10 colomon rakudo: my $a = []; say $a.^methods.WHAT
06:10 TimToady you can always do >> or << for hyperops
06:10 TimToady but the french char is prettier
06:10 p6eval rakudo 534afd:  ( no output )
06:10 p6eval rakudo 534afd: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 14088 (src/builtins/Block.pir:19)␤»
06:10 dignan I am exceeding recursion depth here on that one
06:11 dignan is p6eval using an older version or something?
06:11 TimToady something is obviously defined in terms of itself accidentally
06:11 sorear ^methods doesn't work
06:11 sorear I filed a bug on this last month
06:11 sorear you need to add :local somehow
06:12 TimToady rakudo: say [1,2,3].^methods(:local)».name.perl
06:12 p6eval rakudo 534afd: OUTPUT«get_attr_str() not implemented in class 'Sub'␤current instr.: 'perl6;Code;name' pc 13135 (src/builtins/Str.pir:68)␤»
06:12 TimToady er, how did we get to Sub?
06:13 sorear rakudo: say ([1,2,3].^methods(:local))[0].WHAT
06:13 p6eval rakudo 534afd: OUTPUT«Code()␤»
06:13 sorear rakudo: say ([1,2,3].^methods(:local))[0].name
06:13 p6eval rakudo 534afd: OUTPUT«get_attr_str() not implemented in class 'Sub'␤current instr.: 'perl6;Code;name' pc 13135 (src/builtins/Str.pir:68)␤»
06:13 sorear rakudo: say ([1,2,3].^methods(:local))[0].perl
06:13 p6eval rakudo 534afd: OUTPUT«{ ... }␤»
06:13 TimToady well, that's not terribly helpful :)
06:14 TimToady alpha: say [1,2,3].^methods(:local)».name.perl
06:14 p6eval alpha 30e0ed: OUTPUT«["shift", "Array", "splice", "push", "exists", "unshift", "item", "pop", "values", "delete", "Scalar", ""]␤»
06:14 TimToady should work again pretty soon, anyhoo
06:14 * sorear thinks subs should save a copy of their parse tree so that .perl returns parsable, equivalent code
06:15 sorear in the non-closure case at least
06:15 TimToady yeah, in the limit you have to include the entire outer lexical scope...
06:15 TimToady or have funny references to things that ordinarily don't have names
06:16 sorear I hope we can do better than B::Deparse->new->coderef2text($sub)
06:16 TimToady well, viv -p6 already does that almost perfectly from the AST
06:17 TimToady it's pretty certain we can do better than p5 in this regard, I think
06:18 TimToady oh, dignan is gone...
06:19 sorear we need to teach him to stay
06:19 sorear I think he's the same as isitfosho
06:20 sorear ~cfb49e38 in both cases ... iirc that's the hex client IP
06:22 TimToady well, my antihistamine is kicking in, so I'd better Z off now...
06:22 TimToady bed &
06:24 colomon o/
06:25 dignan joined #perl6
06:25 dignan So perl6.org perlcabal.org and pugscode are all offline, anywhere else I can get the spec?
06:26 dignan well that or someone in my immediate chunk of the internet doesn't like perl very much.
06:26 colomon all offline again?
06:26 dignan i tried them all from two different IPs
06:26 hejki try google cache on one of those sites?
06:26 dignan yeah, but I can't get the spec from cache
06:27 colomon ack, I wonder how hard it would be to set up a mirror.
06:28 dignan I found a couple
06:28 dignan but they're in .cz and .nl
06:28 dignan i'll make do for now
06:30 dignan left #perl6
06:38 * sorear thinks about what needs to happen before inheritance hierarchies can cross language boundaries.
06:52 colomon rakudo: role Heavy { }; class Weight does Heavy { }; say Weight.new ~~ Heavy
06:52 p6eval rakudo 534afd: OUTPUT«1␤»
07:08 cognominal joined #perl6
07:08 [particle]1 joined #perl6
07:13 mberends joined #perl6
07:14 gfx joined #perl6
07:15 dalek joined #perl6
07:15 Juerd joined #perl6
07:20 felipe joined #perl6
07:21 iblechbot joined #perl6
07:21 mberends phenny, tell masak the proto bootstrapping side is almost done, it would be good to brainstorm the proto implementation of S11-Modules in Installer.pm and Ecosystem.pm in the next few days. (how's that for a homework assignment?)
07:21 phenny mberends: I'll pass that on when masak is around.
07:22 Juerd To those who use feather with @reboot scripts: you may want to use a shell script with sleep 300, to allow for the dnscache to start :)
07:23 Juerd And someone sent me a new kernel that I wish to try soon.
07:24 sorear Juerd: Oh, do you know what happened just now, why dalek was out for hours?
07:27 Juerd Yes. Feather0, the physical box, was upgraded Monday last week and since then has been very unstable.
07:27 Juerd It crashes every third day, more or less.
07:32 sorear yes, but why does dalek stay down for hours when the other services come right back up?
07:32 sorear or am I merely hallucinating the latter
07:33 Su-Shee joined #perl6
07:39 rgrau joined #perl6
07:45 Juerd sorear: Er, everything stays down for hours, if it runs on feather
07:45 Juerd http://juerd.nl/i/5ec012aca​52e90cb82a4e6c8ff51e04b.png  # uptime chart
07:52 sorear oh.
08:10 payload joined #perl6
08:18 dakkar joined #perl6
08:30 hejki rakudo: say 0.1+0.1+0.1-0.3
08:30 p6eval rakudo 534afd: OUTPUT«0␤»
08:31 mikehh joined #perl6
08:41 sorear rakudo: say (0.1+0.1+0.1-0.3)*1e20
08:42 p6eval rakudo 534afd: OUTPUT«0␤»
08:42 sorear rakudo: say (0.1+0.1+0.1-0.3)*1e50
08:42 p6eval rakudo 534afd: OUTPUT«0␤»
08:42 moritz_ rakudo: say (0.1+0.1+0.1-0.3).perl
08:42 sorear rakudo: say (0.1*10-1)*1e50
08:42 p6eval rakudo 534afd: OUTPUT«0/1␤»
08:42 p6eval rakudo 534afd: OUTPUT«0␤»
08:42 sorear Sneaky
08:42 moritz_ sorear: it's internally handled as a Rat (fraction)
08:48 ascent_ joined #perl6
08:49 proller joined #perl6
09:00 mrsaturn joined #perl6
09:07 JimmyZ joined #perl6
09:10 mberends joined #perl6
09:15 proller joined #perl6
09:34 JimmyZ_ joined #perl6
09:36 sorear chromatic just pushed another optimization to string handling.
09:36 sorear I just compiled Rakudo
09:36 sorear 45 minutes
09:36 sorear 260 MiB
09:36 sorear chromatic++
10:07 lollan joined #perl6
10:07 lollan hello
10:08 sorear Hello.
10:10 drbean joined #perl6
10:17 mathw Hello
10:18 cognominal joined #perl6
10:30 jnthn o/
10:31 * moritz_ not motivated at all
10:33 * mathw is tracking down a segmentation fault
10:33 mathw it's the best kind - intermittent!
10:34 mathw and sometimes it's a bus error instead!
10:35 moritz_ rakudo: class A { has $!g; method foo { self.bar(:$!g) } };
10:35 p6eval rakudo 534afd: OUTPUT«Symbol '$!g' not predeclared in foo␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
10:35 moritz_ rakudo: class A { has $!g; method foo { say $!g } };
10:35 p6eval rakudo 534afd:  ( no output )
10:35 clintongormley joined #perl6
10:35 * moritz_ submits rakudobug
10:36 m6locks heh
10:36 moritz_ alpha: class A { has $!g; method foo { self.bar(:$!g) } };
10:36 p6eval alpha 30e0ed:  ( no output )
10:37 colomon \o
10:37 moritz_ o/
10:38 moritz_ rakudo: class A { method b($x = $_) { say $x } }; given 34 { say A.new.b() }
10:38 p6eval rakudo 534afd: OUTPUT«Any()␤1␤»
10:39 moritz_ pugs: class A { method b($x = $_) { say $x } }; given 34 { A.new.b() }\
10:39 p6eval pugs: OUTPUT«*** ␤    Unexpected end of input␤    at /tmp/WvsM3wEWlZ line 2, column 1␤»
10:39 moritz_ pugs: class A { method b($x = $_) { say $x } }; given 34 { A.new.b() }
10:39 p6eval pugs: OUTPUT«␤»
10:39 moritz_ pugs: class A { method b($x = $OUTER::_) { say $x } }; given 34 { A.new.b() }
10:39 p6eval pugs: OUTPUT«␤»
10:44 moritz_ rkaudo: sub f { say $/ }; pir::store_dynamic_lex__vSP('$/', 'a' ~~ /./); f()
10:44 moritz_ rakudo: sub f { say $/ }; pir::store_dynamic_lex__vSP('$/', 'a' ~~ /./); f()
10:44 p6eval rakudo 534afd: OUTPUT«Lexical '$/' not found in dynamic scope␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
10:49 payload joined #perl6
10:50 moritz_ rakudo: class A { method postcircumfix:<{ }>() {} }; my &r = { my $a }; if 0 { if 0 { my $a } }
10:50 p6eval rakudo 534afd:  ( no output )
10:50 moritz_ rakudo: class A { method postcircumfix:<{ }>() {} }; my &r = {;}; if 0 { if 0 { my $a } }
10:50 p6eval rakudo 534afd:  ( no output )
10:53 xinming joined #perl6
11:16 riffraff joined #perl6
11:35 masak joined #perl6
11:35 masak oh hai, #perl6
11:35 phenny masak: 07:21Z <mberends> tell masak the proto bootstrapping side is almost done, it would be good to brainstorm the proto implementation of S11-Modules in Installer.pm and Ecosystem.pm in the next few days. (how's that for a homework assignment?)
11:36 jnthn reverse('!kasam')
11:36 masak phenny: tell mberends I'll be around quite often; will be happy to brainstorm proto with you.
11:36 phenny masak: I'll pass that on when mberends is around.
11:38 colomon o/
11:39 jnthn masak: BTW, nice blog post. :-)
11:39 masak gracias.
11:39 masak it was about time.
11:39 jnthn masak: I'll try and sort out that regex issue later today.
11:39 masak ++jnthn
11:39 colomon what jnthn said.
11:39 jnthn masak: You're going to have to add a "my" or "our".
11:40 colomon (about the post, not the sorting.)
11:40 jnthn See backlog for discussion.
11:40 masak jnthn: that's OK.
11:40 jnthn colomon: Aww! :-P
11:40 masak mmm, kamelbulle.
11:41 frettled jnthn: he would have agreed if you'd sorted _in_ ;)
11:42 jnthn But the weather's so nice today! I want to sort *out*!
11:42 jnthn oh, damm, actually it's clouded over. :-/
11:42 colomon looks like it will be a nice day here, but the current temp is -3C
11:43 moritz_ +15C or so here :-)
11:43 moritz_ sunny
11:43 colomon we're supposed to hit that today.  it will just take a few hours...
11:44 jnthn colomon: I count -3C and sunny as nice weather.
11:44 jnthn Needs a nice warm furry hat, but that's fine. I likes my furry hat. :-)
11:47 cognominal joined #perl6
11:49 masak jnthn: min sömn e kass. :/
11:50 jnthn masak: Aww. :-(
11:51 colomon jnthn: I count -3C and sunny as nice weather when there's enough snow on the ground to ski.  It's definitely a bit less nice in spring...
11:52 jnthn masak: Sömnlöshet?
11:58 masak jnthn: japp.
11:59 jnthn Det ar inte bra. :-/
11:59 masak when I finally did fall asleep, I dreamt that I was in a parallel universe where Einstein hadn't become famous, and YouTube was somehow known as 'CatSpensive'.
11:59 masak jnthn: don't you have ä on your keyboard?
12:00 jnthn masak: No, it's British.
12:00 masak the dots are not just decoration, you know. :)
12:01 jnthn Yeah...I kinda got away with it in Slovakia...dropping the mekcens and accents was pretty typical. :-)
12:01 jnthn mekcni for plural I guess.
12:02 envi^home joined #perl6
12:02 jnthn masak: Is there a Good Way to handle typing them aside from finding a Swedish keyboard I like? :-)
12:02 masak heh. I'm using a Swedish keyboard right now, but with a US layout.
12:03 masak I guess you could do the opposite.
12:03 masak I've even heard about Windows people who do that.
12:03 * jnthn will have to try that
12:03 masak when I want to type an 'ä' in Emacs, I don't switch layout, but instead I switch the input method. so Swedish keyboard, US layout, Swedish input method :P
12:04 jnthn It seems to be bad form here not to put the dots. :-)
12:04 masak it makes it ever so slightly harder to read.
12:04 jnthn It did with Slovak too at first, but after a while became normal.
12:04 masak but I suspect I'm somewhat of a purist. I don't like the information loss as such.
12:04 jnthn Yeah, they're useful. :-)
12:04 masak I tend to type 'ae' rather than 'a' when I have to leave out the dots.
12:05 masak (and 'aa' for 'å' and 'oe' for 'ö')
12:05 masak in fact, that's how the input method in Emacs works.
12:07 bluescreen joined #perl6
12:17 ruoso joined #perl6
12:19 colomon jnthn: you there?
12:19 jnthn colomon: yes
12:19 colomon can you take a quick look at http://justrakudoit.wordpress.com/​2010/03/30/numeric-plan-of-attack/
12:19 jnthn just nomming lunch and playing with input methods ;-)
12:20 colomon I'm particularly concerned to get the first paragraph right.  :)
12:21 jnthn ok, looking in just a moment :-)
12:21 colomon thanks.
12:22 pmurias joined #perl6
12:23 literal joined #perl6
12:23 pmurias ruoso: ping again ;)
12:23 jnthn Aha!
12:23 jnthn Jag will en små öl med lunch.
12:24 jnthn \o/
12:24 jnthn masak: Happy? :-)
12:24 masak about the dots, yeah :)
12:24 jnthn Jag är en bra svensk nu.
12:25 masak 'vill' is with a 'v', not 'w', and 'små' is just for the plural, otherwise it's 'liten'. :)
12:25 masak jnthn: :D
12:25 jnthn Oh
12:25 masak that last part was all correct. and a little bit funny.
12:25 jnthn Ah well, it's not like I've actually learned any Swedish yet. :-)
12:25 jnthn A grammar book did arrive yesterday though.
12:25 masak step by step. :)
12:30 jnthn colomon: Nice post! :-)
12:30 jnthn colomon++
12:31 masak colomon++
12:31 colomon *blush*
12:31 moritz_ colomon++
12:31 colomon jnthn: do you think the first paragraph is okay?
12:31 moritz_ colomon.face.color++
12:32 frettled yay colomon!
12:32 moritz_ colomon: for comparison of real numbers, why not jut use Num?
12:32 jnthn moritz_: on the R component of the RGB ;-)
12:32 moritz_ jnthn: :-)
12:32 jnthn colomon: Yes, it looks fine. :-)
12:32 colomon btw, just compiled rakudo with Numeric and Real roles defined here.  They don't do anything yet, but they're there.
12:32 colomon jnthn++
12:32 colomon now how do I crosspost it to perl planet six?
12:33 colomon moritz_: that will be my first approximation, but Num cannot handle Big Ints or FatRats.
12:34 colomon afk # need to shower so I'm decent when the moving estimator stops by
12:34 jnthn colomon: The planet is an aggregator, I always forget who is the right person to bother about adding to that. :-/
12:35 moritz_ obra: could you please add the http://justrakudoit.wordpress.com/feed/ to planetsix?
12:35 jnthn moritz_++
12:37 mathw o/
12:37 iblechbot joined #perl6
12:40 ruoso pmurias, aha!
12:40 ruoso got you
12:41 riffraff joined #perl6
12:41 ruoso did I?
12:41 pmurias ruoso: yes
12:42 masak finally. it's like watching a soap opera unfold. :)
12:42 pmurias ruoso: do you think smop/mildew is active enough that i could write a GSoC proposal for it?
12:42 masak "In this episode, ruoso finally gets a hold of pmurias..."
12:43 pmurias s/proposal/application/
12:44 ruoso pmurias, I'm not that active, but you are... your works with mildew were very relevant
12:44 ruoso and still are
12:44 ruoso I think it's worth posting, yes
12:45 moritz_ pmurias: what are your goals for mildew?
12:46 pmurias i plan to work on type inference
12:47 moritz_ I meant broader goals
12:47 moritz_ like: "implementing more features" or "implementing features from $synopsis" or "getting users" or so
12:51 pmurias "see if type inference gives us good performance for static stuff" is my short term goal
12:51 moritz_ nice
12:52 nacho joined #perl6
12:54 pmurias and after that putting it on CPAN/getting more features/perl 5 interop
12:55 ignacio_ joined #perl6
12:55 mathw masak: if it was a soap opera, they'd now be having a fight because pmurias' third cousin four times removed slept with ruoso's second cousin once removed and left before she woke up the next morning, sticking a note on the mirror but failing to spell 'love' correctly.
12:55 colomon moritz_++
12:59 pmurias moritz_: documenting mildew internals is also a thing i should do at some point
13:03 holli joined #perl6
13:04 holli hi.
13:04 moritz_ hi
13:05 holli wtf? i cant change my nick.
13:05 colomon get pill # probably not a valid git command...
13:05 pausenclown oh. took a while
13:06 pausenclown 2nd level use bug is still alive, that darn thing
13:07 pausenclown my XML Parser file is 2000 lines long by now (without docs). I'd really like to split it up =)
13:08 moritz_ pausenclown: what bug? loading a class from inside a class?
13:08 moritz_ rakudo: sub foo { say 5 }.()
13:08 p6eval rakudo 534afd: OUTPUT«Confused at line 11, near "sub foo { "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
13:08 lisppaste3 joined #perl6
13:10 moritz_ rakudo: 'a' ~~  /<foo=alpha>/; say $<foo>
13:11 p6eval rakudo 534afd: OUTPUT«a␤»
13:11 moritz_ rakudo: 'a' ~~  /<foo=alpha>/; say $<alpha>
13:11 p6eval rakudo 534afd: OUTPUT«a␤»
13:11 moritz_ rakudo: 'a' ~~  /<foo.=alpha>/; say $<alpha>
13:11 p6eval rakudo 534afd: OUTPUT«regex assertion not terminated by angle bracket at line 11, near ".=alpha>/;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
13:12 moritz_ rakudo: 'a' ~~  /<foo=.alpha>/; say $<alpha>
13:12 p6eval rakudo 534afd: OUTPUT«Any()␤»
13:20 lisppaste3 pausenclown pasted "bug" at http://paste.lisp.org/display/97071
13:20 pausenclown moritz_: this one
13:22 PerlJam joined #perl6
13:22 moritz_ pausenclown: can you try to move the 'use' out of the class defintion, as a workaround?
13:22 pausenclown thats is my workaround.
13:22 moritz_ ok
13:22 pausenclown i mean, no use and all in one file
13:23 moritz_ well, I was talking about a workaround that allows you to use multiple files
13:23 cognominal joined #perl6
13:24 moritz_ rakudo: say 4.log(2)
13:24 mathw why do you need to call use inside the class definition? I've never imagined a necessity for it before.
13:24 p6eval rakudo 534afd: OUTPUT«2␤»
13:24 moritz_ rakudo: say log(4, 2)
13:24 p6eval rakudo 534afd: OUTPUT«2␤»
13:24 moritz_ rakudo: say log(4, :base(2))
13:24 p6eval rakudo 534afd: OUTPUT«Unexpected named parameter 'base' passed␤current instr.: 'log' pc 282809 (src/gen/core.pir:9681)␤»
13:24 pausenclown when i do. use X::Y; class X {} i get a "Illegal redeclaration of symbol 'X'"
13:24 moritz_ nasty
13:25 arnsholt Does nqp do references in some way?
13:26 pausenclown mathw: i dont care where to put the use as long as it works =)
13:27 moritz_ arnsholt: everything is a reference in nqp, in some way
13:27 PerlJam greetings.
13:28 arnsholt moritz_: True, true
13:28 arnsholt What I'm trying to do is this: http://www.perlmonks.org/?node_id=193649
13:28 arnsholt About halfway down there's a var class
13:28 proller joined #perl6
13:28 pausenclown mmh. maybe i could toss a script together which concatenates all my source files
13:29 pausenclown and runs the result
13:29 moritz_ pausenclown: another workaround is to use a different class name than X
13:29 moritz_ like X_
13:29 arnsholt Which handles unification by being a reference to a reference to a var. I'd like to do something along the same lines in nqp, but can't quite figure out how to do it
13:30 mathw pausenclown: You're wanting to split one class's definition across multiple files?
13:31 arnsholt Binding vars to other vars gets me halfway there. But without assignment I can't see how to get all the way tehre
13:31 pausenclown no. i just want to use class A within class B
13:31 colomon moritz_: oooo, log issues.
13:31 moritz_ hm?
13:32 mathw pausenclown: aaah right.
13:32 pausenclown mathw: like using XML::Parser::Dom::Element in XML::Parser::Actions::Dom
13:32 colomon moritz_: just looking at your rakudo: say log(4, :base(2)) back there
13:33 colomon working on a fix now.
13:33 moritz_ missing proto?
13:33 moritz_ btw colomon++ #Add trivial versions of Numeric and Real and apply them to Complex and Rat. # /me plays dalek
13:33 payload joined #perl6
13:33 colomon proto is for the one argument version.  trying to switch that around.
13:34 colomon I don't think we had e available when I first added those, which is probably why there are two versions instead of one sensible one.
13:34 mathw speaking of dalek...
13:34 colomon jnthn: How do you add a role to classes defined in pir?
13:34 REPLeffect joined #perl6
13:35 colomon (or even, can you add a p6 role to classes defined in pir?)
13:38 masak pausenclown: thanks. two bugs found due to what you wrote above :)
13:38 masak pausenclown++
13:39 payload joined #perl6
13:39 colomon > say log(4, :base(2))
13:39 colomon 2
13:39 moritz_ colomon++
13:42 pausenclown masak++ # hunter of beetles
13:42 masak all you need is love. :)
13:46 jnthn colomon: Thing is, if you defined it in Perl 6, it doesn't exist for you do add to the PIR type.
13:49 jnthn colomon: I think best bet will be to augment class Int does Real { } or something
13:49 jnthn colomon: I think adding a role when augmenting doesn't quite work yet though.
13:50 colomon that would be a bit of a complication.  :)
13:50 jnthn Aye
13:50 jnthn I'll try and fix that up soonish for you.
13:50 moritz_ rakudo: say Positional
13:50 jnthn Maybe if it's easy enough I can manage it today
13:50 p6eval rakudo 534afd: OUTPUT«Positional()␤»
13:51 moritz_ rakudo: augment class Int does Positional { method foo { 34 } }; say 42.foo
13:51 p6eval rakudo 534afd: OUTPUT«Can't augment class Int without 'use MONKEY_TYPING'␤current instr.: 'perl6;Perl6;Grammar;add_name' pc 39586 (src/gen/perl6-grammar.pir:276)␤»
13:51 jnthn colomon: Feel free to try it just to check it doesn't work, mind. It's always possible that it does. ;-)
13:51 moritz_ rakudo: use MONKEY_TYPING; augment class Int does Positional { method foo { 34 } }; say 42.foo
13:51 p6eval rakudo 7c265d: OUTPUT«Method 'foo' not found for invocant of class 'Integer'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:51 colomon jnthn: poking at log at the moment, but I'll give it a try in a few.
13:51 moritz_ at least it doesn't complain about the composition
13:51 moritz_ rakudo: use MONKEY_TYPING; augment class Int does Positional { method foo { 34 } }; say 42 ~~ Positional
13:51 jnthn moritz_: yeah, but iirtcc, it doesn't attempt it either ;-)
13:51 p6eval rakudo 7c265d: OUTPUT«0␤»
13:52 moritz_ you're right
13:52 moritz_ anyway, jnthn++ for awesome use MONKEY_TYPING error message
13:53 perlpilot joined #perl6
13:53 moritz_ rakudo: say PROCESS.WHAT
13:53 p6eval rakudo 7c265d: OUTPUT«Method 'WHAT' not found for non-object␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:54 moritz_ rakudo: say ( -> $x { $x } !~~ Code)
13:54 p6eval rakudo 7c265d: OUTPUT«0␤»
13:56 perlpilot What's up with feather?  My IRC session locked up and I don't get a password prompt when I try to login.
13:56 moritz_ perlpilot: XEN troubles since the last hardware upgrade
13:57 colomon feather's down again at the moment, I think -- at least svn up t/spec didn't work for me a second ago
14:03 pausenclown how do i tell RT to show me the tickets i am "watching"?
14:03 masak jnthn: you're news: http://habrahabr.ru/company/ontico/blog/89366/
14:04 jnthn Scandalous!
14:04 masak Джонатан Вортингтон :)
14:04 jnthn Yeah, that's certainly me :-)
14:04 masak Mr. Vortington... :P
14:05 jnthn They're a little w-deprived. :-)
14:05 moritz_ pausenclown: I'd expect them on the "homepage"
14:05 perlpilot jnthn: That has the kernel of a good AFJ
14:06 jnthn .oO( XEN troubles...the sound of one kernel crashing )
14:06 masak jnthn: it's interesting to try to picture how a cyrillic letter for 'w' would look, if it existed.
14:08 perlpilot the worst thing about feather being down is no perl6.org
14:09 moritz_ aye
14:09 moritz_ hey, I've got an idea for a new name of the pugs repo
14:09 moritz_ Mu
14:10 jnthn Mostly Useful. :-)
14:10 moritz_ :-)
14:13 nihiliad joined #perl6
14:15 jnthn masak: I'm curious where the shape of ш is derived from.
14:16 jnthn (maps to a "sh" sound...)
14:16 jnthn Or if that's in any way related to how we got "w"...I'm not particularly convinced though.
14:17 masak jnthn: it's interesting to note that Hebrew has a consonant that looks and sounds much in the same way.
14:17 masak ש
14:18 masak dunno if they're related of if it's convergent evolution :)
14:18 jnthn sounds like sh?
14:19 masak yesh.
14:19 arnsholt masak: Probably conincidence
14:19 snarkyboojum "The Hebrew letter shin has a W shape; the sounds and histories of the two letters, however, are entirely unrelated—shin represents /ʃ/ or /s/, and developed into the Latin alphabet S."
14:20 jnthn Ah.
14:20 arnsholt And, I'm wrong =)
14:21 SmokeMachine joined #perl6
14:21 arnsholt According to Wikipedia, the Glagolitic letter corresponding to the Cyrrilic one is derived from Hebrew Shin =D
14:21 masak \o/
14:22 jnthn Ah, apparently W started out as VV
14:22 mathw double-u
14:22 snarkyboojum literally double u :)
14:22 perlpilot There's a reason it's called a ...  blah too slow!
14:23 mathw presumably that was before u had been distinguished from v
14:24 jnthn http://en.wikipedia.org/wiki/W offers up some more infos.
14:28 mathw aaah wikipedia
14:29 jnthn Wikipedia is the font of all knowledge. [Citation Needed]
14:29 [particle]1 you're nuts! N V T S. nuts!
14:33 jnthn masak: Gleaned from that article: "The equivalent representation of the /w/ sound in the Cyrillic alphabet is Ў, a letter unique to the Belarusian language."
14:33 masak 'o-
14:33 jnthn That...makes a sort of sense...ish.
14:33 masak \o/
14:34 masak it makes a lot of sense.
14:34 xinming Is cabal dead?
14:34 lisppaste3 joined #perl6
14:34 xinming Here I receives "No route to host"
14:35 mathw It makes no sense to me, but I've not studied anything that uses Cyrillic
14:35 masak jnthn: it's to у as й is to и.
14:35 jnthn ooh
14:35 jnthn Yes
14:35 masak it's beautiful.
14:35 masak Belarussian++
14:35 jnthn Yeah, my brainz were stuck in consonant land.
14:39 masak well, Ў and й have always inhabited the land between consonants and vowels, in a way.
14:40 masak oh, and by the way, Esperanto has ŭ, so I guess that's part of why it feels natural for me. :)
14:40 masak xinming: which 'cabal' are you referring to?
14:41 xinming perlcabal.org
14:42 masak mayhaps it's on feather an feather is down again?
14:42 * masak is just guessing
14:43 justatheory joined #perl6
14:45 colomon pretty sure you're right about that.
14:48 masak Church Slavonic also had a ѡ, but it fell into disuse after the 18th century.
14:48 pausenclown do i have to pay special attention to moving files using git? like having to use "svn move" or so?
14:49 perlpilot pausenclown: not especially, but it helps  :)
14:49 [particle]1 git mv ...
14:50 pausenclown tx
14:50 [particle]1 although, git usually picks up on git delete x ; mv x y; git add y
14:50 jnthn bbiab, walk in the sun, systemet
14:50 perlpilot jnthn: walking in the sun sounds like a really good idea to me right now too
14:51 TimToady it's raining in sunny california
14:51 mathw sunny here in rainy England
14:51 mathw although it's not been sunny for most of the day
14:51 mathw so I'm not getting my hopes up
14:51 mathw we're supposed to get some snow this week
14:51 TimToady well, my bit of it
14:54 mathw But look! It's time for me to go and engage in the preservation of 16th- and 17th-century music!
14:55 * mathw -> ludos muzikon o
15:02 moritz_ rakudo: say <a b>>>.uc
15:02 p6eval rakudo 5c9338: OUTPUT«AB␤»
15:02 moritz_ rakudo: say <a b>».uc
15:02 p6eval rakudo 5c9338: OUTPUT«AB␤»
15:02 moritz_ that works? since when?
15:02 moritz_ rakudo: my $a = 1; my @b = (1, 2, 3); say ($a <<-<< @b).perl
15:02 p6eval rakudo 5c9338: OUTPUT«[0, -1, -2]␤»
15:02 moritz_ rakudo: my $a = 1; my @b = (1, 2, 3); say ($a «-« @b).perl
15:02 p6eval rakudo 5c9338: OUTPUT«[0, -1, -2]␤»
15:05 moritz_ rakudo: say :16<dead_beef.face>;
15:05 p6eval rakudo 5c9338: OUTPUT«3735928559.97971␤»
15:06 moritz_ lue++
15:07 moritz_ rakudo: say :16<1g>
15:07 p6eval rakudo 5c9338: OUTPUT«DON'T PANIC! Invalid character (G)! Please try again :) ␤current instr.: '&radcalc' pc 11974 (src/builtins/Parcel.pir:78)␤»
15:09 moritz_ rakudo: say :11<1a>
15:09 p6eval rakudo 5c9338: OUTPUT«21␤»
15:09 moritz_ rakudo: say :11<1b>
15:09 p6eval rakudo 5c9338: OUTPUT«DON'T PANIC! Invalid character (B)! Please try again :) ␤current instr.: '&radcalc' pc 11974 (src/builtins/Parcel.pir:78)␤»
15:12 TimToady rakudo: say :16< deface >
15:12 p6eval rakudo 5c9338: OUTPUT«Malformed radix number at line 11, near "< deface >"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
15:12 TimToady hmm
15:13 TimToady rakudo: say :16(' deface ')
15:13 p6eval rakudo 5c9338: OUTPUT«DON'T PANIC! Invalid character ( )! Please try again :) ␤current instr.: '&radcalc' pc 11974 (src/builtins/Parcel.pir:78)␤»
15:13 TimToady rakudo: say :16("deface\n")
15:13 moritz_ I guess whitespaces should be allowed? :-)
15:13 p6eval rakudo 5c9338: OUTPUT«DON'T PANIC! Invalid character (␤)! Please try again :) ␤current instr.: '&radcalc' pc 11974 (src/builtins/Parcel.pir:78)␤»
15:13 TimToady seems like
15:14 nihiliad joined #perl6
15:15 bluescreen joined #perl6
15:15 TimToady rakudo: say :16('-2+3i')
15:15 p6eval rakudo 5c9338: OUTPUT«DON'T PANIC! Invalid character (-)! Please try again :) ␤current instr.: '&radcalc' pc 11974 (src/builtins/Parcel.pir:78)␤»
15:15 TimToady rakudo: say :10('-2')
15:15 p6eval rakudo 5c9338: OUTPUT«DON'T PANIC! Invalid character (-)! Please try again :) ␤current instr.: '&radcalc' pc 11974 (src/builtins/Parcel.pir:78)␤»
15:15 moritz_ std: :10<-2>
15:15 TimToady there's an even bigger deficiency
15:15 colomon is there actually a smiley face in the error message?  :)
15:16 p6eval std 30240: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed radix number at /tmp/lhPDqm5f6W line 1:␤------> [32m:10<[33m⏏[31m-2>[0m␤    expecting number in radix notation␤FAILED 00:01 107m␤»
15:16 TimToady not my message--I never smile :(
15:17 moritz_ rakudo: say <1 2 3> »+« <3 2>
15:17 p6eval rakudo 5c9338: OUTPUT«Sorry, right side is too short and not dwimmy.␤current instr.: '&die' pc 17189 (src/builtins/Junction.pir:399)␤»
15:17 TimToady kaboom I hope
15:17 moritz_ rakudo: say <1 2 3> «+» <3 2>
15:17 p6eval rakudo 5c9338: OUTPUT«445␤»
15:17 moritz_ so that's both correct, right?
15:17 payload joined #perl6
15:17 moritz_ rakudo: say <1 2 3> »+» <3 2> # should live
15:18 p6eval rakudo 5c9338: OUTPUT«445␤»
15:18 moritz_ rakudo: say <1 2 3> «+« <3 2> # should die
15:18 p6eval rakudo 5c9338: OUTPUT«Sorry, right side is too short and not dwimmy.␤current instr.: '&die' pc 17189 (src/builtins/Junction.pir:399)␤»
15:19 * colomon is very amused that he just got a RESOLVED message for a bug that he reported back in September and then was partially responsible for fixing in March.  :)
15:19 moritz_ but is the result of 4, 4, 5 correct in the living example above?
15:19 colomon moritz_: yes
15:19 colomon you extend with the last element.
15:19 TimToady well, *how* to extend the faulty dimension is not exactly specced
15:19 colomon what do you mean, "how"?
15:20 TimToady well, duping the last element is not specced behavior
15:20 moritz_ that's specced for things ending in *, I think
15:20 TimToady "By default this dwimmery only upgrades whole dimensions, not short lists.
15:20 TimToady However, any list ending with C<*> can also be arbitrarily extended as if
15:20 TimToady the last element of the list were arbitrarily replicated C<*> times.  But
15:20 TimToady this happens only on the "dwimmy" side.
15:21 moritz_ so, what should <1 2> «+» <1 2 3> return?
15:21 TimToady it has also been argued that you should start a short list over
15:22 * moritz_ would assume the neutral element of the operation
15:22 TimToady but the current spec would make that an error
15:22 moritz_ so it would return 2, 4, 3
15:22 TimToady that's another approach
15:22 colomon I remembers a long conversation last year where you argued that replicating the last element was the right thing to do.  (I was in favor of neutral element)
15:23 moritz_ rakudo: say (1..10).sort(&rand)
15:23 colomon *remember
15:23 p6eval rakudo 5c9338: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
15:23 moritz_ rakudo: say (1..10).Seq.sort(&rand)
15:23 p6eval rakudo 5c9338:  ( no output )
15:23 [particle]1 pick?
15:23 colomon sort(&rand) is pretty evil.
15:23 TimToady rakudo: my @a = 1,2,3; say (@a,*).batch(7)
15:23 p6eval rakudo 5c9338: OUTPUT«Method 'batch' not found for invocant of class 'Parcel'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
15:24 colomon we don't have 1, 2, 3, * yet, I've been meaning to look at adding it.
15:24 colomon .oO(but was too busy shadow walking...)
15:25 TimToady mostly it comes down to what will be most useful X what expresses something that can't be easily expressed some other way
15:25 TimToady all of these approaches have something to be said for them
15:25 moritz_ rakudo: lives_ok { '1 3' ~~ /(\d+) \s (\d+)/; $range = $0..$1 };
15:25 p6eval rakudo 5c9338: OUTPUT«Symbol '$range' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
15:26 moritz_ rakudo: lives_ok { '1 3' ~~ /(\d+) \s (\d+)/; say $0..$1 };
15:26 p6eval rakudo 5c9338: OUTPUT«Could not find non-existent sub &lives_ok␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
15:26 colomon btw, I also went off spec and made the empty list expand with the neutral element.  (Not that we actually have the neutral element yet.)
15:26 moritz_ rakudo: use Test; plan 1; lives_ok { '1 3' ~~ /(\d+) \s (\d+)/; say $0..$1 };
15:26 p6eval rakudo 5c9338: OUTPUT«1..1␤not ok 1 - ␤# Looks like you failed 1 tests of 1␤»
15:26 colomon afk # got to drive another car full of stuff to our new city.  will backlog when I get there.
15:26 TimToady but current spec really only documents turning <1 2 3> «+» 1 into <1,2,3> »+« (1 xx 3)
15:27 moritz_ rakudo: role Seq {method foo{1}}
15:27 p6eval rakudo 5c9338:  ( no output )
15:28 TimToady generally, if you know the operation, you know the identity element already, and can supply it via 1 xx * or some such
15:28 TimToady I think a better argument can be made for reusing the whole list, but that's just (@list) xx *
15:29 [particle]1 can you specify the identity element as part of the attributes of an op?
15:29 TimToady assuming dwimmy can also trim an excessive list, esp an infinite one
15:29 TimToady that's not how you do it.
15:29 TimToady you define a multi of the op with one arg
15:31 TimToady or zero args, rather
15:31 TimToady rakudo: say [+]()
15:31 p6eval rakudo 5c9338:  ( no output )
15:31 TimToady alpha say [+]()
15:31 TimToady alpha: say [*]()
15:31 p6eval alpha 30e0ed: OUTPUT«1␤»
15:32 moritz_ bkeeler: it seems that passing an argument to subrules works. Also interpolating constant strings into regexes works - but the combination (interpolating a string that was provided as an argument to a rule) does not
15:33 moritz_ rakudo: grammar Foo { token TOP { <a('b')> }; token a($x) { $x } }; say Foo.parse('b')
15:33 p6eval rakudo 5c9338: OUTPUT«␤»
15:33 moritz_ rakudo: grammar Foo { token TOP { <a('b')> }; token a($x) { 'b' {say $x } } }; say Foo.parse('b')
15:33 p6eval rakudo 5c9338: OUTPUT«b␤b␤»
15:34 TimToady rakudo: grammar Foo { token TOP { <a('b')> }; token a($x) { $OUTER::x } }; say Foo.parse('b')
15:34 p6eval rakudo 5c9338: OUTPUT«:: not yet implemented at line 11, near "x } }; say"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
15:34 TimToady uh
15:35 charsbar joined #perl6
15:36 TimToady anyway, I wonder if the regex has a secret inner scope separate from the method itself
15:36 TimToady they should be the same lexical scope
15:37 juerd joined #perl6
15:37 perlpilot TimToady: My brain can only handle so many "invisible" scopes.
15:37 juerd Grrrrrrr
15:38 juerd Feather's really frustrating.
15:38 moritz_ quite understandable
15:38 perlpilot juerd: time to get a new one!  ;)
15:38 juerd perlpilot: The hardware is not the problem.
15:39 TimToady well, you could always upgrade to Windows 7...
15:39 juerd The last thing it says is "Restarting in 30 seconds"
15:39 perlpilot 30 really long seconds?
15:39 juerd And it doesn't live up to that promise.
15:40 perlpilot you just have to be on the right side of the event horizon for it to seem like 30 seconds to you.
15:40 TimToady the last thing it says after what?
15:40 jnthn (I wonder if the regex has a secret inner scope) I am fairly sure it doesn't, from what I remember of the code-gen.
15:40 TimToady after you ran shutdown?
15:40 TimToady perlpilot: I'm advocating the absence of an invisible scope here...
15:40 juerd TimToady: After the kernel panic stacktrace
15:41 moritz_ rakudo: sub f($x) { say $x }; f(|4)
15:41 TimToady ah
15:41 p6eval rakudo 5c9338: OUTPUT«Cannot use prefix:<|> with a Int()␤current instr.: '&die' pc 17189 (src/builtins/Junction.pir:399)␤»
15:41 juerd TimToady: Which mentions calls all over the kernel, but they are all storage/blockdevice related
15:41 juerd Only we can't downgrade the kernel to the old version because Debian decided that compatibility with older kernels wasn't needed.
15:42 juerd (Really, Debian, stop screwing around.)
15:42 TimToady I think |4 should probably work on the principle that anything not otherwise listy can be taken as a list of 1 argument.
15:43 TimToady rakudo: say 4.kv
15:43 p6eval rakudo 5c9338: OUTPUT«04␤»
15:43 TimToady like that...
15:43 jnthn TimToady: I can trivially make it do so.
15:43 TimToady it just seems like a better default than dying
15:43 jnthn Well, dying is conservative. :-)
15:44 jnthn But yes, that default wfm.
15:44 TimToady (same principle for making Complex have a sorting order, even if the mathematicians don't want want the type officially Orderable)
15:44 TimToady the poor schmuck trying to print out a sorted list of values probably doesn't care to be conservative wrt death
15:45 TimToady we might want to distinguish Sortable from Orderable somehow
15:46 TimToady or somehow have the default comparison semantics pragmatically settable
15:46 TimToady where the default default is make everything "orderable" willy nilly
15:48 REPLeffect joined #perl6
15:48 TimToady seems like that would be trivial, if the default comparison is = &?LEXORDER or some such
15:50 xomas joined #perl6
15:50 TimToady I suspect we have enough knobs to keep the mathematicians happy while not confusticating the sane people.
15:50 moritz_ *cough* sane
15:51 TimToady well, differently sane
15:52 TimToady .oO(use strict <math>;)
15:53 [particle]1 gah. which strict?
15:53 [particle]1 math is like ebnf
15:53 [particle]1 or make.
15:53 [particle]1 too many implementations.
15:54 moritz_ akshually mathematicians are often very sloppy about the scoping of their symbols
15:54 lichtkind joined #perl6
15:54 TimToady use Math:ver(2.0):auth<Liebnitz>
15:55 TimToady moritz_: yes, they are; mathematicians rely on the intelligence of their readers more than they reallize, often.
15:55 TimToady *realize
15:55 lichtkind ah TimToady i didnt fount junction in the perl 6 type table
15:55 phenny lichtkind: 00:50Z <diakopter> tell lichtkind I care only about the beauty of the text-editing box itself (ClearType, Ctrl-scroll to zoom, line-highlight, C#/Perl/JS syntax highlighting), I use it in full-screen mode so the rest of the UI is invisible to me.
15:55 TimToady Junctions are derived from Mu but not from Any
15:56 lichtkind TimToady: but dont have their own type?
15:56 TimToady sure they do
15:56 lichtkind TimToady: but i didnt found that one in s02
15:57 lichtkind diakopter: then should kephra be eqivalent to np++ :)
15:57 moritz_ lichtkind: S02:576 "The C<junction> type is considered a native type because its internal..."
15:57 TimToady I think S02 lists it as 'junction' on the assumption it's naitve
15:57 TimToady *native
15:57 jnthn :-/
15:58 * jnthn tries to remember why it's native.
15:58 TimToady The C<junction> type is considered a native type because its internal
15:58 TimToady representation is fixed, and you may not usefully derive from it
15:58 TimToady because the intent of junctions is to autothread any method calls
15:58 TimToady on them.
15:59 jnthn Well, s/J/j/ is easy enough in a sense...
15:59 TimToady but everyone keeps writing it uppercase :)
15:59 jnthn Well yeah
15:59 moritz_ jnthn: and then we support (at least one) native type :-)
15:59 jnthn I much, much prefer it uppercase...
15:59 jnthn It feels odd to write Mu and Any but then not Junction.
16:00 lichtkind i think i need a whil e to understand this
16:00 jnthn int/num etc feel native, junctions kinda...fit my intuitive sense of @native@ a bit less.
16:00 jnthn s/@/"/
16:00 moritz_ std: 1 ?? 1,2 !! 3,4
16:00 p6eval std 30240: OUTPUT«[31m===[0mSORRY![31m===[0m␤Precedence too loose within ??!!; use ??()!! instead  at /tmp/QZESqbh35Y line 1:␤------> [32m1 ?? 1[33m⏏[31m,2 !! 3,4[0m␤    expecting an infix operator with precedence tighter than item assignment␤FAILED 00:01 108m␤»
16:00 moritz_ rakduo: 1 ?? 1,2 !! 3,4
16:01 TimToady I keep wondering if there's an Each type that autothreads like junctions, but otherwise behaves like a map
16:01 jnthn Serial/ordered semantics?
16:01 moritz_ TimToady: with some method (or other possiblilty) to extract the values/eigenstates?
16:02 TimToady eigenstates is all you get from it
16:02 TimToady it's not for logic
16:02 moritz_ so... it flattens in list context?
16:02 TimToady yes
16:03 TimToady had a use case for it a week or two, which I've forgotten...
16:03 lichtkind moritz_: i still have a mojor review of the book in my queue i just was not satisfied with my own cpmplaines after twice reading so you get mail later
16:03 TimToady *ago
16:03 lichtkind s/mojor/major
16:04 moritz_ lichtkind: ok
16:04 jnthn TimToady: each(@foo).say iirc
16:05 TimToady ah, that were it
16:05 jnthn To try and nip the @foo>>.say meme in the bud.
16:06 TimToady or more likely, @foo.each.say
16:06 jnthn yes
16:06 TimToady but notice it's lower case :P
16:06 jnthn :-P
16:07 TimToady course, so are 'all', 'any', etch
16:07 jnthn Yeah
16:07 TimToady *.
16:07 jnthn I had been seeing each as more along the lines of all/any than a coercion.
16:07 TimToady well, in this case, it's really the same as Each(), I suspect
16:07 TimToady but I'm okay with having both
16:08 jnthn If Each is gonna be uppercase, I'd posit that Junction maybe wants to be too. Or boht lower.
16:08 jnthn *both
16:09 TimToady well, I'm really fine with Junctions, since the lowercase doesn't really seem to work for people so far
16:10 TimToady it's not like we *decide* whether something behaves natively based on the case of the type...
16:10 justatheory joined #perl6
16:10 moritz_ rakudo: module Foo { say (1,2,3).map: { $_ } }
16:10 p6eval rakudo 5c9338: OUTPUT«123␤»
16:11 TimToady and the exoticness of junctions is already guaranteed elsewise :)
16:12 pausenclown joined #perl6
16:13 moritz_ rakudo: my Bool $t; $t = Bool::True; print $t.succ
16:13 p6eval rakudo 5c9338: OUTPUT«1»
16:14 moritz_ rakudo: constant $x = 1; $x += 2; say $x
16:14 p6eval rakudo 5c9338: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
16:20 moritz_ rakudo: class A {}; A::B.parse("")
16:21 p6eval rakudo 5c9338: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:24 lichtkind pausenclown: hai
16:24 pausenclown hi
16:25 pausenclown the synopses are offline =(
16:25 hercynium joined #perl6
16:26 perlpilot pausenclown: that's why haven't your own copy via svn (or git-svn) is probably wise :)
16:27 TimToady 'course, you can't get one right now for the same reason...
16:27 perlpilot chance favors the prepared mind
16:28 perlpilot :-)
16:28 TimToady preparation favors the chance mind...
16:30 [particle]1 if it's git, somebody must have a repository that can be cloned...
16:30 moritz_ I have a git-svn clone
16:30 moritz_ can upload to github, just a sec...
16:31 perlpilot moritz++
16:34 moritz_ uploading... takes some time
16:34 perlpilot moritz_: you uploaded the whole pugs repo or just the docs?
16:35 moritz_ perlpilot: the whole
16:35 perlpilot ah, that would take a qhile
16:35 perlpilot er, while
16:36 astrojp left #perl6
16:37 mariano__ joined #perl6
16:39 synth joined #perl6
16:49 PerlJam pausenclown: you could always get a copy from google's cache as well
17:02 moritz_ PerlJam: http://github.com/moritz/Mu copy of the pugs repo
17:02 PerlJam heh!  You just wanted an excuse to use Mu like that didn't you?
17:03 moritz_ it's just stupid to still call it "pugs repo"
17:03 moritz_ since pugs has left the repo
17:03 PerlJam and alot shorter than random-collection-of-perl6-related-stuff
17:06 * PerlJam giggles a little bit at the name of an article author -- Hari J. Krishna
17:08 TimToady we could publish that we changed the name of the pugs repo to Mu on April 1st :)
17:14 jnthn An inverse April Fools. The fools are the ones who don't believe it. :-)
17:17 diakopter _finally_
17:17 * diakopter shakes his head, eyes closed.
17:17 diakopter if only there were a smiley for that.
17:21 Chillance joined #perl6
17:26 RandalSchwartz joined #perl6
17:26 RandalSchwartz greetings, fellow earthlings :)
17:26 RandalSchwartz # SRCSSH=merlyn@blue.stonehenge.com
17:26 RandalSchwartz if I had to summarize Perl6 status in three sentences, where would I get -those sentences?
17:28 mberends joined #perl6
17:28 RandalSchwartz hmm.  crickets. :)
17:28 diakopter well
17:28 PerlJam RandalSchwartz: patience.
17:28 diakopter I'd point you to perl6.org/status but it appears to be down atm
17:29 PerlJam diakopter: yeah, feather is having fits.
17:29 RandalSchwartz apparently, $client has decided to have me host a brownbag today on the past and future of Perl
17:29 RandalSchwartz so I thought I should probably get the latest info
17:30 CokeCokeCokeCoke joined #perl6
17:31 CokeCokeCokeCoke RandalSchwartz: It's not really a summary, but I'd check out pmicahud's Rakudo * blogpost for material.
17:31 RandalSchwartz yeah, looking at that now
17:31 PerlJam RandalSchwartz: there is http://rakudo.org/status too, but that's more about rakudo than Perl 6 in general
17:32 diakopter Large parts of the design are solidifying, but large parts remain slushy.  Those parts that are more solidified mostly correspond to the portions explored by the implementations.  The Rakudo implementation has the most attention at the moment, and a "usable" (but categorically not *stable*) release in April looms.
17:32 PerlJam diakopter++ :)
17:32 diakopter There are many large parts of the design.
17:32 diakopter :)
17:33 TimToady won't be in April now
17:33 diakopter oh
17:33 TimToady given pm's travails
17:33 CokeCokeCokeCoke TimToady: what if we buy jonathan lots of red bull?
17:33 TimToady but still aiming at Q2
17:33 RandalSchwartz Q2 includes june :)
17:33 * jnthn runs on beer, not red bull!
17:33 PerlJam diakopter: I especially like how you said "solidifying".  We could have an "event" that would up the temperature and some parts of the design will liquify again.
17:34 TimToady anyway, at some point Rakudo * comes out, targeted for Early Adopters
17:34 CokeCokeCokeCoke jnthn: Done and Done.
17:34 RandalSchwartz I should just have you type on the screen, TimToady :)
17:34 TimToady who will, we hope, close the remaining design issues by actually trying to use it.
17:34 PerlJam Coke: are you sending lots of beer to jnthn as we speak?
17:35 RandalSchwartz but that's a good summary... I'll put that in
17:36 TimToady we'd like platform stability in Rakudo *, in the sense that it's not crashing left and right
17:36 TimToady but we're not promising any kind of backward compatibility until 6.0.0 comes out
17:36 CokeCokeCokeCoke hey, parrot folks fixed a memory braino in parrot yesterday. anyone tried building rakudo with it?
17:36 justatheory joined #perl6
17:37 TimToady early adopters can freeze a particular version if they need to
17:37 jnthn CokeCokeCokeCoke: I believe sorear++ did and reported success and improvement.
17:37 jnthn CokeCokeCokeCoke: I'll try myself later tonight, and bump PARROT_REVISION provided all is well.
17:37 * PerlJam builds a newer parrot and trys rakudo on it.
17:38 TimToady RandalSchwartz: is $client in PDT (or even PDX? :)
17:38 dalek joined #perl6
17:38 RandalSchwartz PDT yes.  PDX no.  LAX would be close
17:39 TimToady when does your brownbag start?
17:39 RandalSchwartz I landed a full-time contract here.
17:39 TimToady I can be around the channel then if you like.
17:39 RandalSchwartz I don't know.  I didn't get the email. :)
17:39 RandalSchwartz so I'm waiting for my boss to remind me when we start.
17:39 RandalSchwartz probably noon
17:39 RandalSchwartz yeah, I think it's mostly gonna be handwaving though, no screen
17:40 RandalSchwartz just me talking about the early days
17:40 RandalSchwartz but I wanted to finish up with a bit of futures
17:40 TimToady well, if they ask a Q you want to refer to me, I should be available
17:40 TimToady assuming you have connectivity yourself
17:40 RandalSchwartz I guess if Rakudo * is coming out soon, I'll have to start writing Llama 6 any day now
17:40 RandalSchwartz yeah
17:40 PerlJam RandalSchwartz: who is the audience?  Are they youngsters? oldsters? In between?  A mix?
17:41 RandalSchwartz employees of $client
17:41 CokeCokeCokeCoke PerlJam: to you, they're all youngsters. :P
17:41 RandalSchwartz most of them younger than me now
17:41 * RandalSchwartz is old
17:41 PerlJam CokeCokeCokeCoke: :-PPPP
17:41 mssm joined #perl6
17:41 RandalSchwartz I turned 0x30 this year. :)
17:41 CokeCokeCokeCoke HA!
17:42 PerlJam I'm wondering if any of the younger generation programmers are getting some perl exposure.
17:42 TimToady I will be :9<70> this year
17:43 TimToady rakudo: say :9<70>
17:43 PerlJam I had two of my student workers apply at USAA (java shop) and both of them said their experience using perl here helped on the interview.
17:43 p6eval rakudo 5c9338: OUTPUT«63␤»
17:43 TimToady er, no
17:43 Juerd_ joined #perl6
17:43 PerlJam heh
17:43 TimToady rakudo: say :9<60>
17:43 p6eval rakudo 5c9338: OUTPUT«54␤»
17:43 Juerd_ Feather's now at a 2.6.31 kernel that someone gave to me.
17:43 TimToady that's not right either...
17:43 Juerd_ That is, feather0
17:44 TimToady rakudo: say :8<70>  # should learn math one of these days
17:44 p6eval rakudo 5c9338: OUTPUT«56␤»
17:44 TimToady that's more like...
17:44 [particle]1 you need to practice your alternate base times tables
17:44 TimToady no, I should learn my times tables
17:45 TimToady the mistakes were in decimal :)
17:45 CokeCokeCokeCoke p6eval rakudo: say :16<30>
17:45 p6eval CokeCokeCokeCoke: rakudo 5c9338: OUTPUT«48␤»
17:46 CokeCokeCokeCoke ... missed a /msg there.
17:46 diakopter weird
17:46 diakopter blah rakudo: say :16<30>
17:46 diakopter rakudo rakudo: say :16<30>
17:47 diakopter p6eval p6eval: say :16<30>
17:47 p6eval diakopter: : $code
17:47 TimToady back in two bits &
17:47 arnsholt nqp: class A { has $.val; }
17:47 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1664 (src/Regex/Cursor-builtins.pir:179)␤»
17:48 iblechbot joined #perl6
17:48 diakopter p6eval p6eval: bleh
17:48 p6eval diakopter: : $code
17:49 diakopter p6eval p6eval: $code
17:49 p6eval diakopter: : $code
17:49 diakopter p6eval : $code
17:49 diakopter p6eval rakudo $code
17:49 jnthn arnsholt: nqp only has DIY accessors :-)
17:50 arnsholt Aha. Also, looks like it doesn't like class with a block
17:50 arnsholt Or not. I must have done something else wrong
17:51 jnthn nqp: class A { has $!val; }
17:51 p6eval nqp:  ( no output )
17:51 arnsholt I thought I'd tried that, but apparently not =)
18:06 mberends joined #perl6
18:09 colomon joined #perl6
18:17 PerlJam perl6.org is still down?
18:17 TimToady nod
18:19 colomon is it?
18:19 colomon pugs repo svn is back
18:20 colomon as is perlcabal.
18:21 TimToady yes, seems to be back now
18:21 colomon I see what you mean about the hyper ops now: "However, any list ending with * can also be arbitrarily extended as if the last element of the list were arbitrarily replicated * times. But this happens only on the "dwimmy" side."
18:22 colomon But isn't a list ending with * supposed to be an infinite list repeating the last element before the *?
18:22 TimToady yes
18:22 TimToady it's not the same as xx * though
18:23 TimToady since @foo,* replacates the end of @foo
18:23 TimToady *lic
18:23 colomon right, whereas xx * is looping through the entire list?
18:24 colomon rakudo: ((1, 2, 3) xx 3).eager.say
18:24 p6eval rakudo 5c9338: OUTPUT«123123123␤»
18:24 colomon rakudo: ((1, 2, 3) xx *).eager.say
18:24 colomon whoops
18:24 p6eval rakudo 5c9338:  ( no output )
18:24 colomon rakudo: ((1, 2, 3) xx *).batch(10).say
18:24 * arnsholt is amused by the default blogs.perl.org About blurb
18:24 p6eval rakudo 5c9338:  ( no output )
18:25 TimToady you'd have to write (@foo[0 .. *-2], @foo[*-1] xx *) to get the same effect
18:25 colomon TimToady: what worries me about that is it seems as if the result is infinite in general, but just "big enough" in hyper ops.
18:26 TimToady only on the dwimmy side
18:26 TimToady and * doesn't mean "infinite", it means "whatever"
18:27 frettled Whatever you say. :)
18:27 TimToady I don't have infinite patience...
18:28 colomon you have whatever patience?  ;)
18:28 frettled *:-)
18:28 RandalSchwartz a doctor would wish for infinite patients
18:28 TimToady no, I have whatever patients.
18:29 frettled RandalSchwartz: at least infinitely patient patients
18:29 colomon here's my issue.  I have been assuming that (@a, *) would generate a new Iterator that iterated @a and then just kept repeating the last element.
18:30 colomon but that clashes really badly with how the hyper ops are spec'd to use the same construct.
18:30 TimToady how so?
18:30 frettled RandalSchwartz: are you researching Rakudo * for an upcoming FLOSS weekly?  ;)
18:31 RandalSchwartz nope.  I have a brown bag to deliver today
18:31 RandalSchwartz floss is tomorrow :)
18:31 colomon well, the hyper op version needs to know how many elements are in @a rather than how many are in @a, *
18:31 colomon basically, it amounts to one has to be lazy and the other has to be eager.
18:31 TimToady it doesn't need to know that on the dwimmy side, since it gets the shape from the other side
18:32 colomon maybe I've misunderstood something.  I thought the dwimmy side just upgraded the list if needed.  It can't shorten it, can it?
18:33 TimToady well, maybe it can
18:33 colomon hmmm...
18:33 TimToady though we need some way to tell if an iterator knows it's finite, in any case
18:34 TimToady there are other places we rely on that info, I seem to recall
18:34 ignacio_ joined #perl6
18:34 mberends joined #perl6
18:35 TimToady mostly eager has to know that
18:36 bkeeler Morning, #p6
18:37 frettled :)  Just when I was about to keel over
18:37 TimToady but I think rewriting @foo,* as @foo,{$^last}...* is probably
18:37 TimToady fine
18:37 colomon ack, I foresee asking an iterator if it knows it's finite maybe be a bit of a pain.  or at least, a problem for gather / take iterators.
18:38 TimToady gather/take doesn't consider itself finite unless declared, I suspect
18:38 TimToady otherwise you're talking Halting Problem
18:39 PerlJam and we're saving that one for Perl 7
18:39 frettled :)
18:39 RandalSchwartz perl7 solves the halting problem.  I'll use that in my talk
18:39 colomon TimToady: my point precisely.  :)
18:39 TimToady we'll solve half of it in Perl 7, at least
18:39 RandalSchwartz presuming my talk is still happening... I haven't been informed *where* yet
18:39 frettled and the Travelling Salesman problem
18:39 RandalSchwartz the travelling salesman and the farmer's daughter problem
18:39 frettled heh :D
18:40 TimToady we might only be able to solve half of that problem too...
18:41 TimToady it's a bad sign when Juerd drops off...
18:41 TimToady well, svn is still there
18:42 dalek joined #perl6
18:54 jaldhar joined #perl6
19:02 * mberends has just thought of an evil workaround for proto to install Parrot and Rakudo into "C:Documents and Settings" tree: just use "C:DOCUME~1" instead!
19:02 phenny mberends: 11:36Z <masak> tell mberends I'll be around quite often; will be happy to brainstorm proto with you.
19:02 nihiliad joined #perl6
19:07 justatheory joined #perl6
19:10 jnthn mberends: What breaks?
19:11 jnthn That probably works though...most of the time.
19:11 mberends jnthn: parrot builds ok in C:\Documents and Settings\Martin\.perl6\parrot, but "make install" creates a "C:\Documents" and dumps some of the binaries there :/
19:12 moritz_ mberends: which 'make install'? parrots?
19:12 mberends yes
19:12 jnthn Oops.
19:12 moritz_ mberends: did you submit a bug report?
19:12 jnthn mberends: May be good...what moritz_ said. :-)
19:12 mberends it's already known. http://trac.parrot.org/parrot/ticket/930
19:14 CokeCokeCokeCoke bumping it up on my priority list...
19:14 mberends tweaking the parrot Makefile with copious extra " " around directories does not fix it
19:15 alester joined #perl6
19:16 mberends gotta try that evil C:\DOCUME~1 trick now ;)
19:16 CokeCokeCokeCoke mberends: some tool is probably pulling the dir out of the config and using it unprotected.
19:17 mberends CokeCokeCokeCoke: yes, I think it's tools/dev/install_files.pl
19:19 nihiliad joined #perl6
19:19 moritz_ oh wow
19:20 moritz_ it doesn't even use Getopt::Long
19:23 CokeCokeCokeCoke ... embarassing.
19:25 moritz_ hurm, tools/dev/install_files.pl
19:25 moritz_ looks fine to me wrt whitespace in file names
19:25 moritz_ if called correctly
19:26 moritz_ but
19:26 moritz_ it's called as
19:26 moritz_ $(PERL) tools/dev/install_files.pl \
19:26 moritz_ --buildprefix=$(BUILDPREFIX) \
19:26 moritz_ etc
19:26 moritz_ so $(BUILDPREFIX) is not escaped
19:26 mberends the 'install-bin' target in Parrot's configured Makefile might need quotes to be added around the options passed to tools/dev/install_files.pl
19:27 moritz_ yes, that's where I am right now
19:27 CokeCokeCokeCoke I'd be happy with a patch that quoted things. I don't think we have a platform on which double quotes around a command line arg are bad.
19:28 mberends moritz_: starting in Makefile:3714 but your line number may differ
19:28 moritz_ mberends: config/gen/makefiles/root.in line 2410
19:28 CokeCokeCokeCoke (line numbers in config/gen/makefiles/root.in should be consis.... right.)
19:29 moritz_ CokeCokeCokeCoke: should @PKGCONFIG_DIR@ also be quoted?
19:33 CokeCokeCokeCoke Seems like pretty much any path shoudl be.
19:33 mberends joined #perl6
19:33 moritz_ I just don't know which tool translates the @\w+@ variables
19:34 lisppaste3 moritz_ pasted "parrot Makefile patch for mberends++ to test" at http://paste.lisp.org/display/97092
19:34 * mberends tries
19:35 moritz_ mberends: you'll need to reconfigure parrot, obviously
19:35 mberends yes, going to do that soon...
19:36 CokeCokeCokeCoke moritz_: configure.
19:36 CokeCokeCokeCoke the gen::makefiles step in configure does all that substitution.
19:37 mberends perl Configure.pl --prefix="C:\Documents and Settings etc etc
19:42 moritz_ CokeCokeCokeCoke: ok, that doesn't seem to care if it's inside quotes or not
19:53 mberends moritz_: make and make test worked, but make install again created a new C:\Documents directory :(
19:54 moritz_ mberends: :(
19:55 moritz_ mberends: do you haave a log that shows the call install_files.pl?
19:55 moritz_ 'make install' should have that very close to the beginning
19:55 mberends but also a "C:\Documents and Settings\Martin\.perl6\parrot_install" ! containing include lib and share subdirs :)
19:56 moritz_ so only parts go wrong
19:57 mberends yes, it's a step in the right direction. no bin directory yet...
19:58 mberends C:\strawberry\perl\bin\perl.exe tools/dev/install_files.pl \
19:58 mberends --buildprefix="" \
19:58 mberends --prefix="C:\Documents and Settings\Martin\.perl6\parrot_install" \
19:58 mberends --exec-prefix="C:\Documents and Settings\Martin\.perl6\parrot_install" \
19:58 mberends --bindir="" \
19:58 mberends --libdir="C:\Documents and Settings\Martin\.perl6\parrot_install/lib" \
19:58 mberends --includedir="C:\Documents and Settings\Martin\.perl6\parrot_install/include
19:58 mberends " \
19:58 mberends --destdir="" \
19:58 mberends --docdir="C:\Documents and Settings\Martin\.perl6\parrot_install/share/doc"
19:58 mberends \
19:58 mberends --versiondir="/2.2.0" \
19:59 mberends MANIFEST MANIFEST.generated
19:59 mberends Installing ...
19:59 mberends hope you don't mind the little flood...
20:00 avuserow joined #perl6
20:00 * moritz_ also has a line --pkgconfigdir=  in there
20:01 mberends this parrot may be a few days older
20:01 moritz_ I don't think it matters much
20:01 moritz_ I'm just curious about differences
20:02 mberends oh, this was the 2.2.0 tarball
20:04 mberends proto is aiming to deploy the monthly Parrot and Rakudo releases
20:05 arnsholt Curse my perfectionism!
20:06 * moritz_ curses arnsholt's perfectionism
20:06 arnsholt Can't even type out a basic blog post without obsessing >.<
20:06 jnthn arnsholt: srsly, *&!% your perfectionism!
20:06 jnthn ;-)
20:07 jnthn .oO( there. I did something useful today. )
20:07 arnsholt Couldn't agree more!
20:08 masak joined #perl6
20:08 masak ahoy, #perl6!
20:08 arnsholt Ahoy, masak!
20:08 mberends ahoy masak!
20:09 RandalSchwartz the talk went well, except for when they said "so when's perl6 coming out?"
20:09 arnsholt What, they hadn't heard?
20:10 mberends RandalSchwartz: you said Christmas, right?
20:10 arnsholt I thought everybody knew it's coming out for christmas ^^
20:10 jnthn lolitsmasak!
20:10 RandalSchwartz somebody even asked "but what if Larry gets hit by a bus"
20:10 RandalSchwartz so I got to describe @Larry :)
20:10 masak lolitsrandalschwartz!
20:11 PerlJam RandalSchwartz: But what if @Larry are all riding in a bus and it explodes if it drops below 50mph?
20:11 cognominal Whatever @Larry
20:11 PerlJam :)
20:11 masak the more time I spend with Perl 6, the less I understand what 'Perl 6 coming out' would actually mean.
20:12 masak I've been using the thing since 2005, and not much would change for me if we passed some imaginary 'release' date.
20:12 sjohnson yo dudes
20:12 masak sjohnson!
20:12 PerlJam masak: When's Perl 5 coming out? :)
20:12 masak PerlJam: yeah. give me an official Perl 5 release, man!
20:12 sjohnson hi :)
20:13 masak none of this preliminary stuff.
20:13 moritz_ actually there's one coming up
20:13 PerlJam yeah 5.12RC1 is out and about
20:13 moritz_ there were RC{0,1} for 5.12 these past days
20:14 PerlJam But I don't think that a release of Perl 5.12 means much more than a release of Rakudo except that Perl 5 has been around much longer
20:14 moritz_ PerlJam: it's what the distributors will pick up for their next release
20:15 masak one of mst's last memes is that "it's like comparing a 20-year old with a fetus"
20:15 PerlJam mst++
20:15 jnthn Seems with latest Parrot, we build in 250MB on my machine.
20:15 moritz_ otoh there are distributors who do ship rakudo
20:15 mberends masak: when can I run a Perl 6 implementation of my fairly trivial Perl 5 web client scripts, fairly trivial database client scripts?
20:15 jnthn That's quite an improvement from > 1GB not so long back. :-)
20:16 moritz_ jnthn: aye, chromatic++ found some fuckups in string pool allocations, or so
20:16 jnthn Epic fuckups!
20:16 moritz_ r45315
20:16 masak mberends: now, that's a meaningful way to ask it. I like that.
20:16 jnthn chromatic++ for finding them.
20:16 masak mberends: and the answer is, of course, that we're working very hard on getting there. unless we're there already, and none of us noticed. :P
20:16 sbp mberends: 6.1
20:17 RandalSchwartz when the perl6 cpan has more than 10 submissions a day. :)
20:17 RandalSchwartz then I'll know perl6 is "out"
20:17 sbp actually that would be interesting
20:18 jnthn moritz_: The bad news is that it seems rather slower to build. :-/
20:18 PerlJam RandalSchwartz: Perl 6 will just co-opt the existing CPAN.
20:18 sbp model the language's current version number based on the behavioural characteristics of people using it
20:18 moritz_ jnthn: aye
20:18 sbp 6.numberofdownloads.numberofperl6cpanpackages.etc.
20:19 jnthn moritz_: Like, painfully slower... :-|
20:19 * jnthn wonders whether to bump or not.
20:19 jnthn I'm guessing it's not the string handling fix that's made things slower...
20:20 moritz_ mberends: which compiler do you use on windows?  msvc?
20:20 mberends moritz_: the gcc that comes with Strawberry 5.10.1
20:22 moritz_ jnthn: with newest parrot it takes about 15min to compile rakudo here, and also S05-mass/rx.t is the last test file to finish
20:22 moritz_ so something made parsing horribly slow
20:22 jnthn :-/
20:22 jnthn I'm not going to bump.
20:22 jnthn Otherwise I'll get nothing done.
20:22 moritz_ at least that's my impression
20:22 jnthn Yes, I noted that grammar.pm took a *lot* longer to compile than actions.pm.
20:23 mberends jnthn: +1 to bump if it passes all spectests. a build time of less than infinity is a speedup for a 1GB RAM machine. Oh, I'm out on my own there...
20:23 mberends -1 to bump then, I just have to get more RAM
20:24 jnthn mberends: I'm looking at 2-3 times longer to build here by the looks of it.
20:24 mberends then again, how long can we wait and *not* bump?
20:25 jnthn mberends: Well, maybe we can wait for a couple of hours while I try and write and test some patches. :-)
20:25 mberends sure, +1 to that
20:26 jnthn Maybe good to file a Parrot ticket.
20:27 * mberends will bump the eePC Ubuntu installation locally and see how it fares, while wrestling with proto on WinXP
20:28 masak mberends: btw, I'm here if you want to talk aobut proto some.
20:28 CokeCokeCokeCoke do you have 2 parrot revisions for bisecting the speed issue?
20:28 moritz_ CokeCokeCokeCoke: r45178 good, r45315 bad
20:29 arnsholt There. I even managed to publish it
20:30 mberends masak: good idea. Data structures first. The S11-modules implementation will make new demands on the projects.state database, probably projects.list as well.
20:31 masak oh, so proto is going the S11 route? nice!
20:31 mberends yes!
20:31 masak time to start looking for a less throwaway name! :)
20:31 mberends heh, the thought is beginning to stir..
20:31 SmokeMachine joined #perl6
20:33 mariano__ joined #perl6
20:33 jnthn masak: "Austria" :-)
20:33 masak "because November wasn't confusing enough for people..." :P
20:34 masak "We named it after the country whose public uprising the Novel Peace Price committee mistakenly thought it prevented."
20:34 masak s/Novel/Nobel/
20:35 PerlJam "newp"
20:36 masak moritz_: seems I'm getting a lot of RESOLVED mails from RT today. kudos!
20:36 masak moritz_: I owe you a beer :)
20:39 colomon \o/
20:40 payload joined #perl6
20:43 masak this meme keeps popping up. http://twitter.com/timdorr/status/11323472253
20:44 masak I'm not sure replying to it will improve anything. it's basically flamebait.
20:44 masak still, maybe someone here has some ideas?
20:47 TiMBuS joined #perl6
20:47 colomon it's like the perfect flamebait...
20:47 moritz_ Perl 6 - actively working to disprove this meme
20:48 RandalSchwartz perl 6 - call us the memebuster!
20:49 masak "hello, this is Perl 6 calling. alive and kicking :)"
20:49 masak "is there anything particular you dislike about our efforts?"
20:49 moritz_ don't
20:50 masak I won't.
20:50 moritz_ that's just waste of time
20:50 mberends masak: there are probably enough decent v6 counterexamples to dismiss the allegation, but responding to the bait, even as we are doing now, is wasting more of our time than his
20:50 masak feeding the flames.
20:50 masak ok, I'll stop.
20:52 masak this one from @uasi is much more relevant, and could perhaps be turned into an RT ticket: http://twitter.com/uasi/status/11247932654
20:52 masak rakudo: say ("some file" ~~ :d).WHAT
20:52 colomon Hmmm?  I don't understand that one.
20:52 p6eval rakudo 5c9338: OUTPUT«Bool()␤»
20:52 masak rakudo: say ("some file" ~~ :d).perl
20:52 p6eval rakudo 5c9338: OUTPUT«Bool::False␤»
20:53 masak hm. seems to work.
20:53 colomon alpha: say ("some file" ~~ :d).perl
20:53 p6eval alpha 30e0ed: OUTPUT«Bool::False␤»
20:54 * arnsholt can haz choclit
20:54 arnsholt nom nom
20:56 moritz_ rakudo builds and spectests on parrot r45314 in 20.5min
20:56 moritz_ now I'll try again on 45315
20:57 jnthn moritz_++
20:57 mberends masak: if you bypass proto's bootstrap code, and continue to its Perl 6 part, we have to design how the command line specifies :auth and :ver nameparts. line 29 etc in http://github.com/masak/proto​/blob/master/lib/Installer.pm
20:58 * masak looks
20:59 masak what's the simplest thing that could possibly work?
20:59 mberends currently it's just ./proto install druid
20:59 masak './proto install druid :ver<0.1> :auth<masak>', maybe
20:59 masak with all additional flags optional if no ambiguity occurs.
21:00 masak (and defaulting to latest if there's no :ver option)
21:00 masak would that work?
21:04 masak am I silly in wanting the colon in the options? should we go with a dash, or two dashes, instead?
21:04 masak maybe people will write things as one argument and expect it to work?
21:04 mberends masak: are you happy to code it? Implementation wins the debate.
21:04 masak if I were to code this, I'd start from tests.
21:04 mberends ah, good idea
21:04 moritz_ well, one could preserve dash options for more environmental options
21:04 moritz_ like, where to install the module, what $thing to use etc.
21:04 mberends proto has needed testing for a long time, better to make any kind of start on tests
21:04 masak moritz_: yes. or maybe :ver<4.2> is sugar for '--ver 4.2'...
21:04 moritz_ masak: dwim++
21:04 masak mberends: I'd like to mock a whole lot of things.
21:04 masak it sounds like a pleasant project.
21:04 masak just need to find time for it...
21:04 PerlJam my rakudo build with parrot 45325 has slowly grown to 436 meg and then stayed steady for the last several minutes
21:04 arnsholt masak: Excellent idea. Now that you mention it, all Perl 6 command line apps should do that
21:04 mberends yes, a mock downloader would save lots of time
21:04 PerlJam (still waiting for it to finish to see how long it takes)
21:04 masak arnsholt: while we're at it, let's fix the rest of S19 :P
21:04 CokeCokeCokeCoke it does finish on feather, anyway. closed #1489.
21:04 PerlJam compiles on feather is excellent even if it takes forever
21:04 wallberg joined #perl6
21:06 * colomon is getting fed up with "maximum recursion depth exceeded" today.
21:07 arnsholt I think you need tail-call optimisation and a Cray =)
21:10 colomon Pretty sure tail-call and a Cray won't help with infinite recursions...  ;)
21:12 moritz_ class Cool { ...; multi method kv() { @.keys Z=> @.values }; ... }
21:13 * moritz_ likes the look of that
21:13 moritz_ rakudo: say (<a b c> Z=> (1, 2, 3)).perl
21:13 p6eval rakudo 5c9338: OUTPUT«GatherIterator.new()␤»
21:13 moritz_ rakudo: say (<a b c> Z=> (1, 2, 3)).eager.perl
21:13 p6eval rakudo 5c9338: OUTPUT«("a" => 1, "b" => 2, "c" => 3)␤»
21:13 colomon \o/
21:13 moritz_ wow, and it actually works
21:13 PerlJam nice
21:14 PerlJam though that GatherIterator output is annoying :)
21:14 moritz_ aye
21:14 colomon rakudo: say (<a b c> >>=><< (1, 2, 3)).eager.perl
21:14 p6eval rakudo 5c9338: OUTPUT«("a" => 1, "b" => 2, "c" => 3)␤»
21:14 moritz_ why isn't .perl .eager by default?
21:14 colomon we haven't really figured out what to do with .perl and iterators yet, as far as I know.
21:15 moritz_ until we can serialize closures, assuming .eager seems sensible
21:15 PerlJam I agree
21:16 poincare101 joined #perl6
21:17 * moritz_ tries to come up with good examples for the R X Z meta operators for the book
21:17 PerlJam 15m just to build rakudo
21:17 PerlJam seemed like forever
21:17 poincare101 is there some kind of to-do list for rakudo?
21:18 moritz_ poincare101: sure, the ROADMAP
21:18 moritz_ in docs/
21:19 masak URLs trump directions: http://github.com/rakudo/rak​udo/blob/master/docs/ROADMAP
21:19 masak :)
21:20 poincare101 thank you :)
21:21 riffraff joined #perl6
21:22 PerlJam poincare101: for a more fine-grained "todo list" you might want to look at the perl6 queue at rt.perl.org
21:25 colomon > say (<a b c> Z=> (1, 2, 3)).perl
21:25 colomon ("a" => 1, "b" => 2, "c" => 3)
21:26 moritz_ colomon: sship it!
21:26 jnthn Ah, hmm.
21:26 jnthn regex foo { \d+ } outside of a grammar now just warns.
21:26 jnthn my and our don't, and seem to install it
21:26 jnthn Unfortunately, it isn't then found by /<foo>/, however.
21:27 jnthn > my regex foo { lol }; say 'omglolyay' ~~ /<foo>/
21:27 jnthn Method 'foo' not found for invocant of class 'Regex;Cursor'
21:28 moritz_ and the error messag says why, no?
21:28 arnsholt Well, the cursor object created probably doesn't have foo in its inheritance hierarchy
21:28 moritz_ arnsholt: that would be my guess too
21:28 arnsholt Which, given my understanding of how these things are implemented, means that <foo> won't work
21:29 arnsholt Hard to say how you could fix that
21:29 bkeeler I think I could fix that
21:30 shamu__ joined #perl6
21:30 arnsholt Cool. What's your plan?
21:30 * jnthn isn't sure if/why it should work.
21:30 PerlJam make a global anonymous grammar that regex get installed into if not already in a grammar
21:31 jnthn I'd like it to work though. :-)
21:31 bkeeler Question is, would be OK if the lexical or package scoped foo took precedence over a method one?
21:31 arnsholt jnthn: Well, I think S05 says it should work =)
21:31 PerlJam arnsholt: does it?
21:31 jnthn bkeeler: I suspect a method one should win
21:31 arnsholt IIRC
21:31 * arnsholt goes looking
21:31 bkeeler That would be tricky then
21:31 * moritz_ says it should work
21:32 bkeeler Well, perhaps not that tricky
21:32 jnthn TimToady: Question. my method foo() { ... } - the methods table doesn't have sigils, but should we install it as &foo in the lexpad?
21:32 bkeeler Oooh, I've been oppified!
21:32 jnthn whoz op wiv dat?
21:33 jnthn bkeeler: I did a slight refactor to share a little more code between regex_def and method_def.
21:33 bkeeler Excellent, thanks
21:33 jnthn (And to add our/my handling into the shared bit.)
21:33 jnthn There's probably more that could be shared, but it's a step in the right direction, I think.
21:33 bkeeler I failed miserable when I tried to refactor that, but probably some stupid typo or other was to blame
21:34 arnsholt Hmm. Or maybe I was wrong. Can't find it
21:34 shamu__ is this a place I can ask a rakudo question?
21:34 PerlJam shamu__: yep
21:35 shamu__ is there a 'portable' version for windows I can run off a flash/portable drive?
21:36 shamu__ the strawberry perl portable version really makes a huge difference for me, and I'd like to set up a copy on a portable drive before yapc so I can have it ready if I decide to take Damien's class
21:37 shamu__ and if there isn't one, who could I, uh, gently make a suggestion to?
21:37 PerlJam shamu__: I think, as long as it can find parrot, the rakudo executable will run from anywhere just fine.
21:38 shamu__ oh ok
21:38 shamu__ uh, is there a portable parrot?
21:38 bkeeler jnthn: S05 does explicitly mention a <&foo> syntax as a shortcut for <{ foo() }>, perhaps the intention is to be explicit about what you want to call?
21:38 jnthn bkeeler: Ah, interesting.
21:38 jnthn bkeeler: Well, I've gone ahead and set us up to install as &foo
21:38 RandalSchwartz left #perl6
21:39 jnthn So that may just work.
21:39 jnthn spectesting now.
21:39 PerlJam shamu__: do a git clone of rakudo to your portable drive, then execute "perl Configure.pl --gen-parrot && make"
21:39 bkeeler jnthn: Actually, that syntax calls the sub and interpolates the result
21:39 jnthn bkeeler: oh.
21:39 bkeeler jnthn: Hmmm
21:39 PerlJam shamu__: it should build both parrot and rakudo and make a parrot_install dir for rakudo to use
21:39 jnthn That probably won't do what we want here then.
21:40 bkeeler jnthn: There's always <{ &foo }>
21:40 jnthn bkeeler: Does that work in Rakudo now?
21:40 bkeeler jnthn: once my patch  (or it's eventual pm-approved successor) is applied
21:40 jnthn OK
21:40 bkeeler jnthn: Doesn't yet
21:43 shamu__ PerlJam -- thanks a bunch!  I'll save that off and see if I can get it to work under windows.
21:43 PerlJam shamu__: caveat lector--I don't regularly (ever :) use parrot/rakudo on windows
21:44 shamu__ thanks
21:44 shamu__ I'd tend not to, but I find myself around windows boxes often enough that having the ability to hack in 15-30 minute snatches of time is useful
21:45 masak wow, this perl5i things seems really great: http://www.perl.org/pub/2010/03/perl5i​-makes-more-simple-things-simple.html
21:46 pjcj joined #perl6
21:47 moritz_ well, autoboxing existed as a module for quite some time
21:47 moritz_ I find this $thing->is_number slightly worrying
21:47 snarkyboojum I noticed someone else has gone and implemented Array.exists by smart matching elements against Proxy, which moritz_ pointed out was probably wrong when I tried that way a while back :)
21:48 snarkyboojum rakudo: my @a = (Proxy.new, Proxy.new); say @a.exists(0);
21:48 jnthn > method foo() { say 42 }
21:48 jnthn Useless declaration of has-scoped Method in a module; add our or my to install it in the lexpad or namespace
21:48 jnthn > my method foo() { say 42 }; foo(*)
21:48 jnthn 42
21:48 moritz_ because perl 5 tries very hard to hide the actual type of a scalar
21:48 poincare101 hmmm... perl6 is taking almost 2 seconds to do a hello world!
21:48 p6eval rakudo 5c9338: OUTPUT«0␤»
21:48 snarkyboojum so that fails
21:48 moritz_ snarkyboojum: then I apologize for the likely wrong comment
21:48 masak moritz_: indeed.
21:49 snarkyboojum oh so it's correct?
21:49 snarkyboojum for @a.exists(0) to return false above?
21:49 moritz_ snarkyboojum: no idea, but somebody else thought it was
21:49 snarkyboojum ok :)
21:49 jnthn I'm not convinced it's right. Particularly since I think pm mentioned Proxy was a temporary measure.
21:49 snarkyboojum I thought your example of putting Proxy objects in an array was good evidence that it was the wrong approach :)
21:50 snarkyboojum jnthn: yeah, was just about to mention that (from IRC backlog reading)
21:50 moritz_ jnthn: don't we have EMPTY to smart-match against instead?
21:50 moritz_ anway, self.goto($bed)
21:50 moritz_ good night
21:50 jnthn night o/
21:50 snarkyboojum night
21:50 colomon o/
21:51 PerlJam std: method foo { }
21:51 p6eval std 30243: OUTPUT«ok 00:01 107m␤»
21:51 masak night, moritz_.
21:51 jnthn PerlJam: std probably could be made to warn there too.
21:51 poincare101 what's the humoungus array at the top of perl6.c ?
21:51 poincare101 (almost 23000 line array)
21:51 jnthn poincare101: Bytecode.
21:52 PerlJam poincare101: the program :)
21:52 snarkyboojum the compiled rakudo?
21:52 jnthn Right, bytecode of the compiled Rakudo. :-)
21:52 PerlJam poincare101: there's a reason it's called a "fake executable"
21:52 jnthn The rest of perl6.c is just a little "loader" that tells Parrot to run that bytecode.
21:53 poincare101 as in bytecode that's fed into parrot or real opcode for somethin like x86?
21:53 masak snarkyboojum: by the way, I'll see if I can get Yapsi into some sort of shape until tomorrow, so that it can do what yapsi-prototype can do. if so, I might release it on April 1 :)
21:53 snarkyboojum parrot bytecode
21:53 poincare101 jnthn: I see.
21:54 poincare101 what does vivification mean?
21:55 masak poincare101: it means automatically putting e.g. an array at a point where there was previously no entry in a hash.
21:55 PerlJam poincare101: what distinguishes "real opcode"?
21:55 masak poincare101: but it doesn't have to be an array, it can be another hash. it depends on the use you make of it.
21:55 jnthn PerlJam: The hardware runs it I guess. :-)
21:55 masak poincare101: for example, 'push %h<foo>, "OH HAI";'
21:56 arnsholt masak: Speaking of yapsi, I almost called my new project yapsy >:)
21:56 masak poincare101: if %h<foo> was empty before the push, we first create an empty array there. that's vivification.
21:56 masak arnsholt: confusion++ :P
21:56 masak "Salsa? No, Seltzer."
21:56 arnsholt Indeed =D
21:57 arnsholt I went with parrotlog, in the end. But it would have been amusing =)
21:57 poincare101 PerlJam: Something can be run on a processor, like x86
21:58 poincare101 masak: ah.
21:58 PerlJam poincare101: the parrot vm is a processor
21:59 snarkyboojum hardware processor?
21:59 snarkyboojum :)
22:00 snarkyboojum masak: oh hello! missed your message above
22:01 masak snarkyboojum: hi! it's because we are traveling at different time trajectories, just like lue predicted.
22:01 masak er. will predict. whatever.
22:02 snarkyboojum masak: w00t for release on April Fools' day :)
22:02 * masak feels motivated to go for it
22:02 masak snarkyboojum: also, it'd be nice to sit down fairly soon and discuss where to go from there.
22:02 snarkyboojum let me know if there's anything I can do
22:03 snarkyboojum cheerleading is fine too :)
22:03 masak snarkyboojum: I need to do a bit of braindumping and air some ideas :)
22:03 masak perhaps not now, since I need to fix my sleep.
22:03 jnthn rakudo: class B; method foo() { }
22:03 snarkyboojum masak: great - ping me whenever you like
22:03 p6eval rakudo 5c9338:  ( no output )
22:03 masak snarkyboojum: maybe we should set a meeting in a few hours, so I have a good reason to rise early tomorrow :)
22:04 snarkyboojum masak: sounds good to me
22:04 * masak mentally sets his alarm clock
22:05 * jnthn spectests a bunch of bits
22:05 cognominal say per6eval rakudo:  my @a = < a >;  say 'a' ~~ m/ @a /
22:06 * colomon just pushed the eager .perl for Iterators patch.
22:06 cognominal arf
22:06 jnthn colomon: yay
22:07 colomon jnthn: any thoughts on adding roles when augmenting?
22:07 jnthn rakudo: grammar Foo { regex TOP { x } }; say 'xxx' ~~ Foo
22:08 p6eval rakudo 5c9338: OUTPUT«0␤»
22:08 jnthn rakudo: grammar Foo { regex TOP { x } }; say Foo.parse('xxx')
22:08 p6eval rakudo 5c9338: OUTPUT«x␤»
22:08 jnthn rakudo: my $x = 42; grammar Foo { regex TOP { x { say $x } } }; say Foo.parse('xxx')
22:08 p6eval rakudo 5c9338: OUTPUT«Lexical '$x' not found␤current instr.: 'perl6;Foo;_block76' pc 788 (EVAL_1:300)␤»
22:10 bkeeler Hmm, that's not good
22:10 dalek rakudo: 00d8d8d | (Solomon Foster)++ | src/core/Iterator.pm:
22:10 dalek rakudo: Make .perl on Iterators eager.
22:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​0d8d8d425b6dbf35ed5c5dad370858815cbae44
22:10 masak bkeeler: new bug?
22:11 jnthn > my $x = 42; grammar Foo { regex TOP { x { say $x } } }; say Foo.parse('xxx')
22:11 jnthn 42
22:11 bkeeler masak: Not sure
22:11 jnthn x
22:11 jnthn masak: I changed something in the regex code-gen just now.
22:11 masak oh, ok.
22:11 jnthn masak: And I was pretty sure we musta had a bug before.
22:11 jnthn masak: That's the bug.
22:12 jnthn I'm not sure it's made it into RT
22:12 jnthn But anyway, it's an ex-bug now.
22:12 masak oh, ok.
22:12 jnthn Just wanted to check it was wrong in current master...otherwise I wouldn't have understood my patch as well as I thought. ;-)
22:12 * jnthn goes to pick a beer
22:12 lichtkind joined #perl6
22:13 renormalist Hi! Has onyone tried Perlito and is currently awake? I wanted to try it out and have problems getting it to run.
22:14 bkeeler .oO( Is Perlito a sedative then? )
22:15 masak well, that's it for tonight.
22:15 bkeeler G'night masak
22:15 renormalist I just follow the instructions from README on a fresh cloned git repo and get "mv: cannot stat `libast-perl5': No such file or directory" and later "can't execute at mp6.pl line 373." whch is a system to 6.pl
22:15 masak see you, hopefully early, tomorrow.
22:15 jnthn o/ masak
22:15 jnthn masak: Hope you sleep well!
22:15 masak \o
22:15 masak yeah. me too. :)
22:15 * bkeeler hasn't tried perlito
22:16 renormalist m'kay
22:18 sorear CokeCokeCokeCoke: Memory use compiling Rakudo has fallen from 1000MiB to 260MiB.  Time use (including time spent swapping) from 12 hours to 45 minutes.
22:18 bkeeler Woot!
22:19 Juerd joined #perl6
22:20 sorear What's a brown bag?
22:22 cognominal sorear,  that's a grocery bag. So a brown bag meeting is discussing while eating, each one bringing his own food.
22:23 cognominal Or, in the street, a way to hide booze :)
22:24 CokeCokeCokeCoke sorear: awesome.
22:24 CokeCokeCokeCoke (thank chromatic.)
22:30 * sorear wonders how much of a win it would be to only auto-localize $[_/!] in functions that use them
22:30 CokeCokeCokeCoke cognominal: (brown bag) ah, thanks for bringing back the memories of my childhood!
22:33 bkeeler Yeah, you really have to keep the booze hidden when you're a kid
22:48 * jnthn hopes his latest tweak will fix up some $*SCOPE leakage that's causing us trouble.
22:51 TimToady jnthn: yes, routines are always installed with an & sigil in the symbol tables
22:54 TimToady and I think perhaps <foo> compiles differently if there's a lexically scoped foo visible, and gets called directly as foo($¢) rather than $¢.foo in that case
22:55 TimToady we might have to disallow postdeclaration for that
22:56 jnthn TimToady: OK, good, I went the & route. :-)
22:56 bkeeler That was my first thought too
22:57 TimToady but a lexical has to take precedence over inheritance, if we allow it at all
22:57 bkeeler That should be easy enough to implement I think
22:57 TimToady alternately, we pick a different syntax
22:57 TimToady <&foo>
22:58 bkeeler <&foo> is specced to mean <{ foo() }> right now, correct?
22:58 TimToady since <$foo> already does much the same thing with 'my $foo'
22:58 TimToady and a regex is just a routine that is always going to take its first arg as a cursor, whether it's officially the invocant or not.
22:58 jnthn rakudo: class A { sub x() { say 42 }; method y() { x() } }; A.new.y
22:59 p6eval rakudo 00d8d8: OUTPUT«42␤»
22:59 pjcj joined #perl6
23:00 TimToady I'm quite willing to steal the <&foo> notation to make it mean something less dynamic
23:01 jnthn Means everyone who wrote regex foo { ... } ... /<foo>/ will have to tweak the codez.
23:01 jnthn But I guess that's not the end of the world.
23:01 jnthn After all, calling a method has different syntax from calling a sub...
23:01 TimToady but it might or might not be less confusing than just overriding <foo> with the lexical meaning
23:01 jnthn rakudo: class A { my sub x() { say 42 }; method y() { x() } }; A.new.y
23:01 TimToady I can argue it both wayz
23:01 p6eval rakudo 00d8d8: OUTPUT«42␤»
23:02 jnthn TimToady: Same. :-)
23:02 TimToady but <&foo> wouldn't necessarily capture in $<foo>
23:02 TimToady while <foo> would
23:02 TimToady <&foo> is more like <.foo>
23:02 TimToady so maybe we should have <foo> ambigous, and those two forms to disambiguate
23:03 TimToady *guous
23:03 TimToady I think that likes me.
23:03 jnthn Could work
23:03 jnthn grr.
23:04 TimToady let's go with that.
23:04 jnthn There's something rotten with $*SCOPE handling somewhere.
23:04 * jnthn decides to look at that one tomorrow.
23:04 jnthn colomon: ping
23:04 TimToady but presumably we only pick the lexical one if it could take a Cursor as its first arg.
23:04 jnthn TimToady: heh.
23:05 jnthn TimToady: Bit too much for us to be able to statically look at in Rakudo right now.
23:05 jnthn Chances of us supporting that soonish are low.
23:05 TimToady well, we can assume they'll behave for the moment; it'll just blow up at run time if they don't
23:05 jnthn OK, that works.
23:06 jnthn We need to have the stuff to decide it eventually, for other things too.
23:06 jnthn But may (or may not...not sure yet) be too big an ask for pre-R*.
23:07 TimToady I'm not gonna ask for anything pre-R* we don't need for R*...except when I want to...  :)
23:07 TimToady after all, I've taken on the mantle of Chief Tormentor...
23:07 TimToady but I wouldn't want you to die too soon, now...
23:07 * bkeeler feels the torment
23:09 jnthn TimToady: In package_def in STD there's:
23:09 jnthn { $*SCOPE ||= 'our'; }
23:10 jnthn I'm not sure yet, but I fear that may be leaking to places it shouldn't.
23:11 jnthn As in, accidentally the method our scoped.
23:11 jnthn (now that we pay attention to such things)
23:11 jnthn I've got such a leakage bug, and that seems the most likely candidate ATM. I need to dig more to be sure.
23:12 jnthn Oh. Hmm. I think it may be less straightforward though. :-/
23:15 colomon jnthn: pong
23:15 colomon skyping with parents, may be slwo to respond
23:17 jnthn colomon: I was going to ask, did you add any extra "augment Foo does Numeric" style things yet?
23:17 colomon no
23:18 jnthn ok
23:19 jnthn Just looking at patching augment + does up
23:24 wknight8111 joined #perl6
23:25 TimToady jnthn: termish localizes $*SCOPE to ''
23:25 jnthn TimToady: Ah.
23:25 jnthn TimToady: hmm
23:26 jnthn TimToady: I missed that.
23:26 jnthn Sorry.
23:26 jnthn I'll have to try the both.
23:26 lue hello everyone!
23:26 TimToady but I'm not everyone...
23:26 jnthn Google Street View visited my home town in England! Where there's a nice pub called "The Hole In The Wall", but sadly the stitching algorithm, er, well... http://xrl.us/bg5zox
23:28 jnthn colomon: Yay. :-)
23:28 jnthn > say Num ~~ Real
23:28 jnthn 0
23:28 jnthn > use MONKEY_TYPING; augment class Num does Real { }
23:28 jnthn > say Num ~~ Real
23:28 jnthn 1
23:29 colomon \o/
23:29 lue phenny: tell masak I don't remember making any prediction based on time trajectories. A link to the backlog would jog my memory :)
23:29 phenny lue: I'll pass that on when masak is around.
23:29 jnthn lue: No no, you made it in the future.
23:30 Limbic_Region joined #perl6
23:30 lue that explains it :)
23:33 lue Oh zarking, I'm in the year 3095. Better leave... (good thing I have pandimensional wireless, or else I'd be messaging a dead Freenode server :))
23:52 jnthn colomon: Pushed. :-)
23:54 bkeeler Pulled :)
23:56 justatheory joined #perl6
23:56 lue Heaved :)
23:56 dalek rakudo: 9f829b4 | jonathan++ | src/Perl6/Actions.pm:
23:56 dalek rakudo: Factor a little bit of commonality out of method_def and regex_def. Support our method/our regex (or my) style declarations. For regexes, get handling of lexical scopes correct, as we do for methods.
23:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​f829b4e80510f974c2ae77cf0ed93c740baa78a
23:56 dalek rakudo: 666470e | jonathan++ | src/Perl6/Compiler/Module.pm:
23:56 dalek rakudo: Declaring a regex (or method) outside of some classy thing shouldn't be an error, just a warning that gets suppressed by writing my or our.
23:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​66470ec84230220cdbef5ae9558b2659aa92fd2
23:56 dalek rakudo: 3576524 | jonathan++ | src/metamodel/ClassHOW.pir:
23:56 dalek rakudo: Make it possible to add extra roles with an augment.
23:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​5765245cf1616762a1acd300a902513e0c2d490
23:57 lue I see Numeric.pm and Real.pm were created recently
23:58 jnthn Yes, by colomon++
23:59 lue why does dalek/pugssvn always put ++ by someone's name? Is it to ensure karma?
23:59 bkeeler Pretty much
23:59 bkeeler dalek++
23:59 snarkyboojum joined #perl6

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

Perl 6 | Reference Documentation | Rakudo