»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by wolfe.freenode.net on 30 October 2009. |
|||
jnthn | oooh...a pale ale too. | 00:00 | |
TimToady | or split it with your headache tomorrow... | ||
moritz_ | better than split it over your friend's head ;-) | ||
jnthn | After all, it'll be a splitting headache after that... | ||
rjbs | It was also $8 for the bottle. | ||
jnthn | rjbs: Meh, you can't even get Fosters for $8 in some European countries. ;-) | ||
TimToady wonders what happens in 120 minutes... | 00:01 | ||
rjbs | Yeah, but I live in the real world! | ||
jnthn | *cough*Norway*cough* ;-) | ||
rjbs | TimToady: Dogfish Head has a few excellent ales that are named for the amount of time the hops is allowed to boil. | ||
TimToady: IIRC, you are no hop head, so you would probably not be in love. 90 Minute is pretty great, though. | |||
TimToady | oh, I thought it was the half-life of your neurons when you drink it | ||
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. :-) | ||
TimToady | I have other ways of tormenting myself than with hops | ||
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. | ||
jnthn: and quite good, I bet | |||
frettled | TimToady: jumps are more relevant, anyway | ||
rjbs | I thought maybe $*x would work, but no. | ||
jnthn | rjbs: "our" doesn't work for that? That surprises me a little... | ||
rjbs | oh! | 00:03 | |
I think I have missed something. | |||
I thought that "> $x" would show me the var | |||
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 | ||
rjbs | if I remember to "say" it, $*x works | ||
$x does not | |||
jnthn | aha | ||
rjbs | pastie.org/682543 | ||
Am I relatively safe (to play) using $*lowercase variables willy nilly? | 00:04 | ||
jnthn | Should be. | ||
rjbs | Great, thanks. That will go a long way to making play easy! | ||
00:05
frew__ left
00:06
Woody2143 joined
|
|||
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. :) | ||
p6eval | rakudo 74f561: TIMED_OUT | ||
TimToady | ooh | ||
00:06
lichtkind left
|
|||
TimToady | rakudo: my $x = 42; eval 'say $x'; | 00:07 | |
rjbs | Well, they do say eval is pretty slow... | ||
00:07
tak_ left
|
|||
p6eval | rakudo 74f561: TIMED_OUT | 00:07 | |
rjbs | FWIW, that runs instantly on my build. | ||
diakopter | std: multi infix:<(> ($a, $b) { }; multi infix:<)> ($a, $b) { }; ::a ( ( ::b ; ::a ) ( ::b | ||
p6eval | std 28979: OUTPUT«ok 00:02 114m» | ||
rjbs | augh, too many colons | ||
I think I better go before I'm overcollonaded. | 00:08 | ||
00:08
tak11 joined,
Whiteknight joined
|
|||
rjbs | Back another time, ciao! | 00:08 | |
moritz_ | ciao | ||
00:08
tak11 left
|
|||
jnthn | ciao, enjoy the beer ;-) | 00:08 | |
00:08
rjbs left,
tak11 joined
|
|||
jnthn | diakopter: ouch! | 00:09 | |
diakopter | std: multi infix:<(> ($a, $b, $c, $d, $e) { }; # 4 dimensional infix | 00:10 | |
p6eval | std 28979: OUTPUT«ok 00:02 107m» | ||
jnthn | rakudo: multi infix:<(> ($a, $b) { $a + $b }; multi infix:<)> ($a, $b) { $a + $b }; say 1 ( (2 + 3) ) 4; | ||
p6eval | rakudo 74f561: OUTPUT«10» | ||
jnthn | damm! | ||
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 | ||
jnthn | :-D | ||
00:11
aufrank left
|
|||
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:15
patspam left
|
|||
TimToady | it wouldn't give you multiline defs, of course. one really needs hooks in the parse and a progressive evaluator for that | 00:16 | |
basically, the parser has to be able to treat the outermost statement list as a kind of co-routine with the evaluator | 00:18 | ||
00:20
patspam joined
|
|||
TimToady | essentially, the parser has to turn every outer EXPR; into BEGIN EXPR; | 00:20 | |
diakopter | std: BEGIN BEGIN BEGIN BEGIN BEGIN BEGIN | ||
p6eval | std 28979: OUTPUT«ok 00:01 105m» | ||
TimToady | std: BEGIN while 1 {...} | 00:21 | |
p6eval | std 28979: OUTPUT«ok 00:01 106m» | ||
diakopter | std: BEGIN return | 00:22 | |
p6eval | std 28979: OUTPUT«ok 00:01 104m» | ||
TimToady | you'll note that BEGIN is a statement_prefix, so can take a blorst | ||
diakopter | std: BEGIN / BEGIN / | \ BEGIN \ BEGIN | 00:23 | |
p6eval | std 28979: OUTPUT«ok 00:01 107m» | ||
TimToady | std: BEGIN my $x = 42; # legal | ||
p6eval | std 28979: OUTPUT«ok 00:01 110m» | ||
TimToady | and $x is set at BEGIN time | ||
rakudo: BEGIN my $x = 42; | |||
p6eval | rakudo 74f561: OUTPUT«Could not find non-existent sub BEGINin Main (file src/gen_setting.pm, line 324)» | ||
diakopter | now you've done it | ||
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. :-) | ||
TimToady | ETOOTROO | ||
jnthn | We'll catch up. :-) | ||
diakopter | rakudo: jection | ||
p6eval | rakudo 74f561: OUTPUT«Could not find non-existent sub jectionin Main (file src/gen_setting.pm, line 324)» | ||
TimToady | <twitch> | ||
en.wikipedia.org/wiki/Attractive_nu...e_doctrine | 00:26 | ||
jnthn | "Think of the children!!!" | 00:27 | |
TimToady | that error message is an attractive nuisance | ||
jnthn | I find it quite unattractive... | ||
Certainly it's DO NOT WANT. | 00:28 | ||
diakopter | rakudo: limation | 00:29 | |
p6eval | rakudo 74f561: OUTPUT«Could not find non-existent sub limationin Main (file src/gen_setting.pm, line 324)» | ||
TimToady | diakopter is not aware of the danger | ||
diakopter | or something | 00:31 | |
TimToady | the two are not mutually exclusive | ||
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: | ||
p6eval | std 28979: OUTPUT«===SORRY!===Illegal redeclaration of 'std' at /tmp/VH7ItEjVXz line 1 (EOF):------> std: std:⏏<EOL>FAILED 00:01 104m» | ||
00:33
orafu left,
orafu joined
|
|||
jnthn is too tired to finish it up today though. | 00:33 | ||
TimToady | TEN: goto TEN.new; | ||
std: TEN: goto TEN.new; | 00:34 | ||
p6eval | std 28979: OUTPUT«ok 00:02 105m» | ||
TimToady | std: sub: my sub sub sub {...} | 00:35 | |
p6eval | std 28979: OUTPUT«===SORRY!===Illegal redeclaration of routine sub (from line 1) at /tmp/iOMTNurc4X line 1:------> sub: my sub sub⏏ sub {...} expecting new name to be definedFAILED 00:01 104m» | ||
TimToady | aw | ||
diakopter | std: :std: # invocant? | 00:36 | |
p6eval | std 28979: OUTPUT«===SORRY!===Illegal use of colon as invocant marker at /tmp/wugMkLUp9Y line 1:------> :std:⏏ # invocant? expecting signatureFAILED 00:02 103m» | ||
TimToady | std: sub: my sub sub foo {...} | ||
p6eval | std 28979: OUTPUT«===SORRY!===Illegal redeclaration of routine sub (from line 1) at /tmp/pxFRegr1Zj line 1:------> sub: my sub sub⏏ foo {...} expecting new name to be definedFAILED 00:01 104m» | ||
TimToady | std: foo: my foo sub bar {...} | ||
p6eval | std 28979: OUTPUT«ok 00:01 104m» | ||
TimToady | my: my my sub sub {...} | 00:37 | |
std: my: my my sub sub {...} | |||
p6eval | std 28979: OUTPUT«ok 00:01 104m» | ||
diakopter | std: a: \; | 00:38 | |
TimToady | isn't that more fun then tormenting rakudo? | ||
p6eval | std 28979: OUTPUT«===SORRY!===Illegal redeclaration of 'a' at /tmp/HETvm2VazG line 1:------> a: \⏏; expecting any of: capterm prefix or term standard stopper term terminatorFAILED 00:02 109m» | ||
diakopter | s/tormenting/tickling/ | ||
TimToady | the two are not mutually exclusive | ||
00:40
cdarroch left
|
|||
diakopter | std: a: \; # redefinition? | 00:40 | |
p6eval | std 28979: OUTPUT«===SORRY!===Illegal redeclaration of 'a' at /tmp/l9DiW6IbUH line 1:------> a: \⏏; # redefinition? expecting any of: capterm prefix or term standard stopper term terminatorFAILED 00:01 109m» | ||
TimToady | I've been boggling at that | 00:41 | |
std: a: b: \; | |||
diakopter | boggling TimToady is the funnest | ||
p6eval | std 28979: OUTPUT«===SORRY!===Illegal use of colon as invocant marker at /tmp/Q2kxfx3fty line 1:------> a: b: \⏏; expecting any of: capterm prefix or term standard stopper term terminatorFAILED 00:02 109m» | ||
diakopter | it highlighted the semicolon red, but called it a colon? | 00:42 | |
TimToady | I think something strange is going on with backtracking | ||
diakopter | who you gonna call | ||
TimToady | goatbusters | ||
I think there's a new movie about that... | |||
diakopter | yeah, with gorge croonie | 00:43 | |
00:47
gfx joined
00:49
miyagawa joined
01:03
lestrrat joined
|
|||
Wolfman2000 | goatbusters? I thought it was ghostbusters | 01:16 | |
jnthn | Wolfman2000: No, no. | ||
Wolfman2000: What did you think all the animals wondering around were? | |||
diakopter | wolves. | ||
Wolfman2000 | jnthn: just got done with dinner, not aware of everything | ||
jnthn | It's certainly goatbusters. There's even the logo... tommymack.com/gb.jpg | 01:17 | |
TimToady | www.themenwhostareatgoatsmovie.com | ||
Wolfman2000 | huh...I'm behind on the times then | 01:18 | |
diakopter | std: .x xx .x | 01:19 | |
p6eval | std 28979: OUTPUT«ok 00:01 104m» | ||
pugs_svn | r28980 | lwall++ | [STD] fix ++diakopter's wagon | 01:20 | |
Wolfman2000 | ...what is .x supposed to say anyway? | ||
rakudo: .x | |||
p6eval | rakudo 74f561: OUTPUT«Method 'x' not found for invocant of class 'Failure'in Main (file src/gen_setting.pm, line 324)» | ||
TimToady | $_ should not start out containing Failure... | 01:21 | |
diakopter | Wolfman2000: I dunno | ||
rakudo: say (.WHAT.new)() | |||
p6eval | rakudo 74f561: OUTPUT«invoke() not implemented in class 'Undef'in Main (file <unknown>, line <unknown>)» | ||
jnthn | TimToady: And it should start out containing... | ||
? | |||
diakopter | rakudo: say .WHAT | ||
p6eval | rakudo 74f561: OUTPUT«Failure()» | 01:22 | |
diakopter | rakudo: say .WHAT.new.WHAT | ||
TimToady | Object or Any | ||
p6eval | rakudo 74f561: OUTPUT«Failure()» | ||
TimToady | Uninitialized variables aren't failures, yet... | ||
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 :) | ||
jnthn | ah, ok | ||
Well, I guess we'll just have to fix Rakudo then. :-) | 01:24 | ||
TimToady | see S02:999 | ||
01:25
cotto_work left
|
|||
diakopter | std: .x.x x .xx xx .x x .xx xx .x | 01:26 | |
p6eval | std 28979: OUTPUT«ok 00:02 104m» | ||
jnthn | TimToady: Ah, thanks for the ref. | ||
01:26
crythias joined
|
|||
TimToady | rakudo: my Object $x .= new(); say $x.WHAT | 01:27 | |
p6eval | rakudo 74f561: OUTPUT«Object()» | ||
diakopter | std: `rm -Rf /` | 01:28 | |
p6eval | std 28979: OUTPUT«===SORRY!===Confused at /tmp/0Rg5oYkqsu line 1:------> <BOL>⏏`rm -Rf /` expecting any of: bracketed infix infix stopper prefix or term standard stopper statement end statement list term terminator | ||
..whitespaceFAILED 00:01 109m» | |||
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 | ||
Wolfman2000 | ...I'm asking the wrong question | ||
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... | ||
ENOCLOO | |||
TimToady is not webby | |||
Wolfman2000 | ...don't know then. That's fine. | 01:31 | |
...and duh: the main person I need is...asleep right now | |||
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 | ||
colomon | right | ||
actually, rakudo handles it quite well. | 01:33 | ||
Wolfman2000 | wonder why I had trouble with it | ||
colomon | what it cannot do is overload an infix operator which is defined in the parrot section of rakudo. | ||
I believe ^ is probably the case. | |||
jnthn | Aye. We need to finish moving 'em all to the setting. | ||
colomon | basically one of the things going on the last few months has been moving operators "to the setting", as jnthn says. | ||
just not all done yet. | 01:34 | ||
afk for a moment | |||
Wolfman2000 | ...what is meant by "to the setting" exactly? | ||
diakopter | std: if \ { } { } | ||
p6eval | std 28979: OUTPUT«ok 00:01 103m» | ||
TimToady | sometimes called "prelude" in languages like Haskell | ||
Wolfman2000 | I haven't used Haskell | ||
jnthn | Wolfman2000: We define an increasiongly large chunk of the Perl 6 built-in types, operators and so forth in Perl 6 itself. | ||
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 | ||
we actually consider it a lexical scope surrounding the user's code | |||
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 | ||
jnthn | We just haven't got all of them moved over yet, that's all. | ||
Wolfman2000 | is there a way I can help with that? | 01:37 | |
colomon | Is moving more stuff to the setting something that should wait on the ng branch? | 01:38 | |
jnthn | Wolfman2000: Short answer: yes. | ||
Wolfman2000 | ...it's the long answers that's the tricky bit | ||
Wolfman2000 waits for me | |||
waits for it* | |||
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:39 | |
TimToady | EBADTIMING | 01:40 | |
jnthn | Basically, wait a week. :-) | ||
Wolfman2000 | then compile the parrot + rakudo package again. got it | ||
TimToady | it's okay to salivate in the meantime | ||
Wolfman2000 | ...is there a bot or something that can at least report commits to the repo? | ||
jnthn | There is one here, and it works - kinda. | ||
The problem is that it only reports commits to master. | 01:41 | ||
Wolfman2000 | that's all I need to know. | ||
jnthn | And not the branch. | ||
colomon | you can follow the branch (if that's what you're asking) at github.com/rakudo/rakudo/commits/ng/ | ||
jnthn | So it's been awfully quiet of late. :-) | ||
Wolfman2000 | no commits at all today: noted | ||
I won't worry about it | |||
afk for...about 15-20 minutes. | |||
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 github.com/rakudo/rakudo/blob/maste...erators.pm you can see what those in the setting already look like. | ||
TimToady | std: 80 | 01:43 | |
p6eval | std 28979: OUTPUT«ok 00:01 102m» | ||
jnthn | std: 42 | 01:44 | |
p6eval | std 28979: OUTPUT«ok 00:01 102m» | ||
jnthn | aww, no easter eggs | ||
colomon | Wolfman2000: also lots of operators in src/setting/Complex.pm and src/setting/Rat.pm. | ||
01:45
nickgibbon joined
|
|||
jnthn | OK, time for me to sleep...night all | 01:50 | |
TimToady | gnt | 01:51 | |
diakopter | std: label1: last (label1.new) | 01:53 | |
p6eval | std 28980: OUTPUT«ok 00:02 108m» | ||
TimToady | std: `rm -Rf /` | ||
p6eval | std 28980: OUTPUT«===SORRY!===Bogus statement at /tmp/erwzgVIhTQ line 1:------> <BOL>⏏`rm -Rf /` expecting any of: bracketed infix infix stopper prefix or term standard stopper statement end statement list term terminator | ||
..whitespaceFAILED 00:02 10… | |||
TimToady | std: a: \; | 01:54 | |
p6eval | std 28980: OUTPUT«===SORRY!===You can't backslash that at /tmp/kp5jHeUDuq line 1:------> a: \⏏; expecting any of: capterm prefix or term standard stopper term terminatorFAILED 00:02 109m» | ||
diakopter | std: BEGIN my @$$ | 01:55 | |
p6eval | std 28980: OUTPUT«ok 00:02 106m» | ||
diakopter never gets any lolz from that one. :( | 01:57 | ||
TimToady | that's because it's an anonymous variable | 02:01 | |
02:02
daemon left
|
|||
TimToady | .oO(Never @$$ume...) |
02:02 | |
Wolfman2000 | ...I don't recognize the Q:PIR syntax used for infix:<+> | 02:03 | |
02:03
linguini left
|
|||
TimToady | it's a rakudo hack | 02:03 | |
Wolfman2000 | ...seems like some varient of assembly. Makes me feel...uneasy. | 02:04 | |
TimToady | it's Parrot Intermediate Language | ||
s/Language/Representation/ | 02:05 | ||
or something like that... | |||
so yes, basically OO assemply code | |||
TimToady has a dystypic moment | |||
or would that be dystybic? | 02:06 | ||
02:06
daemon joined
|
|||
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>)» | ||
Wolfman2000 | right, be strict | ||
rakudo: my $num = 4; my @list = [1, 2, 3]; $num + @list; | |||
p6eval | rakudo 74f561: ( no output ) | ||
Wolfman2000 | rakudo: my $num = 4; my @list = [1, 2, 3]; say $num + @list; | ||
TimToady | say | ||
p6eval | rakudo 74f561: OUTPUT«5» | ||
Wolfman2000 | ...thought I saw that on Terminal. Granted, never knew the behavior, but I'm curious. | 02:07 | |
TimToady | that's wrong | ||
oh, no, it's right | |||
@list only has one element | |||
lambdabot | No module "only has one element" loaded | ||
Wolfman2000 | ...isn't @list supposed to have three elements? | 02:08 | |
TimToady | no, @list, dummy | ||
Wolfman2000 | or did I miss the lesson on how to declare multiple items in a list? | ||
TimToady | [] makes a single scalar | ||
Wolfman2000 | rakudo: my $num = 4; my @list = (1, 2, 3); say $num + @list; | ||
p6eval | rakudo 74f561: OUTPUT«7» | ||
TimToady | rakudo: my $num = 4; my @list = 1, 2, 3; say $num + @list | ||
p6eval | rakudo 74f561: OUTPUT«7» | ||
Wolfman2000 | in that case, it added the number of elements in @list to 4 | ||
TimToady | yes | ||
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 | ||
which was an Array object | |||
Wolfman2000 | ...is there a Perl 6 .nanorc file out there? | 02:10 | |
TimToady | ain't heard 'o one | ||
*o' | |||
Wolfman2000 | oh well | 02:11 | |
TimToady | if PIR makes you uneasy, we have several other backends that target other VMs | ||
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 | ||
In the meantime, let me take care of some code I'm working on on Feather | |||
02:12
fax left
|
|||
TimToady | have the appropriate amount of fun | 02:13 | |
chow & | |||
02:14
cotto_work joined
|
|||
Wolfman2000 | Well, this is certainly a challenge. I'm doing something...wrong. The hard part is figuring out what. | 02:20 | |
...yeah, assistance is needed. nopaste coming. | 02:24 | ||
lisppaste3 | wolfman2000 pasted "@ans should be 4, 5, 6: not just 6." at paste.lisp.org/display/89759 | 02:26 | |
02:27
hudnix left
02:30
mberends left
02:31
gfx left
02:32
pointme left,
zaslon left,
pointme joined,
zaslon joined
|
|||
carlin | zaslon: help | 02:32 | |
zaslon | usage: add <name> <link to rss feed> | remove <name> | link <name> | ||
carlin | pointme: rssbot | ||
pointme | carlins's rssbot is at github.com/carlins/rssbot/ | ||
colomon | Wolfman2000: ('1', '2', '3') is a list of Str not a list of Num. | 02:34 | |
Wolfman2000 | ...still fails the infix check | 02:35 | |
TimToady | but also, rakudo doesn't know how to return lists yet. | ||
Wolfman2000 | ... | ||
TimToady | next week... | ||
colomon | what do you mean, "fails the infix check"? | ||
Wolfman2000 | colomon: TimToady answered my question. | ||
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 | ||
colomon | rakudo: sub abc() { return (1, 2, 3); }; say abc().perl; | ||
p6eval | rakudo 74f561: OUTPUT«[1, 2, 3]» | ||
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). | ||
TimToady | rakudo: sub abc() { @b = 4,5,6; return @b }; say abc().perl; | ||
p6eval | rakudo 74f561: OUTPUT«Symbol '@b' not predeclared in abc (/tmp/bwHSUcN1in:2)in Main (file <unknown>, line <unknown>)» | ||
TimToady | rakudo: sub abc() { my @b = 4,5,6; return @b }; say abc().perl; | 02:38 | |
Wolfman2000 | use my | ||
p6eval | rakudo 74f561: OUTPUT«[4, 5, 6]» | ||
TimToady | hmm | ||
maybe that's not the problem | |||
rakudo: sub abc() { my @b = 4,5,6; return @b }; say abc() | |||
p6eval | rakudo 74f561: OUTPUT«456» | ||
colomon | Yeah, the problem is that he's trying to add a list of strings using a function that takes a list of Num. :) | ||
Wolfman2000 | colomon: I removed the quotes | 02:39 | |
lisppaste3 | wolfman2000 annotated #89759 "Okay, quotes removed. Still having the same issue." at paste.lisp.org/display/89759#1 | ||
colomon | rakudo: multi sub infix:<+>(Num $a, Num $b) { $a <<+<< $b; }; my @ans = 1 + (1, 2, 3); say @ans.perl; | 02:40 | |
p6eval | rakudo 74f561: OUTPUT«[4]» | 02:41 | |
TimToady | rakudo: sub abc() { my @b = 4,5,6; return @b }; my @x = abc(); say @x.perl | ||
p6eval | rakudo 74f561: OUTPUT«[4, 5, 6]» | ||
colomon | whoops. | ||
rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< $b; }; my @ans = 1 + (1, 2, 3); say @ans.perl; | |||
p6eval | rakudo 74f561: OUTPUT«Symbol '$b' not predeclared in infix:+ (/tmp/18zhjmeTuT:2)in Main (file <unknown>, line <unknown>)» | ||
colomon | dang it | ||
02:41
lestrrat is now known as lest_away
|
|||
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; | ||
p6eval | rakudo 74f561: OUTPUT«[4]» | ||
colomon | I'm just full of typos tonight. | ||
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. | ||
BTW, you don't actually need to overload to do this. $num <<+<< @list does it, and that does work. | |||
TimToady | generally Perl 6 doesn't like to do hypers implicitly like mathematicians do | ||
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. | ||
Wolfman2000 | rakudo: my $num = 2; my @list = (4, 6, 8); say $num <<+<< @list; | ||
p6eval | rakudo 74f561: OUTPUT«6810» | ||
colomon | that means, copy the first argument until there are as many of them as the second argument, then add them pairwise. | ||
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); | ||
p6eval | rakudo 74f561: OUTPUT«8, 12, 16» | ||
Wolfman2000 | ... | ||
wow | |||
colomon | also is >>+>>, >>+<<, and , | 02:45 | |
<<+>> | |||
Wolfman2000 | rakudo: my $num = 2; my @list = (4, 6, 8); say join(", ", $num >>*>> @list); | ||
p6eval | rakudo 74f561: OUTPUT«Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.in Main (file <unknown>, line <unknown>)» | ||
TimToady | see S03:3756 | ||
colomon | ah, that's a rakudo bug. | ||
Wolfman2000 | colomon: I had no way of knowing that | ||
colomon | oh, wrong. | ||
if you're doing <<+<< or >>*>>, the arrows point to the short side. | 02:46 | ||
Wolfman2000 | Then what are <<?>> and >>?<< for? | ||
colomon | so that should have been $num <<*<< @list | ||
TimToady | <<op>> is when you don't know which side is short | ||
colomon | <<?>> add two lists, extending the shorter (if there is one) | ||
TimToady | >>op<< is when they're the same | ||
colomon | right, and signals an error if they are not. | 02:47 | |
TimToady | btw, more prettily written with «op» etc | ||
colomon | Also, I believe the hyper operators are allowed to thread (though not yet implemented anyway as far as I know). | ||
TimToady | implemented in pugs | 02:48 | |
colomon | (yeah, I can't easily type Unicode here) | ||
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:49
Whiteknight left
|
|||
colomon | They are a modifier to generate a fancy infix operator from a basic infix operator. :) | 02:50 | |
Though you can also say -<<@a to negate a list (for instance). | 02:51 | ||
(That is, prefix - as a hyperoperator). | |||
Wolfman2000 | let me get to the hyper stuff first please. I feel like I'm missing something | ||
02:52
eternaleye joined
|
|||
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]» | ||
colomon | Aha, there's the issue with your code from before. | ||
The Num @b binding wasn't working. | |||
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» | ||
Wolfman2000 | rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< @b; }; my @ans = 1 + (1, 2, 3); say @ans.perl; | ||
colomon | rakudo: multi sub infix:<+>(Num $a, Num @b) { $a <<+<< @b; }; my @ans = 1 + (1.0, 2.0, 3.0); say @ans.perl; | ||
p6eval | rakudo 74f561: OUTPUT«[4]» | ||
Wolfman2000 | ... | ||
colomon | looks to me like a bug. | 02:55 | |
Wolfman2000 | So...how can I declare an array of Nums then? | ||
Wait...I found a bug? | |||
colomon | That's my guess. | ||
Wolfman2000 | I don't know whether to smile or frown at this. | ||
colomon | Though maybe it's my inexperience declaring typed arrays. | ||
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. | ||
rakudo: my Num @a = (1.0, 2.0, 3.0); | |||
p6eval | rakudo 74f561: TIMED_OUT | 02:57 | |
colomon | woah, that's ugly. | ||
Wolfman2000 | ...never had that happen before | ||
colomon | Hmmm, looks like that should have worked. | ||
carlin | The evalbot has had some issues with timing out lately | 02:58 | |
rakudo: class A {}; | |||
Wolfman2000 | carlin: That shouldn't have timed out. | ||
p6eval | rakudo 74f561: TIMED_OUT | ||
carlin | It's a problem with the bot, works fine locally | ||
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 | ||
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; | ||
p6eval | rakudo 74f561: OUTPUT«[4]» | ||
TimToady | leave the Num off of @b | 03:03 | |
colomon | Of course, that example shouldn't match. | ||
Right, that fixes things. | |||
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]» | ||
colomon | TimToady: is that Num @b the right way to specify an array of Num? | ||
TimToady | Num is a nominal type, so only matches explicitly Num arrays | 03:05 | |
but @ should match (1,2,3) | |||
colomon | Right, the code works fine if you leave off the Num. | ||
And so it shouldn't work with Num @b? Guess it's not a bug then, just something confusing. :) | |||
Wolfman2000 | But num should match 1.0 as well as 1 | 03:06 | |
Sure seems like a bug | |||
TimToady | it's nominal typing, not structural typing | ||
colomon | Actually, Num shouldn't match 1 -- 1 is Int. | ||
Wolfman2000 | But 1 is also a Num | ||
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 | ||
colomon | That last one actually works locally. | 03:08 | |
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 | ||
rakudo: say 1.WHAT; | |||
Wolfman2000 | ...it worked locally on my end too | ||
p6eval | rakudo 74f561: OUTPUT«Int()» | ||
colomon | rakduo: say 1.Num.WHAT; | 03:10 | |
Wolfman2000 | ...I think you froze rakudo | ||
or didn't spell it right | |||
rakudo: say 1.Num.WHAT; | 03:11 | ||
p6eval | rakudo 74f561: OUTPUT«Num()» | ||
colomon | there you go. | ||
I should be in bed. :) | |||
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
|
|||
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). | ||
Wolfman2000 | let me guess | 03:13 | |
next week... | |||
colomon | Wolfman2000: In general, I've left the types off all of the math work I've done. | ||
Nope, it will take longer than that. | |||
At least, as far as I know. | |||
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:14 | ||
Wolfman2000 | ...right, I can leave types off of arrays | 03:16 | |
Still, I wonder... | |||
rakudo: (1, 2.0).WHAT | |||
p6eval | rakudo 74f561: ( no output ) | ||
Wolfman2000 | ...right | ||
rakudo: say (1, 2.0).WHAT | |||
p6eval | rakudo 74f561: OUTPUT«List()» | ||
Wolfman2000 | ...I was hoping more for a list of what, but alright | 03:17 | |
colomon | But it's not a list of anything in Rakudo. | 03:18 | |
1 and 2.0 are different types. | |||
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 | ||
Right, off to bed. | |||
Wolfman2000 | g'night | 03:20 | |
03:21
patspam left,
patspam joined
|
|||
Wolfman2000 | I think I will definitely look forward to Perl 6 when it becomes mainstream. | 03:30 | |
The hard part...will be getting there. | |||
03:30
envi^home joined
03:44
envi^office joined
03:51
orafu left,
orafu joined
03:55
lest_away is now known as lestrrat
04:03
dj_goku joined
04:18
szabgab left
04:19
szabgab joined
04:20
meppel joined
04:24
envi^office left
04:29
patspam left
04:31
meppl left,
meppel is now known as meppl
04:45
petdance joined
04:52
Jerry_ joined
|
|||
Jerry_ | hi, I am learning perl just now, is it ture to understand $_ as a temp variable ? | 04:53 | |
diakopter | it doesn't mind if you use it temporarily, but it's called the "topic variable" | 04:56 | |
Jerry_ | a dump question, how to define "topic variable"? I just had a little try with perl... | 04:57 | |
Wolfman2000 | You generally don't set $_ | 05:00 | |
dj_goku | you don't need to define it. Its there for free :D | 05:01 | |
Jerry_ | my background is C, so can i understand it as a void * for $_ = $bar ? | 05:02 | |
maybe cos I am using the codepad.org , so I have to set $_ = to something, otherwise it doesn't work.... | 05:04 | ||
dj_goku | can you give a code same? | 05:05 | |
or pastebin it actually | |||
Jerry_ | $sentence = "Up and under"; $_ = $sentence; if (/under/) { print "We're talking about rugby\n". $_; } | 05:06 | |
this will work, but without $_ = $sentence; it does not work in the www.codepad.org | 05:07 | ||
Wolfman2000 | Did you ever try: if ($sentence ~= /under) ? | 05:08 | |
or =~? | |||
05:10
justatheory left
|
|||
Jerry_ | yea, if ($sentence ~= /under/) will exec print | 05:10 | |
05:10
justatheory joined,
bpetering joined
|
|||
Jerry_ | but the tutorial say "The $_ variable is the default for many Perl operations and tends to be used very heavily." | 05:11 | |
so i want to understand it better. | |||
05:12
hercynium left
|
|||
diakopter | Jerry_: perhaps you'd find more help for Perl 5 on a Perl 5 channel.. | 05:12 | |
Jerry_ | so, in perl6, $_ is not used? | 05:14 | |
Wolfman2000 | It is | ||
carlin | In Perl it is used a little bit differently | ||
*Perl 6 | |||
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. | ||
pugs_svn | r28981 | lwall++ | [t/spec] parsefail with listop inside ?? !! | ||
05:15
jaldhar joined
|
|||
Jerry_ | right, so that means no dirty tricks? | 05:16 | |
Wolfman2000 | I never said that | ||
Jerry_ | I used to program in python for some work, but latter I found it quite tedious in some way... | 05:18 | |
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:20 | ||
05:24
nihiliad left
05:35
envi^home left
05:44
Maddingue left,
omega left,
phenny left,
phenny joined,
omega joined,
Maddingue joined,
irc.freenode.net sets mode: +v phenny
05:45
Jerry_ left,
gfx joined
05:47
stephenlb left
05:56
hitsubunnu joined,
hitsubunnu left
05:57
frew__ left,
frew joined
|
|||
bpetering | dukeleto++ | 06:00 | |
... hitting bugs ahead of me | |||
dukeleto | bpetering: what did I do now? | 06:02 | |
bpetering | dukeleto: hit parrot #979... | 06:03 | |
dukeleto: if i'm hitting that, do you think i could workaround by removing installed parrot? | 06:04 | ||
dukeleto | bpetering: yes. | ||
bpetering | dukeleto: wonderful. many thanks :) | ||
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 | |
s/install/installed/ | |||
bpetering | dukeleto: trying now... | 06:06 | |
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. :-) | ||
bpetering | what are the implications of that? | ||
06:08
frew__ joined,
frew__ left
|
|||
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 | ||
bpetering | japhb: yep | ||
japhb | bpetering, what dukeleto said. | 06:09 | |
A lot of hackish stuff gets a lot cleaner and less painful to work with. | |||
But for me the single most important change is that I can finally do OO code. | |||
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) | ||
dukeleto | nqp-rx basically took the rough edges off of nqp and added better regexen support | ||
bpetering: en.wikibooks.org/wiki/Parrot_Virtua...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. | ||
dukeleto | bpetering: but simply: perl 6 without the syntax sugar or dwimi-ness | 06:12 | |
japhb | ... and library. :-) | ||
dukeleto | bpetering: it can do most of what perl 6 can do, but you need to say it very carefully :) | ||
bpetering | dukeleto: that's a good meme :) | ||
dukeleto | bpetering: it's essential feature is that it is an easy-to-parse subset of perl 6 | 06:13 | |
06:13
frew left
|
|||
dukeleto | bpetering: which means it can be fast, yet reasonably high level | 06:13 | |
bbiab | |||
bpetering | np | 06:14 | |
japhb: there's obviously a difference in parsing speed, is there a difference in runtime speed also? | |||
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)» | ||
carlin | nqp: say('foo') | ||
p6eval | nqp: OUTPUT«foo» | ||
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. | ||
It gets that performance by not being general. | |||
For example, no assignment -- only binding. | |||
bpetering | hence the "speaking carefully"? | 06:16 | |
japhb | quite | 06:17 | |
06:18
frew joined
|
|||
bpetering | well thanks japhb, heaps informative :) | 06:18 | |
bpetering off to wrangle some more parrots | 06:19 | ||
japhb | :-) | ||
bpetering | dukeleto++, japhb++ | ||
06:24
astrojp left
|
|||
bpetering | also, carlin: good demonstration. :) carlin++ | 06:28 | |
dukeleto | nqp: say 42 | ||
p6eval | nqp: OUTPUT«Confused at line 1, near "say 42"current instr.: 'parrot;HLL;Grammar;panic' pc 365 (src/cheats/hll-grammar.pir:197)» | ||
diakopter | nqp: say(42) | 06:30 | |
p6eval | nqp: OUTPUT«42» | ||
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 1current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1616 (src/Regex/Cursor-builtins.pir:179)» | ||
bpetering | OH NOES | ||
diakopter | well.. | ||
bpetering | oops | 06:34 | |
nqp: class upper { has $.snobbery is rw }; my $goodness = upper.new; $goodness.snobbery = 'pointless'; | |||
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1616 (src/Regex/Cursor-builtins.pir:179)» | ||
bpetering | gah, it's that dang error again. | ||
diakopter: what am i doing wrong? | 06:35 | ||
diakopter | asking nqp to run Perl 6 code? | 06:37 | |
TimToady | no =, just := | ||
06:37
ssm joined
|
|||
bpetering | paying attention fail | 06:38 | |
nqp: class upper { has $.snobbery is rw }; my $goodness := upper.new; $goodness.snobbery = 'pointless'; | |||
p6eval | nqp: OUTPUT«sh: ./nqp: No such file or directory» | ||
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» | ||
TimToady | recompiling maybe | ||
diakopter thinks so too | |||
TimToady | needs a 'make snap' | ||
06:41
justatheory left
|
|||
diakopter | nqp: say(say) | 06:43 | |
p6eval | nqp: OUTPUT«say» | ||
bpetering | that's surprising | ||
06:43
envi^office joined
|
|||
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)» | ||
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? ) | ||
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)» | ||
pmichaud | nqp doesn't do public attributes or method accessors | 06:50 | |
at least, not yet | |||
so it only knows has $!snobbery | |||
bpetering | well, snobbery is best kept to one's self | 06:51 | |
pmichaud | hear hear | ||
06:59
rgrau` left,
Su-Shee joined
|
|||
Su-Shee | good morn.. well "very early". | 06:59 | |
pmichaud | good morning | 07:00 | |
well, "very late" :) | |||
Su-Shee | and also very silent probably and noone around. :) | 07:01 | |
07:03
crythias left
07:07
ihrd joined
07:08
ihrd left
07:09
ihrd joined
07:11
ihrd left
07:13
ihrd joined
07:14
ihrd left
07:16
ihrd joined,
ihrd left
07:23
zloyrusskiy joined,
zloyrusskiy left
|
|||
bpetering | hi Su-Shee :) | 07:23 | |
07:28
mberends joined
07:36
NorwayGeek joined
07:38
ihrd joined
07:39
ihrd left
|
|||
moritz_ | good localtime() everybody | 07:41 | |
mberends | good morning moritz_ | 07:42 | |
Su-Shee | moritz_: you're late. ;) | 07:53 | |
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
08:16
synth left
08:19
bpetering left
08:20
NorwayGeek left,
NorwayGeek joined
08:21
Bzek joined
08:26
PacoLinux left
08:29
ihrd joined,
ihrd left
08:31
JimmyZ joined
08:39
agentzh joined
08:40
mariuz joined
|
|||
mathw | Good localtime | 08:42 | |
diakopter | ahoy | 08:44 | |
08:46
hirschnase left
08:51
gfx left
08:52
JimmyZ left
08:54
mubot joined
|
|||
carlin | mubot++ | 08:55 | |
mubot: karma mubot | |||
mubot | mubot has a karma of 1 | ||
carlin | mubot-- | ||
mubot: karma mubot | |||
mubot | mubot has a karma of 0 | ||
mberends | carlin++ | ||
carlin | (Perl 6)++ | ||
mubot: karma Perl 6 | |||
mubot | Perl 6 has a karma of 1 | ||
carlin | mubot: purge mubot | 08:56 | |
mubot | mubot's karma has been reset | ||
carlin | mubot: karma carlin | ||
mubot | carlin has a karma of 1 | ||
mberends | carlin++ # really, you deserve it | ||
mubot: karma carlin | 08:57 | ||
diakopter | mubot: karma carlin | ||
mubot | carlin has a karma of 2 | ||
carlin is of an unknown quantity | |||
diakopter | mubot: karma carlin | ||
mubot | carlin is of an unknown quantity | ||
diakopter | mubot: karma carlin 2 | ||
mubot | carlin 2 is of an unknown quantity | ||
diakopter | mubot: karma carlin | ||
mubot | carlin has a karma of 2 | ||
diakopter | ++carlin | ||
mubot: karma carlin | |||
mubot | carlin has a karma of 2 | ||
diakopter | mubot: ++carlin | 08:58 | |
mubot | Sorry, I don't understand that command | ||
diakopter | mubot: carlin++++ | ||
mubot | Sorry, I don't understand that command | ||
diakopter | carlin++++ | ||
carlin | Not quite production ready yet | ||
diakopter | where 'production' means 'ready to be fuzzed' | ||
:D | |||
carlin | mubot: karma carlin | 08:59 | |
mubot | carlin has a karma of 3 | ||
diakopter | karma carlin | ||
@karma carlin | |||
lambdabot | carlin has a karma of 30 | ||
diakopter | ?karma carlin | ||
lambdabot | carlin has a karma of 30 | ||
diakopter | @jump off a cliff | ||
lambdabot | Unknown command, try @list | ||
carlin | mubot: jump off a cliff | 09:00 | |
mubot | Sorry, I don't understand that command | ||
carlin | pointme: all | ||
pointme | Are you insane!? | ||
carlin | Best error I have | ||
diakopter | pointme: | 09:01 | |
pointme | Sorry, I don't know anything about that project | ||
diakopter | pointme: orly | ||
pointme | Sorry, I don't know anything about that project | ||
carlin | pointme: rssbot | ||
pointme | carlins's rssbot is at github.com/carlins/rssbot/ | ||
carlin | pointme: http-daemon | 09:02 | |
pointme | mberends's http-daemon is at gitorious.org/http-daemon/ | ||
diakopter | bots: go forth and multiply | ||
09:08
mubot left
|
|||
moritz_ | hugme: show http-daemon | 09:08 | |
hugme | moritz_: sorry, I don't know anything about 'http-daemon' | ||
moritz_ | hugme: show hugme | ||
hugme | moritz_: the following people have power over 'hugme': PerlJam, TimToady, [particle], jnthn, masak, mberends, moritz_, pmichaud. URL: github.com/moritz/hugme/ | ||
09:11
reid04 left
09:12
reid04 joined
09:24
pmurias joined
09:35
envi^office left
09:37
pmurias left
09:49
buu joined
09:54
dakkar joined
09:58
Woodi left,
mathw left,
frettled left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:02
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:03
frettled left,
mathw left,
Woodi left,
rapacity left
10:04
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:05
frettled left,
mathw left,
Woodi left,
rapacity left
10:06
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:07
lestrrat is now known as lest_away
10:09
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:10
frettled left,
mathw left,
Woodi left,
rapacity left
10:11
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:12
frettled left,
mathw left,
Woodi left,
rapacity left
10:13
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:16
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:18
frettled left,
mathw left,
Woodi left,
rapacity left,
krunen joined,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:20
NorwayGeek left
10:21
frettled left,
mathw left,
Woodi left,
rapacity left
10:22
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:23
IllvilJa joined,
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:25
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:27
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:29
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:30
frettled left,
mathw left,
Woodi left,
rapacity left
10:31
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:32
frettled left,
mathw left,
Woodi left,
rapacity left
10:33
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:36
frettled left,
mathw left,
Woodi left,
rapacity left
10:37
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:40
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
|
|||
moritz_ | .oO( excessive link flapping ) |
10:41 | |
10:44
frettled left,
mathw left,
Woodi left,
rapacity left
|
|||
eiro | :-) | 10:44 | |
10:44
kst` joined
|
|||
eiro | hello perl6 mongers | 10:44 | |
10:44
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
|
|||
moritz_ | hi eiro | 10:45 | |
10:48
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:49
frettled left,
mathw left,
Woodi left,
rapacity left
10:50
mathw joined,
Woodi joined,
frettled joined,
rapacity joined,
irc.freenode.net sets mode: +oo mathw frettled
10:51
frettled left,
mathw left,
Woodi left,
rapacity left,
mathw joined,
Woodi joined,
rapacity joined
10:57
kst left
10:58
agentzh left,
mariuz left
11:06
parduncia left
11:08
lest_away is now known as lestrrat,
parduncia joined
11:17
envi^home joined
11:20
masak joined
|
|||
masak | good afternoon, #perl6. | 11:20 | |
mberends | masak, howdy! nice start on Temporal :) | ||
masak | mberends: thanks. | ||
I went home and refactored it, so that there's only one 'new' candidate accepting a string. | 11:21 | ||
hold on, I'll push those changes. | |||
mberends holds on | |||
masak | pushed. | 11:22 | |
it's less pretty than I had hoped, because there's something strange happening which botches $/ on the way into the closures. | 11:23 | ||
otherwise, I wouldn't have to use explicit signatures. | |||
11:25
eiro_ joined
|
|||
masak | strangely enough, I've yet to produce a small example which reproduces the $/ botching. | 11:26 | |
11:31
mariuz joined
|
|||
masak | & | 11:35 | |
11:35
eiro left
11:49
SmokeMachine joined
11:52
lichtkind joined
12:02
jaffa8 joined
|
|||
masak | TimToady: (subs quining themselves) I've been using that pattern lately in some p6 code! :) | 12:05 | |
12:06
petdance left
|
|||
masak discovers the word 'blorst' in STD.pm | 12:08 | ||
cute :) | |||
eiro_ | 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. | ||
eiro_: 'block or statement' | |||
eiro_ | oh ... that's why ... | ||
thanks masak | |||
masak | STD.pm is heavy on such internal lingo. that's part of why I look forward to doing a review on it. | 12:19 | |
halp! I want to watch jnthn++'s "Solved in Perl 6" on this page, but I'm unable to make a video start playing. www.nicovideo.jp/mylist/15370462 | 12:31 | ||
moritz_ | masak: it seems one has to log in first to view anything there | 12:34 | |
masak: at least s/www/de/ in the url lead me to that conclusion | |||
masak grumbles | |||
jnthn | oh hai | 12:38 | |
Finally, I think winter is catching up with me... | |||
jnthn seems to have a slight cold-ish thingy | |||
masak | it's definitely the season for that. | 12:48 | |
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. | ||
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. | |||
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!" | ||
jnthn | Oh, the media are always full of crap. | ||
masak | nod. | 12:51 | |
jnthn | They're almost a bigger problem than swine flu itself. :-/ | ||
masak | they're definitely worsening the original problem, at least. | ||
jnthn | Indeed. | ||
masak | but they also sometimes give real information, so it's a tough call. | ||
jnthn | But of course, people panicing for news and information makes them money. | ||
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. | ||
jnthn | :-( | 12:53 | |
In the UK, those ones were quite a mixed bunch. | |||
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? | ||
masak | moritz_: I wasn't saying that. there's a lot of crap there, too. | ||
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 left,
parduncia joined
|
|||
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. | 12:56 | |
13:03
rgrau left
|
|||
moritz_ has a hard time finding good, non-hyped news sources on the internet | 13:05 | ||
Su-Shee | swine flu vaccination on every channel.. (literally :) | 13:07 | |
13:07
tak11 left
|
|||
moritz_ | #perlde is free of it, atm :-) | 13:08 | |
jnthn | moritz_: There's this good one called The Onion...very reliable... ;_) | 13:10 | |
13:10
takadonet joined
13:11
lichtkind left
|
|||
mathw | moritz_: correction: s/on the internet/on this planet/ | 13:11 | |
masak | moritz_: for good Swine Flu information, the WHO worked for me. | ||
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 | ||
mathw | masak: The Onion's top story this morning was fantastic | ||
masak | mathw: URL? | ||
jnthn | masak: Who? | 13:14 | |
mathw | masak: www.theonion.com/content/news/congr...illion_for | 13:15 | |
masak | jnthn: www.free-jokes-online.com/jokes/hu,...assir.html | ||
moritz_ | the second last paragraph (of mathw's link) is especially nice | 13:21 | |
jnthn | masak: lol | ||
moritz_: Yes! | 13:22 | ||
mathw | moritz_: it is the crowning achievement of the article | 13:28 | |
jnthn shoves his latest package decls work into ng | 13:32 | ||
Not quite right yet, but by the end of the day we should be able to write class declarations again. | 13:33 | ||
masak | jnthn: are there stepwise instructions somewhere for making ng build? | 13:35 | |
moritz_ | 1) grab the latest and greatest parrot; install it | 13:36 | |
jnthn | 1) Switch to ng branch. Do Configure.pl --gen-parrot | ||
2) Grab, build and install nqp-rx | |||
3) make | |||
4) profit | |||
masak | jnthn: do I install nqp-rx globally? | ||
moritz_ | shouldn't that be 3) make profit ? :-) | ||
masak: to the same dir where you installed parrot lives | |||
jnthn | masak: You install it against the same Parrot you are building Rakudo ng with. | 13:37 | |
moritz_ | the one you use for rakudo too | ||
masak | jnthn: how do I do that? | ||
jnthn | masak: Well, that's why I told you to use --gen-parrot :-/ | ||
masak | yes. | ||
jnthn | masak: Anyway, when you configure nqp-rx then it's --parrot-config=... | ||
moritz_ | perl Configure.pl --parrot-conf=$path/to/parrot_config | ||
jnthn | where ... is the ...what moritz_ said | ||
moritz_ | erm yes, config, not conf | ||
masak | jnthn, moritz_: ah. thanks. | ||
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. | ||
You won't want to use ng for anything yet. | |||
masak | jnthn: yes, I'll definitely do --gen-parrot | ||
I'm doing that for my Rakudo fork too. keeps things less messy. | 13:39 | ||
also, I prefer the globally installed Rakudo to be the most stable one. | |||
so, do I just put nqp-rx directly in the parrot/ dir created by --gen-parrot? | 13:40 | ||
moritz_ | you can put it in any directory really | 13:42 | |
I keep it outside the rakudo dir | |||
Wolfman2000 | *yawn* morning | ||
jnthn | masak: Doesn't matter - what matters is what path you give to --pparrot-config when configuring it. | ||
masak | ah, so the only important thing is that I do --parrot-config? | ||
goodie. | 13:43 | ||
Wolfman2000 | masak: I forgot: you're the one that is working on Web.pm, right? | ||
13:44
ihrd joined
|
|||
jnthn | oh, I just remembered why I didn't push this before... | 13:44 | |
I broke "module" and thus Test.pm | |||
At least pmichaud is asleep, so I can fix it before he wakes up, and it'll be like it never happened. :-) | 13:45 | ||
13:45
iblechbot left
|
|||
masak | :) | 13:45 | |
jnthn | Aww, I think I'm going to have to go and read the modules spec too. | 13:46 | |
I mean, can modules have methods. If so, what on earth does that mean. etc. | 13:47 | ||
13:47
ihrd left
|
|||
jnthn | Heh. I think the answer is "no" | 13:49 | |
moritz_ thinks so too | |||
jnthn | Which is good, 'cus a different answer woulda hurt my brain. | ||
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:54 | |
jnthn | No, because the order of evaluation is not promised. | 13:55 | |
And there may be concurrent effects involved. | |||
masak | dang. :P | ||
jnthn | (That's my immediate reaction to why it's likely a problem, not definitive, btw) | ||
masak | understood. | ||
jnthn | The problem with relying on it is that imagine we parallelize the evaluation. | 13:56 | |
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. | |||
But it may have set $/. | |||
masak | aye. | 13:57 | |
13:58
pdcawley joined
|
|||
PerlJam | Would $/ ever contain a junction of Match objects? | 13:58 | |
(good morning btw) | |||
masak | the use case I see is something like `if (/<foo> <bar>/ | /<bar> <foo>/) { ... $<foo> ... $<bar> ... }` | ||
PerlJam: don't think so. | |||
PerlJam: good morning! | |||
13:58
fax joined
|
|||
jnthn | PerlJam: Only if you explicitly made it do so, I suspect. | 13:59 | |
I mean, if you do $/ = $foo ~~ (/foo/ | /bar/ | /baz/) | |||
Then yeah, it probably will | |||
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? | ||
jnthn | Right. | 14:00 | |
It's just falling out of the more general mechanism. | |||
rakudo: my $a = 5 + 3|7; say $a.WHAT | |||
p6eval | rakudo 74f561: OUTPUT«Junction()» | ||
masak | PerlJam: but smartmatch is aware of junctions, so $/ isn't affected by this. | ||
jnthn | masak: oh hmm, yes | 14:01 | |
You'd want to thread the match. | |||
I shoulda wrote like like | |||
$/ = (/foo/ | /bar/ | /baz/).match($foo) | |||
I guess | |||
PerlJam | Hmm. So, a junction of regex is one of those cases where /.../ means compile a regex but don't match it perhaps? | 14:02 | |
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 | |
s/enforces/causes/ | |||
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. | ||
ENEEDMORECOFFEE | |||
jnthn goes to get more while he re-compiles | |||
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:05 | |
jnthn | There's no junction context, really. | 14:07 | |
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? | ||
jnthn | Wolfman2000: In master, it won't have been. | ||
Wolfman2000: Just about all development is happening in a branch at the moment. | 14:09 | ||
Wolfman2000: Well, s/won't/proably won't/ | |||
Wolfman2000 | How do I switch my branch then? I don't know if this is the git branch or svn branch | ||
jnthn | Wolfman2000: You want to be using master. | ||
Wolfman2000 | :( | ||
jnthn | Wolfman2000: You srsly do not want to use the development branch at the moment. | ||
It's a building site. | 14:10 | ||
And we throw concrete blocks around just for fun. | |||
:-) | |||
Wolfman2000 | ...let me at least get this cleared up. | ||
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" | ||
Which is like svn up | |||
Wolfman2000 | Already up-to-date | ||
bah | |||
jnthn | Right. | ||
So that's fine, you can just configure and build and you're done. | |||
:-) | |||
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 | ||
I'll understand the mentality...probably after I get more awake and into the shower | |||
jnthn | Wolfman2000: You can try ng, but it's not actually useful for anything at the moment. | ||
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 | ||
jnthn | Right. | ||
Wolfman2000 | ...and I don't know enough OO assembler to try to hack yet. | ||
PerlJam | Wolfman2000: what an odd thing to say | 14:14 | |
mathw | PerlJam: I assume that Wolfman2000 means PIR | ||
14:14
pdcawley left
|
|||
Wolfman2000 | mathw is probably more correct on the terminology | 14:14 | |
PerlJam | still odd :) | ||
14:14
pdcawley joined
|
|||
Wolfman2000 | A part of me wanted to help with moving operators to the settings files as you call them | 14:14 | |
I thought that would be the simplest operation | |||
14:15
synth joined
|
|||
mathw | That is fairly straightforward | 14:15 | |
Some of them you can even write entirely in Perl 6 | 14:16 | ||
Although some require inline PIR | |||
dakkar | hmmm. dev.perl.org/perl6/list-summaries/index.rss (aggregated by PlanetSix) is broken… who should I tell it to? | 14:17 | |
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 | |
14:18
kidd` joined
|
|||
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:18 | |
$P# is often used for getting the value of a variable. It does that through find_lex '$varname' | 14:19 | ||
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. | ||
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. | ||
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 | |
That means we can actually do low-level math operations, which if, say, infix:<+>, we need to. | |||
s/if/in/ | |||
Wolfman2000 | ...and likewise, $S# holds strings | ||
jnthn | Right. | ||
Wolfman2000 | ...looks like $I# contains boolean results | 14:22 | |
PerlJam | Integers | ||
jnthn | I = Integer, but yes, we often use them for 0 / 1 boolean flags too, at a low level. | ||
(high level in Perl 6, there's a Bool enum.) | |||
14:22
colomon left
|
|||
jnthn | Wolfman2000: Anyway, you're picking it up pretty fast already. :-) | 14:22 | |
Wolfman2000 | jnthn: I was a teacher assistant for Intel 8086 assembly for a few semesters at NC State | 14:23 | |
I don't recall all of the context of that class, though | |||
14:23
jhorwitz joined
|
|||
jnthn | Oh, cool. :-) | 14:23 | |
Wolfman2000 | Still...looks like this can come in handy | ||
PerlJam | Wolfman2000: the 8086 is a RISC instruction set compared to parrot :) | ||
Wolfman2000 | ...and I don't recall what RISC is. I feel dumb. | 14:24 | |
jnthn | rakudo: module Foo { method bar { } } | ||
p6eval | rakudo 74f561: ( no output ) | ||
PerlJam | RISC == reduced instruction set computer | ||
jnthn | meh! ng improves on another fail. | ||
PerlJam | as opposed to CISC == complex instruction set computer | ||
typically RISC CPUs will have very few, very general operations and CISC CPUs will have many specialized operations | 14:25 | ||
the 8086 is a CISC architecture, but compared to parrot it looks RISC :) | |||
Wolfman2000 | Anyway, jumping to setting/Num.pm. And...I'm actually seeing..."our" | ||
I thought our was generally not supposed to be used in previous versions of Perl programs. | |||
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
|
|||
Wolfman2000 | ...I should know what that means, but it's not sticking. Sorry. | 14:28 | |
14:28
colomon joined,
SmokeMachine left
|
|||
PerlJam | heh ... usually I feel like people on #perl6 are speaking greek to me. Now, apparently I'm the one speaking greek. | 14:28 | |
carlin | mubot: help | 14:29 | |
mubot | mubot: 0 | | ||
carlin | argh | ||
Wolfman2000 | I may have my bachelors from NC State, but I don't feel like all of the lessons stuck appropriately | ||
NC State is more for those that love football and agriculture than computer science, despite what is said. | |||
I'm living proof | |||
14:29
SmokeMachine joined,
mubot left
14:31
mubot joined
|
|||
carlin | mubot: help | 14:31 | |
mubot | usage: mubot: [karma [name] | purge <name> | link <nick> <alternative>] | <name>++ | <name>-- | ||
carlin | There we go. I'll leave it running and see what happens. | ||
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:32 | |
Wolfman2000 | the main focus was Java | 14:33 | |
14:33
mariuz left
|
|||
jnthn | karma jnthn | 14:33 | |
mubot: karma jnthn | |||
mubot | jnthn is of an unknown quantity | ||
jnthn | mubot: jnthn++ | ||
mubot | Sorry, I don't understand that command | ||
jnthn | jnthn++ | ||
mubot: karma jnthn | 14:34 | ||
mubot | jnthn has a karma of 1 | ||
jnthn | jnthn++ jnthn++ jnthn++ | ||
mubot: karma jnthn | |||
mubot | jnthn has a karma of 2 | ||
mberends | jnthn: you whore! | ||
mathw | Wolfman2000: Sounds like mine, although we were also blessed by the compulsory teaching of Haskell | ||
jnthn | mberends: lol! | ||
mberends: I was actually seeing it if let people karma themselves ;-) | |||
mberends | oh ;) | ||
jnthn | Of course, carlin++ is what I really shoulda said. | ||
mberends: yeah honest! ;-0 | |||
I mean, if I were to do jnthn++ again, that really would be karma whoring. | 14:35 | ||
oh, wait... | |||
carlin | mubot: purge jnthn | ||
mubot | jnthn's karma has been reset | ||
carlin | ;) | ||
mberends | not sayin' I don't believe ya... | ||
jnthn | lol | ||
carlin: Bot written in Perl 6? | |||
carlin | Yip | ||
jnthn | Just Too Awesome. | 14:36 | |
PerlJam | carlin++ indeed | ||
jnthn | carlin++ | ||
carlin | github.com/carlins/mubot | ||
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? ;-) | ||
mathw | Test.pm has classes in it? | 14:38 | |
I've patched Test.pm, I don't remember a class... | |||
unless it changed since then | |||
jnthn | mathw: It's a module, but it uses "module Test;" | ||
mathw: Maybe I'm abstrating too much though. | |||
mathw | yes | ||
I said classes | |||
not modules | 14:39 | ||
I use the non-block form for modules myself | |||
jnthn | They're all package declarators to me. :-P | ||
(Mostly because I just implemented the abstraction layer that hides away all the declarator-specific stuff from Actions.pm) | |||
14:42
frettled joined
|
|||
frettled | rakudo: say 1 ^^ 0 ^^ 1; | 14:44 | |
p6eval | rakudo 74f561: OUTPUT«» | ||
frettled | hmm | ||
rakudo: say 1 ^^ 1; | 14:46 | ||
p6eval | rakudo 74f561: OUTPUT«» | ||
14:47
payload joined
|
|||
frettled | rakudo: say 1 ^^ 0; | 14:51 | |
mathw | jnthn: I think my thinking on blocks for classes is shaped by C++ and Java | ||
p6eval | rakudo 74f561: OUTPUT«1» | ||
frettled | rakudo: say 0 ^^ 1; | ||
p6eval | rakudo 74f561: OUTPUT«1» | ||
frettled | rakudo: say 0 ^^ 0 ^^ 1; | ||
p6eval | rakudo 74f561: OUTPUT«1» | ||
jnthn | mathw: fwiw, I tend towards the block syntax too. | ||
frettled | rakudo: say 0 ^^ 1 ^^ 0 ^^ 1; | ||
p6eval | rakudo 74f561: OUTPUT«» | ||
jnthn | But I don't dinf either objectional. | ||
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». | ||
mathw | jnthn: I find non-block for modules makes sense, as modules often occupy the entire file anyway | 14:53 | |
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 | |
14:55
zloyrusskiy joined
14:58
PacoLinux joined
|
|||
jnthn | OK, hurrah, I fixed module up. | 14:59 | |
15:03
nihiliad joined
|
|||
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. | ||
Wanted to talk more about it, but I'm going to have to go into real life mode...sooner than last time today. | |||
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. | ||
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. | ||
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:07 | |
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. | ||
Wolfman2000 | what sort of experimenting needs to be done, and can it be done on my Feather box? | ||
masak | doing little things, just like when you wrote those math operator overloading scripts. | ||
setting up a little web page. | |||
tearing it down. | |||
regrouping. | 15:09 | ||
doing it again. | |||
Wolfman2000 | masak: I'm not being clear enough...I apologize. | ||
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. | ||
masak | jnthn: ah. I needed to do 'make install' in nqp-rx. | ||
Wolfman2000: november-wiki.org/ | 15:11 | ||
Wolfman2000: that's a Perl 6 web app running Apache, on feather. | |||
15:11
iblechbot joined
|
|||
TimToady | frettled: and in any case they can use ?^ for boolean parity, since additive ops are left associative rather than list associative | 15:11 | |
jnthn | masak: yes | 15:12 | |
masak can haz teh ng branch! o/ | |||
jnthn | masak: Heh. All you'll find out is how in pieces it is. :-) | ||
frettled | TimToady: you are always around 30 seconds ahead of what I read in the perl6-language discussion thread, hee-hee :D | ||
Wolfman2000 | So Web.pm is already in use. | ||
masak | Wolfman2000: I didn't say that. :) | 15:13 | |
Wolfman2000: that's the goal with that web app, however. | |||
Wolfman2000: it was written pre-Web.pm. | |||
Wolfman2000 | Okay, now I'm the one confused again. | ||
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 | ||
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 :/ | ||
Wolfman2000 | GMT-5...that's close to Eastern Time Zone US I think | ||
TimToady | .oO(on the Internet nobody knows you're a very cute dog...) |
||
masak | Wolfman2000: I backlog, so when you have something to say, just say it. | ||
Wolfman2000: or use phenny. | 15:16 | ||
phenny: tell Wolfman2000 like this. | |||
phenny | masak: I'll pass that on when Wolfman2000 is around. | ||
Wolfman2000 | ...I am around | ||
phenny | Wolfman2000: 15:16Z <masak> tell Wolfman2000 like this. | ||
15:16
TimToady sets mode: +vv hugme iblechbot,
TimToady sets mode: +vvvv ilbot2 ilogger2 IRSeekBot lambdabot,
TimToady sets mode: +vvvv lisppaste3 p6eval phenny pugs_svn,
TimToady sets mode: +v zaslon
|
|||
masak hugs phenny | 15:16 | ||
Wolfman2000 | Lots to learn...alright | ||
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. :) | ||
frettled | heh | ||
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) | ||
TimToady | I do try to track them in my /bots alias :) | ||
moritz_ | TimToady: I meant more documenting what they actually do :-) | 15:18 | |
TimToady | but...but...that's a sekrit!! | 15:19 | |
15:20
Lorn left
|
|||
masak | Wolfman2000: there are examples, but they're scattered, mostly in blog posts I've written. | 15:21 | |
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. | ||
Wolfman2000: mostly on my blog. entries prefixed 'Week X of Web.pm'. | |||
use.perl.org/~masak/journal | |||
Wolfman2000 | ...I may have seen your blog before. | ||
Just without realizing it | |||
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. | ||
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" | ||
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 | ||
colomon | moritz_: ok, but then shouldn't it be 0? | ||
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 | ||
masak | Wolfman2000: no problem. | ||
TimToady | which false value should you pick? | ||
moritz_ | colomon: shouldn't it be just False? | 15:27 | |
colomon | TimToady: you're say exclusive-or is junction "one", yes? | ||
rakudo: say 0 ^^ 0 | |||
p6eval | rakudo 74f561: OUTPUT«0» | ||
TimToady | yeah, and moritz_ is correct that False should be 0 | ||
colomon | rakudo: say 1 ^^ 1 | ||
p6eval | rakudo 74f561: OUTPUT«» | ||
TimToady | that's a P5ism | 15:28 | |
colomon | rakudo: say (1 ^^ 1).WHAT | ||
p6eval | rakudo 74f561: OUTPUT«Failure()» | ||
moritz_ | feel free to ticket that. | ||
TimToady | eep | ||
colomon | Failure stringifie to nothing? | ||
wait, Failure isn't what it should be, is it? | |||
masak submits rakudobug | |||
TimToady | it should just be false | ||
Wolfman2000 | colomon: So that means Failure Fails at Failing? | ||
masak | just to be clear, what's the p5ism? | ||
frettled | TimToady: Perl 6's usage of xor is IEEE 91 compliant. | 15:29 | |
TimToady | False === '' | ||
colomon | masak++ # for submitting that bug so I can run work out. :) | ||
moritz_ | TimToady: in Perl 6? really? | ||
TimToady | no | ||
P5 | |||
moritz_ | good | ||
15:29
NorwayGeek joined
|
|||
moritz_ was kinda confused for a second | 15:29 | ||
TimToady | but it's not the P5ism, since it's failing | ||
moritz_ | but even in P5 it's not true | 15:30 | |
because using '' as a number warns | |||
if warnings are enabled | |||
frettled | =1 Exclusive OR. One and only one input must be active to activate the output. | ||
(from IEEE 91) | |||
moritz_ | using false as a number doesn't warn | ||
frettled | I think that the surprising bit about how infix ^^ and xor work, is that they are infix. :) | 15:33 | |
15:33
Psyche^ joined
|
|||
TimToady | I don't know if any other languages use list associative infixes like Perl 6 does | 15:34 | |
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 | |
Common lisp: (logxor 0 1 0 1 0 1) == 1 | |||
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. | ||
frettled | Emacs lisp and CL agree on the latter, at least. | 15:37 | |
TimToady | yeah, well, the Lisp folks think they're mathematicians :) | ||
frettled | :) | ||
15:38
payload left
|
|||
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
meppl left
|
|||
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. | ||
mathw | it's some kind of other or | ||
fantasy or | |||
TimToady | reality or | ||
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 | ||
frettled | heh | ||
moritz_ | 1 0 1 0 1 beeing 1 is what you get if you reduce() with binary xor | ||
mathw | I guess it's actually just xor without list associativity | ||
So that's what's going to surprise people | |||
TimToady | only mathematicians, not people :P | 15:41 | |
15:41
aufrank joined
|
|||
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 { } | ||
TimToady | yes, and we allow them to say 1 ?^ 0 ?^ 1 too when the want parity | 15:42 | |
*they | |||
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
|
|||
TimToady | the ones who believe in sets more than they believe in induction? :) | 15:44 | |
mathw | urgh | ||
induction | |||
mathw shudders | |||
15:44
Patterner left,
Psyche^ is now known as Patterner
|
|||
fax | "But you believe in N, Don't you??" | 15:44 | |
moritz_ | induction is just the mathematician's way of doing recursion | ||
nothing scary or complicated | |||
provided somebody explains it properly | 15:45 | ||
fax | it's pretty scary and complicated it you ask me :P | ||
TimToady | binary madness even managed to infect linguistics for a while back in the 70s | ||
the position of your tongue in the mouth was "obviously" defined by a set of +/- properties | |||
so obviously the correct way to determine that one-of-these-is-true is to evaluate them two at a time recursively :) | 15:47 | ||
Wolfman2000 | alright, I'm out. No clue when I'll return. Don't be surprised if it's around...8 PM EST | 15:48 | |
15:48
Wolfman2000 left
|
|||
TimToady | rather than asking is this a 1-element subset of that set | 15:48 | |
I'll be surprised if it's 8 PM CEST... | 15:50 | ||
15:50
ejs joined,
KyleHa joined
15:52
frew__ joined,
frew__ left
15:54
cognominal left
15:57
kidd` left
16:00
justatheory joined
|
|||
frettled | In that case, don't hold your breath. | 16:01 | |
TimToady | in theory, it's too dark to read ;) | ||
justatheory bumps into a wall | 16:02 | ||
moritz_ | in reality you have lamps :-) | ||
frettled | yeah, but they're blinking, darnit! ;) | ||
moritz_ | justatheory: into which Wall? :-) | ||
TimToady | lamrs, anyway... | ||
justatheory | Oh, excuse me sir. | ||
16:05
bloonix joined
|
|||
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. | ||
dakkar | moritz_: thanks | 16:08 | |
phenny | dakkar: 16:07Z <moritz_> tell dakkar re broken RSS feed, mailto webmaster $at perl.org | ||
moritz_ | but I'm planning to slowly deprecate dev.perl.org/perl6/ in favour of perl6.org anyway | ||
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 | ||
dakkar: agreed | |||
16:09
zloyrusskiy left
16:10
TimToady sets mode: +vv mubot pointme
|
|||
moritz_ | don't know if the perl.org admins will apply it, though | 16:12 | |
16:20
jaldhar left
|
|||
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 | ||
same with rakudo | |||
japhb | nod | ||
moritz_ | if you search for 'rakudo' with google, rkaudo.org is only 4th hit or so | ||
huf | but at least the first rakudo.org link is the how to get rakudo article ;) | 16:22 | |
moritz_ | I'd love to see it the first hit, with sitelinks for the other pages (like status page) | 16:23 | |
16:25
jaldhar joined
16:27
nickgibbon left,
cognominal joined,
fax left
|
|||
KyleHa | I stumbled on the Rakudo profile on ohloh.net recently. I thought that was kind of neat. | 16:28 | |
16:39
pdcawley_ joined
|
|||
moritz_ | KyleHa: it is :-) | 16:39 | |
16:41
patspam left
16:45
pdcawley left,
pdcawley_ is now known as pdcawley,
jaldhar left
16:47
fax joined
16:51
eternaleye left
16:55
KyleHa left
|
|||
masak | jnthn: so, 'make test' has lots of failures. I guess that's well known and expected. | 16:56 | |
jnthn | masak: Yes | ||
masak: We're not at the point of running the spectests yet. | |||
moritz_ | ironically the new-and-improved regexes aren't hooked up in rakudo yet :-) | ||
16:56
KyleHa joined
|
|||
jnthn | Yeah, that was a blocker for that, though I think I've removed it. | 16:57 | |
16:59
meppl joined
17:03
icwiener joined
|
|||
masak | jnthn: this wasn't the spectests though, just the regular 'make test'. | 17:04 | |
jnthn | masak: Right | ||
I know | |||
Don't expect _anything_ to work in ng at the moment. | |||
masak | jnthn: ok, but I'm just so *excited*! | 17:05 | |
jnthn | :-) | ||
masak | if I'd like to help, what end do I pick up? | ||
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:06 | |
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. | ||
I'll just sit back in awe in the meantime. :) | |||
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 | |
Or, useful things without deep knowledge of Rakudo guts. | |||
KyleHa has been in awe for a while now. | |||
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 github.com/rakudo/rakudo/blob/ng/do...ckages.pod | ||
masak looks | |||
jnthn | masak: It's not finished yet. | 17:10 | |
masak: But it should give you an inkling as to how setting up custom metaclasses could end up looking like. | |||
17:11
rfordinal joined
|
|||
masak | (walking barefoot through a construction site)++ | 17:11 | |
Juerd | Are you looking forward to losing a toe? | ||
KyleHa | I usually close my eyes to lose a toe. | ||
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. | ||
jnthn | masak: It's the "we're finished now, gimme a proto-object" hook. | 17:13 | |
masak | :) | ||
jnthn | Basically, it means another chunk of the file formally known as Pri^Wguts.pir goes into a sensible place. :-) | 17:14 | |
17:14
cdarroch joined
|
|||
masak | \o/ | 17:14 | |
17:20
nihiliad left,
nihiliad joined
17:23
KyleHa left
17:24
KyleHa joined
17:25
hercynium joined
17:30
icwiener_ joined
|
|||
masak | swimming & | 17:30 | |
17:38
mj41 joined
17:40
kst` left,
kst joined,
stephenlb joined
17:43
eMaX joined
|
|||
mj41 | Hi. Can anybody put link to perl6.cz/wiki/Perl_6_and_Parrot_links on perl6.org please ? thanks. | 17:44 | |
takadonet | hey mj41 :) | 17:46 | |
17:46
icwiener left
|
|||
moritz_ | mj41: sure, you can do that if you have a pugs commit bit | 18:00 | |
mj41: if not, it's high time you get one ;-) | |||
18:03
lichtkind joined
|
|||
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:03 | |
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:05 | |
moritz_ | if you remove the K you're right | 18:10 | |
KyleHa | I don't see many committers with hunting equipment. Just insecticide. | ||
moritz_ | mj41: I'd put it into community, close to the wikis | ||
mj41 | What about "Planetsix and Perl 6 and Parrot links assembles many important and interesting blogs on the topic." ? | 18:13 | |
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 | |
both ways work for me | |||
japhb | KyleHa, several of us committers are Aikidoists. We could ... um ... pin you down and give you a good stretch. | 18:19 | |
pugs_svn | r28982 | mj41++ | [perl6.org/source/community] Added a link to Perl 6 and Parrot links. | 18:20 | |
mj41 | moritz++ thanks | 18:21 | |
18:27
Bzek left
|
|||
moritz_ | mj41: do you have scripts that automatically update that wiki page? | 18:27 | |
18:43
aufrank left
18:46
fax left
19:04
lichtkind_ joined
19:05
hercynium left
|
|||
jnthn | OK, now class decls work in ng (methods only so far) | 19:10 | |
And it is all done by a bunch of method calls on the metaclass. | |||
19:10
lichtkind left
|
|||
PerlJam | jnthn++ | 19:11 | |
moritz_ | cool | ||
PerlJam | exercise that mop | ||
19:12
zloyrusskiy joined
|
|||
jnthn | PerlJam: I need to do that on my floor sometime... | 19:12 | |
19:12
zloyrusskiy left
|
|||
jnthn | OK, next will be putting back attributes and other such things. | 19:13 | |
Oh, and multi-methods. | |||
And traits. | |||
KyleHa | Why does src/Perl6/Actions.pm not have 'use v6' ? | 19:15 | |
PerlJam | KyleHa: doesn't need it. | ||
KyleHa: what's the first line of that file? | |||
KyleHa | class Perl6::Actions is HLL::Actions; | 19:16 | |
jnthn | That's enough. :-) | ||
moritz_ | actually 'use v6;' is only needed if you want to run it from a 'perl' executable, a 'perl6' executable doesn't need it | ||
jnthn | And an nqp executable surely doesn't. :-) | ||
moritz_ | and 'class' is also an indicator for a Perl 6 program | ||
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? | ||
PerlJam | KyleHa: why? | ||
moritz_ | one doesn't, syntactically | ||
jnthn | KyleHa: By feeding it to each compiler, and seeing what accepts it. ;-) | 19:18 | |
KyleHa: tbh though it's not really an issue. | |||
KyleHa | PerlJam: If I wanted to do some work in that file, I'd want to know what the limits are. | ||
jnthn | NQP will be used by people writing compilers, and thus they'd generally know what they're using to write the compiler. :-) | ||
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. | ||
jnthn | However, it's only useful if we put it in a file called IGNOREME ;-) | ||
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 | ||
PerlJam | moritz_: "destroy" is a little much. :) | ||
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)." | ||
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
|
|||
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:24 | |
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:25 | |
PerlJam | KyleHa: that's not the file's fault! | 19:26 | |
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 | ||
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 | |
19:28
envi^home left
|
|||
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:28 | |
PerlJam | KyleHa: er, what? | 19:29 | |
19:29
rfordinal left,
rfordinal joined,
NorwayGeek left,
NorwayGeek joined
|
|||
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 | |
Mostly, it doesn't matter because this is all over my head anyway. | |||
PerlJam | KyleHa: but it *is* perl 6. | ||
jnthn | KyleHa: If you take NQP code, it should run also as Perl 6 code. | ||
KyleHa | Yeah, I get that. | ||
moritz_ | except from pir:: things maybe | ||
and Q:PIR { ... } | |||
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. | ||
PerlJam | KyleHa: that's up to you though. | ||
moritz_ | std: Q:PIR { ... } | ||
p6eval | std 28982: OUTPUT«===SORRY!===Unrecognized quote modifier: PIR at /tmp/kyZjDpXACm line 1:------> Q:PIR⏏ { ... }FAILED 00:01 104m» | ||
moritz_ | PerlJam: STD.pm disagrees | ||
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. | ||
PerlJam | moritz_: looks like it's time to patch the spec ;) | ||
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 | |
19:33
hercynium joined
|
|||
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 | ||
KyleHa | moritz_: That doesn't bother me. 8-) | 19:34 | |
PerlJam | KyleHa: then, for your distinguishment, any file that has Q:PIR in it is destined for the nqp compiler. | 19:35 | |
How's that? | |||
moritz_ | rakudo understands Q:PIR too | 19:36 | |
KyleHa | That's useful, except what Moritz said. | ||
PerlJam | KyleHa: what do you mean "except"? That's a perfectly valid heuristic. | ||
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. | ||
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
SmokeMachine left,
astrojp joined,
SmokeMachine joined
19:51
envi_home2 left
19:53
NorwayGeek left
19:54
NorwayGeek joined
20:00
desertm4x joined
|
|||
pugs_svn | r28983 | kyle++ | [t/spec] Test for RT 66178: "but" with nonexistent role | 20:09 | |
r28984 | kyle++ | [t/spec] Test for RT #66204: NewClass .= new should die | |||
carlin | masak: (rather belated) pong, from yesterday's backlog | 20:22 | |
masak | carlin: oh hai. I accidentally reviewed your rssbot and mwbot projects. | 20:23 | |
20:23
rgrau joined
|
|||
pugs_svn | r28985 | kyle++ | [t/spec] Test for RT 66252: match in void context does not set $/ | 20:23 | |
20:23
kidd` joined
|
|||
masak | carlin: it really rocks that you've written those two. carlin++ | 20:24 | |
I also find I have one minor stylistic comment and one minor architectural comment. | 20:25 | ||
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. | ||
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)] | ||
jnthn noticed that too | |||
(yes, I did also glance the source ;-)) | |||
masak | I was positively surprised to find those deps.proto files at all, by the way. I didn't think anyone used them. :P | ||
jnthn: no, it's rssbot that pulls in mwbot. the latter predates the former. | 20:29 | ||
20:30
Su-Shee left
|
|||
jnthn | ah, ok | 20:30 | |
I thought I'd seen rssbot in mubot's proto.deps, that's all | |||
masak: github.com/carlins/mubot/blob/master/deps.proto | 20:31 | ||
Maybe I mis-understand the purpose of the deps file though? | |||
(my first guess was it listed the projects this one *needed*) | |||
carlin | I've actually been thinking that I need to split the repos up | ||
20:32
TSa joined
20:33
patspam1 joined,
patspam1 left
|
|||
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. | ||
this might not be a concern for you, but it might be for people downstreanm. :) | 20:34 | ||
s/nm/m/ | |||
moritz_ | make an IrcBot package that contains IRC::Simple and BasicClient | ||
masak | I don't remember exactly what happens in proto, but it definitely won't install. | ||
carlin | Mubot is the IRC karma bot. Mwbot is the MediaWiki bot. | ||
carlin shouldn't have given them similar names | |||
jnthn | masak: oh! | 20:35 | |
masak | oh! | ||
jnthn | masak: That possibility ahdn't occured to me. ;) | ||
masak | sorry, I misunderstood. | ||
carlin | (Mubot is named that because Mu follows lambda in the greek alphabet) | ||
masak | carlin: I still think it might be a good idea to extract BasicBot.pm | ||
moritz_ | nice idea ;-) | ||
jnthn | masak: I'd only looked at the deps file in mubot. | ||
masak | carlin++ | ||
masak adds mubot to projects.list | |||
20:36
kidd` left
20:39
rgrau left
|
|||
carlin splits BasicClient and IRC::Simple into their own repos | 20:40 | ||
and I'll fix that syntax | 20:41 | ||
20:41
rfordinal left
|
|||
carlin | masak++ for the review | 20:41 | |
20:41
rfordinal joined
|
|||
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 | ||
s/miving/moving/ | 20:43 | ||
masak | that sounds both more informative and less informative at the same time. | ||
moritz_ | HTTP::Client? | ||
sure it's basic now, but that doesn't mean it has to stay basic forever | 20:45 | ||
masak | +1 | 20:46 | |
carlin | Hm, that's true | ||
masak | among <http basic client>, 'basic' is certainly the least informative word. | ||
carlin | (and by that same token IRC::Simple should be IRC::Client) | 20:47 | |
moritz_ | +2 | ||
masak | nod. | ||
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
|
|||
moritz_ svn rebases | 20:57 | ||
KyleHa: the first bunch looks fine | 20:59 | ||
but why is the second item in (11, $x, 22) mutable? | 21:00 | ||
21:00
takadonet left
|
|||
moritz_ | is there a spec reference for that somewher? | 21:01 | |
21:02
SmokeMachine left
|
|||
KyleHa | moritz_: I was just looking at the ticket. | 21:02 | |
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). | ||
moritz_ | it's neither bound, nor is it a signature | 21:04 | |
TSa | HaloO, is the complete container put into the list? | ||
moritz_ | TSa: that's the question; I think not | ||
KyleHa | That's the other thing I thought. Not binding, so... Hence my asking for advice. | ||
TSa | moritz_: me neither | 21:05 | |
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 | |
21:06
payload joined
|
|||
TSa | how about (1,\$x,2)? Does that capture the container as rw binding? | 21:07 | |
21:08
payload left
|
|||
moritz_ | TSa: don't ask hard questions when we can't even answer the simple ones :-) | 21:08 | |
21:08
payload joined
|
|||
KyleHa | OK, I think I'll change the second block of tests. | 21:08 | |
moritz_ | KyleHa++ # asking of review, and cleaning up | ||
pugs_svn | r28987 | kyle++ | [t/spec] Fixes to RT 66304 test after conversation with moritz++ | 21:10 | |
carlin | masak: IRC::Simple is now github.com/carlins/irc-client, and BasicClient is github.com/carlins/http-client | 21:15 | |
TSa | moritz_: how does ($x, $y) = 1,2 work? Is that a macro? | ||
moritz_ | TSa: no idea | 21:16 | |
masak | carlin: now added to projects.list | ||
21:16
fax joined
|
|||
masak | TSa: is what a macro? the assignment? | 21:16 | |
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 | |
so we have avoided the problem of binding the container into the list | |||
masak | TSa: even without the parentheses, it'll work, no? | 21:19 | |
moritz_ | no | ||
because there are two = operators | |||
with different precedences | |||
carlin | masak: Thanks :) Would you suggest renaming mwbot -> MediaWiki::Bot (or similar) to prevent confusion with Mubot? | ||
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
|
|||
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:21 | |
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
jhorwitz left
|
|||
sjohnson | howdy masak :) | 21:24 | |
masak | sjohnson: hi! | ||
TSa | moritz_: you mean my version parses as $x = (1, $y = 1)? | 21:25 | |
KyleHa | OK, resolved. Thanks. | ||
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 | |
so 22:19 < masak> TSa: even without the parentheses, it'll work, no? | |||
is not right | |||
masak | why not? | 21:28 | |
rakudo: my ($a, $b) = 1, 2; $a, $b = $b, $a; .say for $a, $b | 21:29 | ||
p6eval | rakudo 74f561: OUTPUT«21» | ||
21:30
desertm4x left
|
|||
moritz_ | sorry, on phone... | 21:30 | |
TSa | rakudo: say "cool" | ||
p6eval | rakudo 74f561: OUTPUT«cool» | ||
TSa | cool ;) | 21:31 | |
masak | ;) | ||
for people who want a sneak peek at what I'm currently putting together: github.com/masak/web/raw/master/tutorial/win.pdf | |||
comments are welcome. | |||
(really not much yet. I just finished up the build system, and now I'll add the meat of the tutorial) | 21:32 | ||
21:40
payload left
|
|||
moritz_ | rakudo: my ($x, $y); $x, $y = 1, 2; say $x, $y | 21:42 | |
p6eval | rakudo 74f561: OUTPUT«12» | ||
moritz_ | that looks wrong to me | 21:43 | |
21:43
NorwayGeek left,
NorwayGeek joined
|
|||
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. | ||
[particle] | you still don't know which var contains which value there | ||
diakopter | rakudo: my ($x, $y); ($x, $y) = 1, 2; say $x, $y | ||
p6eval | rakudo 74f561: OUTPUT«12» | ||
[particle] | rakudo: my ($x, $y); $x, $y = 1, 2; say $y, $x | ||
p6eval | rakudo 74f561: OUTPUT«21» | ||
moritz_ | rakudo: my ($x, $y); $x, $y = 1, 2; say "x = $x, y = $y" | ||
[particle] | there. | ||
p6eval | rakudo 74f561: OUTPUT«x = 1, y = 2» | ||
moritz_ | masak: perlcabal.org/syn/S03.html#Item_ass...precedence | 21:45 | |
With simple lvalues, = has this precedence, which is tighter than comma. (List assignments have listop precedence below.) | |||
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 | ||
diakopter | rakudo: my ($x, $y); ((($x, $y))) = 1, 2; say $x, $y | 21:47 | |
p6eval | rakudo 74f561: OUTPUT«12» | ||
masak | moritz_: define 'simple lvalue'. | ||
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. | ||
diakopter | rakudo: my $x; ($x = 4).WHAT = 1; say $x.WHAT | ||
p6eval | rakudo 74f561: OUTPUT«1» | ||
masak | I will attempt not to depend on this misfeature in my code. | ||
moritz_ | rakudo: my $x; ($x = 4).WHAT = 1; say $x.PARROT | ||
p6eval | rakudo 74f561: OUTPUT«Int» | ||
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)» | ||
moritz_ | rakudo: say 4.PARROT | ||
p6eval | rakudo 74f561: OUTPUT«Int» | ||
diakopter | rakudo: my $x; ($x = 4).WHAT = 1; say $x.WHAT.PARROT | ||
p6eval | rakudo 74f561: OUTPUT«Int» | ||
TSa | masak: what exactly do you consider a misfeature? | 21:50 | |
diakopter | rakudo: my $x; ($x = 'hi').WHAT = Block; say $x.WHAT | 21:51 | |
p6eval | rakudo 74f561: OUTPUT«Block()» | ||
masak | TSa: all I meant was that Rakudo is not up to spec with item assignment. | ||
diakopter | rakudo: my $x; ($x = 'hi').WHAT = Block; say ($x)() | ||
p6eval | rakudo 74f561: OUTPUT«invoke() not implemented in class 'Perl6Str'in Main (file <unknown>, line <unknown>)» | ||
diakopter | rakudo: my $x; ($x = 'hi').HOW = Block; say $x.WHAT | 21:52 | |
p6eval | rakudo 74f561: OUTPUT«Block()» | ||
diakopter | O_O | 21:53 | |
moritz_ | ORLY? | ||
alternate meta classes should be possible, but it doubt they should work like *that* | 21:54 | ||
masak | :) | ||
shall I submit a bug report? | |||
moritz_ | yes | 21:55 | |
masak does it | |||
diakopter | rakudo: my Int $a = 74; Int.WHAT = Str; $a = "hi"; say $a.WHAT | ||
p6eval | rakudo 74f561: OUTPUT«Str()» | ||
diakopter | rakudo: my Int $a = 74; Int.WHAT = Str; say $a.WHAT | ||
p6eval | rakudo 74f561: OUTPUT«Str()» | ||
diakopter | ^O_O^ | 21:56 | |
(that's not intended to be a smiling face) | |||
masak submits another one | |||
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
hercynium left
|
|||
masak | the what? | 21:57 | |
TSa | these * does it | ||
moritz_ | TSa: with /me | 21:58 | |
/me does it like this | |||
masak | moritz_++ # understanding the question | ||
TSa is happy to learn IRC | |||
thanks | |||
moritz_ | np | ||
KyleHa | rakudo: constant $A = (1,2,3);$A[1] = "x";say $A.perl; | 21:59 | |
p6eval | rakudo 74f561: OUTPUT«[1, "x", 3]» | ||
moritz_ | same bug | 22:00 | |
TSa | doesn't look very immutable to me | ||
moritz_ | TSa: it shouldn't be immutable, it should just be constant | ||
KyleHa | So I should merge that into the other one? | 22:01 | |
moritz_ | yes | ||
if you want something immutable, construct a list and bind to it | |||
constant $A := (1, 2, 3); # doesn't work in rakudo yet | |||
diakopter | rakudo: constant $a = 1,2,3; $a[1] := "x"; say $a.perl; | ||
p6eval | rakudo 74f561: OUTPUT«rtype not setin Main (file <unknown>, line <unknown>)» | ||
KyleHa | OK, that's merged. Wheee!! | 22:04 | |
diakopter | rakudo: constant ($a,$b) = 1,2; $a = "x" | 22:05 | |
p6eval | rakudo 74f561: OUTPUT«No applicable methods.in Main (file <unknown>, line <unknown>)» | ||
diakopter | lolmasakbugemail | 22:06 | |
wishful thinking, I guess | |||
moritz_ | that's know, we've regressed on array item binding for quite some time | ||
diakopter | array item binding? | 22:07 | |
oh | |||
rakudo: constant ($a,$b) = 1,2; | |||
p6eval | rakudo 74f561: OUTPUT«No applicable methods.in Main (file <unknown>, line <unknown>)» | ||
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) expectedin Main (file <unknown>, line <unknown>)» | ||
KyleHa | Well, no longer NPMCA, at least. | ||
22:10
dakkar left
|
|||
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 | |
proverbially that is. | |||
PerlJam | lilstevey: what are you trying to do with traits? | ||
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:14 | |
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:15 | ||
22:16
TSa left
|
|||
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:18 | |
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: svn.pugscode.org/pugs/t/spec/S14-tr...routines.t contains examples of traits on subs | ||
lilstevey | many thanks @PerlJam, @moritz, I'll take a look at that. | 22:20 | |
22:20
rgrau joined
|
|||
moritz_ | lilstevey: if that doesn't help you, nopaste your example code so that we can help you with that | 22:21 | |
lilstevey | Ok, will return inabit after having a play. Cheers! | 22:22 | |
22:22
lilstevey left
|
|||
diakopter | rakudo: в_октябре | 22:23 | |
p6eval | rakudo 74f561: OUTPUT«Could not find non-existent sub в_октябреin Main (file src/gen_setting.pm, line 324)» | ||
diakopter | <sigh/> | 22:24 | |
22:25
Wolfman2000 joined
|
|||
Wolfman2000 | Afternoon/evening. Original plans for Math Club tonight seem to have...not computed. | 22:26 | |
fax | ?? | 22:27 | |
Wolfman2000 | I'm here sooner than expected. | ||
masak | \o/ | ||
fax: !! | 22:28 | ||
fax | :)) | ||
diakopter | interesting | ||
22:28
sri__ joined
|
|||
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:28 | |
22:29
PerlJam left,
sri_ left,
d4l3k_ joined,
Whiteknight joined,
PerlPilot joined,
PerlPilot is now known as PerlJam,
d4l3k_ is now known as dalek
|
|||
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. | ||
carlin finished refactoring the naming scheme | |||
masak | Wolfman2000: I just finished for the day. didn't get very far -- will continue tomorrow. right now, I'm debugging November. | ||
Wolfman2000: what I have so far is here: github.com/masak/web/raw/master/tutorial/win.pdf | 22:31 | ||
Wolfman2000: still need to write about dispatch, templating and database connections. | |||
Wolfman2000 | ...right, Perl 6 is more object oriented. I'll have to learn that properly. | 22:32 | |
Or re-learn | |||
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 | ||
masak | when you do $obj(1,2,3), the call dispatches to $obj.postcircumfix<( )>(1,2,3). | 22:34 | |
put differently, the parentheses desugar to a method call. | |||
Wolfman2000 | Is it supposed to be similar to...@values[1], with "[ ]" instead? | 22:35 | |
masak | aye. | ||
22:36
mdxi joined
|
|||
Wolfman2000 | Hmm...your 3rd slide seems off to me. I'm going to paste what I think you meant. | 22:37 | |
...wait a second, it's correct when I copy/paste. | |||
masak | huh. | ||
Wolfman2000 | Your text doesn't show up completely on my end | ||
masak | that's good to know. | ||
carlin | 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 | i33.tinypic.com/ogeuit.png | ||
masak | Wolfman2000: that does indeed look wrong. | 22:39 | |
I had problems myself with that text object. | |||
fax | so you can debug perl programs by turning them into websites | ||
masak | will try to debug it tomorrow. | ||
fax: :) | |||
fax: actually, I plan to use that solution for debugging Perl 6 grammars. | |||
Wolfman2000 | Right...grammars are the new regexes | 22:40 | |
I wonder... | |||
Wolfman2000 goes to study them | |||
moritz_ | Wolfman2000: there's a bit about them in our new (and incomplete) book | ||
Wolfman2000 | moritz_: Is this going to be a free book? | 22:41 | |
moritz_ | Wolfman2000: to some degree, yes | ||
so far the license excludes commercial use | 22:42 | ||
Wolfman2000 | Somehow doubt I'll get a job with my Perl 6 knowledge alone | ||
moritz_ | moritz.faui2k3.org/tmp/book.pdf current version | ||
diakopter | mubot: purge mubot | 22:43 | |
mubot | mubot's karma has been reset | ||
Wolfman2000 | right, what's the right way for karma? | 22:44 | |
masak++ | |||
moritz_ | @karma masak | ||
lambdabot | masak has a karma of 291 | ||
masak | :) | ||
Wolfman2000 | @karma | ||
lambdabot | You have a karma of 1 | ||
Wolfman2000 | slow beginnings...that's fine | ||
KyleHa | @karma | ||
lambdabot | You have a karma of 9 | ||
KyleHa | @karma kyle | 22:45 | |
lambdabot | kyle has a karma of 77 | ||
masak | Wolfman2000++ # here's one for the road | ||
22:45
lichtkind_ left
|
|||
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: &{{}} | ||
p6eval | std 28987: OUTPUT«===SORRY!===Obsolete use of &{{}; in Perl 6 please use &({) instead at /tmp/PCKtRoI6X4 line 1:------> &{{}⏏}FAILED 00:02 126m» | ||
pugs_svn | r28988 | kyle++ | [t/spec] Test for RT #66340: .comb allows code | 22:46 | |
diakopter | std: \/ \/ /\ /\ /\/ \/ /\ | 22:48 | |
p6eval | std 28987: OUTPUT«ok 00:01 104m» | ||
22:49
hercynium joined
|
|||
diakopter | std: /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ /::a/ | 22:49 | |
p6eval | std 28987: OUTPUT«ok 00:01 104m» | ||
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>)» | ||
carlin | mubot: karma masak | 22:51 | |
22:51
ihrd joined
|
|||
mubot | masak has a karma of 3 | 22:51 | |
fax | Bad arguments for user command. | ||
diakopter | masak: there's one for you | ||
fax | @karma fax | ||
lambdabot | You have a karma of 0 | ||
masak submits rakudobug | |||
moritz_ | wtf? | ||
KyleHa | Five more bugs tested. \o/ | ||
masak | KyleHa++ | ||
KyleHa | I feel much better now. | ||
carlin | mubot: karma kyle | 22:52 | |
mubot | kyle has a karma of 6 | ||
diakopter | moritz_: I challenge you to figure that one out :) it's a race ;) | ||
carlin | mubot: karma KyleHa | ||
mubot | KyleHa has a karma of 2 | ||
moritz_ | diakopter: I think it's quite simple | ||
diakopter | ok :/ | ||
carlin | mubot: link KyleHa kyle | ||
mubot | kyle is now an alias for KyleHa (KyleHa will gain any karma given to kyle) | ||
carlin | mubot: karma KyleHa | 22:53 | |
mubot | KyleHa has a karma of 8 | ||
KyleHa | Nifty! | ||
diakopter | moritz_: well? :) | ||
KyleHa | carlin++ # aliases | ||
moritz_ | diakopter: regex divided by ::a divided by regex etc. | 22:54 | |
22:54
KyleHa left
|
|||
moritz_ | mubot: link moritz moritz_ | 22:54 | |
mubot | moritz_ is now an alias for moritz (moritz will gain any karma given to moritz_) | ||
diakopter | ah :) good job | ||
22:54
icwiener_ left
|
|||
diakopter | mubot: link moritz_ moritz | 22:54 | |
mubot | moritz is now an alias for moritz_ (moritz_ will gain any karma given to moritz) | ||
diakopter | moritz_++ moritz++ | 22:55 | |
moritz_ | mubot: karma moritz | ||
mubot | moritz has a karma of 1 | ||
carlin | argh don't do that :-P | ||
moritz_ | mubot: karma moritz_ | ||
mubot | moritz_ has a karma of 2 | ||
diakopter | hee hee | ||
mubot: unlink moritz_ moritz | |||
mubot | Sorry, I don't understand that command | ||
carlin | I guess I have to add that command now :p | 22:56 | |
jnthn | .oO( /msg mubot link moritz jnthn /msg mubot link masak jnthn /msg mubot ... ) |
22:57 | |
oh wait, wrong way round! | |||
moritz_ | lol | ||
dalek | kudo: 16eab0f | moritz++ | src/setting/Complex.pm: fix previous commit (Complex.perl), masak++ moritz-- |
||
moritz_ | all your karma are belong to us! | ||
jnthn | Damm, my plan to gain epic karma failed! | ||
Wolfman2000 | Is dalek the git bot? | 22:58 | |
diakopter | rakudo: (Block.new)(); # masak, moritz_, is this one tracked? | ||
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/libparrot.so.1.7.0(Parrot_confess+0x87) | ||
..[0x2… | |||
moritz_ | diakopter: don't think so | ||
Wolfman2000: among other things, yes | |||
jnthn | lol fail | ||
masak submits rakudobug | 23:02 | ||
moritz_ | rakudo: Signature.new | ||
p6eval | rakudo 74f561: ( no output ) | ||
jnthn | :-P | ||
moritz_ | rakudo: (WhateverCode.new).() | ||
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/libparrot.so.1.7.0(Parrot_confess+0x87) | 23:03 | |
..[0x2… | |||
moritz_ | seems to be the same with all code types | ||
jnthn | yes | ||
zaslon | lolmasakhazblogged! masak++ 'November 4 2009 -- no log in for you!': use.perl.org/~masak/journal/39843?from=rss | ||
jnthn | it's not surprising. | ||
And probably resolved in ng too. | |||
Yes, it doens't explode in ng. | 23:04 | ||
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 | |
along with getting a swine flu shot, and watching Harry Potter and the Half-blood Prince. :) | |||
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. | ||
'night, #perl6! | |||
moritz_ | good night masak | ||
carlin | 'night masak | ||
23:10
masak left
|
|||
diakopter | rakudo: (my $a = { $^a() + * })($a, $a); | 23:11 | |
p6eval | rakudo 74f561: OUTPUT«Too many positional parameters passed; got 2 but expected 1in Main (file src/gen_setting.pm, line 324)» | ||
diakopter | rakudo: (my $a = { $^a() + * })($a); | ||
p6eval | rakudo 74f561: OUTPUT«Not enough positional parameters passed; got 0 but expected 1in Main (file src/gen_setting.pm, line 324)» | ||
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 paste.lisp.org/display/89802 | ||
moritz_ | push @!people, @persons | 23:14 | |
you can't use a pointy block with a statement-modifying 'for' | |||
you could also do | 23:15 | ||
dalek | kudo: 5e05b88 | moritz++ | t/spectest.data: [t/spectest.data] remove junction test which is now gone. |
||
moritz_ | has Str @!people; | ||
moritz_ | erm, sorry | ||
has Str @!people handles <push>; | |||
and then you can call .push on objects of your class | |||
Wolfman2000 | moritz_: not familiar with the handles keyword yet | ||
moritz_ | delegation | 23:16 | |
anyway, you don't have to get too fancy | |||
23:16
tak11 joined
|
|||
moritz_ | multi method addPerson(*@p) { @!people.push: @p }; will do nicely, then you just need one of them | 23:16 | |
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' | ||
we call that slurpy | 23:18 | ||
it's similar to the regex quantifier in .* | |||
rakudo: sub sum(*@a) { [+] @a }; say sum(5); say sum(5, 6, 7) | |||
p6eval | rakudo 74f561: OUTPUT«518» | ||
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" | ||
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 | ||
moritz_ hates timeouts | |||
diakopter | rakudo: ({nextsame})() | ||
p6eval | rakudo 74f561: OUTPUT«Null PMC access in clone()in Main (file <unknown>, line <unknown>)» | ||
diakopter | clone? | ||
moritz_ | Wolfman2000: anyway, that gives "5 6\n" for me locally | ||
diakopter: submit! | |||
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. | ||
diakopter | ..I know... | ||
moritz_ | that's good; we need people like that ;-) | ||
diakopter | better documented than not | ||
if anything | |||
Wolfman2000 | ...very interesting. I got that code working, but still left the old stuff commented. | ||
Seems like handling can be used to limit what subs can be used within classes. | 23:22 | ||
23:22
ihrd left
|
|||
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. :-) | ||
moritz_ | Wolfman2000: it just installs proxy methods | ||
23:22
payload joined
|
|||
Wolfman2000 | Those on feather, check jafelds/classes/fifo.pl | 23:22 | |
moritz_ | you can also rename push to addPeople | 23:24 | |
has @!people handles :addPeople<push> | |||
23:25
omega left,
Maddingue left,
phenny left,
omega_ joined
|
|||
Wolfman2000 | handles :yourMethodName(OriginalMethodName)? | 23:25 | |
err... | |||
< > | |||
23:25
Maddingue joined
|
|||
Wolfman2000 | wow | 23:25 | |
23:26
phenny joined
|
|||
Wolfman2000 | I think I'm starting to like more and more of Perl 6 | 23:26 | |
moritz_ | yes | ||
unless I mixed the order up ;-) | |||
just try it | |||
Wolfman2000 | moritz_: just ran the code: it worked | ||
23:26
lestrrat is now known as lest_away
|
|||
moritz_ | \o/ | 23:26 | |
two minor comments on style | 23:27 | ||
Wolfman2000 | Someone always critiques another's style: I'm used to it. lay it on moritz_++ | ||
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:27
mberends left
|
|||
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 | ||
moritz_: I'm generally adding a $person to @people | |||
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. | ||
Wolfman2000: feather.perl6.nl/ - see the first FAQ | |||
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 ;-) | ||
Juerd | Feel free | ||
Just please run it under ulimit! | |||
23:29
nihiliad left
|
|||
Wolfman2000 | moritz_: ...I mixed them up? Whoops | 23:29 | |
Juerd: I'll need a reminder on what ulimit is, but otherwise, I've got it | 23:30 | ||
Juerd | Wolfman2000: man ulimit | ||
moritz_ | man bash-builtins | ||
diakopter | rakudo: ({last})() | ||
p6eval | rakudo 74f561: OUTPUT«Null PMC access in invoke()in Main (file <unknown>, line <unknown>)» | ||
Juerd | Heh, no man ulimit :( | ||
moritz_ | Wolfman2000: if you substitute pop by unshift all should be well | ||
Juerd | Wolfman2000: help ulimit | less | ||
Wolfman2000 | I get man ulimit | ||
Claims it's obsolete though | 23:31 | ||
23:31
rgrau left
|
|||
moritz_ | that's just the syscall | 23:31 | |
Juerd | Wolfman2000: That's not the ulimit command but the ulimit library call | ||
moritz_ | not the utility | ||
Juerd | sys? I thought lib. | ||
moritz_ | man bash-builtins | ||
Wolfman2000 | ah, here we go | ||
moritz_ | Juerd: you're right | ||
Juerd | Wolfman2000: ulumit prevents your apache from taking up all available memory, for example. | ||
Wolfman2000 | Juerd: Once I figure out how to set the ulimit on apache, that is | 23:32 | |
23:32
kidd` joined
|
|||
Juerd | Wolfman2000: Write a small shell script that does ulimit and then starts apache | 23:32 | |
Wolfman2000 | ...crap! | ||
Juerd: next time you give directions for copying your apache file, make sure permission isn't denied | 23:33 | ||
I tried to sudo it, but now I've been reported | |||
moritz_ | OH NOEZ | ||
you're going to DIE | |||
Wolfman2000 | ......more like get red on my face | ||
jnthn | Naww...just FAIL. | ||
Wolfman2000 | it only denied me for the access and error logs | ||
......let's pretend that didn't happen if possible | 23:34 | ||
moritz_ | :-) | ||
Wolfman2000: you have to substitute the user name in that file | |||
Wolfman2000 | in which file? | ||
moritz_ | oh, ignore me | 23:35 | |
it shouldn't matter that you can't copy access.log and error.log | |||
they'll just be generated anew | |||
23:36
jaffa8 left
|
|||
Wolfman2000 | ...wait a second. Was the copied ~/apache/httpd.conf file supposed to be empty when I got it? | 23:37 | |
diakopter | rakudo: say {*()}() | ||
p6eval | rakudo 5e05b8: OUTPUT«!whatever_dispatch_helper» | ||
moritz_ | Wolfman2000: mine wasn't empty | ||
just tried it | |||
Wolfman2000 | I probably did a step wrong | ||
moritz_ | you can just copy&paste those three steps | 23:38 | |
Wolfman2000 | I did c&p this time | ||
the httpd.conf file on my end is empty | |||
moritz_ has to go to bed now | |||
have the appropriate amount of fun and success ;-) | 23:39 | ||
diakopter throws | |||
Wolfman2000 | Guess I'm still behind on some things...oh well. | 23:40 | |
diakopter | rakudo: say {return 23,*}($^a) | 23:41 | |
p6eval | rakudo 5e05b8: OUTPUT«too many positional arguments: 2 passed, 2 expectedin Main (file <unknown>, line <unknown>)» | ||
23:41
iblechbot left
|
|||
diakopter | there's that 2 > 2 thing | 23:41 | |
diakopter idly wonders whether there's a ticket for that | 23:42 | ||
23:43
payload left
23:47
kidd` left
23:48
hanekomu left
|
|||
diakopter gets suckered into a pingpong match with a russian rocket scientist-turned oracle dba | 23:50 | ||
23:52
rfordinal left
|