Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-11-04

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 jnthn oooh...a pale ale too.
00:00 TimToady or split it with your headache tomorrow...
00:00 moritz_ better than split it over your friend's head ;-)
00:00 jnthn After all, it'll be a splitting headache after that...
00:00 rjbs It was also $8 for the bottle.
00:00 jnthn rjbs: Meh, you can't even get Fosters for $8 in some European countries. ;-)
00:01 * TimToady wonders what happens in 120 minutes...
00:01 rjbs Yeah, but I live in the real world!
00:01 jnthn *cough*Norway*cough* ;-)
00:01 rjbs TimToady: Dogfish Head has a few excellent ales that are named for the amount of time the hops is allowed to boil.
00:01 rjbs TimToady: IIRC, you are no hop head, so you would probably not be in love.  90 Minute is pretty great, though.
00:01 TimToady oh, I thought it was the half-life of your neurons when you drink it
00:02 rjbs jnthn: Yeah, $11/bottle for beers in Oslo was crushing.
00:02 jnthn rjbs: Thankfully I live in Slovakia, where the beer is rather cheaper. :-)
00:02 TimToady I have other ways of tormenting myself than with hops
00:02 rjbs Is there some way to fake up persistent variables in the repl?  I don't mind some other way to make globals that I own, but I see "our" is no good.
00:02 rjbs jnthn: and quite good, I bet
00:02 frettled TimToady: jumps are more relevant, anyway
00:02 rjbs I thought maybe $*x would work, but no.
00:02 jnthn rjbs: "our" doesn't work for that? That surprises me a little...
00:03 rjbs oh!
00:03 rjbs I think I have missed something.
00:03 rjbs I thought that "> $x" would show me the var
00:03 TimToady it seems like if each repl iteration returns a sub that is inside the previous scope, that sub could then quine itself into the next iteration somehow
00:03 rjbs if I remember to "say" it, $*x works
00:03 rjbs $x does not
00:03 jnthn aha
00:03 rjbs http://pastie.org/682543
00:04 rjbs Am I relatively safe (to play) using $*lowercase variables willy nilly?
00:04 jnthn Should be.
00:04 rjbs Great, thanks.  That will go a long way to making play easy!
00:06 Woody2143 joined #perl6
00:06 TimToady rakudo: my $x = 42; eval 'say $x';
00:06 rjbs It's amazing how much Perl 6 I've picked up just from reading blogs. :)
00:06 p6eval rakudo 74f561: TIMED_OUT
00:06 TimToady ooh
00:07 TimToady rakudo: my $x = 42; eval 'say $x';
00:07 rjbs Well, they do say eval is pretty slow...
00:07 p6eval rakudo 74f561: TIMED_OUT
00:07 rjbs FWIW, that runs instantly on my build.
00:07 diakopter std: multi infix:<(> ($a, $b) { }; multi infix:<)> ($a, $b) { }; ::a ( ( ::b ; ::a ) ( ::b
00:07 p6eval std 28979: OUTPUT«ok 00:02 114m␤»
00:07 rjbs augh, too many colons
00:08 rjbs I think I better go before I'm overcollonaded.
00:08 tak11 joined #perl6
00:08 Whiteknight joined #perl6
00:08 rjbs Back another time, ciao!
00:08 moritz_ ciao
00:08 jnthn ciao, enjoy the beer ;-)
00:08 rjbs left #perl6
00:08 tak11 joined #perl6
00:09 jnthn diakopter: ouch!
00:10 diakopter std: multi infix:<(> ($a, $b, $c, $d, $e) { }; # 4 dimensional infix
00:10 p6eval std 28979: OUTPUT«ok 00:02 107m␤»
00:10 jnthn rakudo: multi infix:<(> ($a, $b) { $a + $b }; multi infix:<)> ($a, $b) { $a + $b }; say 1 ( (2 + 3) ) 4;
00:10 p6eval rakudo 74f561: OUTPUT«10␤»
00:10 jnthn damm!
00:10 TimToady so if each iteration of repl ended with a quine where $quine = ';return -> $next { eval $next ~ $quine }' or some such, you'd have persistent lexicals
00:10 jnthn :-D
00:12 jnthn TimToady: Quines weren't my first thought for solving this particular issue, but it has appeal... :-)
00:12 TimToady and it seems like you could have persistent lexicals right now
00:16 TimToady it wouldn't give you multiline defs, of course.  one really needs hooks in the parse and a progressive evaluator for that
00:18 TimToady basically, the parser has to be able to treat the outermost statement list as a kind of co-routine with the evaluator
00:20 patspam joined #perl6
00:20 TimToady essentially, the parser has to turn every outer EXPR; into BEGIN EXPR;
00:20 diakopter std: BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN
00:20 p6eval std 28979: OUTPUT«ok 00:01 105m␤»
00:21 TimToady std: BEGIN while 1 {...}
00:21 p6eval std 28979: OUTPUT«ok 00:01 106m␤»
00:22 diakopter std: BEGIN return
00:22 p6eval std 28979: OUTPUT«ok 00:01 104m␤»
00:22 TimToady you'll note that BEGIN is a statement_prefix, so can take a blorst
00:23 diakopter std: BEGIN / BEGIN / | \ BEGIN \ BEGIN
00:23 p6eval std 28979: OUTPUT«ok 00:01 107m␤»
00:23 TimToady std: BEGIN my $x = 42;  # legal
00:23 p6eval std 28979: OUTPUT«ok 00:01 110m␤»
00:23 TimToady and $x is set at BEGIN time
00:23 TimToady rakudo: BEGIN my $x = 42;
00:23 p6eval rakudo 74f561: OUTPUT«Could not find non-existent sub BEGIN␤in Main (file src/gen_setting.pm, line 324)␤»
00:23 diakopter now you've done it
00:24 TimToady heh, probably still a statement_control in rakudo
00:24 jnthn To be fair, it probably wasn't also a statement prefix when we first did BEGIN. :-)
00:24 TimToady ETOOTROO
00:24 jnthn We'll catch up. :-)
00:24 diakopter rakudo: jection
00:24 p6eval rakudo 74f561: OUTPUT«Could not find non-existent sub jection␤in Main (file src/gen_setting.pm, line 324)␤»
00:24 TimToady <twitch>
00:26 TimToady http://en.wikipedia.org/wiki/​Attractive_nuisance_doctrine
00:27 jnthn "Think of the children!!!"
00:27 TimToady that error message is an attractive nuisance
00:27 jnthn I find it quite unattractive...
00:28 jnthn Certainly it's DO NOT WANT.
00:29 diakopter rakudo: limation
00:29 p6eval rakudo 74f561: OUTPUT«Could not find non-existent sub limation␤in Main (file src/gen_setting.pm, line 324)␤»
00:29 TimToady diakopter is not aware of the danger
00:31 diakopter or something
00:31 TimToady the two are not mutually exclusive
00:32 jnthn *sigh* And finally, I get this pluggable package decl stuff that'll let me write a bunch of stuff less hatefully and lets us do custom metaclasses sooner is showing some vague sign of working...
00:32 diakopter std: std: std:
00:32 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of 'std' at /tmp/VH7ItEjVXz line 1 (EOF):␤------> [32mstd: std:[33m⏏[31m<EOL>[0m␤FAILED 00:01 104m␤»
00:33 orafu joined #perl6
00:33 * jnthn is too tired to finish it up today though.
00:34 TimToady TEN: goto TEN.new;
00:34 TimToady std: TEN: goto TEN.new;
00:34 p6eval std 28979: OUTPUT«ok 00:02 105m␤»
00:35 TimToady std: sub: my sub sub sub {...}
00:35 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of routine sub (from line 1) at /tmp/iOMTNurc4X line 1:␤------> [32msub: my sub sub[33m⏏[31m sub {...}[0m␤    expecting new name to be defined␤FAILED 00:01 104m␤»
00:35 TimToady aw
00:36 diakopter std: :std: # invocant?
00:36 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal use of colon as invocant marker at /tmp/wugMkLUp9Y line 1:␤------> [32m:std:[33m⏏[31m # invocant?[0m␤    expecting signature␤FAILED 00:02 103m␤»
00:36 TimToady std: sub: my sub sub foo {...}
00:36 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of routine sub (from line 1) at /tmp/pxFRegr1Zj line 1:␤------> [32msub: my sub sub[33m⏏[31m foo {...}[0m␤    expecting new name to be defined␤FAILED 00:01 104m␤»
00:36 TimToady std: foo: my foo sub bar {...}
00:36 p6eval std 28979: OUTPUT«ok 00:01 104m␤»
00:37 TimToady my: my my sub sub {...}
00:37 TimToady std: my: my my sub sub {...}
00:37 p6eval std 28979: OUTPUT«ok 00:01 104m␤»
00:38 diakopter std: a: \;
00:38 TimToady isn't that more fun then tormenting rakudo?
00:38 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of 'a' at /tmp/HETvm2VazG line 1:␤------> [32ma: \[33m⏏[31m;[0m␤    expecting any of:␤        capterm␤ prefix or term␤    standard stopper␤ term␤   terminator␤FAILED 00:02 109m␤»
00:38 diakopter s/tormenting/tickling/
00:38 TimToady the two are not mutually exclusive
00:40 diakopter std: a: \; # redefinition?
00:40 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of 'a' at /tmp/l9DiW6IbUH line 1:␤------> [32ma: \[33m⏏[31m; # redefinition?[0m␤    expecting any of:␤        capterm␤ prefix or term␤    standard stopper␤ term␤   terminator␤FAILED 00:01 109m␤»
00:41 TimToady I've been boggling at that
00:41 TimToady std: a: b: \;
00:41 diakopter boggling TimToady is the funnest
00:41 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal use of colon as invocant marker at /tmp/Q2kxfx3fty line 1:␤------> [32ma: b: \[33m⏏[31m;[0m␤    expecting any of:␤  capterm␤ prefix or term␤    standard stopper␤ term␤   terminator␤FAILED 00:02 109m␤»
00:42 diakopter it highlighted the semicolon red, but called it a colon?
00:42 TimToady I think something strange is going on with backtracking
00:42 diakopter who you gonna call
00:42 TimToady goatbusters
00:42 TimToady I think there's a new movie about that...
00:43 diakopter yeah, with gorge croonie
00:47 gfx joined #perl6
00:49 miyagawa joined #perl6
01:03 lestrrat joined #perl6
01:16 Wolfman2000 goatbusters? I thought it was ghostbusters
01:16 jnthn Wolfman2000: No, no.
01:16 jnthn Wolfman2000: What did you think all the animals wondering around were?
01:16 diakopter wolves.
01:16 Wolfman2000 jnthn: just got done with dinner, not aware of everything
01:17 jnthn It's certainly goatbusters. There's even the logo... http://tommymack.com/gb.jpg
01:17 TimToady http://www.themenwhostareatgoatsmovie.com
01:18 Wolfman2000 huh...I'm behind on the times then
01:19 diakopter std: .x xx .x
01:19 p6eval std 28979: OUTPUT«ok 00:01 104m␤»
01:20 pugs_svn r28980 | lwall++ | [STD] fix ++diakopter's wagon
01:20 Wolfman2000 ...what is .x supposed to say anyway?
01:20 Wolfman2000 rakudo: .x
01:20 p6eval rakudo 74f561: OUTPUT«Method 'x' not found for invocant of class 'Failure'␤in Main (file src/gen_setting.pm, line 324)␤»
01:21 TimToady $_ should not start out containing Failure...
01:21 diakopter Wolfman2000: I dunno
01:21 diakopter rakudo: say (.WHAT.new)()
01:21 p6eval rakudo 74f561: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (file <unknown>, line <unknown>)␤»
01:21 jnthn TimToady: And it should start out containing...
01:21 jnthn ?
01:21 diakopter rakudo: say .WHAT
01:22 p6eval rakudo 74f561: OUTPUT«Failure()␤»
01:22 diakopter rakudo: say .WHAT.new.WHAT
01:22 TimToady Object or Any
01:22 p6eval rakudo 74f561: OUTPUT«Failure()␤»
01:22 TimToady Uninitialized variables aren't failures, yet...
01:23 jnthn Is that a "yet..." in that you may spec it, and thus Rakudo needn't change too quickly? ;-)
01:23 TimToady no, that's a 'yet' in the sense that it might hold a failure after the user runs code :)
01:23 jnthn ah, ok
01:24 jnthn Well, I guess we'll just have to fix Rakudo then. :-)
01:24 TimToady see S02:999
01:26 diakopter std: .x.x x .xx xx .x x .xx xx .x
01:26 p6eval std 28979: OUTPUT«ok 00:02 104m␤»
01:26 jnthn TimToady: Ah, thanks for the ref.
01:26 crythias joined #perl6
01:27 TimToady rakudo: my Object $x .= new(); say $x.WHAT
01:27 p6eval rakudo 74f561: OUTPUT«Object()␤»
01:28 diakopter std: `rm -Rf /`
01:28 p6eval std 28979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/0Rg5oYkqsu line 1:␤------> [32m<BOL>[33m⏏[31m`rm -Rf /`[0m␤    expecting any of:␤  bracketed infix␤  infix stopper␤    prefix or term␤   standard stopper␤ statement end␤  statement list␤   term␤     terminator␤
01:28 p6eval ..whitespace␤FAILED 00:01 109m␤»
01:29 Wolfman2000 I wonder...does feather contain the ability for us to use Web.pm yet...or at least try?
01:29 TimToady it's a turing machine, so "yes"  :P
01:29 Wolfman2000 ...I'm asking the wrong question
01:30 Wolfman2000 www.jasonfelds.com <-- Can I theoretically write this mostly static webpage in Web.pm now?
01:30 TimToady or, at least, I'm giving the wrong answer...
01:30 TimToady ENOCLOO
01:30 * TimToady is not webby
01:31 Wolfman2000 ...don't know then. That's fine.
01:31 Wolfman2000 ...and duh: the main person I need is...asleep right now
01:32 colomon Wolfman2000: you said earlier (i've been backlogging) that rakduo couldn't handle infix operators, yes?
01:32 Wolfman2000 colomon: overloading an infix operator
01:32 colomon right
01:33 colomon actually, rakudo handles it quite well.
01:33 Wolfman2000 wonder why I had trouble with it
01:33 colomon what it cannot do is overload an infix operator which is defined in the parrot section of rakudo.
01:33 colomon I believe ^ is probably the case.
01:33 jnthn Aye. We need to finish moving 'em all to the setting.
01:33 colomon basically one of the things going on the last few months has been moving operators "to the setting", as jnthn says.
01:34 colomon just not all done yet.
01:34 colomon afk for a moment
01:34 Wolfman2000 ...what is meant by "to the setting" exactly?
01:34 diakopter std: if \  { } { }
01:34 p6eval std 28979: OUTPUT«ok 00:01 103m␤»
01:34 TimToady sometimes called "prelude" in languages like Haskell
01:34 Wolfman2000 I haven't used Haskell
01:34 jnthn Wolfman2000: We define an increasiongly large chunk of the Perl 6 built-in types, operators and so forth in Perl 6 itself.
01:35 jnthn Wolfman2000: We hadn't used to be able to do that in the earlier days of Rakduo's development.
01:35 TimToady the bits of code that the compiler executes to set its namespaces up before compiling your code
01:35 TimToady we actually consider it a lexical scope surrounding the user's code
01:36 jnthn Wolfman2000: Anyway, for "reasons", for an operator to be overloadable it needs to have been moved away from being in the compiler core and into the Perl 6 part of the built-ins.
01:36 TimToady so that the user can override anything in CORE just the same way as overriding anything in an outer scope
01:36 jnthn We just haven't got all of them moved over yet, that's all.
01:37 Wolfman2000 is there a way I can help with that?
01:38 colomon Is moving more stuff to the setting something that should wait on the ng branch?
01:38 jnthn Wolfman2000: Short answer: yes.
01:38 Wolfman2000 ...it's the long answers that's the tricky bit
01:38 * Wolfman2000 waits for me
01:38 Wolfman2000 waits for it*
01:39 jnthn Wolfman2000: Long answer: we've currently got a fairly sizable branch in which an awful lot of refactors and changes are taking place, so while I could explain to you now how to go about it, I'd rather not take up your time on something that we may just have done in the branch anyway, or that is going to be hard to merge in.
01:40 TimToady EBADTIMING
01:40 jnthn Basically, wait a week. :-)
01:40 Wolfman2000 then compile the parrot + rakudo package again. got it
01:40 TimToady it's okay to salivate in the meantime
01:40 Wolfman2000 ...is there a bot or something that can at least report commits to the repo?
01:40 jnthn There is one here, and it works - kinda.
01:41 jnthn The problem is that it only reports commits to master.
01:41 Wolfman2000 that's all I need to know.
01:41 jnthn And not the branch.
01:41 colomon you can follow the branch (if that's what you're asking) at http://github.com/rakudo/rakudo/commits/ng/
01:41 jnthn So it's been awfully quiet of late. :-)
01:41 Wolfman2000 no commits at all today: noted
01:41 Wolfman2000 I won't worry about it
01:41 Wolfman2000 afk for...about 15-20 minutes.
01:42 colomon Wolfman2000: Note that (as far as I know, anyway), tests can still be usefully written in the mainline while they're working on the branch.
01:42 jnthn Wolfman2000: Anyway, if you take a look at http://github.com/rakudo/rakudo/bl​ob/master/src/setting/Operators.pm you can see what those in the setting already look like.
01:43 TimToady std: 80
01:43 p6eval std 28979: OUTPUT«ok 00:01 102m␤»
01:44 jnthn std: 42
01:44 p6eval std 28979: OUTPUT«ok 00:01 102m␤»
01:44 jnthn aww, no easter eggs
01:44 colomon Wolfman2000: also lots of operators in src/setting/Complex.pm and src/setting/Rat.pm.
01:45 nickgibbon joined #perl6
01:50 jnthn OK, time for me to sleep...night all
01:51 TimToady gnt
01:53 diakopter std: label1: last (label1.new)
01:53 p6eval std 28980: OUTPUT«ok 00:02 108m␤»
01:53 TimToady std: `rm -Rf /`
01:53 p6eval std 28980: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus statement at /tmp/erwzgVIhTQ line 1:␤------> [32m<BOL>[33m⏏[31m`rm -Rf /`[0m␤    expecting any of:␤   bracketed infix␤  infix stopper␤    prefix or term␤   standard stopper␤ statement end␤  statement list␤   term␤     terminator␤
01:53 p6eval ..whitespace␤FAILED 00:02 10…
01:54 TimToady std: a: \;
01:54 p6eval std 28980: OUTPUT«[31m===[0mSORRY![31m===[0m␤You can't backslash that at /tmp/kp5jHeUDuq line 1:␤------> [32ma: \[33m⏏[31m;[0m␤    expecting any of:␤    capterm␤ prefix or term␤    standard stopper␤ term␤   terminator␤FAILED 00:02 109m␤»
01:55 diakopter std: BEGIN my @$$
01:55 p6eval std 28980: OUTPUT«ok 00:02 106m␤»
01:57 * diakopter never gets any lolz from that one. :(
02:01 TimToady that's because it's an anonymous variable
02:02 TimToady .oO(Never @$$ume...)
02:03 Wolfman2000 ...I don't recognize the Q:PIR syntax used for infix:<+>
02:03 TimToady it's a rakudo hack
02:04 Wolfman2000 ...seems like some varient of assembly. Makes me feel...uneasy.
02:04 TimToady it's Parrot Intermediate Language
02:05 TimToady s/Language/Representation/
02:05 TimToady or something like that...
02:05 TimToady so yes, basically OO assemply code
02:05 * TimToady has a dystypic moment
02:06 TimToady or would that be dystybic?
02:06 daemon joined #perl6
02:06 Wolfman2000 rakudo: $num = 4; @list = [1, 2, 3]; $num + @list;
02:06 p6eval rakudo 74f561: OUTPUT«Symbol '$num' not predeclared in <anonymous> (/tmp/J71einejoT:2)␤in Main (file <unknown>, line <unknown>)␤»
02:06 Wolfman2000 right, be strict
02:06 Wolfman2000 rakudo: my $num = 4; my @list = [1, 2, 3]; $num + @list;
02:06 p6eval rakudo 74f561:  ( no output )
02:06 Wolfman2000 rakudo: my $num = 4; my @list = [1, 2, 3]; say $num + @list;
02:06 TimToady say
02:06 p6eval rakudo 74f561: OUTPUT«5␤»
02:07 Wolfman2000 ...thought I saw that on Terminal. Granted, never knew the behavior, but I'm curious.
02:07 TimToady that's wrong
02:07 TimToady oh, no, it's right
02:07 TimToady @list only has one element
02:07 lambdabot No module "only has one element" loaded
02:08 Wolfman2000 ...isn't @list supposed to have three elements?
02:08 TimToady no, @list, dummy
02:08 Wolfman2000 or did I miss the lesson on how to declare multiple items in a list?
02:08 TimToady [] makes a single scalar
02:08 Wolfman2000 rakudo: my $num = 4; my @list = (1, 2, 3); say $num + @list;
02:08 p6eval rakudo 74f561: OUTPUT«7␤»
02:08 TimToady rakudo: my $num = 4; my @list = 1, 2, 3; say $num + @list
02:08 p6eval rakudo 74f561: OUTPUT«7␤»
02:08 Wolfman2000 in that case, it added the number of elements in @list to 4
02:08 TimToady yes
02:09 Wolfman2000 alright...I found a potential use for infix overriding. Give me a few moments to code it up.
02:09 TimToady it did before too, but there was only one element
02:09 TimToady which was an Array object
02:10 Wolfman2000 ...is there a Perl 6 .nanorc file out there?
02:10 TimToady ain't heard 'o one
02:10 TimToady *o'
02:11 Wolfman2000 oh well
02:11 TimToady if PIR makes you uneasy, we have several other backends that target other VMs
02:12 TimToady though they aren't as advanced (yet)
02:12 Wolfman2000 I used to be a teacher assistant on assembly. It will just...take awhile to get the swing of it again
02:12 Wolfman2000 In the meantime, let me take care of some code I'm working on on Feather
02:13 TimToady have the appropriate amount of fun
02:13 TimToady chow &
02:14 cotto_work joined #perl6
02:20 Wolfman2000 Well, this is certainly a challenge. I'm doing something...wrong. The hard part is figuring out what.
02:24 Wolfman2000 ...yeah, assistance is needed. nopaste coming.
02:26 lisppaste3 wolfman2000 pasted "@ans should be 4, 5, 6: not just 6." at http://paste.lisp.org/display/89759
02:32 pointme joined #perl6
02:32 zaslon joined #perl6
02:32 carlin zaslon: help
02:32 zaslon usage: add <name> <link to rss feed> | remove <name> | link <name>
02:32 carlin pointme: rssbot
02:32 pointme carlins's rssbot is at http://github.com/carlins/rssbot/
02:34 colomon Wolfman2000: ('1', '2', '3') is a list of Str not a list of Num.
02:35 Wolfman2000 ...still fails the infix check
02:35 TimToady but also, rakudo doesn't know how to return lists yet.
02:35 Wolfman2000 ...
02:35 TimToady next week...
02:35 colomon what do you mean, "fails the infix check"?
02:35 Wolfman2000 colomon: TimToady answered my question.
02:36 Wolfman2000 apparently lists can't be returned...in any sub.
02:36 TimToady it's one of the things that the ng branch is implementing, I think
02:36 colomon rakudo: sub abc() { return (1, 2, 3); }; say abc().perl;
02:36 p6eval rakudo 74f561: OUTPUT«[1, 2, 3]␤»
02:37 Wolfman2000 what does the .perl do again?
02:37 colomon Returns a Str that can be evaluated to get the original item again (more or less).
02:37 TimToady rakudo: sub abc() { @b = 4,5,6; return @b }; say abc().perl;
02:37 p6eval rakudo 74f561: OUTPUT«Symbol '@b' not predeclared in abc (/tmp/bwHSUcN1in:2)␤in Main (file <unknown>, line <unknown>)␤»
02:38 TimToady rakudo: sub abc() { my @b = 4,5,6; return @b }; say abc().perl;
02:38 Wolfman2000 use my
02:38 p6eval rakudo 74f561: OUTPUT«[4, 5, 6]␤»
02:38 TimToady hmm
02:38 TimToady maybe that's not the problem
02:38 TimToady rakudo: sub abc() { my @b = 4,5,6; return @b }; say abc()
02:38 p6eval rakudo 74f561: OUTPUT«456␤»
02:38 colomon Yeah, the problem is that he's trying to add a list of strings using a function that takes a list of Num.  :)
02:39 Wolfman2000 colomon: I removed the quotes
02:39 lisppaste3 wolfman2000 annotated #89759 "Okay, quotes removed. Still having the same issue." at http://paste.lisp.org/display/89759#1
02:40 colomon rakudo: multi sub infix:<+>(Num $a, Num $b) { $a <<+<< $b; }; my @ans = 1 + (1, 2, 3); say @ans.perl;
02:41 p6eval rakudo 74f561: OUTPUT«[4]␤»
02:41 TimToady rakudo: sub abc() { my @b = 4,5,6; return @b }; my @x = abc(); say @x.perl
02:41 p6eval rakudo 74f561: OUTPUT«[4, 5, 6]␤»
02:41 colomon whoops.
02:41 colomon rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< $b; }; my @ans = 1 + (1, 2, 3); say @ans.perl;
02:41 p6eval rakudo 74f561: OUTPUT«Symbol '$b' not predeclared in infix:+ (/tmp/18zhjmeTuT:2)␤in Main (file <unknown>, line <unknown>)␤»
02:41 colomon dang it
02:41 Wolfman2000 gave you a tough one, didn't I?
02:41 colomon rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< @b; }; my @ans = 1 + (1, 2, 3); say @ans.perl;
02:41 p6eval rakudo 74f561: OUTPUT«[4]␤»
02:41 colomon I'm just full of typos tonight.
02:42 Wolfman2000 This is something that is often done in math. Usually done more with multiplication, but...the point stands.
02:42 colomon eh, at least it's an interesting question.
02:42 colomon BTW, you don't actually need to overload to do this.  $num <<+<< @list does it, and that does work.
02:42 TimToady generally Perl 6 doesn't like to do hypers implicitly like mathematicians do
02:43 Wolfman2000 ...not familiar with the <<+<< operator
02:43 colomon Oh, man, you'll die when you see what you can do with the hyper operators.
02:43 Wolfman2000 rakudo: my $num = 2; my @list = (4, 6, 8); say $num <<+<< @list;
02:43 p6eval rakudo 74f561: OUTPUT«6810␤»
02:43 colomon that means, copy the first argument until there are as many of them as the second argument, then add them pairwise.
02:44 colomon and you can stick any infix operator in there instead of +.
02:44 Wolfman2000 rakudo: my $num = 2; my @list = (4, 6, 8); say join(", ", $num <<*<< @list);
02:44 p6eval rakudo 74f561: OUTPUT«8, 12, 16␤»
02:44 Wolfman2000 ...
02:44 Wolfman2000 wow
02:45 colomon also is >>+>>, >>+<<, and ,
02:45 colomon <<+>>
02:45 Wolfman2000 rakudo: my $num = 2; my @list = (4, 6, 8); say join(", ", $num >>*>> @list);
02:45 p6eval rakudo 74f561: OUTPUT«Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤in Main (file <unknown>, line <unknown>)␤»
02:45 TimToady see S03:3756
02:45 colomon ah, that's a rakudo bug.
02:45 Wolfman2000 colomon: I had no way of knowing that
02:45 colomon oh, wrong.
02:46 colomon if you're doing <<+<< or >>*>>, the arrows point to the short side.
02:46 Wolfman2000 Then what are <<?>> and >>?<< for?
02:46 colomon so that should have been $num <<*<< @list
02:46 TimToady <<op>> is when you don't know which side is short
02:46 colomon <<?>> add two lists, extending the shorter (if there is one)
02:46 TimToady >>op<< is when they're the same
02:47 colomon right, and signals an error if they are not.
02:47 TimToady btw, more prettily written with «op» etc
02:47 colomon Also, I believe the hyper operators are allowed to thread (though not yet implemented anyway as far as I know).
02:48 TimToady implemented in pugs
02:48 colomon (yeah, I can't easily type Unicode here)
02:48 Wolfman2000 I may be able to type «+», but then shouldn't « and » just become...no clue if it's infix or prefix or postfix here.
02:50 colomon They are a modifier to generate a fancy infix operator from a basic infix operator.  :)
02:51 colomon Though you can also say -<<@a to negate a list (for instance).
02:51 colomon (That is, prefix - as a hyperoperator).
02:51 Wolfman2000 let me get to the hyper stuff first please. I feel like I'm missing something
02:52 eternaleye joined #perl6
02:53 colomon rakudo: multi sub infix:<+>(Num $a, @b) { $a <<+<< @b; }; my @ans = 1 + (1, 2, 3); say @ans.perl;
02:53 p6eval rakudo 74f561: OUTPUT«[2, 3, 4]␤»
02:53 colomon Aha, there's the issue with your code from before.
02:53 colomon The Num @b binding wasn't working.
02:54 Wolfman2000 rakudo: multi sub infix:<+>(Num $a, @b) { $a <<+<< @b; }; my @ans = 1 + (1, 2, 3); say @ans;
02:54 p6eval rakudo 74f561: OUTPUT«234␤»
02:54 Wolfman2000 rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< @b; }; my @ans = 1 + (1, 2, 3); say @ans.perl;
02:54 colomon rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< @b; }; my @ans = 1 + (1.0, 2.0, 3.0); say @ans.perl;
02:54 p6eval rakudo 74f561: OUTPUT«[4]␤»
02:54 p6eval rakudo 74f561: OUTPUT«[4]␤»
02:54 Wolfman2000 ...
02:55 colomon looks to me like a bug.
02:55 Wolfman2000 So...how can I declare an array of Nums then?
02:55 Wolfman2000 Wait...I found a bug?
02:55 colomon That's my guess.
02:55 Wolfman2000 I don't know whether to smile or frown at this.
02:55 colomon Though maybe it's my inexperience declaring typed arrays.
02:56 Wolfman2000 pmichaud: I believe you are one of the experts here. Did I just uncover a bug with declaring typed arrays?
02:56 colomon Back in the good old days of six months ago, it was hard to program for more than ten minutes in Rakudo without generating a bug.
02:56 colomon rakudo: my Num @a = (1.0, 2.0, 3.0);
02:57 p6eval rakudo 74f561: TIMED_OUT
02:57 colomon woah, that's ugly.
02:57 Wolfman2000 ...never had that happen before
02:57 colomon Hmmm, looks like that should have worked.
02:58 carlin The evalbot has had some issues with timing out lately
02:58 carlin rakudo: class A {};
02:58 Wolfman2000 carlin: That shouldn't have timed out.
02:58 p6eval rakudo 74f561: TIMED_OUT
02:58 carlin It's a problem with the bot, works fine locally
03:02 colomon Wolfman2000: Anyway, the fundamental problem with your example is that your operator is never being called.
03:02 Wolfman2000 even though it should be
03:02 colomon rakudo: multi sub infix:<+>(Num $a, Num @b) { say "here!"; $a <<+<< @b; }; my @ans = 1 + (1.0, 2.0, 3.0); say @ans.perl;
03:02 p6eval rakudo 74f561: OUTPUT«[4]␤»
03:03 TimToady leave the Num off of @b
03:03 colomon Of course, that example shouldn't match.
03:03 colomon Right, that fixes things.
03:04 colomon rakudo: multi sub infix:<+>(Num $a, Num @b) { say "here!"; $a <<+<< @b; }; my @ans = 1.0+ (1.0, 2.0, 3.0); say @ans.perl;
03:04 p6eval rakudo 74f561: OUTPUT«[4]␤»
03:04 colomon TimToady: is that Num @b the right way to specify an array of Num?
03:05 TimToady Num is a nominal type, so only matches explicitly Num arrays
03:05 TimToady but @ should match (1,2,3)
03:05 colomon Right, the code works fine if you leave off the Num.
03:05 colomon And so it shouldn't work with Num @b?  Guess it's not a bug then, just something confusing.  :)
03:06 Wolfman2000 But num should match 1.0 as well as 1
03:06 Wolfman2000 Sure seems like a bug
03:06 TimToady it's nominal typing, not structural typing
03:06 colomon Actually, Num shouldn't match 1 -- 1 is Int.
03:06 Wolfman2000 But 1 is also a Num
03:07 colomon rakudo: multi sub infix:<+>(Num $a, Num @b) { say "here!"; $a <<+<< @b; }; my Num @list = (1.0, 2.0, 3.0);  my @ans = 1.0 + @list; say @ans.perl;
03:07 p6eval rakudo 74f561: TIMED_OUT
03:08 colomon That last one actually works locally.
03:09 colomon Wolfman2000: 1 is not a Num, but there is a Num equal to it.  (This may be wildly different than the current spec, but it's certainly how Rakudo works.)
03:09 colomon rakudo: say 1.WHAT;
03:09 Wolfman2000 ...it worked locally on my end too
03:09 p6eval rakudo 74f561: OUTPUT«Int()␤»
03:10 colomon rakduo: say 1.Num.WHAT;
03:10 Wolfman2000 ...I think you froze rakudo
03:10 Wolfman2000 or didn't spell it right
03:11 Wolfman2000 rakudo: say 1.Num.WHAT;
03:11 p6eval rakudo 74f561: OUTPUT«Num()␤»
03:11 colomon there you go.
03:11 colomon I should be in bed.  :)
03:11 Wolfman2000 Alright...Int @a is an array of Ints only. Num @b is an array of Nums only. How can I have an array of Ints and Nums, but no Strs?
03:11 frew__ joined #perl6
03:12 TimToady eventually, Numeric @b
03:12 colomon This is an area where Rakudo doesn't match the spec yet (because the spec is moving too fast).
03:13 Wolfman2000 let me guess
03:13 Wolfman2000 next week...
03:13 colomon Wolfman2000: In general, I've left the types off all of the math work I've done.
03:13 colomon Nope, it will take longer than that.
03:13 colomon At least, as far as I know.
03:14 colomon I was actually chomping at the bit to work on it a few weeks back, but moritz_ convinced me we should wait a bit before actually tackling all those changes.
03:16 Wolfman2000 ...right, I can leave types off of arrays
03:16 Wolfman2000 Still, I wonder...
03:16 Wolfman2000 rakudo: (1, 2.0).WHAT
03:16 p6eval rakudo 74f561:  ( no output )
03:16 Wolfman2000 ...right
03:16 Wolfman2000 rakudo: say (1, 2.0).WHAT
03:16 p6eval rakudo 74f561: OUTPUT«List()␤»
03:17 Wolfman2000 ...I was hoping more for a list of what, but alright
03:18 colomon But it's not a list of anything in Rakudo.
03:18 colomon 1 and 2.0 are different types.
03:19 colomon BTW, according to the spec, 2.0 is no longer a Num.  It's now a Rat of some sort.  But Rakudo doesn't do that yet.
03:19 colomon Right, off to bed.
03:20 Wolfman2000 g'night
03:21 patspam joined #perl6
03:30 Wolfman2000 I think I will definitely look forward to Perl 6 when it becomes mainstream.
03:30 Wolfman2000 The hard part...will be getting there.
03:30 envi^home joined #perl6
03:44 envi^office joined #perl6
03:51 orafu joined #perl6
04:03 dj_goku joined #perl6
04:19 szabgab joined #perl6
04:20 meppel joined #perl6
04:45 petdance joined #perl6
04:52 Jerry_ joined #perl6
04:53 Jerry_ hi, I am learning perl just now, is it ture to understand $_ as a temp variable ?
04:56 diakopter it doesn't mind if you use it temporarily, but it's called the "topic variable"
04:58 Jerry_ a dump question, how to define "topic variable"?  I just had a little try with perl...
05:00 Wolfman2000 You generally don't set $_
05:01 dj_goku you don't need to define it. Its there for free :D
05:02 Jerry_ my background is C, so can i understand it as a void * for $_ = $bar ?
05:04 Jerry_ maybe cos I am using the codepad.org , so I have to set $_ = to something, otherwise it doesn't work....
05:05 dj_goku can you give a code same?
05:05 dj_goku or pastebin it actually
05:06 Jerry_ $sentence = "Up and under"; $_ = $sentence; if (/under/) { print "We're talking about rugby\n". $_; }
05:07 Jerry_ this will work, but without $_ = $sentence; it does not work in the www.codepad.org
05:08 Wolfman2000 Did you ever try: if ($sentence ~= /under) ?
05:08 Wolfman2000 or =~?
05:10 Jerry_ yea, if ($sentence ~= /under/)  will exec print
05:10 justatheory joined #perl6
05:10 bpetering joined #perl6
05:11 Jerry_ but the tutorial say "The $_ variable is the default for many Perl operations and tends to be used very heavily."
05:11 Jerry_ so i want to understand it better.
05:12 diakopter Jerry_: perhaps you'd find more help for Perl 5 on a Perl 5 channel..
05:14 Jerry_ so, in perl6, $_ is not used?
05:14 Wolfman2000 It is
05:14 carlin In Perl it is used a little bit differently
05:14 carlin *Perl 6
05:15 Jerry_ I just don't want to learn something I won't be using in perl6.
05:15 Wolfman2000 Perl 6 is going to change a lot of what Perl 5 uses.
05:15 pugs_svn r28981 | lwall++ | [t/spec] parsefail with listop inside ?? !!
05:15 jaldhar joined #perl6
05:16 Jerry_ right, so that means no dirty tricks?
05:16 Wolfman2000 I never said that
05:18 Jerry_ I used to program in python for some work, but latter I found it quite tedious in some way...
05:20 Jerry_ so i start to learn perl, also because most IC designer use perl. and I found it's a great language for what i will be doing.
05:44 phenny joined #perl6
05:44 omega joined #perl6
05:44 Maddingue joined #perl6
05:45 gfx joined #perl6
05:56 hitsubunnu joined #perl6
05:57 frew joined #perl6
06:00 bpetering dukeleto++
06:00 bpetering ... hitting bugs ahead of me
06:02 dukeleto bpetering: what did I do now?
06:03 bpetering dukeleto: hit parrot #979...
06:04 bpetering dukeleto: if i'm hitting that, do you think i could workaround by removing installed parrot?
06:04 dukeleto bpetering: yes.
06:04 bpetering dukeleto: wonderful. many thanks :)
06:05 dukeleto bpetering: it is because you are running a parrot binary in the source tree. you must run the install parrot binary for that stupid error to not happen. or remove your installed parrot :)
06:05 dukeleto s/install/installed/
06:06 bpetering dukeleto: trying now...
06:07 dukeleto in other news, parrot plumage is now using the new NQP (the language formerly known as nqp-rx)
06:07 japhb dukeleto, and as I get spare cycles, I'm converting the code to make better use of it.  :-)
06:07 bpetering what are the implications of that?
06:08 frew__ joined #perl6
06:08 japhb bpetering, you mean plumage switching to nqp-rx?
06:08 dukeleto bpetering: proper perl 6 regex and protoregex support, variable interopation, lots of other stuff I don't understand
06:08 bpetering japhb: yep
06:09 japhb bpetering, what dukeleto said.
06:09 japhb A lot of hackish stuff gets a lot cleaner and less painful to work with.
06:09 japhb But for me the single most important change is that I can finally do OO code.
06:10 bpetering japhb: is there a concise way to sum up what's in Perl 6 that isn't in NQP?
06:10 japhb (Original NQP did not have syntax for declaring attributes, so OO was basically unusable without herculean hacks)
06:10 dukeleto nqp-rx basically took the rough edges off of nqp and added better regexen support
06:11 dukeleto bpetering: http://en.wikibooks.org/wiki/Parr​ot_Virtual_Machine/Not_Quite_Perl
06:11 japhb bpetering, I'd say: NQP is the part of Perl 6 that does not require a setting of any sort, and can be compiled down to very efficient code -- all the stuff that Perl 6 does lots of magic behind the scenes, isn't there.
06:12 dukeleto bpetering: but simply: perl 6 without the syntax sugar or dwimi-ness
06:12 japhb ... and library.  :-)
06:12 dukeleto bpetering: it can do most of what perl 6 can do, but you need to say it very carefully :)
06:12 bpetering dukeleto: that's a good meme :)
06:13 dukeleto bpetering: it's essential feature is that it is an easy-to-parse subset of perl 6
06:13 dukeleto bpetering: which means it can be fast, yet reasonably high level
06:13 dukeleto bbiab
06:14 bpetering np
06:14 bpetering japhb: there's obviously a difference in parsing speed, is there a difference in runtime speed also?
06:15 carlin nqp: say 'foo'
06:15 p6eval nqp: OUTPUT«Confused at line 1, near "say 'foo'"␤current instr.: 'parrot;HLL;Grammar;panic' pc 365 (src/cheats/hll-grammar.pir:197)␤»
06:15 carlin nqp: say('foo')
06:15 p6eval nqp: OUTPUT«foo␤»
06:15 japhb bpetering, NQP can execute its limited subset of Perl 6 faster than Rakudo can -- and it's designed to be easy to add optimization passes to.
06:15 japhb It gets that performance by not being general.
06:15 japhb For example, no assignment -- only binding.
06:16 bpetering hence the "speaking carefully"?
06:17 japhb quite
06:18 frew joined #perl6
06:18 bpetering well thanks japhb, heaps informative :)
06:19 * bpetering off to wrangle some more parrots
06:19 japhb :-)
06:19 bpetering dukeleto++, japhb++
06:24 astrojp left #perl6
06:28 bpetering also, carlin: good demonstration. :) carlin++
06:28 dukeleto nqp: say 42
06:28 p6eval nqp: OUTPUT«Confused at line 1, near "say 42"␤current instr.: 'parrot;HLL;Grammar;panic' pc 365 (src/cheats/hll-grammar.pir:197)␤»
06:30 diakopter nqp: say(42)
06:30 p6eval nqp: OUTPUT«42␤»
06:33 bpetering nqp: class upper { has $.snobbery }; my $goodness = upper.new; $goodness.snobbery = 'pointless';
06:33 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1616 (src/Regex/Cursor-builtins.pir:179)␤»
06:33 bpetering OH NOES
06:33 diakopter well..
06:34 bpetering oops
06:34 bpetering nqp: class upper { has $.snobbery is rw }; my $goodness = upper.new; $goodness.snobbery = 'pointless';
06:34 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1616 (src/Regex/Cursor-builtins.pir:179)␤»
06:34 bpetering gah, it's that dang error again.
06:35 bpetering diakopter: what am i doing wrong?
06:37 diakopter asking nqp to run Perl 6 code?
06:37 TimToady no =, just :=
06:37 ssm joined #perl6
06:38 bpetering paying attention fail
06:38 bpetering nqp: class upper { has $.snobbery is rw }; my $goodness := upper.new; $goodness.snobbery = 'pointless';
06:38 p6eval nqp: OUTPUT«sh: ./nqp: No such file or directory␤»
06:39 bpetering nqp: class upper { has $.snobbery is rw }; my $goodness := upper.new; $goodness.snobbery := 'pointless'; say($goodness.snobbery);
06:39 p6eval nqp: OUTPUT«sh: ./nqp: No such file or directory␤»
06:39 TimToady recompiling maybe
06:39 * diakopter thinks so too
06:39 TimToady needs a 'make snap'
06:43 diakopter nqp: say(say)
06:43 p6eval nqp: OUTPUT«say␤»
06:43 bpetering that's surprising
06:43 envi^office joined #perl6
06:43 diakopter nqp: say(die)
06:43 p6eval nqp: OUTPUT«Null PMC access in get_string()␤current instr.: 'print' pc 57915 (gen/nqp-actions.pir:0)␤»
06:45 * diakopter types software, now
06:45 bpetering with "say(say)", is say an object that stringifies to its own name? .oO( how does that work? )
06:48 bpetering rakudo: say say.WHAT;
06:48 p6eval rakudo 74f561: OUTPUT«say requires an argument at line 2, near ".WHAT;"␤in Main (file src/gen_setting.pm, line 2593)␤»
06:50 pmichaud nqp doesn't do public attributes or method accessors
06:50 pmichaud at least, not yet
06:50 pmichaud so it only knows has $!snobbery
06:51 bpetering well, snobbery is best kept to one's self
06:51 pmichaud hear hear
06:59 Su-Shee joined #perl6
06:59 Su-Shee good morn.. well "very early".
07:00 pmichaud good morning
07:00 pmichaud well, "very late"  :)
07:01 Su-Shee and also very silent probably and noone around. :)
07:07 ihrd joined #perl6
07:09 ihrd joined #perl6
07:13 ihrd joined #perl6
07:16 ihrd joined #perl6
07:16 ihrd left #perl6
07:23 zloyrusskiy joined #perl6
07:23 bpetering hi Su-Shee :)
07:28 mberends joined #perl6
07:36 NorwayGeek joined #perl6
07:38 ihrd joined #perl6
07:39 ihrd left #perl6
07:41 moritz_ good localtime() everybody
07:42 mberends good morning moritz_
07:53 Su-Shee moritz_: you're late. ;)
07:54 moritz_ Su-Shee: I am, the table tennis match late last night takes its toll :/
07:54 Su-Shee "you're not 20 anymore.." :)
08:10 iblechbot joined #perl6
08:20 NorwayGeek joined #perl6
08:21 Bzek joined #perl6
08:29 ihrd joined #perl6
08:29 ihrd left #perl6
08:31 JimmyZ joined #perl6
08:39 agentzh joined #perl6
08:40 mariuz joined #perl6
08:42 mathw Good localtime
08:44 diakopter ahoy
08:54 mubot joined #perl6
08:55 carlin mubot++
08:55 carlin mubot: karma mubot
08:55 mubot mubot has a karma of 1
08:55 carlin mubot--
08:55 carlin mubot: karma mubot
08:55 mubot mubot has a karma of 0
08:55 mberends carlin++
08:55 carlin (Perl 6)++
08:55 carlin mubot: karma Perl 6
08:55 mubot Perl 6 has a karma of 1
08:56 carlin mubot: purge mubot
08:56 mubot mubot's karma has been reset
08:56 carlin mubot: karma carlin
08:56 mubot carlin has a karma of 1
08:56 mberends carlin++ # really, you deserve it
08:57 mberends mubot: karma carlin
08:57 diakopter mubot: karma carlin
08:57 mubot carlin has a karma of 2
08:57 mubot carlin  is of an unknown quantity
08:57 diakopter mubot: karma carlin
08:57 mubot carlin   is of an unknown quantity
08:57 diakopter mubot: karma carlin 2
08:57 mubot carlin 2 is of an unknown quantity
08:57 diakopter mubot: karma carlin
08:57 mubot carlin has a karma of 2
08:57 diakopter ++carlin
08:57 diakopter mubot: karma carlin
08:57 mubot carlin has a karma of 2
08:58 diakopter mubot: ++carlin
08:58 mubot Sorry, I don't understand that command
08:58 diakopter mubot: carlin++++
08:58 mubot Sorry, I don't understand that command
08:58 diakopter carlin++++
08:58 carlin Not quite production ready yet
08:58 diakopter where 'production' means 'ready to be fuzzed'
08:58 diakopter :D
08:59 carlin mubot: karma carlin
08:59 mubot carlin has a karma of 3
08:59 diakopter karma carlin
08:59 diakopter @karma carlin
08:59 lambdabot carlin has a karma of 30
08:59 diakopter ?karma carlin
08:59 lambdabot carlin has a karma of 30
08:59 diakopter @jump off a cliff
08:59 lambdabot Unknown command, try @list
09:00 carlin mubot: jump off a cliff
09:00 mubot Sorry, I don't understand that command
09:00 carlin pointme: all
09:00 pointme Are you insane!?
09:00 carlin Best error I have
09:01 diakopter pointme:
09:01 pointme Sorry, I don't know anything about that project
09:01 diakopter pointme: orly
09:01 pointme Sorry, I don't know anything about that project
09:01 carlin pointme: rssbot
09:01 pointme carlins's rssbot is at http://github.com/carlins/rssbot/
09:02 carlin pointme: http-daemon
09:02 pointme mberends's http-daemon is at http://gitorious.org/http-daemon/
09:02 diakopter bots: go forth and multiply
09:08 moritz_ hugme: show http-daemon
09:08 hugme moritz_: sorry, I don't know anything about 'http-daemon'
09:08 moritz_ hugme: show hugme
09:08 hugme moritz_: the following people have power over 'hugme': PerlJam, TimToady, [particle], jnthn, masak, mberends, moritz_, pmichaud. URL: http://github.com/moritz/hugme/
09:12 reid04 joined #perl6
09:24 pmurias joined #perl6
09:49 buu joined #perl6
09:54 dakkar joined #perl6
09:58 mathw joined #perl6
09:58 Woodi joined #perl6
09:58 frettled joined #perl6
09:58 rapacity joined #perl6
10:02 mathw joined #perl6
10:02 Woodi joined #perl6
10:02 frettled joined #perl6
10:02 rapacity joined #perl6
10:04 mathw joined #perl6
10:04 Woodi joined #perl6
10:04 frettled joined #perl6
10:04 rapacity joined #perl6
10:06 mathw joined #perl6
10:06 Woodi joined #perl6
10:06 frettled joined #perl6
10:06 rapacity joined #perl6
10:09 mathw joined #perl6
10:09 Woodi joined #perl6
10:09 frettled joined #perl6
10:09 rapacity joined #perl6
10:11 mathw joined #perl6
10:11 Woodi joined #perl6
10:11 frettled joined #perl6
10:11 rapacity joined #perl6
10:13 mathw joined #perl6
10:13 Woodi joined #perl6
10:13 frettled joined #perl6
10:13 rapacity joined #perl6
10:16 mathw joined #perl6
10:16 Woodi joined #perl6
10:16 frettled joined #perl6
10:16 rapacity joined #perl6
10:18 krunen joined #perl6
10:18 mathw joined #perl6
10:18 Woodi joined #perl6
10:18 frettled joined #perl6
10:18 rapacity joined #perl6
10:22 mathw joined #perl6
10:22 Woodi joined #perl6
10:22 frettled joined #perl6
10:22 rapacity joined #perl6
10:23 IllvilJa joined #perl6
10:23 mathw joined #perl6
10:23 Woodi joined #perl6
10:23 frettled joined #perl6
10:23 rapacity joined #perl6
10:25 mathw joined #perl6
10:25 Woodi joined #perl6
10:25 frettled joined #perl6
10:25 rapacity joined #perl6
10:27 mathw joined #perl6
10:27 Woodi joined #perl6
10:27 frettled joined #perl6
10:27 rapacity joined #perl6
10:29 mathw joined #perl6
10:29 Woodi joined #perl6
10:29 frettled joined #perl6
10:29 rapacity joined #perl6
10:31 mathw joined #perl6
10:31 Woodi joined #perl6
10:31 frettled joined #perl6
10:31 rapacity joined #perl6
10:33 mathw joined #perl6
10:33 Woodi joined #perl6
10:33 frettled joined #perl6
10:33 rapacity joined #perl6
10:37 mathw joined #perl6
10:37 Woodi joined #perl6
10:37 frettled joined #perl6
10:37 rapacity joined #perl6
10:40 mathw joined #perl6
10:40 Woodi joined #perl6
10:40 frettled joined #perl6
10:40 rapacity joined #perl6
10:41 moritz_ .oO( excessive link flapping )
10:44 eiro :-)
10:44 kst` joined #perl6
10:44 eiro hello perl6 mongers
10:44 mathw joined #perl6
10:44 Woodi joined #perl6
10:44 frettled joined #perl6
10:44 rapacity joined #perl6
10:45 moritz_ hi eiro
10:48 mathw joined #perl6
10:48 Woodi joined #perl6
10:48 frettled joined #perl6
10:48 rapacity joined #perl6
10:50 mathw joined #perl6
10:50 Woodi joined #perl6
10:50 frettled joined #perl6
10:50 rapacity joined #perl6
10:51 mathw joined #perl6
10:51 Woodi joined #perl6
10:51 rapacity joined #perl6
11:08 parduncia joined #perl6
11:17 envi^home joined #perl6
11:20 masak joined #perl6
11:20 masak good afternoon, #perl6.
11:20 mberends masak, howdy! nice start on Temporal :)
11:20 masak mberends: thanks.
11:21 masak I went home and refactored it, so that there's only one 'new' candidate accepting a string.
11:21 masak hold on, I'll push those changes.
11:21 * mberends holds on
11:22 masak pushed.
11:23 masak it's less pretty than I had hoped, because there's something strange happening which botches $/ on the way into the closures.
11:23 masak otherwise, I wouldn't have to use explicit signatures.
11:25 eiro_ joined #perl6
11:26 masak strangely enough, I've yet to produce a small example which reproduces the $/ botching.
11:31 mariuz joined #perl6
11:35 masak &
11:49 SmokeMachine joined #perl6
11:52 lichtkind joined #perl6
12:02 jaffa8 joined #perl6
12:05 masak TimToady: (subs quining themselves) I've been using that pattern lately in some p6 code! :)
12:08 * masak discovers the word 'blorst' in STD.pm
12:08 masak cute :)
12:18 eiro_ http://www.merriam-webster.com/dictionary/blorst gave no clue :(
12:18 masak Wolfman2000: yes, feather can host Web.pm stuff. but my guess is that anyone who tries will need a lot of hand-holding. my plan is to petition help from tolerant people to successively reduce the need for hand-holding.
12:18 masak eiro_: 'block or statement'
12:18 eiro_ oh ... that's why ...
12:18 eiro_ thanks masak
12:19 masak STD.pm is heavy on such internal lingo. that's part of why I look forward to doing a review on it.
12:31 masak halp! I want to watch jnthn++'s "Solved in Perl 6" on this page, but I'm unable to make a video start playing. http://www.nicovideo.jp/mylist/15370462
12:34 moritz_ masak: it seems one has to log in first to view anything there
12:34 moritz_ masak: at least  s/www/de/ in the url lead me to that conclusion
12:34 * masak grumbles
12:38 jnthn oh hai
12:38 jnthn Finally, I think winter is catching up with me...
12:38 * jnthn seems to have a slight cold-ish thingy
12:48 masak it's definitely the season for that.
12:49 masak jnthn: is there a Swine Flu scare in Slovakia? there is here in Sweden.
12:49 jnthn masak: Not yet, but Ukraine is busily having one just over the border.
12:49 jnthn Thankfully, the border at the other end of the country from me...but then, given how small Slovakia is that probably doesn't mean that much.
12:50 jnthn I guess the only upside is that there's pictures of Yulia Tymoshenko in the news. :-/
12:50 masak jnthn: the media are twisting the screws, giving conflicting headlines such as "people (especially children) might suffer and/or die if vaccinated" and "everone needs to get a vaccination, and the supplies are running out!"
12:50 jnthn Oh, the media are always full of crap.
12:51 masak nod.
12:51 jnthn They're almost a bigger problem than swine flu itself. :-/
12:51 masak they're definitely worsening the original problem, at least.
12:51 jnthn Indeed.
12:51 masak but they also sometimes give real information, so it's a tough call.
12:51 jnthn But of course, people panicing for news and information makes them money.
12:52 jnthn Thus there's an incentive to hype up anything and everything.
12:52 masak jnthn: that's true for the magazines bought in stores. those delivered at doorsteps in the mornings are usually a bit more sane. but even they are acting up right now.
12:53 jnthn :-(
12:53 jnthn In the UK, those ones were quite a mixed bunch.
12:54 masak thank God for the Internet, so that I can make an informed opinion. (not kidding.)
12:54 moritz_ so you think the intertubes are not hyped?
12:54 masak moritz_: I wasn't saying that. there's a lot of crap there, too.
12:55 masak moritz_: but it's easier (at least for me) to judge the quality and authoritativeness of that information.
12:55 jnthn moritz_: No, quite the opposite. But there's free access to multiple sources.
12:55 parduncia joined #perl6
12:56 masak Intertubes without source criticism is probably worse than reading the papers. but with the proper grain-of-salt/skepticism, it's better, in my opinion.
13:05 * moritz_ has a hard time finding good, non-hyped news sources on the internet
13:07 Su-Shee swine flu vaccination on every channel.. (literally :)
13:08 moritz_ #perlde is free of it, atm :-)
13:10 jnthn moritz_: There's this good one called The Onion...very reliable... ;_)
13:10 takadonet joined #perl6
13:11 mathw moritz_: correction: s/on the internet/on this planet/
13:11 masak moritz_: for good Swine Flu information, the WHO worked for me.
13:13 masak jnthn: The Onion is awesome. as is most everything balancing being poignant truth and satire.
13:13 Su-Shee moritz_: and on the subject "good new resources": aldaily.com
13:13 mathw masak: The Onion's top story this morning was fantastic
13:13 masak mathw: URL?
13:14 jnthn masak: Who?
13:15 mathw masak: http://www.theonion.com/content/new​s/congress_approves_500_billion_for
13:15 masak jnthn: http://www.free-jokes-online.com/jokes/hu,​_who...kofi,_coffee...yes_sir,_yassir.html
13:21 moritz_ the second last paragraph (of mathw's link) is especially nice
13:21 jnthn masak: lol
13:22 jnthn moritz_: Yes!
13:28 mathw moritz_: it is the crowning achievement of the article
13:32 * jnthn shoves his latest package decls work into ng
13:33 jnthn Not quite right yet, but by the end of the day we should be able to write class declarations again.
13:35 masak jnthn: are there stepwise instructions somewhere for making ng build?
13:36 moritz_ 1) grab the latest and greatest parrot; install it
13:36 jnthn 1) Switch to ng branch. Do Configure.pl --gen-parrot
13:36 jnthn 2) Grab, build and install nqp-rx
13:36 jnthn 3) make
13:36 jnthn 4) profit
13:36 masak jnthn: do I install nqp-rx globally?
13:36 moritz_ shouldn't that be 3) make profit ? :-)
13:36 moritz_ masak: to the same dir where you installed parrot lives
13:37 moritz_ the one you use for rakudo too
13:37 jnthn masak: You install it against the same Parrot you are building Rakudo ng with.
13:37 masak jnthn: how do I do that?
13:37 jnthn masak: Well, that's why I told you to use --gen-parrot :-/
13:37 masak yes.
13:37 jnthn masak: Anyway, when you configure nqp-rx then it's --parrot-config=...
13:37 moritz_ perl Configure.pl --parrot-conf=$path/to/parrot_config
13:37 jnthn where ... is the ...what moritz_ said
13:37 moritz_ erm yes, config, not conf
13:37 masak jnthn, moritz_: ah. thanks.
13:38 masak now I think I have sufficient information to try it out.
13:38 jnthn masak: But srsly, since I think master and ng have different ideas about required Parrot version...I sort of suggest --gen-parrot just so you've got it all self contained.
13:38 jnthn You won't want to use ng for anything yet.
13:38 masak jnthn: yes, I'll definitely do --gen-parrot
13:39 masak I'm doing that for my Rakudo fork too. keeps things less messy.
13:39 masak also, I prefer the globally installed Rakudo to be the most stable one.
13:40 masak so, do I just put nqp-rx directly in the parrot/ dir created by --gen-parrot?
13:42 moritz_ you can put it in any directory really
13:42 moritz_ I keep it outside the rakudo dir
13:42 Wolfman2000 *yawn* morning
13:42 jnthn masak: Doesn't matter - what matters is what path you give to --pparrot-config when configuring it.
13:42 masak ah, so the only important thing is that I do --parrot-config?
13:43 masak goodie.
13:43 Wolfman2000 masak: I forgot: you're the one that is working on Web.pm, right?
13:44 ihrd joined #perl6
13:44 jnthn oh, I just remembered why I didn't push this before...
13:44 jnthn I broke "module" and thus Test.pm
13:45 jnthn At least pmichaud is asleep, so I can fix it before he wakes up, and it'll be like it never happened. :-)
13:45 masak :)
13:46 jnthn Aww, I think I'm going to have to go and read the modules spec too.
13:47 jnthn I mean, can modules have methods. If so, what on earth does that mean. etc.
13:49 jnthn Heh. I think the answer is "no"
13:49 * moritz_ thinks so too
13:49 jnthn Which is good, 'cus a different answer woulda hurt my brain.
13:54 masak if I match a string against an OR junction containing two or more regexes, and the match succeeds, can I count on $/ containing a successful Match object?
13:55 jnthn No, because the order of evaluation is not promised.
13:55 jnthn And there may be concurrent effects involved.
13:55 masak dang. :P
13:55 jnthn (That's my immediate reaction to why it's likely a problem, not definitive, btw)
13:55 masak understood.
13:56 jnthn The problem with relying on it is that imagine we parallelize the evaluation.
13:56 jnthn We may run one regex that is WIN and that's enough, but we may still have another running which will FAIL. We don't care overall about the fail, because one win was enough.
13:56 jnthn But it may have set $/.
13:57 masak aye.
13:58 pdcawley joined #perl6
13:58 PerlJam Would $/ ever contain a junction of Match objects?
13:58 PerlJam (good morning btw)
13:58 masak the use case I see is something like `if (/<foo> <bar>/ | /<bar> <foo>/) { ... $<foo> ... $<bar> ... }`
13:58 masak PerlJam: don't think so.
13:58 masak PerlJam: good morning!
13:58 fax joined #perl6
13:59 jnthn PerlJam: Only if you explicitly made it do so, I suspect.
13:59 jnthn I mean, if you do $/ = $foo ~~ (/foo/ | /bar/ | /baz/)
13:59 jnthn Then yeah, it probably will
13:59 PerlJam That's what happens when you use junctions elsewhere though isn't it?  When you say $a = 5 + 3|7, doesn't $a become a Junction?
14:00 jnthn Right.
14:00 jnthn It's just falling out of the more general mechanism.
14:00 jnthn rakudo: my $a = 5 + 3|7; say $a.WHAT
14:00 p6eval rakudo 74f561: OUTPUT«Junction()␤»
14:00 masak PerlJam: but smartmatch is aware of junctions, so $/ isn't affected by this.
14:01 jnthn masak: oh hmm, yes
14:01 jnthn You'd want to thread the match.
14:01 jnthn I shoulda wrote like like
14:01 jnthn $/ = (/foo/ | /bar/ | /baz/).match($foo)
14:01 jnthn I guess
14:02 PerlJam Hmm.  So, a junction of regex is one of those cases where /.../ means compile a regex but don't match it perhaps?
14:03 jnthn PerlJam: I was under the impression that /.../ alone always meant that, and it was the context that it's in that enforces it to match or not.
14:03 jnthn s/enforces/causes/
14:04 PerlJam You're right.
14:04 jnthn That is, in if /foo/ { ... } it's actually the boolean context that /foo/ is in that leads to the evaluation.
14:04 jnthn ENEEDMORECOFFEE
14:04 * jnthn goes to get more while he re-compiles
14:05 PerlJam I just don't know if "junction context" is the same or not.    if /foo/  { ... }    vs   if /foo/ | /bar/ { ... }  # was a match forced?
14:07 jnthn There's no junction context, really.
14:08 jnthn In that case, I think you're just putting boolena context on the junction, which in turn puts boolean context on the thingies inside it.
14:08 Wolfman2000 jnthn: how much was Rakudo updated since last night again? SHould I recompile Rakudo on my Feather box?
14:08 jnthn Wolfman2000: In master, it won't have been.
14:09 jnthn Wolfman2000: Just about all development is happening in a branch at the moment.
14:09 jnthn Wolfman2000: Well, s/won't/proably won't/
14:09 Wolfman2000 How do I switch my branch then? I don't know if this is the git branch or svn branch
14:09 jnthn Wolfman2000: You want to be using master.
14:09 Wolfman2000 :(
14:09 jnthn Wolfman2000: You srsly do not want to use the development branch at the moment.
14:10 jnthn It's a building site.
14:10 jnthn And we throw concrete blocks around just for fun.
14:10 jnthn :-)
14:10 Wolfman2000 ...let me at least get this cleared up.
14:11 Wolfman2000 When updates do come to master, will I have to git update or whatever the term is for that, or do I just skip to the perl Configure.pl step?
14:11 jnthn Wolfman2000: When they come to master, you'll do "git pull"
14:11 jnthn Which is like svn up
14:11 Wolfman2000 Already up-to-date
14:11 Wolfman2000 bah
14:11 jnthn Right.
14:11 jnthn So that's fine, you can just configure and build and you're done.
14:11 jnthn :-)
14:12 PerlJam Wolfman2000: master isn't changing much, so it'll be up-to-date until the ng branch merges
14:12 Wolfman2000 And yet I'm encouraged to not try ng
14:12 Wolfman2000 I'll understand the mentality...probably after I get more awake and into the shower
14:12 jnthn Wolfman2000: You can try ng, but it's not actually useful for anything at the moment.
14:13 PerlJam Wolfman2000: if you want something "production" you don't want to use ng.
14:13 mathw There's no point trying ng unless you want to actually hack on it, because it doesn't actually work at the moment
14:13 jnthn Right.
14:13 Wolfman2000 ...and I don't know enough OO assembler to try to hack yet.
14:14 PerlJam Wolfman2000: what an odd thing to say
14:14 mathw PerlJam: I assume that Wolfman2000 means PIR
14:14 Wolfman2000 mathw is probably more correct on the terminology
14:14 PerlJam still odd :)
14:14 pdcawley joined #perl6
14:14 Wolfman2000 A part of me wanted to help with moving operators to the settings files as you call them
14:14 Wolfman2000 I thought that would be the simplest operation
14:15 synth joined #perl6
14:15 mathw That is fairly straightforward
14:16 mathw Some of them you can even write entirely in Perl 6
14:16 mathw Although some require inline PIR
14:17 dakkar hmmm. http://dev.perl.org/perl6/list-summaries/index.rss (aggregated by PlanetSix) is broken… who should I tell it to?
14:18 jnthn Of course, if you find the PIR, then transferring them over and using the inline PIR as your first cut will work. :-)
14:18 kidd` joined #perl6
14:18 Wolfman2000 ...now that I'm looking at some of the PIR in Operators.pm again...I think I have some idea of what's going on.
14:19 Wolfman2000 $P# is often used for getting the value of a variable. It does that through find_lex '$varname'
14:20 Wolfman2000 The corresponding $N# becomes the value of $P#. Why $P# can't be used throughout the whole operation is beyond me at this point.
14:20 jnthn Wolfman2000: They're different register types.
14:20 Wolfman2000 At the end of some of these operations, %r is used...somewhat like a return key word. The variable to be returned...is "boxed" up, like a present.
14:21 jnthn $P# holds objects, if we want to just deal directly with CPU-level number registers, we'd transform it to one by putting it in a $N#.
14:21 jnthn That means we can actually do low-level math operations, which if, say, infix:<+>, we need to.
14:21 jnthn s/if/in/
14:21 Wolfman2000 ...and likewise, $S# holds strings
14:21 jnthn Right.
14:22 Wolfman2000 ...looks like $I# contains boolean results
14:22 PerlJam Integers
14:22 jnthn I = Integer, but yes, we often use them for 0 / 1 boolean flags too, at a low level.
14:22 jnthn (high level in Perl 6, there's a Bool enum.)
14:22 jnthn Wolfman2000: Anyway, you're picking it up pretty fast already. :-)
14:23 Wolfman2000 jnthn: I was a teacher assistant for Intel 8086 assembly for a few semesters at NC State
14:23 Wolfman2000 I don't recall all of the context of that class, though
14:23 jhorwitz joined #perl6
14:23 jnthn Oh, cool. :-)
14:23 Wolfman2000 Still...looks like this can come in handy
14:23 PerlJam Wolfman2000: the 8086 is a RISC instruction set compared to parrot  :)
14:24 Wolfman2000 ...and I don't recall what RISC is. I feel dumb.
14:24 jnthn rakudo: module Foo { method bar { } }
14:24 p6eval rakudo 74f561:  ( no output )
14:24 PerlJam RISC == reduced instruction set computer
14:24 jnthn meh! ng improves on another fail.
14:24 PerlJam as opposed to CISC == complex instruction set computer
14:25 PerlJam typically RISC CPUs will have very few, very general operations and CISC CPUs will have many specialized operations
14:25 PerlJam the 8086 is a CISC architecture, but compared to parrot it looks RISC  :)
14:25 Wolfman2000 Anyway, jumping to setting/Num.pm. And...I'm actually seeing..."our"
14:25 Wolfman2000 I thought our was generally not supposed to be used in previous versions of Perl programs.
14:26 Wolfman2000 Are they our for the purposes of opening up access to the methods and subs?
14:26 PerlJam Wolfman2000: "our" gives a lexically-scoped name for a package-scoped entity.
14:28 mubot joined #perl6
14:28 Wolfman2000 ...I should know what that means, but it's not sticking. Sorry.
14:28 colomon joined #perl6
14:28 PerlJam heh ... usually I feel like people on #perl6 are speaking greek to me.  Now, apparently I'm  the one speaking greek.
14:29 carlin mubot: help
14:29 mubot mubot: 0 |
14:29 carlin argh
14:29 Wolfman2000 I may have my bachelors from NC State, but I don't feel like all of the lessons stuck appropriately
14:29 Wolfman2000 NC State is more for those that love football and agriculture than computer science, despite what is said.
14:29 Wolfman2000 I'm living proof
14:29 SmokeMachine joined #perl6
14:31 mubot joined #perl6
14:31 carlin mubot: help
14:31 mubot usage: mubot: [karma [name] | purge <name> | link <nick> <alternative>] | <name>++ | <name>--
14:31 carlin There we go. I'll leave it running and see what happens.
14:32 mathw Wolfman2000: Lexical names for package scoped variables is not something that comes up in most computer science courses anyway, since most of them don't focus on Perl and its terminology
14:33 Wolfman2000 the main focus was Java
14:33 jnthn karma jnthn
14:33 jnthn mubot: karma jnthn
14:33 mubot jnthn is of an unknown quantity
14:33 jnthn mubot: jnthn++
14:33 mubot Sorry, I don't understand that command
14:33 jnthn jnthn++
14:34 jnthn mubot: karma jnthn
14:34 mubot jnthn has a karma of 1
14:34 jnthn jnthn++ jnthn++ jnthn++
14:34 jnthn mubot: karma jnthn
14:34 mubot jnthn has a karma of 2
14:34 mberends jnthn: you whore!
14:34 mathw Wolfman2000: Sounds like mine, although we were also blessed by the compulsory teaching of Haskell
14:34 jnthn mberends: lol!
14:34 jnthn mberends: I was actually seeing it if let people karma themselves ;-)
14:34 mberends oh ;)
14:34 jnthn Of course, carlin++ is what I really shoulda said.
14:34 jnthn mberends: yeah honest! ;-0
14:35 jnthn I mean, if I were to do jnthn++ again, that really would be karma whoring.
14:35 jnthn oh, wait...
14:35 carlin mubot: purge jnthn
14:35 mubot jnthn's karma has been reset
14:35 carlin ;)
14:35 mberends not sayin' I don't believe ya...
14:35 jnthn lol
14:35 jnthn carlin: Bot written in Perl 6?
14:35 carlin Yip
14:36 jnthn Just Too Awesome.
14:36 PerlJam carlin++ indeed
14:36 jnthn carlin++
14:36 carlin http://github.com/carlins/mubot
14:37 mathw carlin: I think that's the first time I've seen someone actually use the non-block form of class declaration
14:37 jnthn mathw: Heh, you didn't read Test.pm? ;-)
14:38 mathw Test.pm has classes in it?
14:38 mathw I've patched Test.pm, I don't remember a class...
14:38 mathw unless it changed since then
14:38 jnthn mathw: It's a module, but it uses "module Test;"
14:38 jnthn mathw: Maybe I'm abstrating too much though.
14:38 mathw yes
14:38 mathw I said classes
14:39 mathw not modules
14:39 mathw I use the non-block form for modules myself
14:39 jnthn They're all package declarators to me. :-P
14:39 jnthn (Mostly because I just implemented the abstraction layer that hides away all the declarator-specific stuff from Actions.pm)
14:42 frettled joined #perl6
14:44 frettled rakudo: say 1 ^^ 0 ^^ 1;
14:44 p6eval rakudo 74f561: OUTPUT«␤»
14:44 frettled hmm
14:46 frettled rakudo: say 1 ^^ 1;
14:46 p6eval rakudo 74f561: OUTPUT«␤»
14:47 payload joined #perl6
14:51 frettled rakudo: say 1 ^^ 0;
14:51 mathw jnthn: I think my thinking on blocks for classes is shaped by C++ and Java
14:51 p6eval rakudo 74f561: OUTPUT«1␤»
14:51 frettled rakudo: say 0 ^^ 1;
14:51 p6eval rakudo 74f561: OUTPUT«1␤»
14:51 frettled rakudo: say 0 ^^ 0 ^^ 1;
14:51 p6eval rakudo 74f561: OUTPUT«1␤»
14:51 jnthn mathw: fwiw, I tend towards the block syntax too.
14:51 frettled rakudo: say 0 ^^ 1 ^^ 0 ^^ 1;
14:51 p6eval rakudo 74f561: OUTPUT«␤»
14:51 jnthn But I don't dinf either objectional.
14:52 jnthn er, find
14:52 frettled This isn't according to how multi-argument exclusive-or should work; if there is an equal number of true values, it should be «false», otherwise «true».
14:53 mathw jnthn: I find non-block for modules makes sense, as modules often occupy the entire file anyway
14:55 frettled An acquaintance of mine pointed out the, ehm, inaccurate usage of the term «exclusive-or» in S03 to refer to something which isn't exclusive-or. :)
14:55 zloyrusskiy joined #perl6
14:58 PacoLinux joined #perl6
14:59 jnthn OK, hurrah, I fixed module up.
15:03 nihiliad joined #perl6
15:04 masak Wolfman2000: sorry; didn't see your question until now. yes, I'm working on Web.pm, and on the Web.pm TPF grant. Tene++ is, too. a few others are working on Web.pm, too.
15:04 Wolfman2000 masak: It's alright.
15:04 Wolfman2000 Wanted to talk more about it, but I'm going to have to go into real life mode...sooner than last time today.
15:05 Wolfman2000 If nothing else, I think I'm well enough aware that Web.pm may not quite be ready to host websites yet.
15:05 frettled Hrm, I see that the xor thingy was discussed in June.  Reading time.
15:06 TimToady frettled: no, it's the mathematicians who don't understand what the word "exclusive" means
15:06 masak Wolfman2000: well, we want to get there, by the quickest route possible.
15:07 Wolfman2000 I'm aware. How can one that's done a Catalyst web site help, even though I haven't dug deep into the Catalyst code?
15:08 masak experimenting helps.
15:08 frettled TimToady: Interestingly, I immediately understood why ^^ works as it does, but the mathematical definition didn't make quite as much sense to me, unless I for some reason would want to know what the parity of the expression was.
15:08 Wolfman2000 what sort of experimenting needs to be done, and can it be done on my Feather box?
15:08 masak doing little things, just like when you wrote those math operator overloading scripts.
15:08 masak setting up a little web page.
15:08 masak tearing it down.
15:09 masak regrouping.
15:09 masak doing it again.
15:09 Wolfman2000 masak: I'm not being clear enough...I apologize.
15:10 masak no need to apologize. sorry for not immediately understanding you.
15:10 Wolfman2000 If Web.pm is going to be anything like a web framework, there has to be a way to hook it up to apache/nginx. The hosting that we've been given for Feather...well, it's basically a variant of shared hosting. Not exactly a lot of room for server side coding if I get it right.
15:10 masak jnthn: ah. I needed to do 'make install' in nqp-rx.
15:11 masak Wolfman2000: http://november-wiki.org/
15:11 masak Wolfman2000: that's a Perl 6 web app running Apache, on feather.
15:11 iblechbot joined #perl6
15:11 TimToady frettled: and in any case they can use ?^ for boolean parity, since additive ops are left associative rather than list associative
15:12 jnthn masak: yes
15:12 * masak can haz teh ng branch! o/
15:12 jnthn masak: Heh. All you'll find out is how in pieces it is. :-)
15:12 frettled TimToady: you are always around 30 seconds ahead of what I read in the perl6-language discussion thread, hee-hee :D
15:12 Wolfman2000 So Web.pm is already in use.
15:13 masak Wolfman2000: I didn't say that. :)
15:13 masak Wolfman2000: that's the goal with that web app, however.
15:13 masak Wolfman2000: it was written pre-Web.pm.
15:13 Wolfman2000 Okay, now I'm the one confused again.
15:14 masak needs to be refactored to work on top of Web.pm.
15:14 Wolfman2000 masak: when are you usually awake? Give your time zone as well please. I think we'll need to keep in touch so that I can understand how to use Web.pm right
15:15 * jnthn just got a good licking from next door's very cute dog
15:15 masak Wolfman2000: my actual time zone is GMT+1. my effective time zone is more like GMT-5 :/
15:15 Wolfman2000 GMT-5...that's close to Eastern Time Zone US I think
15:15 TimToady .oO(on the Internet nobody knows you're a very cute dog...)
15:15 masak Wolfman2000: I backlog, so when you have something to say, just say it.
15:16 masak Wolfman2000: or use phenny.
15:16 masak phenny: tell Wolfman2000 like this.
15:16 phenny masak: I'll pass that on when Wolfman2000 is around.
15:16 Wolfman2000 ...I am around
15:16 phenny Wolfman2000: 15:16Z <masak> tell Wolfman2000 like this.
15:16 * masak hugs phenny
15:16 Wolfman2000 Lots to learn...alright
15:17 moritz_ it would help if somebody documented all the bots we use in here
15:17 masak Wolfman2000: welcome to #perl6. fragments of the future are already here. :)
15:17 frettled heh
15:17 Wolfman2000 masak: Is there any sort of...well, examples of semi working code that use Web.pm? This way, I can at least have some idea of how to do this. (I work best with examples from what I've seen)
15:17 TimToady I do try to track them in my /bots alias :)
15:18 moritz_ TimToady: I meant more documenting what they actually do :-)
15:19 TimToady but...but...that's a sekrit!!
15:21 masak Wolfman2000: there are examples, but they're scattered, mostly in blog posts I've written.
15:22 Wolfman2000 Is this your own blog, or across many blogs.
15:22 masak Wolfman2000: actually, I'll be spending this week and the next one writing specification/documentation/tutorials for Web.pm.
15:22 masak Wolfman2000: mostly on my blog. entries prefixed 'Week X of Web.pm'.
15:22 masak http://use.perl.org/~masak/journal
15:22 Wolfman2000 ...I may have seen your blog before.
15:22 Wolfman2000 Just without realizing it
15:25 colomon wait, why does 0 ^^ 1 ^^ 0 ^^ 1 equal nothing?
15:25 masak Wolfman2000: Astaire, Hitomi, Squerl, LolDispatch. those are the applications I think might interest you. I can provide running examples for you if you don't want to search for them yourself.
15:26 Wolfman2000 masak: Not that I don't want to search. Currently trying to get an account for use Perl; and then find your old blog posts
15:26 moritz_ colomon: in Perl 6 xor means "exactly one item may be true"
15:26 Wolfman2000 Plus, I'm soon going to have to shut the laptop down and take it with me to my errands today: won't be back until late
15:26 colomon moritz_: ok, but then shouldn't it be 0?
15:26 TimToady because it's the english definition of exclusive-or that is list-associative, not the mathematical definition that is based on iterating a binary function
15:26 masak Wolfman2000: no problem.
15:26 TimToady which false value should you pick?
15:27 moritz_ colomon: shouldn't it be just False?
15:27 colomon TimToady: you're say exclusive-or is junction "one", yes?
15:27 colomon rakudo: say 0 ^^ 0
15:27 p6eval rakudo 74f561: OUTPUT«0␤»
15:27 TimToady yeah, and moritz_ is correct that False should be 0
15:27 colomon rakudo: say 1 ^^ 1
15:27 p6eval rakudo 74f561: OUTPUT«␤»
15:28 TimToady that's a P5ism
15:28 colomon rakudo: say (1 ^^ 1).WHAT
15:28 p6eval rakudo 74f561: OUTPUT«Failure()␤»
15:28 moritz_ feel free to ticket that.
15:28 TimToady eep
15:28 colomon Failure stringifie to nothing?
15:28 colomon wait, Failure isn't what it should be, is it?
15:28 * masak submits rakudobug
15:28 TimToady it should just be false
15:28 Wolfman2000 colomon: So that means Failure Fails at Failing?
15:28 masak just to be clear, what's the p5ism?
15:29 frettled TimToady: Perl 6's usage of xor is IEEE 91 compliant.
15:29 TimToady False === ''
15:29 colomon masak++ # for submitting that bug so I can run work out.  :)
15:29 moritz_ TimToady: in Perl 6? really?
15:29 TimToady no
15:29 TimToady P5
15:29 moritz_ good
15:29 NorwayGeek joined #perl6
15:29 * moritz_ was kinda confused for a second
15:29 TimToady but it's not the P5ism, since it's failing
15:30 moritz_ but even in P5 it's not true
15:30 moritz_ because using '' as a number warns
15:30 moritz_ if warnings are enabled
15:30 frettled =1    Exclusive OR. One and only one input must be active to activate the output.
15:30 frettled (from IEEE 91)
15:30 moritz_ using false as a number doesn't warn
15:33 frettled I think that the surprising bit about how infix ^^ and xor work, is that they are infix.  :)
15:33 Psyche^ joined #perl6
15:34 TimToady I don't know if any other languages use list associative infixes like Perl 6 does
15:36 frettled Emacs lisp:  (logxor 1 0) == 1, (logxor 1 0 1) == 0,  (logxor 1 0 1 0) == 0, (logxor 1 0 1 0 1) == 1
15:36 frettled Common lisp: (logxor 0 1 0 1 0 1) == 1
15:36 Wolfman2000 ...the first few weeks of Web.pm entries feel like an insight of what has to take place. I'll have to do more reading...later. I have it bookmarked masak.
15:37 frettled Emacs lisp and CL agree on the latter, at least.
15:37 TimToady yeah, well, the Lisp folks think they're mathematicians :)
15:37 frettled :)
15:38 TimToady but if Microsoft says it grants an exclusive license, that doesn't mean you can give it to your friends two at a time...
15:38 frettled :)
15:39 mathw Tht is a most bizarre interpretation of xor
15:39 frettled I think the cute thing here is that IEEE 91 agrees with that.
15:39 mathw it's some kind of other or
15:39 mathw fantasy or
15:39 TimToady reality or
15:40 frettled mathw: which one?  The one where the placement of parentheses is significant, or the one IEEE 91 and Perl 6 use?
15:40 mathw frettled: the wrong one, of course
15:40 frettled heh
15:40 moritz_ 1 0 1 0 1 beeing 1 is what you get if you reduce() with binary xor
15:40 mathw I guess it's actually just xor without list associativity
15:40 mathw So that's what's going to surprise people
15:41 TimToady only mathematicians, not people :P
15:41 aufrank joined #perl6
15:41 TimToady well, and people that mathematicians have corrupted
15:41 mathw TimToady: the mathematicians will love it, because you've allowed them to say if 1 <= $x < 10 { }
15:42 TimToady yes, and we allow them to say 1 ?^ 0 ?^ 1 too when the want parity
15:42 TimToady *they
15:42 frettled The mathematicians will have no problem with the IEEE 91 way of doing it, either, as long as you're talking to the right mathematicians.
15:43 patspam joined #perl6
15:44 TimToady the ones who believe in sets more than they believe in induction?  :)
15:44 mathw urgh
15:44 mathw induction
15:44 * mathw shudders
15:44 fax "But you believe in N, Don't you??"
15:44 moritz_ induction is just the mathematician's way of doing recursion
15:44 moritz_ nothing scary or complicated
15:45 moritz_ provided somebody explains it properly
15:45 fax it's pretty scary and complicated it you ask me :P
15:45 TimToady binary madness even managed to infect linguistics for a while back in the 70s
15:45 TimToady the position of your tongue in the mouth was "obviously" defined by a set of +/- properties
15:47 TimToady so obviously the correct way to determine that one-of-these-is-true is to evaluate them two at a time recursively :)
15:48 Wolfman2000 alright, I'm out. No clue when I'll return. Don't be surprised if it's around...8 PM EST
15:48 TimToady rather than asking is this a 1-element subset of that set
15:50 TimToady I'll be surprised if it's 8 PM CEST...
15:50 ejs joined #perl6
15:50 KyleHa joined #perl6
15:52 frew__ joined #perl6
16:00 justatheory joined #perl6
16:01 frettled In that case, don't hold your breath.
16:01 TimToady in theory, it's too dark to read  ;)
16:02 * justatheory bumps into a wall
16:02 moritz_ in reality you have lamps :-)
16:02 frettled yeah, but they're blinking, darnit! ;)
16:02 moritz_ justatheory: into which Wall? :-)
16:02 TimToady lamrs, anyway...
16:02 justatheory Oh, excuse me sir.
16:05 bloonix joined #perl6
16:07 moritz_ phenny: tell dakkar re broken RSS feed, mailto webmaster $at perl.org
16:07 phenny moritz_: I'll pass that on when dakkar is around.
16:08 dakkar moritz_: thanks
16:08 phenny dakkar: 16:07Z <moritz_> tell dakkar re broken RSS feed, mailto webmaster $at perl.org
16:08 moritz_ but I'm planning to slowly deprecate dev.perl.org/perl6/ in favour of perl6.org anyway
16:09 dakkar at the very least, it should not be pointed to from planetsix…
16:09 moritz_ yesterday night I submitted a patch which (among other things) changes the Perl 6 link on www.perl.org to point to perl6.org
16:09 moritz_ dakkar: agreed
16:12 moritz_ don't know if the perl.org admins will apply it, though
16:21 japhb We should get as many places as possible linking to perl6.org, so it becomes "canonical".
16:21 moritz_ that's my plan, yes
16:21 moritz_ same with rakudo
16:21 japhb nod
16:21 moritz_ if you search for 'rakudo' with google, rkaudo.org is only 4th hit or so
16:22 huf but at least the first rakudo.org link is the how to get rakudo article ;)
16:23 moritz_ I'd love to see it the first hit, with sitelinks for the other pages (like status page)
16:25 jaldhar joined #perl6
16:27 cognominal joined #perl6
16:28 KyleHa I stumbled on the Rakudo profile on ohloh.net recently.  I thought that was kind of neat.
16:39 pdcawley_ joined #perl6
16:39 moritz_ KyleHa: it is :-)
16:47 fax joined #perl6
16:56 masak jnthn: so, 'make test' has lots of failures. I guess that's well known and expected.
16:56 jnthn masak: Yes
16:56 jnthn masak: We're not at the point of running the spectests yet.
16:56 moritz_ ironically the new-and-improved regexes aren't hooked up in rakudo yet :-)
16:56 KyleHa joined #perl6
16:57 jnthn Yeah, that was a blocker for that, though I think I've removed it.
16:59 meppl joined #perl6
17:03 icwiener joined #perl6
17:04 masak jnthn: this wasn't the spectests though, just the regular 'make test'.
17:04 jnthn masak: Right
17:04 jnthn I know
17:04 jnthn Don't expect _anything_ to work in ng at the moment.
17:05 masak jnthn: ok, but I'm just so *excited*!
17:05 jnthn :-)
17:05 masak if I'd like to help, what end do I pick up?
17:06 jnthn It's hard to say at the moment. We're still working on fundementals in a lot of places. For example, right now I'm getting the metamodel, metaclasses, and package code generation back in place.
17:07 jnthn One we can run Test.pm and we are able to actually parse bits of the setting again, it'll be a _lot_ easier to jump in.
17:07 masak gotcha.
17:07 masak I'll just sit back in awe in the meantime. :)
17:08 jnthn I feel bad putting people off helping at the moment, but equally it's at a stage where I'm finding it really hard to suggest useful things to do.
17:08 jnthn Or, useful things without deep knowledge of Rakudo guts.
17:08 * KyleHa has been in awe for a while now.
17:09 KyleHa If $work weren't jogging my elbow all the time, I'd be writing more tests.  Seems like a good time for that since 'master' isn't moving.
17:09 jnthn masak: If you do what a glimpse at what I'm working on at the moment, feel free to look over http://github.com/rakudo/rakudo/​blob/ng/docs/custom_packages.pod
17:09 * masak looks
17:10 jnthn masak: It's not finished yet.
17:10 jnthn masak: But it should give you an inkling as to how setting up custom metaclasses could end up looking like.
17:11 rfordinal joined #perl6
17:11 masak (walking barefoot through a construction site)++
17:11 Juerd Are you looking forward to losing a toe?
17:11 KyleHa I usually close my eyes to lose a toe.
17:12 jnthn masak: It felt like a fitting analogy. :-)
17:12 masak jnthn: no surprises. looks good. I don't know much about .compose, but I see the need.
17:13 jnthn masak: It's the "we're finished now, gimme a proto-object" hook.
17:13 masak :)
17:14 jnthn Basically, it means another chunk of the file formally known as Pri^Wguts.pir goes into a sensible place. :-)
17:14 cdarroch joined #perl6
17:14 masak \o/
17:20 nihiliad joined #perl6
17:24 KyleHa joined #perl6
17:25 hercynium joined #perl6
17:30 icwiener_ joined #perl6
17:30 masak swimming &
17:38 mj41 joined #perl6
17:40 kst joined #perl6
17:40 stephenlb joined #perl6
17:43 eMaX joined #perl6
17:44 mj41 Hi. Can anybody put link to http://perl6.cz/wiki/Perl_6_and_Parrot_links on perl6.org please ? thanks.
17:46 takadonet hey mj41 :)
18:00 moritz_ mj41: sure, you can do that if you have a pugs commit bit
18:00 moritz_ mj41: if not, it's high time you get one ;-)
18:03 lichtkind joined #perl6
18:03 mj41 I have commit bit somewhere. But don't know where this link belongs to. Documentation or Whatever ? And second problem - P6aP links is my work so I'm not neutral :-).
18:05 diakopter mj41: it's ok not to be neutral. the crowd-sourced commit bit swarm will hunt you down if you shamelessly self-promote on perl6.org, which seems to get a few hundred K hits/day.  kidding.
18:10 moritz_ if you remove the K you're right
18:10 KyleHa I don't see many committers with hunting equipment.  Just insecticide.
18:10 moritz_ mj41: I'd put it into community, close to the wikis
18:13 mj41 What about "Planetsix and Perl 6 and Parrot links assembles many important and interesting blogs on the topic." ?
18:15 moritz_ or just add a sentence like "<a>Perl 6 and Parrot links</a> is a comprehensive link collection about everything Perl 6" after the planetsix sentence
18:15 moritz_ both ways work for me
18:19 japhb KyleHa, several of us committers are Aikidoists.  We could ... um ... pin you down and give you a good stretch.
18:20 pugs_svn r28982 | mj41++ | [perl6.org/source/community] Added a link to Perl 6 and Parrot links.
18:21 mj41 moritz++ thanks
18:27 moritz_ mj41: do you have scripts that automatically update that wiki page?
19:04 lichtkind_ joined #perl6
19:10 jnthn OK, now class decls work in ng (methods only so far)
19:10 jnthn And it is all done by a bunch of method calls on the metaclass.
19:11 PerlJam jnthn++
19:11 moritz_ cool
19:11 PerlJam exercise that mop
19:12 zloyrusskiy joined #perl6
19:12 jnthn PerlJam: I need to do that on my floor sometime...
19:13 jnthn OK, next will be putting back attributes and other such things.
19:13 jnthn Oh, and multi-methods.
19:13 jnthn And traits.
19:15 KyleHa Why does src/Perl6/Actions.pm not have 'use v6' ?
19:15 PerlJam KyleHa: doesn't need it.
19:15 PerlJam KyleHa: what's the first line of that file?
19:16 KyleHa class Perl6::Actions is HLL::Actions;
19:16 jnthn That's enough. :-)
19:16 moritz_ actually 'use v6;' is only needed if you want to run it from a 'perl' executable, a 'perl6' executable doesn't need it
19:16 jnthn And an nqp executable surely doesn't. :-)
19:16 moritz_ and 'class' is also an indicator for a Perl 6 program
19:17 moritz_ also module, grammar
19:17 KyleHa jnthn: I guess that's my real question.  How does one distinguish full blown P6 from something written for NQP?
19:17 PerlJam KyleHa: why?
19:17 moritz_ one doesn't, syntactically
19:18 jnthn KyleHa: By feeding it to each compiler, and seeing what accepts it. ;-)
19:18 jnthn KyleHa: tbh though it's not really an issue.
19:18 KyleHa PerlJam: If I wanted to do some work in that file, I'd want to know what the limits are.
19:18 jnthn NQP will be used by people writing compilers, and thus they'd generally know what they're using to write the compiler. :-)
19:19 jnthn KyleHa: If your point is "we need a document somewhere explaining what each bit of the compiler is written in so people can understand the source tree", then yes, you're right. :-)
19:19 KyleHa Yeah, I kind of figured "everyone knows" this is NQP, but...yes, exactly, documentation.
19:19 jnthn However, it's only useful if we put it in a file called IGNOREME ;-)
19:20 PerlJam KyleHa: would a "use NQP" no-op be useful enough for you?
19:20 moritz_ PerlJam: that would destroy the notion of NQP being a proper subset of Perl 6
19:20 PerlJam moritz_: "destroy" is a little much.  :)
19:21 moritz_ substitute by $less_drastic_verb then
19:21 KyleHa Even a comment would be helpful to a total newcomer.  "# This looks like Perl 6, but it's really NQP (you n00b)."
19:21 PerlJam All's fair if you predeclare, so "use NQP" is a declaration that I only want to use the subset that NQP groks  ;)
19:22 envi_home2 joined #perl6
19:24 PerlJam KyleHa: btw, NQP *is* Perl 6.  You should be able to feed a file written for nqp to a(nother) perl 6 compiler and it should grok it just fine.
19:25 KyleHa PerlJam: Yes, but not the other way 'round.  I can't put just any P6 in this file that I want because it's merely going to NQP.
19:26 PerlJam KyleHa: that's not the file's fault!
19:27 KyleHa I'm not sure what it would mean for it to be the file's fault.
19:27 mj41 moritz_: yes, svn up and pod to mediawiki
19:28 PerlJam KyleHa: btw, if you search back through the #perl6 logs, I bet you can find where I had previously advocated some sort of declaration to distinguish nqp from full perl6.
19:28 KyleHa My point was just that I can't tell by looking what the file's consumer is.  It has .pm on the end just like a P5 file, and it "looks like" P6 inside, but it's neither.
19:29 PerlJam KyleHa: er, what?
19:29 rfordinal joined #perl6
19:29 NorwayGeek joined #perl6
19:30 KyleHa PerlJam: I was browsing this code, and I thought, "that looks a lot like Perl 6, but I bet it isn't."  I wondered, "how could I tell?"
19:30 KyleHa Mostly, it doesn't matter because this is all over my head anyway.
19:30 PerlJam KyleHa: but it *is* perl 6.
19:30 jnthn KyleHa: If you take NQP code, it should run also as Perl 6 code.
19:30 KyleHa Yeah, I get that.
19:30 moritz_ except from pir:: things maybe
19:30 moritz_ and Q:PIR { ... }
19:31 PerlJam moritz_: still syntactically Perl 6  :)
19:31 KyleHa The code I put in this file, however, isn't going be handed to a full Perl 6.
19:31 PerlJam KyleHa: that's up to you though.
19:31 moritz_ std: Q:PIR { ... }
19:31 p6eval std 28982: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized quote modifier: PIR at /tmp/kyZjDpXACm line 1:␤------> [32mQ:PIR[33m⏏[31m { ... }[0m␤FAILED 00:01 104m␤»
19:31 moritz_ PerlJam: STD.pm disagrees
19:32 PerlJam There's nothing intrinsic in the file that says it must be given to a nqp compiler
19:32 KyleHa If I find a .c file, I kind of assume it's going to a C compiler, and I can't go writing C++ into it and expect it to work.
19:32 PerlJam moritz_: looks like it's time to patch the spec  ;)
19:33 KyleHa PerlJam: Yes, that's my point.  There's nothing in the file that says it will go to NQP, but in fact it will.
19:33 hercynium joined #perl6
19:33 PerlJam KyleHa: that's still up to you  :)
19:33 moritz_ KyleHa: we also don't declare that stuff goes to Rakudo, which sin't full Perl 6 either
19:34 KyleHa moritz_: That doesn't bother me.  8-)
19:35 PerlJam KyleHa: then, for your distinguishment, any file that has Q:PIR in it is destined for the nqp compiler.
19:35 PerlJam How's that?
19:36 moritz_ rakudo understands Q:PIR too
19:36 KyleHa That's useful, except what Moritz said.
19:36 PerlJam KyleHa: what do you mean "except"?  That's a perfectly valid heuristic.
19:37 KyleHa Yes, I agree it's a good heuristic.
19:37 PerlJam At some point you're going to have to live with the idea that there are multiple compilers that grok the same source file.
19:38 PerlJam and be happy with it.
19:38 KyleHa I'm not actually demanding a solution here, more just trying to point out what I think could be a problem.
19:41 astrojp joined #perl6
19:41 SmokeMachine joined #perl6
19:54 NorwayGeek joined #perl6
20:00 desertm4x joined #perl6
20:09 pugs_svn r28983 | kyle++ | [t/spec] Test for RT 66178: "but" with nonexistent role
20:09 pugs_svn r28984 | kyle++ | [t/spec] Test for RT #66204: NewClass .= new  should die
20:22 carlin masak: (rather belated) pong, from yesterday's backlog
20:23 masak carlin: oh hai. I accidentally reviewed your rssbot and mwbot projects.
20:23 rgrau joined #perl6
20:23 pugs_svn r28985 | kyle++ | [t/spec] Test for RT 66252: match in void context does not set $/
20:23 kidd` joined #perl6
20:24 masak carlin: it really rocks that you've written those two. carlin++
20:25 masak I also find I have one minor stylistic comment and one minor architectural comment.
20:26 colomon carlin++ indeed.
20:26 masak stylistic comment: things like $x ?? $x !! 'something' are better written $x || 'something', or $x // 'something' (depending on whether you're measuring truth or definedness, respectively). no big deal, really. just saw it and thought that it could be abbreviated.
20:28 masak architectural comment: it seems to me that BasicClient.pm should really be in a separate project, since 'rssbot' pulls in 'mwbot' just to use it, but nothing else.
20:28 jnthn IIRC vica versa (mubot pulls in rssbot)]
20:28 * jnthn noticed that too
20:28 jnthn (yes, I did also glance the source ;-))
20:28 masak I was positively surprised to find those deps.proto files at all, by the way. I didn't think anyone used them. :P
20:29 masak jnthn: no, it's rssbot that pulls in mwbot. the latter predates the former.
20:30 Su-Shee left #perl6
20:30 jnthn ah, ok
20:30 jnthn I thought I'd seen rssbot in mubot's proto.deps, that's all
20:31 jnthn masak: http://github.com/carlins/m​ubot/blob/master/deps.proto
20:31 jnthn Maybe I mis-understand the purpose of the deps file though?
20:31 jnthn (my first guess was it listed the projects this one *needed*)
20:31 carlin I've actually been thinking that I need to split the repos up
20:32 TSa joined #perl6
20:33 patspam1 joined #perl6
20:33 carlin rssbot needs BasciClient from mwbot. Mubot needs IRC::Simple from rssbot.
20:33 masak carlin: proto cannot install projects which are dependencies of each other.
20:34 masak this might not be a concern for you, but it might be for people downstreanm. :)
20:34 masak s/nm/m/
20:34 moritz_ make an IrcBot package that contains IRC::Simple and BasicClient
20:34 masak I don't remember exactly what happens in proto, but it definitely won't install.
20:34 carlin Mubot is the IRC karma bot. Mwbot is the MediaWiki bot.
20:34 * carlin shouldn't have given them similar names
20:35 jnthn masak: oh!
20:35 masak oh!
20:35 jnthn masak: That possibility ahdn't occured to me. ;)
20:35 masak sorry, I misunderstood.
20:35 carlin (Mubot is named that because Mu follows lambda in the greek alphabet)
20:35 masak carlin: I still think it might be a good idea to extract BasicBot.pm
20:35 moritz_ nice idea ;-)
20:35 jnthn masak: I'd only looked at the deps file in mubot.
20:35 masak carlin++
20:35 * masak adds mubot to projects.list
20:40 * carlin splits BasicClient and IRC::Simple into their own repos
20:41 carlin and I'll fix that syntax
20:41 carlin masak++ for the review
20:41 rfordinal joined #perl6
20:42 masak no problem. let me know the name of the new project(s), and I'll add them, too.
20:42 carlin I'm thinking I should rename BasicClient to something like HTTP::Basic while I'm miving it around
20:43 carlin s/miving/moving/
20:43 masak that sounds both more informative and less informative at the same time.
20:43 moritz_ HTTP::Client?
20:45 moritz_ sure it's basic now, but that doesn't mean it has to stay basic forever
20:46 masak +1
20:46 carlin Hm, that's true
20:46 masak among <http basic client>, 'basic' is certainly the least informative word.
20:47 carlin (and by that same token IRC::Simple should be IRC::Client)
20:47 moritz_ +2
20:47 masak nod.
20:55 pugs_svn r28986 | kyle++ | [t/spec] Test for RT #66304: list promoted to array when assigned to scalar
20:55 KyleHa Could someone check that one for me?  I'm not sure I did the right thing there.
20:55 lilstevey joined #perl6
20:57 * moritz_ svn rebases
20:59 moritz_ KyleHa: the first bunch looks fine
21:00 moritz_ but why is the second item in (11, $x, 22) mutable?
21:00 takadonet left #perl6
21:01 moritz_ is there a spec reference for that somewher?
21:02 KyleHa moritz_: I was just looking at the ticket.
21:03 moritz_ <pmichaud> I think rakudo may be wrong there also.
21:03 KyleHa It seems semi-reasonable too.  (1,$x,2)[1] = 'x'   works, so $L[1] = 'x' ought to work if it's the same as (1,$x,2).
21:04 moritz_ it's neither bound, nor is it a signature
21:04 TSa HaloO, is the complete container put into the list?
21:04 moritz_ TSa: that's the question; I think not
21:04 KyleHa That's the other thing I thought.  Not binding, so...  Hence my asking for advice.
21:05 TSa moritz_: me neither
21:06 moritz_ KyleHa: as another data point, my @a = (1, 2, @b) also doesn't install a writable @b in @a, it just interpolates
21:06 payload joined #perl6
21:07 TSa how about (1,\$x,2)? Does that capture the container as rw binding?
21:08 moritz_ TSa: don't ask hard questions when we can't even answer the simple ones :-)
21:08 payload joined #perl6
21:08 KyleHa OK, I think I'll change the second block of tests.
21:08 moritz_ KyleHa++ # asking of review, and cleaning up
21:10 pugs_svn r28987 | kyle++ | [t/spec] Fixes to RT 66304 test after conversation with moritz++
21:15 carlin masak: IRC::Simple is now http://github.com/carlins/irc-client, and BasicClient is http://github.com/carlins/http-client
21:15 TSa moritz_: how does ($x, $y) = 1,2 work? Is that a macro?
21:16 moritz_ TSa: no idea
21:16 masak carlin: now added to projects.list
21:16 fax joined #perl6
21:16 masak TSa: is what a macro? the assignment?
21:18 TSa the whole thing, essentially transforms into $x = 1, $y = 2 which ends up with the immutable list 1,2 and the values in $x and $y
21:18 TSa so we have avoided the problem of binding the container into the list
21:19 masak TSa: even without the parentheses, it'll work, no?
21:19 moritz_ no
21:19 moritz_ because there are two = operators
21:19 moritz_ with different precedences
21:19 carlin masak: Thanks :) Would you suggest renaming mwbot -> MediaWiki::Bot (or similar) to prevent confusion with Mubot?
21:20 masak carlin: sounds like a generally good idea.
21:20 moritz_ TimToady: could you please review the second half of r28986 and r28987?  Now I'm rather unsure about them :/
21:21 frederico joined #perl6
21:22 KyleHa Ticket 66336 is for the old basic.t segfault that doesn't happen anymore.  Can I resolve that?  I don't know how I'd test it.
21:23 masak resolve it. if it reappears, we'll find the ticket.
21:23 moritz_ KyleHa: just close it, we already have a test ;-)
21:24 sjohnson howdy masak :)
21:24 masak sjohnson: hi!
21:25 TSa moritz_: you mean my version parses as $x = (1, $y = 1)?
21:25 KyleHa OK, resolved.  Thanks.
21:27 moritz_ TSa: ($x, $y) = 1, 2 parses as ($x, $y) = (1, 2); however $x, $y = 1, 2 parses as $x, ($y = 1), 2
21:27 moritz_ so 22:19 < masak> TSa: even without the parentheses, it'll work, no?
21:27 moritz_ is not right
21:28 masak why not?
21:29 masak rakudo: my ($a, $b) = 1, 2; $a, $b = $b, $a; .say for $a, $b
21:29 p6eval rakudo 74f561: OUTPUT«2␤1␤»
21:30 moritz_ sorry, on phone...
21:30 TSa rakudo: say "cool"
21:30 p6eval rakudo 74f561: OUTPUT«cool␤»
21:31 TSa cool ;)
21:31 masak ;)
21:31 masak for people who want a sneak peek at what I'm currently putting together: http://github.com/masak/web/​raw/master/tutorial/win.pdf
21:31 masak comments are welcome.
21:32 masak (really not much yet. I just finished up the build system, and now I'll add the meat of the tutorial)
21:42 moritz_ rakudo: my ($x, $y); $x, $y = 1, 2; say $x, $y
21:42 p6eval rakudo 74f561: OUTPUT«12␤»
21:43 moritz_ that looks wrong to me
21:43 NorwayGeek joined #perl6
21:44 moritz_ but I think rakudo simply doesn't implement the item assignment parsing
21:44 masak moritz_: it doesn't look wrong to me. but I'd be happy to read the relevant piece of spec that tells me how it should work.
21:44 [particle] you still don't know which var contains which value there
21:44 diakopter rakudo: my ($x, $y); ($x, $y) = 1, 2; say $x, $y
21:44 p6eval rakudo 74f561: OUTPUT«12␤»
21:44 [particle] rakudo: my ($x, $y); $x, $y = 1, 2; say $y, $x
21:44 p6eval rakudo 74f561: OUTPUT«21␤»
21:44 moritz_ rakudo: my ($x, $y); $x, $y = 1, 2; say "x = $x, y = $y"
21:44 [particle] there.
21:44 p6eval rakudo 74f561: OUTPUT«x = 1, y = 2␤»
21:45 moritz_ masak: http://perlcabal.org/syn/S03.h​tml#Item_assignment_precedence
21:45 moritz_ With simple lvalues, = has this precedence, which is tighter than comma. (List assignments have listop precedence below.)
21:46 TSa The thing I wanted to say was that there is no list build on the lhs
21:46 moritz_ not quite sure about that one
21:47 diakopter rakudo: my ($x, $y); ((($x, $y))) = 1, 2; say $x, $y
21:47 p6eval rakudo 74f561: OUTPUT«12␤»
21:47 masak moritz_: define 'simple lvalue'.
21:48 moritz_ masak: you'd have to look into STD.pm for an exact defintion, I think
21:48 masak moritz_: anyway, I'm beginning to believe you're right.
21:48 diakopter rakudo: my $x; ($x = 4).WHAT = 1; say $x.WHAT
21:48 p6eval rakudo 74f561: OUTPUT«1␤»
21:48 masak I will attempt not to depend on this misfeature in my code.
21:48 moritz_ rakudo: my $x; ($x = 4).WHAT = 1; say $x.PARROT
21:48 p6eval rakudo 74f561: OUTPUT«Int␤»
21:49 moritz_ rakudo: say 4.PARRT
21:49 p6eval rakudo 74f561: OUTPUT«Method 'PARRT' not found for invocant of class 'Int'␤in Main (file src/gen_setting.pm, line 324)␤»
21:49 moritz_ rakudo: say 4.PARROT
21:49 p6eval rakudo 74f561: OUTPUT«Int␤»
21:49 diakopter rakudo: my $x; ($x = 4).WHAT = 1; say $x.WHAT.PARROT
21:49 p6eval rakudo 74f561: OUTPUT«Int␤»
21:50 TSa masak: what exactly do you consider a misfeature?
21:51 diakopter rakudo: my $x; ($x = 'hi').WHAT = Block; say $x.WHAT
21:51 p6eval rakudo 74f561: OUTPUT«Block()␤»
21:51 masak TSa: all I meant was that Rakudo is not up to spec with item assignment.
21:51 diakopter rakudo: my $x; ($x = 'hi').WHAT = Block; say ($x)()
21:51 p6eval rakudo 74f561: OUTPUT«invoke() not implemented in class 'Perl6Str'␤in Main (file <unknown>, line <unknown>)␤»
21:52 diakopter rakudo: my $x; ($x = 'hi').HOW = Block; say $x.WHAT
21:52 p6eval rakudo 74f561: OUTPUT«Block()␤»
21:53 diakopter O_O
21:53 moritz_ ORLY?
21:54 moritz_ alternate meta classes should be possible, but it doubt they should work like *that*
21:54 masak :)
21:54 masak shall I submit a bug report?
21:55 moritz_ yes
21:55 * masak does it
21:55 diakopter rakudo: my Int $a = 74; Int.WHAT = Str; $a = "hi"; say $a.WHAT
21:55 p6eval rakudo 74f561: OUTPUT«Str()␤»
21:55 diakopter rakudo: my Int $a = 74; Int.WHAT = Str; say $a.WHAT
21:55 p6eval rakudo 74f561: OUTPUT«Str()␤»
21:56 diakopter ^O_O^
21:56 diakopter (that's not intended to be a smiling face)
21:56 * masak submits another one
21:57 masak diakopter: heh. it looked like big eyes with wings to me. :P
21:57 TSa silly question: how does one produce the non speach entries?
21:57 masak the what?
21:57 TSa these * does it
21:58 moritz_ TSa: with /me
21:58 moritz_ /me does it like this
21:58 masak moritz_++ # understanding the question
21:58 * TSa is happy to learn IRC
21:58 TSa thanks
21:58 moritz_ np
21:59 KyleHa rakudo: constant $A = (1,2,3);$A[1] = "x";say $A.perl;
21:59 p6eval rakudo 74f561: OUTPUT«[1, "x", 3]␤»
22:00 moritz_ same bug
22:00 TSa doesn't look very immutable to me
22:00 moritz_ TSa: it shouldn't be immutable, it should just be constant
22:01 KyleHa So I should merge that into the other one?
22:01 moritz_ yes
22:01 moritz_ if you want something immutable, construct a list and bind to it
22:01 moritz_ constant $A := (1, 2, 3); # doesn't work in rakudo yet
22:01 diakopter rakudo: constant $a = 1,2,3; $a[1] := "x"; say $a.perl;
22:01 p6eval rakudo 74f561: OUTPUT«rtype not set␤in Main (file <unknown>, line <unknown>)␤»
22:04 KyleHa OK, that's merged.  Wheee!!
22:05 diakopter rakudo: constant ($a,$b) = 1,2; $a = "x"
22:05 p6eval rakudo 74f561: OUTPUT«No applicable methods.␤in Main (file <unknown>, line <unknown>)␤»
22:06 diakopter lolmasakbugemail
22:06 diakopter wishful thinking, I guess
22:06 moritz_ that's know, we've regressed on array item binding for quite some time
22:07 diakopter array item binding?
22:07 diakopter oh
22:07 diakopter rakudo: constant ($a,$b) = 1,2;
22:07 p6eval rakudo 74f561: OUTPUT«No applicable methods.␤in Main (file <unknown>, line <unknown>)␤»
22:09 KyleHa rakudo: my ($meth) = Grammar.WALK(:name<parse>); $meth(Perl6::Grammar.new, "42");
22:09 p6eval rakudo 74f561: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤in Main (file <unknown>, line <unknown>)␤»
22:09 KyleHa Well, no longer NPMCA, at least.
22:12 lilstevey Hi. Sorry to disturb. Been playing with perl6 on rakudo and not seeming to be having much luck with traits. I was wondering if there was anything approaching an idiots guide to help fools like me play with fire...
22:12 lilstevey proverbially that is.
22:12 PerlJam lilstevey: what are you trying to do with traits?
22:14 lilstevey my aim is to try to use a role as an interface, and on the client, generate a proxy to call a remote method via http. kind like class is proxy(interfaceRole). IN the short term, I'd be an extrremely happy man if I could get a warning ghenerated when I apply a trait to a class
22:15 lilstevey I can rephrase that - primarily focusing on teh second bit at the moment as a part of a learning exercise explained in the first.
22:18 lilstevey I did try copying LolDispatch and applying it to a sub but get: "No applicable candidates found to dispatch to for 'trait_mod:is'"
22:19 PerlJam I think you'll have to wait for someone of the likes of jnthn to help as I ran across the same thing but chalked it up to implementation flux and moved on to other things rather than exploring it more deeply when I tried playing with trait_mods
22:19 moritz_ lilstevey: http://svn.pugscode.org/pugs/​t/spec/S14-traits/routines.t contains examples of traits on subs
22:20 lilstevey many thanks @PerlJam, @moritz, I'll take a look at that.
22:20 rgrau joined #perl6
22:21 moritz_ lilstevey: if that doesn't help you, nopaste your example code so that we can help you with that
22:22 lilstevey Ok, will return inabit after having a play. Cheers!
22:23 diakopter rakudo: в_октябре
22:23 p6eval rakudo 74f561: OUTPUT«Could not find non-existent sub в_октябре␤in Main (file src/gen_setting.pm, line 324)␤»
22:24 diakopter <sigh/>
22:25 Wolfman2000 joined #perl6
22:26 Wolfman2000 Afternoon/evening. Original plans for Math Club tonight seem to have...not computed.
22:28 fax ??
22:28 Wolfman2000 I'm here sooner than expected.
22:28 masak \o/
22:28 masak fax: !!
22:28 fax :))
22:28 diakopter interesting
22:28 sri__ joined #perl6
22:28 Wolfman2000 Hopefully I can either contribute to more of those setting things...or maybe get a better idea of how to use Web.pm
22:29 d4l3k_ joined #perl6
22:29 Whiteknight joined #perl6
22:29 PerlPilot joined #perl6
22:30 masak Wolfman2000: I started putting together a tutorial. it's aimed towards people in your position.
22:30 Wolfman2000 Ah good: I get to be the guinea pig.
22:30 * carlin finished refactoring the naming scheme
22:30 masak Wolfman2000: I just finished for the day. didn't get very far -- will continue tomorrow. right now, I'm debugging November.
22:31 masak Wolfman2000: what I have so far is here: http://github.com/masak/web/​raw/master/tutorial/win.pdf
22:31 masak Wolfman2000: still need to write about dispatch, templating and database connections.
22:32 Wolfman2000 ...right, Perl 6 is more object oriented. I'll have to learn that properly.
22:32 Wolfman2000 Or re-learn
22:33 masak it's a good language to re-learn OO in.
22:33 Wolfman2000 What is postcircumfix supposed to be again? Somehow I have to question why "( )" is such an operator
22:34 masak when you do $obj(1,2,3), the call dispatches to $obj.postcircumfix<( )>(1,2,3).
22:34 masak put differently, the parentheses desugar to a method call.
22:35 Wolfman2000 Is it supposed to be similar to...@values[1], with "[ ]" instead?
22:35 masak aye.
22:36 mdxi joined #perl6
22:37 Wolfman2000 Hmm...your 3rd slide seems off to me. I'm going to paste what I think you meant.
22:37 Wolfman2000 ...wait a second, it's correct when I copy/paste.
22:37 masak huh.
22:37 Wolfman2000 Your text doesn't show up completely on my end
22:37 masak that's good to know.
22:38 carlin http://gist.github.com/226452 # adds get() to IO::Socket. Would someone mind checking that it looks alright before I send it to RT?
22:38 Wolfman2000 http://i33.tinypic.com/ogeuit.png
22:39 masak Wolfman2000: that does indeed look wrong.
22:39 masak I had problems myself with that text object.
22:39 fax so you can debug perl programs by turning them into websites
22:39 masak will try to debug it tomorrow.
22:39 masak fax: :)
22:39 masak fax: actually, I plan to use that solution for debugging Perl 6 grammars.
22:40 Wolfman2000 Right...grammars are the new regexes
22:40 Wolfman2000 I wonder...
22:40 * Wolfman2000 goes to study them
22:40 moritz_ Wolfman2000: there's a bit about them in our new (and incomplete) book
22:41 Wolfman2000 moritz_: Is this going to be a free book?
22:41 moritz_ Wolfman2000: to some degree, yes
22:42 moritz_ so far the license excludes commercial use
22:42 Wolfman2000 Somehow doubt I'll get a job with my Perl 6 knowledge alone
22:42 moritz_ http://moritz.faui2k3.org/tmp/book.pdf current version
22:43 diakopter mubot: purge mubot
22:43 mubot mubot's karma has been reset
22:44 Wolfman2000 right, what's the right way for karma?
22:44 Wolfman2000 masak++
22:44 moritz_ @karma masak
22:44 lambdabot masak has a karma of 291
22:44 masak :)
22:44 Wolfman2000 @karma
22:44 lambdabot You have a karma of 1
22:44 Wolfman2000 slow beginnings...that's fine
22:44 KyleHa @karma
22:44 lambdabot You have a karma of 9
22:45 KyleHa @karma kyle
22:45 lambdabot kyle has a karma of 77
22:45 masak Wolfman2000++ # here's one for the road
22:45 Wolfman2000 ooh...if I'm seeing the new @array.sort right...you can now sort on two criteria via chaining .sort
22:45 diakopter std: &{{}}
22:45 p6eval std 28987: OUTPUT«[31m===[0mSORRY![31m===[0m␤Obsolete use of &{{}; in Perl 6 please use &({) instead at /tmp/PCKtRoI6X4 line 1:␤------> [32m&{{}[33m⏏[31m}[0m␤FAILED 00:02 126m␤»
22:46 pugs_svn r28988 | kyle++ | [t/spec] Test for RT #66340: .comb allows code
22:48 diakopter std: \/ \/ /\ /\ /\/ \/ /\
22:48 p6eval std 28987: OUTPUT«ok 00:01 104m␤»
22:49 hercynium joined #perl6
22:49 diakopter std: /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/
22:49 p6eval std 28987: OUTPUT«ok 00:01 104m␤»
22:50 diakopter rakudo: /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/
22:50 p6eval rakudo 74f561: OUTPUT«Null PMC access in can()␤in Main (file <unknown>, line <unknown>)␤»
22:51 carlin mubot: karma masak
22:51 mubot masak has a karma of 3
22:51 ihrd joined #perl6
22:51 fax Bad arguments for user command.
22:51 diakopter masak: there's one for you
22:51 fax @karma fax
22:51 lambdabot You have a karma of 0
22:51 * masak submits rakudobug
22:51 moritz_ wtf?
22:51 KyleHa Five more bugs tested.  \o/
22:51 masak KyleHa++
22:51 KyleHa I feel much better now.
22:52 carlin mubot: karma kyle
22:52 mubot kyle has a karma of 6
22:52 diakopter moritz_: I challenge you to figure that one out :)  it's a race ;)
22:52 carlin mubot: karma KyleHa
22:52 mubot KyleHa has a karma of 2
22:52 moritz_ diakopter: I think it's quite simple
22:52 diakopter ok :/
22:52 carlin mubot: link KyleHa kyle
22:52 mubot kyle is now an alias for KyleHa (KyleHa will gain any karma given to kyle)
22:53 carlin mubot: karma KyleHa
22:53 mubot KyleHa has a karma of 8
22:53 KyleHa Nifty!
22:53 diakopter moritz_: well? :)
22:53 KyleHa carlin++  # aliases
22:54 moritz_ diakopter: regex divided by ::a divided by regex etc.
22:54 moritz_ mubot: link moritz moritz_
22:54 mubot moritz_ is now an alias for moritz (moritz will gain any karma given to moritz_)
22:54 diakopter ah :)  good job
22:54 diakopter mubot: link moritz_ moritz
22:54 mubot moritz is now an alias for moritz_ (moritz_ will gain any karma given to moritz)
22:55 diakopter moritz_++ moritz++
22:55 moritz_ mubot: karma moritz
22:55 mubot moritz has a karma of 1
22:55 carlin argh don't do that :-P
22:55 moritz_ mubot: karma moritz_
22:55 mubot moritz_ has a karma of 2
22:55 diakopter hee hee
22:55 diakopter mubot: unlink moritz_ moritz
22:55 mubot Sorry, I don't understand that command
22:56 carlin I guess I have to add that command now :p
22:57 jnthn .oO( /msg mubot link moritz jnthn /msg mubot link masak jnthn /msg mubot ... )
22:57 jnthn oh wait, wrong way round!
22:57 moritz_ lol
22:57 dalek rakudo: 16eab0f | moritz++ | src/setting/Complex.pm:
22:57 dalek rakudo: fix previous commit (Complex.perl), masak++ moritz--
22:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​6eab0f3c445d8a4c4c507b24cea65536a4eaccb
22:57 moritz_ all your karma are belong to us!
22:57 jnthn Damm, my plan to gain epic karma failed!
22:58 Wolfman2000 Is dalek the git bot?
22:58 diakopter rakudo: (Block.new)(); # masak, moritz_, is this one tracked?
22:58 p6eval rakudo 74f561: OUTPUT«src/call/context.c:653: failed assertion 'Parrot_pcc_get_regs_used(interp, ctx, REGNO_PMC) > idx'␤Backtrace - Obtained 14 stack frames (max trace depth is 32).␤/home/p6eval//p1/lib/libparrot.so.1.7.0 [0x2b1328f7a873]␤/home/p6eval//p1/lib/l​ibparrot.so.1.7.0(Parrot_confess+0x87)
22:58 p6eval ..[0x2…
22:58 moritz_ diakopter: don't think so
22:58 moritz_ Wolfman2000: among other things, yes
22:58 jnthn lol fail
23:02 * masak submits rakudobug
23:02 moritz_ rakudo: Signature.new
23:02 p6eval rakudo 74f561:  ( no output )
23:02 jnthn :-P
23:02 moritz_ rakudo: (WhateverCode.new).()
23:03 p6eval rakudo 74f561: OUTPUT«src/call/context.c:653: failed assertion 'Parrot_pcc_get_regs_used(interp, ctx, REGNO_PMC) > idx'␤Backtrace - Obtained 14 stack frames (max trace depth is 32).␤/home/p6eval//p2/lib/libparrot.so.1.7.0 [0x2ac8adbd9873]␤/home/p6eval//p2/lib/l​ibparrot.so.1.7.0(Parrot_confess+0x87)
23:03 p6eval ..[0x2…
23:03 moritz_ seems to be the same with all code types
23:03 jnthn yes
23:03 zaslon lolmasakhazblogged! masak++ 'November 4 2009 -- no log in for you!': http://use.perl.org/~masak/journal/39843?from=rss
23:03 jnthn it's not surprising.
23:03 jnthn And probably resolved in ng too.
23:04 jnthn Yes, it doens't explode in ng.
23:08 masak I thought I would have time to do a Web.pm week blog today, but that turned out to be too optimistic. will do that tomorrow.
23:08 masak along with getting a swine flu shot, and watching Harry Potter and the Half-blood Prince. :)
23:10 pugs_svn r28989 | moritz++ | [t/spec] remove some junction tests that relied on internal methods; fudge others for Rakudo
23:10 masak but first, sleep.
23:10 masak 'night, #perl6!
23:10 moritz_ good night masak
23:10 carlin 'night masak
23:11 diakopter rakudo: (my $a = { $^a() + * })($a, $a);
23:11 p6eval rakudo 74f561: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤in Main (file src/gen_setting.pm, line 324)␤»
23:11 diakopter rakudo: (my $a = { $^a() + * })($a);
23:11 p6eval rakudo 74f561: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤in Main (file src/gen_setting.pm, line 324)␤»
23:13 Wolfman2000 and...I tried going too fancy on my first attempt at classing with Perl 6. Pastebin coming
23:13 lisppaste3 wolfman2000 pasted "What's the proper way of doing the second addPerson method?" at http://paste.lisp.org/display/89802
23:14 moritz_ push @!people, @persons
23:14 moritz_ you can't use a pointy block with a statement-modifying 'for'
23:15 moritz_ you could also do
23:15 dalek rakudo: 5e05b88 | moritz++ | t/spectest.data:
23:15 moritz_ has Str @!people;
23:15 dalek rakudo: [t/spectest.data] remove junction test which is now gone.
23:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​e05b88b6df14e8c8792ece1d0cc1dfd7a8b6d70
23:15 moritz_ erm, sorry
23:15 moritz_ has Str @!people handles <push>;
23:15 moritz_ and then you can call .push on objects of your class
23:15 Wolfman2000 moritz_: not familiar with the handles keyword yet
23:16 moritz_ delegation
23:16 moritz_ anyway, you don't have to get too fancy
23:16 tak11 joined #perl6
23:16 moritz_ multi method addPerson(*@p) { @!people.push: @p }; will do nicely, then you just need one of them
23:17 Wolfman2000 What's the * prefix for? Don't recall seeing that in perl code yet
23:17 moritz_ it means 'take as many arguments as you can'
23:18 moritz_ we call that slurpy
23:18 moritz_ it's similar to the regex quantifier in .*
23:18 moritz_ rakudo: sub sum(*@a) { [+] @a }; say sum(5); say sum(5, 6, 7)
23:18 p6eval rakudo 74f561: OUTPUT«5␤18␤»
23:19 Wolfman2000 Using *@p worked better than the multi methods. Still, I wonder of the handles keyword
23:19 moritz_ handles means "redirect methods to that attribute"
23:20 moritz_ rakudo: class MyArray { has @!contents handles <Str push> }; my $a = MyArray.new; $a.push(5, 6); say $a
23:20 p6eval rakudo 74f561: TIMED_OUT
23:20 * moritz_ hates timeouts
23:20 diakopter rakudo: ({nextsame})()
23:20 p6eval rakudo 74f561: OUTPUT«Null PMC access in clone()␤in Main (file <unknown>, line <unknown>)␤»
23:20 diakopter clone?
23:20 moritz_ Wolfman2000: anyway, that gives "5 6\n" for me locally
23:20 moritz_ diakopter: submit!
23:21 * diakopter plays dumb, mostly always
23:21 jnthn diakopter: I'll say it again. If you're going to do stupid stuff to try and break Rakudo, you probably will find ways.
23:21 diakopter ..I know...
23:21 moritz_ that's good; we need people like that ;-)
23:21 diakopter better documented than not
23:21 diakopter if anything
23:21 Wolfman2000 ...very interesting. I got that code working, but still left the old stuff commented.
23:22 Wolfman2000 Seems like handling can be used to limit what subs can be used within classes.
23:22 ihrd left #perl6
23:22 moritz_ and it increases the chances that KyleHa++ writes tests for that ;-)
23:22 jnthn Well, until the bug queue is so full of insanity that we can't find things that problems for everyday users trying to just write working code. :-)
23:22 moritz_ Wolfman2000: it just installs proxy methods
23:22 payload joined #perl6
23:22 Wolfman2000 Those on feather, check jafelds/classes/fifo.pl
23:24 moritz_ you can also rename push to addPeople
23:24 moritz_ has @!people handles :addPeople<push>
23:25 omega_ joined #perl6
23:25 Wolfman2000 handles :yourMethodName(OriginalMethodName)?
23:25 Wolfman2000 err...
23:25 Wolfman2000 < >
23:25 Maddingue joined #perl6
23:25 Wolfman2000 wow
23:26 phenny joined #perl6
23:26 Wolfman2000 I think I'm starting to like more and more of Perl 6
23:26 moritz_ yes
23:26 moritz_ unless I mixed the order up ;-)
23:26 moritz_ just try it
23:26 Wolfman2000 moritz_: just ran the code: it worked
23:26 moritz_ \o/
23:27 moritz_ two minor comments on style
23:27 Wolfman2000 Someone always critiques another's style: I'm used to it. lay it on moritz_++
23:27 moritz_ in Perl it's custom to use CamelCase for type and class names, but under_scores or minus-signs in sub and variable names
23:28 moritz_ second: be consistent with your names, People vs Person
23:28 Wolfman2000 ...I did read in the preview book that minus-signs (really hyphens) are now allowed
23:28 Wolfman2000 moritz_: I'm generally adding a $person to @people
23:28 Juerd Wolfman2000: You said something about the hosting on feather not providing a way to execute code. That's true. It'd become incredibly chaotic and hard to maintain, so I let everyone run their own Apache (or whichever webserver) if they want that.
23:28 Juerd Wolfman2000: http://feather.perl6.nl/ - see the first FAQ
23:29 Wolfman2000 I missed this...holy crap, I may have to take advantage of this.
23:29 moritz_ Wolfman2000: one more... calling it a Queue and making it work like a stack seems.. counter-intuitive ;-)
23:29 Juerd Feel free
23:29 Juerd Just please run it under ulimit!
23:29 Wolfman2000 moritz_: ...I mixed them up? Whoops
23:30 Wolfman2000 Juerd: I'll need a reminder on what ulimit is, but otherwise, I've got it
23:30 Juerd Wolfman2000: man ulimit
23:30 moritz_ man bash-builtins
23:30 diakopter rakudo: ({last})()
23:30 p6eval rakudo 74f561: OUTPUT«␤Null PMC access in invoke()␤in Main (file <unknown>, line <unknown>)␤»
23:30 Juerd Heh, no man ulimit :(
23:30 moritz_ Wolfman2000: if you substitute pop by unshift all should be well
23:30 Juerd Wolfman2000: help ulimit | less
23:30 Wolfman2000 I get man ulimit
23:31 Wolfman2000 Claims it's obsolete though
23:31 moritz_ that's just the syscall
23:31 Juerd Wolfman2000: That's not the ulimit command but the ulimit library call
23:31 moritz_ not the utility
23:31 Juerd sys? I thought lib.
23:31 moritz_ man bash-builtins
23:31 Wolfman2000 ah, here we go
23:31 moritz_ Juerd: you're right
23:31 Juerd Wolfman2000: ulumit prevents your apache from taking up all available memory, for example.
23:32 Wolfman2000 Juerd: Once I figure out how to set the ulimit on apache, that is
23:32 kidd` joined #perl6
23:32 Juerd Wolfman2000: Write a small shell script that does ulimit and then starts apache
23:32 Wolfman2000 ...crap!
23:33 Wolfman2000 Juerd: next time you give directions for copying your apache file, make sure permission isn't denied
23:33 Wolfman2000 I tried to sudo it, but now I've been reported
23:33 moritz_ OH NOEZ
23:33 moritz_ you're going to DIE
23:33 Wolfman2000 ......more like get red on my face
23:33 jnthn Naww...just FAIL.
23:33 Wolfman2000 it only denied me for the access and error logs
23:34 Wolfman2000 ......let's pretend that didn't happen if possible
23:34 moritz_ :-)
23:34 moritz_ Wolfman2000: you have to substitute the user name in that file
23:34 Wolfman2000 in which file?
23:35 moritz_ oh, ignore me
23:35 moritz_ it shouldn't matter that you can't copy access.log and error.log
23:35 moritz_ they'll just be generated anew
23:37 Wolfman2000 ...wait a second. Was the copied ~/apache/httpd.conf file supposed to be empty when I got it?
23:37 diakopter rakudo: say {*()}()
23:37 p6eval rakudo 5e05b8: OUTPUT«!whatever_dispatch_helper␤»
23:37 moritz_ Wolfman2000: mine wasn't empty
23:37 moritz_ just tried it
23:37 Wolfman2000 I probably did a step wrong
23:38 moritz_ you can just copy&paste those three steps
23:38 Wolfman2000 I did c&p this time
23:38 Wolfman2000 the httpd.conf file on my end is empty
23:38 * moritz_ has to go to bed now
23:39 moritz_ have the appropriate amount of fun and success ;-)
23:39 * diakopter throws
23:40 Wolfman2000 Guess I'm still behind on some things...oh well.
23:41 diakopter rakudo: say {return 23,*}($^a)
23:41 p6eval rakudo 5e05b8: OUTPUT«too many positional arguments: 2 passed, 2 expected␤in Main (file <unknown>, line <unknown>)␤»
23:41 diakopter there's that 2 > 2 thing
23:42 * diakopter idly wonders whether there's a ticket for that
23:50 * diakopter gets suckered into a pingpong match with a russian rocket scientist-turned oracle dba

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

Perl 6 | Reference Documentation | Rakudo