»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
diakopter rakudo: say 1,,3 00:09
p6eval rakudo 2953ac: ( no output )
diakopter rakudo: say 1,,3
p6eval rakudo 2953ac: ( no output )
diakopter well, it worked when I /msg 00:10
TimToady std: say 1,,3
p6eval std 28279: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix , instead at /tmp/iwlzkE2jue line 1:␤------> say 1,,⏏3␤FAILED 00:03 38m␤»
diakopter rakudo 2953ac: OUTPUT«13␤»
TimToady I think STD is correct here :)
a nullterm is only allowed at the end of the list 00:11
otherwise the semantics are unclear--people will expect it to pass an undef or something
diakopter rakudo: say 1;3, 00:14
p6eval rakudo 2953ac: OUTPUT«No result object␤in Main (src/gen_setting.pm:2815)␤»
TimToady o_O 00:15
diakopter one'd think it'd say 1 at least
(if it got that far, I mean) 00:16
TimToady rakudo: 3,
p6eval rakudo 2953ac: OUTPUT«No result object␤in Main (src/gen_setting.pm:2815)␤»
TimToady rakudo: 3
p6eval rakudo 2953ac: ( no output )
dalek kudo: a7ac444 | pmichaud++ | src/parser/grammar.pg:
Fix handling of twigil in param_var for anonymous invocant (RT #69206, masak++)
00:38
dalek kudo: a969c9e | (Solomon Foster)++ | src/setting/Any-num.pm:
Add Any versions of the inverse trig functions.
01:25
JimmyZ moritz_:<pre>DBI connect('database=moritz5;host=localhost','moritz',...) failed: Too many connections at lib/IrcLog.pm line 30 01:46
saran Good morning friends 03:33
KatrinaTheLamia I plead the fifth! 03:36
TimToady that only works here 03:38
up 03:40
saran Tim : Great to see the announcement of Rakudo Perl 6 development release #21 ("Seattle" 03:42
azawawi good morning 03:42
moritz_: ping 03:43
TimToady I am Toady, not Tim
I am merely a Toady of Tims
saran Toady : am in windows..when i try to clone using "git clone git://github.com/rakudo/rakudo.git" it says <snip> $ git clone git://github.com/rakudo/rakudo.git <br> fatal: destination path 'rakudo' already exists and is not an empty directory. <snip> 03:45
azawawi moritz_: Moose on feather fails. Could you please fix it? Please see gist.github.com/188860
moritz_: feather1 ofcourse... 03:46
TimToady saran: alas, I know next to nothing about git, and little about Windows either 03:47
wayland76 I on the other hand, am a Tim, and know nothing of any Toadys other than TimToady :) 03:49
saran Toady : Hw shld i get the latest release of seattle in my machine 03:50
TimToady azawawi: try again with Moose 03:52
azawawi TimToady: Yay! it works. Many thanks TimToady++ 03:57
azawawi releases the next Syntax::Highlight::Perl6 ... 03:57
TimToady saran: try going into rakudo dir and saying 'git pull' 04:01
azawawi TimToady: building rakudo on win32 ? 04:05
TimToady so it would appear
saran TimToady : Thanks .. it works..any other svn steps to get the latest seattle in live
TimToady make realclean 04:06
perl Configure.pl --gen-parrot
should download the latest, I think
azawawi saran: padre.perlide.org/trac/wiki/Buildin...tandRakudo 04:07
saran: that's what use to build the latest. I will be releasing Seattle shortly as a zip file to work with almost-six msi distribution 04:08
saran azawawi : i have already installed strawberry and rakudo..am working to sync with the latest seattle release 04:10
azawawi saran: what version of strawberry? 04:11
azawawi saran: if you follow these instructions, you'll get a fully working rakudo installation under c:\strawberry\six 04:13
saran azawawi : strawberry perl 5.10.0.6 04:15
azawawi saran: for a ready-made PDX over Padre distribution, you can follow also these instructions ahmadzawawi.blogspot.com/2009/09/up...6-pdx.html 04:16
saran: that provides Perl 6 highlighting, STD error checking, and quick fixes for various STD warnings/errors... 04:17
saran: and you can run your Perl 6 script using rakudo through Padre IDE... 04:18
saran: almost six distro = strawberry + Padre + Padre::Plugin::Perl6 + rakudo 04:19
saran azawawi : back after 2 mins
pugs_svn r28280 | lwall++ | [multi.t] does isn't associative 04:21
s1n way off topic: anyone in here obtain a phd? 04:23
(aside from pmichaud)
saran azawawi : pls look at my blog twitter.com/perlsaran and am not sure what i am missing
azawawi takes a look 04:24
saran This is what the link followed before a week to install rakudo www.perlfoundation.org/perl6/index....evelopment 04:25
azawawi saran: vista or xp? 04:26
saran azawawi : xp 04:27
TimToady : How to check whether seattle release is updated and in sync 04:28
azawawi saran: git checkout Seattle
saran: git pull
saran: forget the last command, only 'git checkout Seattle' 04:29
TimToady that won't track the head though, I'd think 04:30
if you want that
saran azawawi : i used "git pull" in rakudo folder 04:31
azawawi saran: then you have the latest...
azawawi saran: git checkout master and then git pull 04:32
saran: that's HEAD
saran azawawi : but i missed "git checkout seattle" ..
azawawi saran: if you need to stay only on Seattle
saran: then git checkout Seattle
saran azawawi : got it 04:33
azawawi saran: switching branch/head is very fast in git
saran azawawi : back after breakfast 04:36
azawawi saran: i'll be in #padre @ irc.perl.org 04:37
saran: cya
saran TimToady : shall use "mingw32-make" and "mingw32-make test" and "mingw32-make install" after the "perl configure.pl --gen-parrot" success 04:45
azawawi [particle]: ping 05:29
saran test message 05:31
clkao win 21 05:33
azawawi moritz_: latest win32 rakudo binary for almost-six-0.41, feather.perl6.nl/~azawawi/six/six-seattle.zip , blog coming soon... 05:46
saran can some one give some link related with the hash implementation in perl6 06:41
JimmyZ saran: Do you mean rakudo? 06:44
saran jimmyz : yes 06:45
saran Jimmyz : Did i missed out any of ur link or message? 07:02
JimmyZ saran: yes 07:03
saran jimmyz : Pls resend 07:04
JimmyZ Is this what you want ? github.com/rakudo/rakudo/blob/maste...s/Hash.pir 07:05
or parrot hash pmc? 07:06
saran jimmyz : no..i just want a basic example and working of hash in parrot
JimmyZ rakudo: my @a = (1); @a[0] := @a; @a.perl 07:13
p6eval rakudo a969c9: OUTPUT«rtype not set␤in Main (src/gen_setting.pm:3469)␤»
JimmyZ rakudo: my %a = (:a<A>, :b<B>); %a{a} = %a; %a.perl; 07:22
p6eval rakudo a969c9: OUTPUT«Could not find non-existent sub a␤» 07:23
TimToady std: my %a = (:a<A>, :b<B>); %a{a} = %a; %a.perl; 07:26
p6eval std 28280: OUTPUT«Undeclared routine:␤ a used at 1␤ok 00:03 39m␤»
TimToady std: my %a = (:a<A>, :b<B>); %a<a> = %a; %a.perl; 07:27
p6eval std 28280: OUTPUT«ok 00:03 39m␤»
JimmyZ rakudo: my %a = (:a<A>, :b<B>); %a<a> = %a; %a.perl; 07:35
p6eval rakudo a969c9: ( no output ) 07:36
JimmyZ rakudo: my %a = (:a<A>, :b<B>); %a<a> := %a; %a.perl;
p6eval rakudo a969c9: OUTPUT«rtype not set␤in Main (src/gen_setting.pm:3469)␤»
TimToady zzz & 07:37
desertm4x Is there a generic way to create an own Container class either extending the List or Array class/role. I would like to add some methods that basically grep the array, but as some of the greps are lengthy and would occur at many different places, I'd like to avoid copying them to all these places. 08:15
moritz_ re 09:39
clkao $66/win 21 09:42
masak aloha, perl6ers. 10:03
moritz_ \ö/ 10:05
masak moritz_: the antennae suit you. 10:06
moritz_ hairs, actually ;-)
but thanks for the compliment
masak you only have two strands of hair? 10:09
JimmyZ hello, masak
masak JimmyZ: 你好, JimmyZ 10:10
JimmyZ masak: I think I found some bugs, but needs to review. 10:11
masak bring'em on. 10:12
JimmyZ rakudo: class Alpha { has @!a = < beta gamma >; method postcircumfix:<[ ]>($key) { return @!a[$key]; }; }; my $a = Alpha.new; say $a[1];
p6eval rakudo a969c9: OUTPUT«No such attribute '@!a'␤in method Alpha::postcircumfix:[ ] (/tmp/scXNRVM0V7:2)␤called from method Alpha::postcircumfix:[ ] (/tmp/scXNRVM0V7:2)␤called from Main (/tmp/scXNRVM0V7:2)␤»
JimmyZ rakudo: class Alpha { has @!a = < beta gamma >; method postcircumfix:<{ }>($key) { return @!a[$key]; }; }; my $a = Alpha.new; say $a{1};
p6eval rakudo a969c9: OUTPUT«gamma␤»
JimmyZ rakudo: class Alpha { has @!a = < beta gamma >; method postcircumfix:<( )>($key) { return @!a[$key]; }; }; my $a = Alpha.new; say $a(1);
p6eval rakudo a969c9: OUTPUT«gamma␤»
JimmyZ Is the first one a bug/
masak looks like. 10:13
JimmyZ another:
JimmyZ rakudo: my $a = 1; repeat while $a<2 -> $b { $a++ } 10:13
p6eval rakudo a969c9: OUTPUT«Confused at line 2, near "$b { $a++ "␤in Main (src/gen_setting.pm:3469)␤» 10:14
JimmyZ rakudo: my $a = 1; repeat while $a < 2 -> $b { $a++ }
p6eval rakudo a969c9: OUTPUT«Confused at line 2, near "-> $b { $a"␤in Main (src/gen_setting.pm:3469)␤»
masak yes, bug. but that one I reported for you a few days back. :)
er, or a very close variant of it.
JimmyZ rakudo: my $a = 1; while $a< 10 -> $b { $b.defined.say; }; 10:15
p6eval rakudo a969c9: OUTPUT«Confused at line 2, near "$b { $b.de"␤in Main (src/gen_setting.pm:3469)␤»
JimmyZ rakudo: my $a = 1; while $a < 10 -> $b { $b.defined.say; };
p6eval rakudo a969c9:
..OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1􏿽xE2
JimmyZ and this? 10:16
rakudo: my $a = 1; while $a<10{ $^b.defined.say; };
masak aye, the one I reported had $^a.defined in it.
p6eval rakudo a969c9: OUTPUT«too few arguments passed (0) - 1 param expected␤in Main (/tmp/sVh0tTxHbM:0)␤»
JimmyZ rakudo: my $a = 1; while $a<10 { $^b.defined.say; }; 10:17
masak that's the one.
p6eval rakudo a969c9:
..OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1􏿽xE2
masak feel free to add any of those to the ticket from a few days back.
JimmyZ the space between '0{'
masak aye. 10:17
JimmyZ and like this: 10:18
rakudo: my $a = 1; while $a<10 -> $b { say $b.defined; $a++; }
p6eval rakudo a969c9: OUTPUT«Confused at line 2, near "$b { say $"␤in Main (src/gen_setting.pm:3469)␤»
JimmyZ rakudo: my $a = 1; while $a < 10 -> $b { say $b.defined; $a++; }
p6eval rakudo a969c9: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤»
JimmyZ the *space*
moritz_ phenny, tell azawawi I think Moose is fixed now on feather1 10:19
phenny moritz_: I'll pass that on when azawawi is around.
masak JimmyZ: aye. there are a couple of other known spacing issues reported too. 10:20
am0c my $a = 1; while $a < 10 { $^b.defined.say }
masak it's nice to keep track of them, becuase they are annoying when they bite people.
am0c rakudo: my $a = 1; while $a < 10 { $^b.defined.say }
p6eval rakudo a969c9: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1
am0c rakudo: my $a = 0; say $a<10 10:21
p6eval rakudo a969c9: OUTPUT«1␤»
JimmyZ masak: I can't find why from the grammer. :(
masak JimmyZ: it's probably not so easy... then it would have been fixed already. 10:21
the grammar can be subtle. 10:22
JimmyZ yes. 10:23
masak rakudo: sub bar(:$foo) { say $foo }; class A { has $!foo = 'OH HAI'; method x { bar( :$!foo ) } }; A.new.x 10:26
p6eval rakudo a969c9: OUTPUT«Symbol '$1foo' not predeclared in x␤in Main (src/gen_setting.pm:3469)␤»
masak I'd be very interested to know where the '1' comes from.
moritz_ shift + 1 => ! 10:27
masak er. 10:28
JimmyZ masak: token pblock { [ <.ws> <lambda> <.ws> <signature> ]? <.ws> <block> {*} }
token xblock { <EXPR> <pblock> {*} }
moritz_ ;-)
masak rakudo: sub bar(:$foo) { say $foo }; class A { has $.foo = 'OH HAI'; method x { bar( :$.foo ) } }; A.new.x 10:29
p6eval rakudo a969c9: OUTPUT«Symbol '$1foo' not predeclared in x␤in Main (src/gen_setting.pm:3469)␤»
JimmyZ token pblock { [ <.ws> <lambda> <.ws> <signature> ]? <.ws> <block> {*} }
token xblock { <EXPR> <pblock> {*} }
masak moritz_: your theory falls apart with :$.foo. I think.
moritz_ diakopter: ping 10:52
pugs_svn r28281 | moritz++ | [new perl6.org] two column layout for community/ 11:39
r28282 | moritz++ | [new perl6.org] two-column layout for compilers/
pugs_svn r28283 | moritz++ | [new perl6.org] introduction to specification page 11:53
takadonet morning all 12:12
moritz_ \o/
masak I don't know what to respond to this kind of tweet: twitter.com/augustl/status/4077483740 12:30
masak I once saw a blogpost comment say something like "Sometimes I daydream that I have the power to choose one meme to remove forever from the minds of people. If I did have that power, I'd choose this one." -- referring to the eternal joke about DNF/Perl 6/Plan 9. 12:32
pmurias masak: what does the checkpoint part of the tote diagram do?
masak pmurias: it's basically a hook where you can plug in git-commit or whatever.
pmichaud: it's also the point where the state of the tests is registered, and subsequent runs are compared against that state to determine whether progress has been made. 12:33
erm, pmurias, not pmichaud. :/
(just re-activating my membership in the Club of People Who Can't Tab-complete)
mberends masak, I dreamt that tote is just REPL in the large: Review, Edit, Prove, Loop
masak 哈哈 12:34
I whipped up a proto-tote yesterday, for private purposes.
conclusion: it does work, at least for me.
ruoso bom dia
masak bom dia, ruoso. 12:35
masak mberends: I see you left smiley-adorned comments for me in the proto git-log :P 12:37
TiMBuS rakudo question: does Set/Bag exist? and if so how would i use them.. 12:38
masak TiMBuS: they don't.
TiMBuS aw :(
masak I once wrote up a grant application to implement them.
and a few other things.
TiMBuS wanted to do the Right Thing and use not a hash for once
masak TiMBuS: tell us more about your use case. 12:39
mberends masak: nobody else reads 'em ;)
TiMBuS im just tracking irc nicks. 12:39
they're always unique. i dont need to keep any values tied to them, i just want to keep a list of nicks 12:40
masak sounds like a KeyHash to me. 12:41
TiMBuS oh?
masak yes, I think so.
let me check.
TiMBuS yeah ive got that syn open 12:41
masak hm, maybe even a KeySet.
TiMBuS whats the difference between a keyset/keybag and set/bag 12:42
masak the former autodelete pairs whose values match the default. 12:43
oh! and Set and Bag are immutable. 12:44
TiMBuS oh 12:45
finanalyst hi to any(every)one 12:46
i keep running into <Method 'postcircumfix:[ ]' not found for invocant of class 'Failure'> 12:47
finanalyst it means I have mispelt something 12:47
but I wish there was a little more information
masak join the club. :) 12:48
masak the 'Failure' part indicates that whatever you're trying to index isn't there. 12:48
finanalyst rakudo: my %x=<a b> Z 1,[3,4]; say %x<bc>[0]
p6eval rakudo a969c9: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class 'Failure'␤»
masak right. 12:49
because there's no %x<bc>
that's going to be fixed eventually.
finanalyst but this is something i use quite alot, so it would be nice to know what the invocant was
masak indeed. 12:50
right now they only way to guard oneself against this is to develop in very small steps.
that way, you know with greater certainty what line caused the error.
finanalyst 'fixed eventually' == 'when it reaches the level of irritability for someone to fix' ?
i have tried to, but i just refactored something and this came up 12:51
finanalyst i wish there was some way even of tracing line numbers before the error 12:52
masak finanalyst: it wouldn't surprise me if fixing this is blocking on something.
finanalyst ah
masak finanalyst: I can assure you that pmichaud is aware of the degree to which it irritates people.
finanalyst by the way, does $*LINE or similar work?
masak that's $?LINE, I think. 12:53
moritz_ I don't think so
masak me neither.
finanalyst shame. it would be nice to sprinkle "say $?LINE" through the code 12:54
moritz_ rakudo: say $?LINE
p6eval rakudo a969c9: OUTPUT«Symbol '$?LINE' not predeclared in <anonymous> (/tmp/HGaimLr94M:2)␤in Main (src/gen_setting.pm:3469)␤»
finanalyst sigh 12:55
moritz_ at least the error message is quite good 12:56
masak don't just do something. stand there!
finanalyst rakudo: $*trace_line = 1 12:57
p6eval rakudo a969c9: ( no output )
moritz_ anybody's got a perl 6 related subdomain to spare?
finanalyst rakudo: say $*trace_line
p6eval rakudo a969c9: OUTPUT«Contextual $*trace_line not found␤␤»
moritz_ I'd like to make the new version of perl6.org available somewhere 12:58
and since it uses absolute links (in the form href="/community/") I can't easily put it into a subdirectory
finanalyst interesting. using REPL and setting $*xxx , I was able to get the value of the variable $*xxx back on the next line (if you see what i mean) 12:59
moritz_ std: $*foo = 2 12:59
p6eval std 28283: OUTPUT«ok 00:02 38m␤»
moritz_ std: say $*foo
p6eval std 28283: OUTPUT«ok 00:02 37m␤» 13:00
TiMBuS its because the repl is compiling each line into its own block
so any globals stay
finanalyst yes, but it was irritating that variables would not persist over several lines 13:01
with globals this can be worked around
TiMBuS i wrote a patch a long while ago to make vars without 'my' autovivify on the repl, and set themselves in the outer namespace
finanalyst patch doesnt seem to be included in current repl 13:02
TiMBuS nope i didnt really submit it
TiMBuS was on git, i guess. i was looking for a way to modify the PCT so it could tell me when it was in REPL mode, instead of trying to guess from the arguments passed 13:04
TiMBuS and frankly i dont know how 'use strict/no strict' would be "properly" implemented anyway so i guess i ditched the idea =/ 13:05
masak could someone make an IRC client module in Perl 6 that makes this possible? gist.github.com/189041 13:07
TiMBuS i get the feeling this was pointed at me?
masak no, at everybody.
especially at the lurkers. come one people! :) 13:08
s/one/on/
TiMBuS well my irc bot already does that but, not so perl 6-y
masak oh, so maybe my idea isn't so new, then.
I like that my example code is very, um, succinct. 13:09
TiMBuS it is
masak it should be possible to write something like that.
maybe even today.
TiMBuS i use mmd to trigger events, based on the method name
masak I stole the regex idea from Tene++'s LolDispatch. 13:10
moritz_ you could use traits 13:10
masak LolDispatch does.
moritz_ method foo handles rx{...} {...} 13:10
masak hm, even better. 13:10
TiMBuS i just used where 13:11
masak actually, the hard part is writing the IRC client itself, I wager.
TiMBuS multi method on_message ( $msg where { $^msg ~~ /^\!8ball/ }, $from, $channel )
masak um.
oh! in a signature. cool!
TiMBuS i dont know enough about perl6 :(
moritz_ the problem with 'where' is that it's only an epsilon tighter 13:12
masak TiMBuS: if you want to, you can write $msg where /.../
I think.
moritz_ so when sombody writes Str $msg, it always wins
TiMBuS i think i tried that and it didnt work =/
masak moritz_: well then, write Str $msg where /.../ :)
TiMBuS heh
masak TiMBuS: I think it should.
TiMBuS lemme see
i should probably make the bot join this irc i guess 13:14
moritz_ TiMBuS: beware, you'll get all sorts of feedback ;-) 13:15
TiMBuS aa
masak we have an advanced taste in bots in here.
because we've used them a lot. 13:16
TiMBuS hey the where thing worked
masak :)
moritz_ s/advanced/particular/ ;-)
TiMBuS well, you can suggest things to add to it if you want 13:17
the bot is fairly stunted in that it can't thread
masak moritz_: www.angryflower.com/advan.html :)
Tene masak: the problem with writing an IRC client is that Parrot doesn't have async IO support yet. 13:18
masak ah.
well, that kinda puts a damper on things.
TiMBuS and yeah that too
one irc server only
masak how come it doesn't? all I hear about with Parrot is asynch IO.
moritz_ asnch != threaded, in general 13:19
TiMBuS i wanted to make a twitter bot but it would ping out if it had to wait for the site
Tene masak: there's other IO cleanups that need to happen first, or something...
moritz_ POE is all asynchron, but single threaded
TiMBuS how does it avoid locking? 13:20
devin non-blocking i/o 13:20
Tene exactly 13:20
TiMBuS hm. slightly back to my topic. moritz_ im using .* to dispatch events. so would Str $msg still override plain ol $msg 13:23
TiMBuS or would they both get called 13:24
masak sounds like a job for science! 13:27
rakudo: class A { method x($msg) { say "untyped $msg" }; method x(Str $msg) { say "Str-typed $msg" } }; A.new.*x("OH HAI")
p6eval rakudo a969c9: OUTPUT«Str-typed OH HAI␤»
masak there you go. :)
TiMBuS aw
wait you didnt declare them multi 13:28
masak o_O
hold on.
rakudo: class A { multi method x($msg) { say "untyped $msg" }; multi method x(Str $msg) { say "Str-typed $msg" } }; A.new.*x("OH HAI")
p6eval rakudo a969c9: OUTPUT«Str-typed OH HAI␤untyped OH HAI␤»
TiMBuS woot
jnthn Yes, .* calls all multi variants too :-)
jnthn has weak-fi, may vanish at any moment 13:29
TiMBuS its practically made for an event model 13:29
masak the comments in proto will befuddle future archeologists: "# YES: cheese speleology!" 13:30
mberends YES!
masak I propose a new unit. it measures poetic weirdness. 13:31
I call it... the _why.
proto just increased its poetic weirdness by a few milli_whys.
moritz_ #69202 is really obscure, masak 13:32
masak++
jnthn wonders if he even wants to look
masak yes, that one was very strange.
TiMBuS masak, so how did you expect .reply to work? i currently use '.msg(@replies.pick, $channel)' but i assume your example assumes the object will instead keep the state of the current event... which is not a bad idea 13:33
masak it took a separate git branch to isolate it.
TiMBuS: I just stuffed every thing away in the Session object $_ in the signature.
TiMBuS oooh right
masak beams 13:34
jnthn masak: wow, ouch
masak jnthn: any idea why?
jnthn Yeah.
masak that's even sicker. :)
jnthn ;-) 13:35
jnthn It's because sig construction builds a junction of the types at the moment. 13:35
And I guess for some reason it's finding your all method.
:-/
masak ah!
yes, I believe there's a Parrot bug that confuddles methods and global subs.
jnthn Yeah, may be Parrot bug too. 13:36
masak yuck.
jnthn I'm not sure *why* it's happening, just that it's calling your all instead.
So you end up trying to get the $!a of a Str.
masak fortunately, all our problems will go away by April... :/
jnthn: note that I'm not even calling A.x 13:37
jnthn Given that signature creation is getting an epic re-write soon anyway, this one probably will be. :-)
Yeah, the sig object is built before then.
erm, sorry
is built at BEGIN time
ruoso rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say $a.find_possible_candidates(1,2); 13:38
p6eval rakudo a969c9: OUTPUT«Attributes of type 'MMD_Cache *' cannot be subclassed from a high-level PMC.␤in Main (/tmp/aojiQ2pM9V:0)␤»
ruoso just checking... 13:39
jnthn heh 13:39
not sure what to do about that one.
ruoso having a way to get the entire list of candidates would probably be a viable workaround 13:40
dalek kudo: 4b141a8 | mberends++ | tools/test_summary.pl:
[tools/test_summary.pl] implement some simple relative benchmarking
13:40
jnthn ruoso: .candidates
ruoso: you can probably iterate over that.
we could probably do with getting such thingies into the spec at some point. 13:41
ruoso rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say join ", ": grep { $_.signature ~~ :(1,2) }, $a.candidates
p6eval rakudo a969c9: OUTPUT«Confused at line 2, near ": grep { $"␤in Main (src/gen_setting.pm:3469)␤» 13:41
ruoso oops
rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say join ", ", grep { $_.signature ~~ :(1,2) }, $a.candidates
p6eval rakudo a969c9: OUTPUT«Null PMC access in type()␤in Main (/tmp/k770kDLnAm:2)␤»
ruoso rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say join ", ", $a.candidates
p6eval rakudo a969c9: OUTPUT«Null PMC access in type()␤in Main (/tmp/5ntl23v2XH:2)␤»
jnthn Hmm. 13:42
rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say $a.candidates.perl
p6eval rakudo a969c9: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/66K19yHqOh:2)␤»
jnthn rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say $a.candidates
p6eval rakudo a969c9: OUTPUT«Null PMC access in type()␤in Main (/tmp/JSNebHBeLm:2)␤»
jnthn ...eww...
ruoso rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say "Alive" 13:43
p6eval rakudo a969c9: OUTPUT«Alive␤»
masak jnthn: rakudobug?
jnthn masak: npmca always is 13:44
masak :) 13:44
masak goes through the motions
jnthn Feel free to submit; I'd like to try and get some "official" introspection interface agreed on for multis though.
Then we can have spectests. 13:45
masak \o/
jnthn And then it's more worthwhile fixing it (because we'll then be sure not to break it again...)
ruoso I think .candidates is consusus
jnthn ruoso: consensus?
mberends masak: I'm thinking of refactoring proto into MVC form. Ecosystem.pm is the Model, and Installer is View and Controller. How about separating those roles? 13:46
jnthn ruoso: Agree though that it's fine.
masak mberends: soudns good.
mberends :)
masak that's how I think about it anyway.
Matt-W as in &my-multi.candidates ?
ruoso jnthn, I mean, having $multi.candidates as spec is "general agreement" 13:47
ruoso consensus in portuguese only means that 13:47
jnthn ruoso: OK, then we're agreeing. :-) 13:47
masak I'm getting back to my usual level of bug submitting. there's been a drought lately, for unknown reasons. 13:50
ruoso adding a new section on S06 for Introspection 13:51
jnthn masak: getting harder to find bugs? ;-)
masak jnthn: the past month indicates it is. the past two days indicate it isn't. :) 13:52
jnthn ruoso: Great. I want to try and get some filling out of and consensus on signature introspection at some point in the future too.
(now now...)
jnthn enjoys probably the most spacious room he's going to have in his entire stay in Japan. 13:54
Matt-W where are you?
jnthn Matt-W: Nara.
Which after Kyoto is a wonderfully peaceful city.
Matt-W :)
Not heard of it
jnthn It was once the capital.
But these days, quite small and not so significant. 13:55
Thus I only decided to have a single night here. Turns out it's really quite a nice place though.
Not so much jaw-dropping sights, but unlike Kyoto it's fairly consistently nice.
Kyoto has some awesome things to see, but walking between them it's kinda "meh". 13:56
So I spent my time jumping between the nice bits. Here it was nice to just stroll, sit in a park, etc.
masak I like such places. 13:57
Lisbon was great for walking, too.
devin the best way to get around kyoto is taxi, bicycle, or bus 13:58
you can rent bicycles
masak mberends: tell me a bit about projects.state 14:00
ruoso jnthn, I just realized we could rename $multi.find_possible_candidates to $multi.cando
jnthn ruoso: find_possible_candidates was really an internal-ish thing that I never expected to become public API anyway, but yes, we could rename it. 14:01
devin: The subway was vaguely useful too.
But quite limited in coverage.
pugs_svn r28284 | ruoso++ | [spec/S06] add a section for Introspection, with three proposed methods... 14:04
ruoso jnthn, ^^
rakudo: my $a = Multi.new; $a.push(sub (1,2,3) { }); $a.push(sub (1,2) { }); say $a.signature 14:05
p6eval rakudo 4b141a: OUTPUT«No signature found␤␤»
ruoso TimToady, you probably want to take a look at the change I made in S06 14:06
masak rakudo: 3, 14:12
p6eval rakudo 4b141a: OUTPUT«No result object␤in Main (src/gen_setting.pm:2815)␤»
masak was this ever reported?
finanalyst rakudo: my $y=3; for ^$y { .say }; my %x=<a b c> Z 1,3,3; $y = %x.delete('b'); say 'new ' ~ $y; for ^$y { .say }
p6eval rakudo 4b141a: OUTPUT«0␤1␤2␤new 3␤0␤» 14:13
masak submits rakudobug
finanalyst masak: is there any reason the second ^$y should not be a range? 14:14
masak finanalyst: don't think so. 14:15
finanalyst so this is a bug?
masak rakudo: my %x=<a b c> Z 1,3,3; my $y = %x.delete('b'); say $y.WHAT;
p6eval rakudo 4b141a: OUTPUT«Array()␤»
masak rakudo: my %x=<a b c> Z 1,3,3; my $y = %x.delete('b'); say (^$y).WHAT; 14:15
p6eval rakudo 4b141a: OUTPUT«Range()␤» 14:16
ruoso there has been a recent spec change in that respect, hasn't it?
masak rakudo: my %x=<a b c> Z 1,3,3; my $y = %x.delete('b'); say (^$y).perl;
p6eval rakudo 4b141a: OUTPUT«0..^1␤»
masak ah.
it's an empty range.
I don't know whether it's a bug or not.
finanalyst rakudo: my %x=<a b c> Z 1,3,3; my $y = %x.delete('b'); say $y 14:17
p6eval rakudo 4b141a: OUTPUT«3␤»
finanalyst so what changes?
masak finanalyst: it looks like a number when printed, but it's an Array.
see above.
finanalyst should it be an Array? 14:18
masak that's the 1M$ question.
carlin JimmyZ++ # following up that bug that I never bothered too ... I should probably do something about the others
finanalyst rakudo: my %x=<a b c> Z 1,3,3; my $y = + %x.delete('b'); say $y.WHAT 14:19
Tene rakudo: $*msg = "O HAI"; say $*msg;
p6eval rakudo 4b141a: OUTPUT«Num()␤»
rakudo 4b141a: OUTPUT«Contextual $*msg not found␤␤»
carlin rakudo: my $socket = IO::Socket::INET.socket(2,1,6); $socket.bind('127.0.0.1', 4242); $socket.listen(); $socket.recv(); while $socket.accept() {}; 14:20
p6eval rakudo 4b141a: OUTPUT«Null PMC access in get_bool()␤in Main (/tmp/RDL9C5b1po:2)␤»
finanalyst my %x=<a b c> Z 1,3,3; $y = %x.delete('b'); say 'new ' ~ $y; for ^+$y { .say } 14:20
carlin Known?
masak carlin: probably not. feel free to report it. 14:20
finanalyst rakudo: my %x=<a b c> Z 1,3,3; $y = %x.delete('b'); say 'new ' ~ $y; for ^+$y { .say }
p6eval rakudo 4b141a: OUTPUT«Symbol '$y' not predeclared in <anonymous> (/tmp/KpGhPVjw0s:2)␤in Main (src/gen_setting.pm:3469)␤» 14:21
carlin masak: Okay, sure :)
finanalyst rakudo: my %x=<a b c> Z 1,3,3; my $y = %x.delete('b'); say 'new ' ~ $y; for ^+$y { .say }
carlin How about ...
p6eval rakudo 4b141a: OUTPUT«new 3␤0␤»
carlin rakudo: grammar foo { rule TOP { 'lorem' | <.panic> }; method panic { die "The sky is falling!"; }; }; foo.parse('blah');
p6eval rakudo 4b141a: OUTPUT«Null PMC access in find_method()␤in method foo::panic (/tmp/DbgEqS8ZnV:2)␤called from regex foo::TOP (/tmp/DbgEqS8ZnV:2)␤called from Main (/tmp/DbgEqS8ZnV:2)␤»
masak carlin: never seen it before. that's two, way to go! carlin++ 14:21
package them up nicely and send them to RT. 14:22
carlin Right-e-o. One more, not sure what is supposed to happen here
jnthn yeah, I hate it when people package bugs up carelessly 14:23
:-)
carlin rakudo: class Alpha { has $!beta; method gamma { my $!beta = 'omega'; while $!beta { say 'Delta'; }; }; }; my $a = Alpha.new; $a.gamma;
p6eval rakudo 4b141a: ( no output )
carlin Or even 14:24
masak my $!beta; o_O
carlin rakudo: class Alpha { has $!beta; method gamma { $!beta = 'omega'; say $!beta; }; }; my $alpha = Alpha.new(beta => 'delta'); $alpha.gamma;
p6eval rakudo 4b141a: OUTPUT«omega␤»
masak carlin: that last one looks fine by me. 14:25
carlin rakudo: class Foo { method bar { my $!baz = 'lorem'; say $!baz; }; }; Foo.bar;
p6eval rakudo 4b141a: OUTPUT«No such attribute '$!baz'␤in method Foo::bar (/tmp/VN8Cw2TD55:2)␤called from Main (/tmp/VN8Cw2TD55:2)␤»
masak I don't think 'my $!attr;' should be allowed in methods.
carlin Yeah, rakudo just silently ignores it 14:26
masak maybe that can be submitted as a ticket.
carlin Oh and 14:28
my $s = IO::Socket::INET.new; $s.open('127.0.0.1', 123456); $s.send('foo'); say "Lorem ipsum"; # try it from the REPL, evalbot seems to handle it 14:29
rakudo: my $s = IO::Socket::INET.new; $s.open('127.0.0.1', 123456); $s.send('foo'); say "Lorem ipsum"; # try it from the REPL, evalbot seems to handle it
p6eval rakudo 4b141a: OUTPUT«Lorem ipsum␤»
carlin here the REPL silently exits 14:35
mberends masak: er, projects.state will store metadata about projects that proto has worked with locally, and which cannot be obtained from the project files themselves. It is formatted like projects.list so that the same routines handle reading and writing. The possible values of state are to be laid down by a specially convened bikeshed meeting. 14:44
masak oki. 14:44
moritz_ mberends++ # 'specially convened bikeshed meeting'
masak as long as proto itself can be installed, I'm fine with that. 14:45
mberends ...but never uninstalled 14:46
masak :) 14:47
mberends never thought about installing proto itself ;) 14:49
masak hm, as soon as I said it I started questioning whether it's that important... 14:50
I think I'm getting too attached to proto. I shouldn't let that happen.
mberends raps masak over the knuckles 14:52
masak whimpers
Matt-W throws custard
masak o_O 14:53
mberends yum!
masak sigh, someone re-Tweeted the Perl 6/DNF joke. :(
mberends don't let them bait you
masak mberends: i.e. don't reply at all, just let them be? 14:54
mberends yeah, they may be out to taunt you 14:54
mberends isn't really paranoid, they really _are_ out to get us 14:55
masak mberends: I've had that thought too. it's something Heisenbergian over it all: if I and others start a grassroots drive to defend/hype Perl 6 on Twitter, then people might catch on and try to actively taunt us. 14:56
mberends :)
masak but there are a couple of successes already. I especially like the "eeew, Perl 6 has hyphens in identifiers" guy. 14:57
TimToady maybe I should get quietfanatic to rename is gaming platform to DNF...
*his
masak I replied "it's got apostrpohies too :)"
and the guy actually sent a nice tweet back, saying "thanks! apostrophes, eh... well i suppose one benefit is that perl poetry will look more like english ;)" 14:58
Matt-W Does it?
I thought apostrophes were gone...
TimToady usually the best approach is something self-deprecating and aikidoish, unless the best approach is to ignore it :)
masak rakudo: my $ka'pla = 42; say "Alive!"
p6eval rakudo 4b141a: OUTPUT«Alive!␤» 14:59
TimToady apostrophes as :: is gone
it's just part of the name
Matt-W aaah okay 14:59
Getting my wires crossed
TimToady std: $ain't
p6eval std 28284: OUTPUT«Potential difficulties:␤ Variable $ain't is not predeclared at /tmp/TnwknAz8iq line 1:␤------> $ain't⏏<EOL>␤ok 00:02 37m␤»
Matt-W So I can call my variables $arthur's-weight
masak yup.
Matt-W woooooo
TimToady in both cases there must be a letter following
masak $arthur's-wizard
TimToady though people keep asking for trailing ' 15:00
masak but personally, I'd just go with $merlin.
masak TimToady: don't cave in! :) 15:00
Matt-W I think trailing would be scary
However
Haskell programmers would love it
because they like calling functions things like f'
or they would, if Haskell would let them 15:01
they do in their research papers
Tene TimToady: aw, c'mon...
or should that be: cmon'
Matt-W no it should be c'mon 15:02
TimToady I wish I knew what I was doin'
Matt-W you can't respell things just to make a point
unless it's about spelling, I suppose
Matt-W suddenly feeling quite keen on the idea of being able to say sub f'() { } 15:02
this is probably an evil urge and should be dealt with at once 15:03
mdxi there's also nothing to contract there :)
TimToady it's short for ", no, the other one" 15:03
Tene ♪ I've got a theory... ♪
Matt-W Tene: no, it's not a dancing demon 15:05
Tene Yeah, something isn't right there. 15:06
mdxi geh, can you imagine if, because of the apostrophe which represents the elision of the terminal G in many English words, people started putting them after words which actually *end* in an N, the way they seem to have decided that the genitive apostrophe-S actually means "WARNING: AN S IS APPROACHING!"
Tene ...
mdxi now i'm depressed
Tene Me too. 15:07
sjohnson pats both you guys on the back
there there
masak :)
Matt-W haha 15:08
I tweeted about apostrophes in identifiers
TimToady hugme: hug mdxi
hugme hugs mdxi
Matt-W a friend replies that's nothing, you can have spaces in PHP identifiers... although you probably shouldn't 15:09
masak moritz_++ # perlgeek.de/blog-en/perl-6/when-we-...wrong.html
Matt-W -> singing lesson &
moritz_ thanks
masak: it seems you're quite a bit behind with your bagblogging ;-)
masak moritz_: oh, you have no idea. :( 15:10
moritz_: it's been a week since I opened my feed reader. I'll _get_ to these tabs in little over two months.
masak yup, I'm a packrat. 15:10
moritz_ Rat.pack('I2') 15:11
diakopter std: my $_'_ 15:14
p6eval std 28284: OUTPUT«ok 00:02 37m␤»
TimToady std: my $_-_-_-_-_-_-_-_-_-_-_-_ 15:15
p6eval std 28284: OUTPUT«ok 00:02 37m␤»
Juerd Is _ considered alphanumeric or has the spec changed? 15:16
diakopter yes?
Juerd Or have I remembered it wrong :)
moritz_ _ is alphanumeric 15:17
masak strange, but true.
Juerd Is it alpha or number? :) 15:18
masak alpha, methinks. 15:19
good news! spectesting only took 71 minutes today. 15:20
masak goes home to prepare for tonight's pancake party 15:21
o/
diakopter >o 15:21
moritz_ pancakes++ 15:22
sjohnson pancakes? 15:24
heh
i hate it when people criticize me for eating pancakes at night
they looked at me like they wanted to burn me at the stake
TimToady sjohnson: call them Swedish Pancakes and then it's perfectly acceptable 15:25
devin it's always morning somewhere
TimToady or if they're round pancakes, call them ebelskivers 15:25
s/round/spherical
sjohnson heh 15:27
mdxi pancakes are *always* acceptible, as are waffles 15:41
TimToady mdxi: except for those of us who are allergic to them... 15:43
mdxi i was thinking within a social context, not a medical one -- my apologies 15:44
TimToady 'sokay, I believe in context sensitivity :) 15:46
half my jokes come from taking things out of context
sjohnson postpones the surprise pancake party 15:46
araujo didn't know TimToady told jokes 16:20
azawawi hi 16:21
phenny azawawi: 10:19Z <moritz_> tell azawawi I think Moose is fixed now on feather1
azawawi moritz_: thank you
moritz_++
moritz_: ping
pugs_svn r28285 | lwall++ | [viv] always assume --pos, make args entries for diakopter++ 16:23
diakopter whee 16:28
sjohnson hey
diakopter hey 16:30
diakopter retweets my own tweet 16:31
moritz_ azawawi: pong 16:39
azawawi moritz_: i nearly finished my Six win32 updater for Padre::Plugin::Perl6 :) 16:40
moritz_ what does it do? 16:41
azawawi moritz_: with it you can select rakudo's release that you need to play with...
moritz_: and it downloads it and installs it to c:\strawberry\six...
moritz_ nice
azawawi moritz_: i need your help about a couple of things regarding seattle's announcement 16:42
moritz_ shoot
azawawi moritz_: '=$handle' is deprecated in favor of '$handle.get' (one line), do rakudo actually output a warning that it is deprecated? 16:43
moritz_: do/does
moritz_ rakudo: say =$*IN
p6eval rakudo 4b141a: OUTPUT«prefix:<=> has been superseded by $handle.lines and $handle.get␤in Main (/tmp/na5RKIPFbF:2)␤»
sjohnson just told my boss that i am starting to hate my job and life because anything that isn't Perl is not fun to program in
moritz_ sjohnson: what did he say? 16:44
sjohnson he seemed to tell i wasn't happy at work 16:44
he might let me go, which would cause a dire catastrophe in my life 16:45
is it okay to hate javascript?
diakopter no
sjohnson i am wondering if i am the only one, and soemthing is wrong with me
diakopter :)
TimToady you should program JS using Perl 6, is all...
diakopter or vice versa.
azawawi std: say =$*IN; 16:46
TimToady which is what diakopter is workin on at the moment
p6eval std 28285: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix = instead at /tmp/0sjFtIcjgW line 1:␤------> say =⏏$*IN;␤FAILED 00:02 37m␤»
diakopter and fglock
sjohnson i wonder if i should phon a suicide hotline
phone*
they probably wouldn't understand my complaint
TimToady if you're thinking suicidal thoughts, then yes
if you're on antidepressants, you should call your doctor and talk about it 16:47
sjohnson ahh i would never kill myself, just get pretty bummed out from time to time 16:48
TimToady if you're simply *unhappy*, then probably not
sjohnson having to work with PHP and javascript 90% of the day, everyday 16:48
TimToady it's quite possible to be unhappy without being clinically depressed
azawawi moritz_: perfect, now i have a couple of examples regarding Six updater 16:49
moritz_: thanks, moritz_++
TimToady it's also quite possible to be clinically depressed and blame it on your unhappiness :)
mofino sjohnson, at least you have that, you could be stuck with a lifetime of manual labour
not that there is anything wrong with manual labour...
huf i beg to differ
sjohnson true, i did that a lot in highschool
diakopter sjohnson: let's get to the bottom of your JS hatred. :) What about JS gets to you? I suspect there's a way to Perlify it...? 16:50
sjohnson got paid dick all and was made fun of all the time for being smarter than them :)
mberends perldoc Timer::Hires
sjohnson things like declaring $string = '';
to instantiate a string
mberends er, wrong window :|
sjohnson and forgetting to do that, and everything hanging if i do a += opperand
variables being null when passed by functions having to always be "babysitted" 16:51
in the functions themselves
mofino doesn't sound so horrendeous 16:52
diakopter anything else?
mdxi sjohnson: have you thought of something like shunting yourself sideways a little, like starting a test suite for your javascript codebase? becoming the Testing Guru or something like that? 16:52
pugs_svn r28286 | moritz++ | [new perl6.org] design fixes; more camlia goodness
sjohnson window.top.window. type scoping calls 16:53
mdxi sjohnson: and are you using a tool like firebug to help with the debugging?
sjohnson yes, i also hate firebug
pugs_svn r28287 | moritz++ | [new perl6.org] added images, and index.html
diakopter sjohnson: me 2
mdxi nevermind that, then :)
sjohnson trying to edit CSS properties in firebugs from its interface is like pulling teeth
diakopter sjohnson: do you use a Windows machine?
sjohnson yes, windows XP
diakopter have you tried IE8's JS debugger? it's *many* times faster than firebug, and much much easier to navigate imho. 16:54
sjohnson interesting...
does it come with IE8?
diakopter yeah
hit F12
pugs_svn r28288 | moritz++ | [new perl6.org] fix link 16:55
diakopter the function call profiler with it is also excellent
moritz_ what I don't like about js is that new blocks don't introduce new scopes
diakopter every time I try to use the JS "dev tools" in Safari, Chrome, or Firefox, I'm severely disappointed by breakage, ugliness, and slowness, and end up going back to IE8's debugger. 16:56
but I keep giving the latest builds' another chance every week or two 16:57
:)
mdxi (opera has one now, too, called dragonfly. don't know anything about its quality or workings though)
diakopter builds no trailing apostrophe
well, maybe trailing apostrophe with implied "dev tools"
moritz_
.oO( trailing catastrophy )
sjohnson diakopter: will try 16:58
moritz_ sandbox.rakudo.de/ (early) preview of the new perl6.org site
sjohnson firebug's clunkyness definitely was part of my JS rant
diakopter mdxi: I haven't tried Opera's... thanks for the reminder about it. 16:59
TimToady moritz_: nice. maybe the MORE links should be white 17:03
and possibly right justified 17:04
or centered
sjohnson TimToady: do you like any other languages besides Perl?
TimToady English is pretty okay 17:05
Japanese is kinda fun
moritz_ TimToady: I'll see how that looks 17:06
sjohnson i like Japanese a lot too
it's "cute"
diakopter I tried speaking in tongues once, but I glossed over its lexicon too quickly. 17:07
araujo thinks japanese girls are cute too 17:09
mdxi moritz_: nice. i like the splitting-out of things 17:10
pugs_svn r28289 | moritz++ | [new perl6.org] make the box headings link to the sub pages 17:12
moritz_ mdxi: thanks
sjohnson pugs_svn's + sign is cute
:)
moritz_ I'm not sure what to do with the download box
moritz_ I hope you looked at the sub pages too (only some of them exist right now) 17:14
mdxi i did 17:16
pugs_svn r28290 | moritz++ | [new perl6.org] center the »MORE« links, make them white. TimToady++ 17:20
TimToady moritz_: no fun :) 17:25
moritz_ TimToady: I know :( 17:26
ruoso TimToady, I know you probably saw it already... but I've made some changes in S06 that need your review.... 17:28
moritz_ ruoso: the bindability check can already be made with smart matching against .signature 17:30
ruoso moritz_, it's a bit more than that... it's about getting the list of possible candidates 17:31
ruoso assuming moritz_ was talking about .cando($capture) 17:32
diakopter rakudo: say(eval('blahblah')); say('hi'); 17:33
p6eval rakudo 4b141a: OUTPUT«␤hi␤»
ruoso one thing that should be noted is that the API is the same for only vs multi routines...
chturne Apologies if this is a FAQ, but where is the help needed at the moment in Perl 6? 17:38
(Or, wheres a good place to start)
TimToady chturne: well, here on irc, and perl6.org, and all the links you find there 17:41
are you familiar with Perl 5?
chturne Yes 17:42
chturne Ah, I didn't see that link before. I guess a good starting place would be to write lots of Perl 6 code then! And file good bug reports :D 17:43
TimToady then perlgeek.de/blog-en/perl-5-to-6/ is useful as a bootstrap
chturne: yes, real code finding real bugs is The Best 17:44
chturne Thanks TimToady.
TimToady chturne: note, on the perl-5-to-6 link, you want to visit in the order down on the left margin 17:46
since it bloggily comes up in reverse order
chturne Heh, yes, it start looking weird quickly before I figured that out! 17:47
pugs_svn r28291 | lwall++ | [STD] revise LTA message on $x<10 18:03
r28291 | [Cursor] provide reliable way of resetting position before panic
Tene HI TIM 18:06
TimToady almost types /kick
Tene who's being kicked? 18:07
TimToady sorry, just a C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[Cstartle reflex when someone shouts 18:09
o.O 18:10
Tene o.O
huf that's an odd reflex there
TimToady O.o
huf and who took my fork!
Tene Hmm. Apparently you are startled.
timbunce Has any thought been given to teaching the ohloh.net code scanner how to recognize perl6 code? 18:11
TimToady universal negatives are difficult
timbunce um, how about has it been discussed? 18:12
TimToady not that I know of
(difficult to prove, but not difficult to disprove) 18:13
Tene TimToady: should closures and subs be printable?
TimToady (except for the part about finding the disproof....)
Tene: I'd think the default should be yes, though exactly what you mean by "closure" is subject to ambiguity 18:14
we can certainly get at the original code, at least until it's thrown away
but I suspect that throwing away the source code will not be default, is what I mean 18:15
Tene What do you think about: sub f ($a, $b) { say $a, $b }; my $c = &f.assuming(5); say $c;
TimToady however, a real closure is also all the lexical state it captures around it
jauaor :) 18:16
timbunce In the hope I can tickle someone into contributing a perl6 recognizer for ohloh, the project page is sourceforge.net/apps/trac/ohcount/ 18:17
TimToady well, there's always (sub f ($a, $b) { say $a, $b }).assuming(5) 18:18
or some such
Tene Eh, true.
TimToady but one would perhaps like the simplified form
which you could also do for closures with known bindings, presumably
it's just a matter of traversing the AST and doing all the substitutions in the right order :) 18:19
easy...
Tene Would "-> $b { say 5, $b }" be valid?
TimToady I'd think something like that would be okay 18:20
Tene Hmm. Okay.
TimToady likewise if $a had been in the outer lexical scope instead of a param
well, except for the rw-ness of $a 18:21
hmm
if we lose the container identity it could be problematic
Tene Well, it's probably relevant to ask what the purpose of stringification is. Is it just to provide information to the programmer? an attempt at serialization?
TimToady I'm thinking that, at least within a process, we have a way of designating a particular lexical scope frame with an opaque (autogenned?) designator 18:23
so you'd end up with -> $b { say SOMEMAGICdeadbeef::<$a>, $b } for the lexical $a
Tene Hmm. That doesn't seem like it would be particularly useful for serialization or for the programmer... 18:24
TimToady and serializing that would probably assume some kind of snapshot of the current value
it's potentially useful to distinguish two different $a values in the debugger 18:25
if you see that deadbeef isn't hte same as deadface
Tene although, should ~ and .perl() of &c be different? 18:26
are there implied different purposes for those?
TimToady there's no guarantee that ~ has to be parseable
merely human readable
it's okay for ~ to be ambiguous for non-essential details, for instance 18:27
~%hash is ambiguous if keys or values contain tab, for instance
Tene So, for example, ~ could have '5' and .perl could have deadface::
TimToady yeah 18:28
Tene Okay. :) 18:29
muixirt hmm ... Arrays are lists of data of the same type that are indexed by number? 18:33
TimToady where "same type" is often just Object 18:34
jauaor wonders if there is a way to induce his former employer to use perl6 :P 18:35
TimToady yes, but it might take a few more years 18:36
has something to do with world domination first
jauaor haha
TimToady: former employer wants me to get into ruby
mmm....
TimToady well, you could be a double agent, I suppose 18:38
muixirt "Arrays are lists of data objects that are indexed by number" would be a better explanation? 18:39
jauaor TimToady: haha
muixirt was looking at en.wikibooks.org/wiki/Perl_6_Progra...s_and_Data 18:44
TimToady it's probably wrong
cognominal TimToady, can MAD in Perl 5 can be used for syntactic highligting? How to get the output anyway? 18:46
TimToady it could, but you need to compile Perl 5 specially to get MADSKILLS 18:47
TimToady and it's slightly bitrotted 18:47
cognominal I recompiled it I just don't know how to use it. 18:48
colomon rakudo: given 1.5 { when 1..2 { say 'between one and two' }; say 'not'; }; 18:51
p6eval rakudo 4b141a: OUTPUT«between one and two␤»
mdxi heh :) 18:53
TimToady cognominal: offhand, I don't remember all the details, but you set PERL_MADSKILLS in the environment, and then a debug dump of some sort spits out raw mad xml
cognominal thx
TimToady which you run through nomad to move things around to sane locations on the tree 18:54
other than that, you'll have to look at the source code
I'm not sure how much it has mutated since I last looked at it
cognominal that's probably enough to get me started... 18:55
I see indeed to env vars PERL_XMLDUMP and PERL_MADSKILLS
TimToady most of the code can be found by greping for MAD or mad 18:56
the basic idea is that it modifies the actual Perl 5 tree as little as possible, just annotating all the places where Perl lied to itself
nomad is what does the "unlying" 18:57
colomon rakudo: given 1.5 { when Range.new(from => 1, to => 2, by => 1/3) { say 'between one and two' }; say 'not'; };
p6eval rakudo 4b141a: OUTPUT«between one and two␤»
cognominal The lexer lies a lot, I have read toke.c a long time a go
colomon rakudo: say Range.new(from => 1, to => 2, by => 1/3).list.perl 18:58
TimToady the parser also lies to itself :)
p6eval rakudo 4b141a: OUTPUT«[1, 2]␤»
TimToady gah, how did it get to be lunch time already?!? 19:01
pugs_svn r28292 | diakopter++ | [vijs] implement Concatenation, Comma; generalize .args calling convention 19:11
diakopter vijs: say 'howdy ' ~ 'world' 19:18
p6eval vijs 28291: OUTPUT«howdy world␤␤ time in interpreter: 0.045004 s␤»
diakopter vijs: say 'Meesa ' ~ '»ö«' 19:19
p6eval vijs 28291: OUTPUT«Meesa »ö«␤␤ time in interpreter: 0.044941 s␤»
muixirt vijs?
diakopter 6js
this little Perl 6 interpreter I'm toying 19:20
cognominal written in javascript?
diakopter yeah
uses TimToady's STD parser in Perl 5, which is linked to Google's V8 JS VM 19:21
muixirt sounds complicated 19:22
cognominal in what format is the STD parse tree? I guess I have already asked, by my memory is volatile
diakopter there's a YAML emitter and a "JSON" (not really JSON, but JS) emitter I wrote... 19:23
cognominal Perl 6 in a browser is definitively yhe way to
diakopter but viv (6->5) uses the VAST system to construct/post-process it 19:24
cognominal your stuff is in the pugs repository?
diakopter yeah; see perlcabal.org/svn/pugs/revision/?rev=28292 for hints 19:25
cognominal the V8 source is independent of chrome? 19:27
diakopter yep; see perlcabal.org/svn/pugs/view/src/perl6/js/README it builds with gcc on several platforms/architectures 19:28
also msvc++
diakopter sorry g++ 19:28
cognominal why the python requirement? 19:29
diakopter v8 uses scons to build..
cognominal that's like the cons a make in Perl I read in TPJ a long time ago? 19:30
syntheticore rakudo: class Bar { 19:31
has %!foo;
method blub {
%!foo = { 1 => 2, 3 => 4 };
say "init";
phenny syntheticore: 04 Sep 02:28Z <TimToady> tell syntheticore sets should be defined in terms of === so that sets of objects work; === should autothread; === is defined as $x.WHICH eqv $y.WHICH to compare identity
syntheticore say %!foo.{1};
p6eval rakudo 4b141a: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""␤in Main (src/gen_setting.pm:3469)␤»
syntheticore }
method postcircumfix:<{ }> ( $key ) {
say "postcircumfix";
say %!foo.perl;
}
}
Bar.new.blub;
diakopter oo
cognominal: I don't know 19:32
syntheticore can somebody tell me why the above doesn work? 19:33
diakopter on irc? b/c it's more than 1 line
syntheticore <{}> gets called after init and i get this: No such attribute '%!foo' 19:33
sorry 19:34
diakopter try paste.lisp.org/new/perl6
azawawi hi 19:35
syntheticore thnx
azawawi moritz_: here is the final thing feather.perl6.nl/~azawawi/six_updater.png , I am going to blog about it in the morning. 19:36
lisppaste3 syntheticore pasted "wrong postcircumfix method called?" at paste.lisp.org/display/87292 19:39
TimToady syntheticore: you call it as %!foo.{}, which is not the same as self.{} 20:22
syntheticore TimToady: exactly 20:23
so I think my own implementation of {} shouldn't even be called, as I mean the Hash method with this 20:24
TimToady I agree
syntheticore nice ;) 20:25
moritz_ [email@hidden.address] for bug reports
TimToady oh, wait...
moritz_ hasn't really been paying attention
syntheticore so how can I work around this for the moment? Not use the operator at all?
TimToady %!foo()() should work 20:26
er, try %!foo().{}
nope, but at least a different error 20:27
syntheticore => invoke() not implemented in class 'Hash'
TimToady well, at least we know it knows it's a Hash now... 20:28
syntheticore say $!foo.perl in the postcircumfix method also fails with "No such attribute '%!foo'"
so it seems the operator is not seen as a real method right now 20:29
TimToady well, it's simply dispatching to the wrong routine somehow 20:30
syntheticore ok, I guess I'll just use a regular method instead for now 20:32
TimToady if you declare $self explicilty as Bar it just fails when it calls the wrong routine 20:33
oh, here's sort of a workaround 20:34
make it: class Bar does Associative {...}
you get a warning, but the right answer
syntheticore hmm, doesn't work for me.. 20:37
same result
incidentally, the real code where this happens already uses "does Associative" 20:38
TimToady oh, I also have it %!foo{1} without hte . 20:39
strange
it's possible that it's getting mixed up with %!foo() notation somehow too 20:40
but it'll probably take jnthn++ or pmichaud++ to chase it down
in any case, definitely a bug 20:41
syntheticore yeah, I'm getting that feeling too ;)
TimToady syntheticore++
syntheticore another question: How is the syntax for set operations supposed to work: && and ||, AND and OR, something entirely different? 20:42
TimToady pugs/ext/Set/lib/Set.pm seems to have some notions about that, though maybe we'd have ASCII workarounds for the Unicode challenged 20:51
I think we'd also at one time discussed (+) (*) (-) and such as ASCII set op 20:52
ops 20:53
syntheticore thanks, I'll have a look at that tomorrow, have to leave now unfortunately 21:00
diakopter would anyone like to write a test driver/harness against the spectests for vijs? 23:41