»ö« | 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 BEGIN␤in 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 jection␤in 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 limation␤in 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 defined␤FAILED 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 signature␤FAILED 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 defined␤FAILED 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␤ terminator␤FAILED 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␤ terminator␤FAILED 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␤ terminator␤FAILED 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␤
..whitespace␤FAILED 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␤
..whitespace␤FAILED 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␤ terminator␤FAILED 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 1␤current 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 1␤current 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«2␤1␤»
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 set␤in 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) expected␤in 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 1␤in 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 1␤in 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«5␤18␤»
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 expected␤in 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