»ö« | 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 moderator on 20 October 2009.
pmichaud btw, I think that the new perl.org is awesome. 00:00
chromatic Will do.
mst thank you. 00:01
chromatic++
chromatic++ # and a second one in advance for when we invoke that continuation
diakopter Maddingue: but what I'm saying is that /usr/bin/perl is perl5, always 00:06
Juerd Who did the new perl.org? I love it.
chromatic I think it was Leo L. 00:07
mst yep 00:08
ranguard++ # Leo Lapworth
Infinoid masak: ping
phenny Infinoid: 01 Nov 19:48Z <pmichaud> tell Infinoid could you add the rakudo/ng branch commits to dalek? url is github.com/feeds/rakudo/commits/rakudo/ng
Infinoid: 01 Nov 19:49Z <pmichaud> tell Infinoid I think it only needs reporting to #perl6
masak Infinoid: pong. 00:09
diakopter Infinoid: yay I broke dalek (again)
Infinoid diakopter: great, so when I break it (in a few minutes), I can blame it all on you. :)
masak: Is there a new URL for november? I finally pulled your dalek plugin into the dalek-plugins repo, but the plugin is getting a 404
masak Infinoid: hm. 00:10
Infinoid: it's still github.com/viklund/november
mst right. bounce.
00:10 mst left
Infinoid masak: ok, plugin had github.com/viklund/november-wiki. I will update it 00:11
(No, I hadn't planned to wait until november to apply the november patch, that's just how the randomness worked out.)
masak oops. sorry about that.
00:11 kidd joined
Infinoid masak: Should that go only to #perl6, or #parrot too? 00:12
diakopter masak: I think that's the wrong perspective ("widely different world views")... where the rubber meets the road, what are the substantive, tangible differences? 00:13
s/the wrong/an incorrect/ 00:14
chromatic I can only think of one, and it's philosophical.
masak Infinoid: #perl6 is enough, but #november-wiki is more important to me. 00:16
chromatic Perl 5 adopted and spread Unix and Unix cultural inconsistencies to make the language more palatable to existing Unix users.
masak diakopter: I can assure you I felt some tangible differences earlier this week. 00:17
chromatic That might be a better way to phrase a similar idea though. Perl 5 has syntax compatibility with Perls 1 through 4. Perl 6 intends to provide the same Perlish nature with different syntax. 00:18
Infinoid masak: can do. thanks
masak Infinoid: thank _you_.
chromatic: and different semantics.
it's not just a surface change.
chromatic Depends how deep you want to get into world views. 00:19
masak one of the things I was asked on #perl was "can I still do <simple hello-world one-liner>?"
I explained the syntactical differences, and got back a "so, no."
that neatly summarizes my stay there. :)
chromatic Baffling. 00:20
diakopter I'm reluctant to let #perl (magnet or freenode or oftc or efnet or wtf other network) define the Perl 5 community
masak oh, sure. 00:21
I don't think for a moment they're some sort of average Perl 5 community member.
chromatic Hence my concern for stage 2.
pmichaud they may not be average, but they're surely vocal/visible :) 00:22
masak yes, that's what distinguishes them.
chromatic Maybe. Maybe we overestimate how vocal and visible most of us are to the wide world of Perl programmers. 00:23
masak also, they type much faster than people on #perl6, because, as s1n++ pointed out "they don't have to think". :)
pmichaud chromatic: ...you're advocating the DarkIRC? ;-)
"we don't know what people outside of our bubble think..." :) :) 00:24
chromatic More like the Dark Mongers.
pmichaud there ya go -- I couldnt' come up with a good term for it
chromatic I would have called it DarkPM, but I don't know if you can grow a goatee.
PerlJam greetings again.
what did I miss?
diakopter had lunch today with TimToady and 6 sysadmins/programmers who use Perl daily/hourly/minutely, and most had barely heard of Perl 6
pmichaud I can probably grow a goatee. I certainly had (a fake) one in a stage role at one time :) 00:25
00:26 dalek joined
masak pmichaud: now I'm really scared. :) 00:27
00:29 envi^home joined
pmichaud maybe we're not vocal/visible to the wide world of Perl programmers (likely not), but I think we are visible to people who are setting Perl's overall directions (both 5 and 6) 00:29
00:30 dalek joined
pmichaud (and yes, we are also the people setting those directions) 00:31
masak hence, we are visible to ourselves. *phew*. :) 00:33
cognominal fail to understand the <MARKED(...)> rules
00:33 orafu joined
cognominal ho, I see a method in HLL-s0.pir. 00:35
00:36 krakan joined
PerlJam tends to think that he is fairly invisible to the perl-at-large-community except in the few interactions on IRC and such 00:39
pmichaud cognominal: "MARKER" sets a marker at the current position 00:42
"MARKED" asks if the current position has the requested marker set
cognominal thx, that is more or less what I gathered from a cursory (pun intended) reading of HLL-s0.pir 00:44
dukeleto diakopter: most perl-using sysadmins i meet don't konw about perl 6 01:02
diakopter: or say something like "i heard about it 5 years ago and then never heard anything again" 01:03
masak in a way, that's good news. 01:06
01:11 frew_ joined
dukeleto masak: yes, it is. 01:15
masak pmichaud: ping.
dukeleto i had the pleasure of explaining to someone last night what is going on with NQP-rx. they looked a bit disturbed 01:16
to someone that had not kept up with perl 6 in a few years
japhb What did you tell them?
dukeleto japhb: that we will have flying cars soon ;)
masak why did they look disturbed?
I mean, I thought everyone knew about Perl 6 and the flying cars.
dukeleto japhb: just explained the reasoning for NQP and how it recently got a bunch of new features 01:17
japhb ah
dukeleto masak: i think the disturbedness was from not realizing how much has changed
masak can someone help me see what I'm doing wrong here? note the indenting of the last M. gist.github.com/233491
dukeleto normal people seem to look at me like I have 3 eyes when I explain what NQP is to them for the first time
masak dukeleto: I think most people are in that situation. Perl 6 is a black box. 01:18
japhb has been spending a lot of time keeping up with improvements to NQP-rx ... and pushing for even more. ;-)
dukeleto even if they are perl people
japhb: please, keep pushing. the more you do, the less I have to ;)
japhb heh
wiki.github.com/perl6/nqp-rx/plumage-requests , It's What's For Dinner.
dukeleto i just can't believe that i don't work on plumage for like a week, and now i am totally bewildered with all that is going on 01:19
japhb (Anything in the top section that has been marked done, but not moved to the bottom section -- is stuff I am still converting Plumage to use.)
heh
I am no longer sick.
dukeleto japhb: wow, i noticed! ;) japhb++
japhb (He says, crossing his fingers and knocking on wood) 01:20
dukeleto japhb: glad to have you back. now please clone yourself
01:20 Exodist joined
masak I think I want to make more people get disturbed in that sense. 01:21
not because I like seeing them disturbed, of course, but because that's often what's needed to get excited.
japhb "shake them up a bit" 01:23
dukeleto japhb: i totally agree 01:25
japhb: which is why i enjoy disturbing people by explaining NQP to them ;)
japhb :-)
chromatic I like Rock, Paper, Scissors, Spock, Lizard MMD for that.
arnsholt Just because you guys are talking about it, what -is- the purpose of NQP?
(I think I know, but now I'm not sure any more =)
dukeleto arnsholt: it is a very easy to parse, fast-to-run subset of Perl 6 01:26
japhb arnsholt, what dukeleto said ... and yet, powerful enough to write other languages in (cleanly)
01:26 nihiliad joined
dukeleto arnsholt: it is a bootstrap language for Rakudo to be written in, and it is used in Parrot core as well, for our parsing engine (Parrot Compiler Toolkit) 01:26
masak perl6: class M { has M @.ms is rw; method s($i=0) { $i ~ "[{ map { "{$_.s($i + 1)}" }, self.ms }]" } }; my $m = M.new; my $m2 = M.new; $m2.ms = M.new; $m.ms = M.new, $m2, M.new; say $m.s;
arnsholt Yeah. Essentially for bootstrapping Perl 6, no?
dukeleto arnsholt: but from what I learn, PCT is going to be replaced by NQP-rx 01:27
p6eval rakudo d04cce: ( no output )
..elf 29064: Parse error in: /tmp/RTUHO94kKK␤panic at line 1 column 45 (pos 45): Missing right brace␤WHERE: @.ms is rw; method s($i=0) { $i ~ "[{ map { "{$_.s($i + 1)}␤WHERE: /\\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:255:in `_block_rest'␤
..STD_red/std…
..pugs: *** Missing required parameters: $_␤ at /tmp/XZcIo7EzaR line 1, column 61-78␤
arnsholt Cool
dukeleto arnsholt: yes.
PerlJam dukeleto: "is being replaced by" :)
arnsholt There's a Not Quite Perl used for bootstrapping Perl 5 too, no?
dukeleto PerlJam: is there a parrot branch that uses nqp-rx yet? not to my knowledge
arnsholt: yeah, it is called XS ::ducks:: 01:28
japhb dukeleto: nqp-rx is in Parrot core.
(as of today)
arnsholt dukeleto: Nice one ^^
dukeleto japhb: damn! i go and do work for my $job for ONE DAY and you guys sneak it in behind my back
japhb arnsholt, NQP is also used to implement Plumage
heh
dukeleto NQP is probably going to be the new language to write HLL's in 01:29
that is what I am going to do, anyway
japhb s/probably/
dukeleto japhb: it won't be *necessary* but it will definitely be sufficient :)
japhb quite 01:30
dukeleto some people still write HLL's in PIR or even C++ (winxed). it takes all kinds to make the world go round
masak phenny: tell pmichaud that I don't understand why I get 0[1[] 2[3[]] 4[]] here and not 0[1[] 1[2[]] 1[]]. gist.github.com/233491 -- is it a lexicals bug? binding bug?
phenny masak: I'll pass that on when pmichaud is around.
01:36 meppl joined
s1n has a goatee, wonders where the "good s1n" is... 01:47
sorry, was in the scroll back
masak s1n: :)
s1n: we'll let you know if we find the "good s1n" :P 01:48
s1n heh, i'll kill him if i find him first >:) 01:51
masak oops.
01:53 Wolfman2000 joined
Wolfman2000 evening 01:57
dalek ok: af7253e | chromatic++ | src/classes-and-objects.pod:
Edited classes and objects chapter:

   * some formatting cleanup
   * added a few suggestions for further improvement
01:58
02:04 ihrd1 joined 02:09 alester joined
dalek ok: 424541e | masak++ | src/classes-and-objects.pod:
[OO] added back a lost full stop
02:10
02:13 eternaleye joined 02:15 eternaleye joined 02:27 oZ] joined 02:42 tideflat joined
tideflat std: say $@ 02:42
p6eval std 29064: [31m===[0mSORRY![31m===[0m␤Obsolete use of $@ variable as eval error; in Perl 6 please use $! instead at /tmp/OVR5tdz1hV line 1:␤------> [32msay $@[33m⏏[31m<EOL>[0m␤FAILED 00:01 102m␤
02:43 oZ] left
tideflat std: say 'Hi perl 6' 02:43
masak jnthn: oh! oh! did you see my bug from earlier?
p6eval std 29064: ok 00:01 100m␤
jnthn masak: oh noes...which one?
masak hi, tideflat!
tideflat HIi
masak jnthn: hold on, I'll get it.
jnthn grabs something to drink while he reads it....
tideflat HI
masak o/ 02:44
Wolfman2000 masak: evening
masak jnthn: gist.github.com/233491
Wolfman2000: howdy.
jnthn masak: looking
02:44 gfx joined
jnthn oh noes...it has the word "lexicals" in it 02:45
masak Wolfman2000: I meant to start work on a Web.pm-based pastebin yesterday, but a monumental discussion about the future of the Perl 5 and Perl 6 communities kinda got in my way.
masak grins at jnthn
either lexicals or binding.
Wolfman2000 masak: I got hung up on my pastebin work due to problems with databases and catalyst myself.
masak that's my guess.
Wolfman2000 I'm right now trying to take care of that 02:46
masak Wolfman2000: great.
sjohnson does catalyst come with a few "use"able modules for basic html stuff? 02:48
jnthn masak: Ouch, my brain.
masak sorry about that.
jnthn masak: It's fine, I'll look tomorrow.
masak goodie. I've phenny'd pmichaud about it, too.
jnthn masak: Can you add expected output to that gist?
masak I can. 02:49
jnthn Thanks, that'd help.
masak if it makes it easier to think about: before I golfed it, the code was doing indentation.
and it did it wrong.
jnthn ah, ok 02:50
masak the problem only shows up when the recursion is between methods, not subs.
jnthn That's curious too. 02:52
OK, I'm going to sleep...I've left the tab open in my browser, so it'll confront me in the morning. :-)
masak good :)
then either I'll be here before you, or my problem will confront you. :) 02:53
win-win :)
jnthn For you. :-P
Well, I'm doing a Rakudo day tomorrow anyways. :-) 02:54
masak \\o/
jnthn They always go on until a ridiculous hour anyway, so even if I sleep until midday, it should still be productive. :-)
masak that's a good reason for me to wake up early. :)
jnthn lol
masak 'night
jnthn No, not really. I'll probably start late and finish really late.
night!
o/
03:09 seanstickle joined 03:15 seanstickle left
PerlJam does "{*} #= foo" work in NQP, and/or are they some special rules to using it? 03:29
Wolfman2000 phenny: tell masak New update on my Pastebin woes. Apparently the query I need to pull off works when there is no data inside the database. Once data is in, it breaks. Does this make sense to you? 03:30
phenny Wolfman2000: I'll pass that on when masak is around.
Tene Wolfman2000: explain "breaks" 03:35
Wolfman2000 Tene: no data in the database, the query runs fine because it sees no data. data in the database, it can't seem to construct and inflate the resulting object properly without some sort of issue in the way. 03:36
PerlJam huh ... I must've had a tab character or something between C<#=> and my identifier because it works now and all I've done is manipulate the whitespace around between the regex, C<{*}>, C<#=>, and the identifier 03:37
Wolfman2000: show the code.
Wolfman2000 scsys.co.uk:8001/36146 <-- test file, but that should keep you happy. 03:38
PerlJam Wolfman2000: perhaps I'm missing something, but your query seems incomplete. 03:41
Wolfman2000 PerlJam: what do you think is missing?
PerlJam Wolfman2000: don't you need to say something like "select * from blah where ..." ?
Wolfman2000 PerlJam: ...right, you aren't used to DBIC 03:42
PerlJam indeed I am not
Wolfman2000 nevermind then.
03:45 hercynium joined 03:46 envi^office joined
PerlJam Wolfman2000: Assuming that the query is built for you based on the criteria you've specified, is there a way to output the SQL rather than execute the query? 03:46
Wolfman2000 PerlJam: ...not that I know of. 03:47
I'll try messing with this some more in a few minutes. Need a break.
diakopter chromatic: lol@ Dark Mongers 03:59
04:06 meppel joined 04:09 kangas joined 04:23 seanstickle joined 04:24 nihiliad joined 04:27 Chillance joined 04:37 seanstickle left
carlin That was one interesting (and lengthy!) backlog 04:41
04:44 gfx joined
diakopter Every time you turn the page, another folio magically appears 04:44
dukeleto 'ello 05:34
diakopter 'i
05:36 justatheory joined
diakopter ... in theory 05:37
05:41 pointme joined, zaslon joined, mubot joined 05:51 xomas_ joined 05:58 am0c joined 05:59 ihrd1 left 06:06 quietfanatic joined 06:11 agentzh joined
quietfanatic events are like routines that are invoked backwards :| 06:14
like comefroms instead of gotos
Wolfman2000 off to bed...perhaps there is hope yet for my Perl 6 Pastebin. 06:24
06:28 pnate2 joined 06:54 sthiruva_ joined
pugs_svn r29065 | lwall++ | [perl6.org] a first whack at "reframing" 07:03
07:10 mathw joined 07:13 ronny_ joined
moritz_ good morning 07:19
mathw Morning 07:25
07:32 Su-Shee joined 07:43 simcop2387 joined
mathw Okay, now I'm confused 07:44
I can't find the action method for infix:sym<~~> in NG
moritz_ I don't think there's necessarily an action method for every infix operator 07:46
if there's no, it'll probably dispatch to infix:<~~> 07:48
(though ~~ does need one, since it's partially syntactic)
src/core/operators.pm
1:our multi infix:<~~>($topic, $matcher) {
08:00 sasykes joined
mathw ahah 08:11
thanks
mathw needs a map of the source tree :) 08:12
aaawwww 08:13
first attempt at 'when' support exploded in a highly unpleasant fashion
but then, I'm not entirely sure what I'm doing so I guess I shouldn't be all that surprised :) 08:14
moritz_ did you do the exceptions part? 08:16
08:18 iblechbot joined
mathw moritz_: No I've been thinking about it and have realised that when is of course more complicated than I thought 08:22
and looking at how trunk rakudo does it is not particularly enlightening 08:23
I think I'm going to have to wait for someone with knowledge to do it, and then learn from that for future things
08:39 scottp joined 08:56 mariuz joined 08:59 _eMaX_ joined 09:05 NorwayGeek joined 09:34 payload joined 09:37 payload1 joined 09:39 payload joined 09:41 NorwayGeek_ joined 09:46 hicx174 joined 09:48 payload1 joined 09:58 payload joined 10:18 mberends joined 10:20 rgrau joined
mberends 22:38 <masak> guys, I just had an hour-long privmsg discussion with mst++. irclog.perlgeek.de/perl6/2009-11-12#i_1723011 10:20
this begin one of the most important 12 hours of backlogs in recent months 10:21
*begins
mst++ and masak++ for very constructive input regarding the relationship between Per 5 and Perl 6 10:23
moritz_ indeed
mberends and (all other participants)++
mberends wishes he had been present as well 10:24
moritz_ was mostly present, but decided to (mostly) back out in order not to make it any more complicated
mberends moritz_: understandable, you can get up on your soapbox another time 10:25
pugs: say ('perl6' gt 'perl'); 10:26
p6eval pugs: 1␤
mberends pugs is not entirely innocent ;)
I'm going to stop describing Perl 6 as the next version of Perl 10:27
I also think, seeing the problems mentioned, that we should seriously consider renaming Perl 6 to something else, for example Camelia 10:29
10:30 payload joined
Su-Shee in my everyday lingo I usally say "rakudo perl" 10:32
Juerd mberends: Is it not true then?
mberends Su-Shee: Rakudo is only one *implementation*, remember the others too. 10:33
Juerd Really, if Perl 6 isn't supposed to supersede Perl 5 (eventually), then the name with a version number makes even less sense.
mberends Juerd: +1
Su-Shee mberends: I know, but interestingly, it sneaked into my wording. somehow, it feels natural. there's perl and there's rakudo perl.
mberends: like british english and us english. 10:34
mberends haha
Juerd I wish I could convince myself to just say "Rakudo" when I mean Perl 6. 10:36
huf it's not good enough of a name
it's fine for a compiler, but not for the language 10:37
it's too damn long for one
Juerd Well, it's not the name of the language. But people will use it as if it is, anyway. :)
No, "Visual Basic" and "ECMA Script" are too long. 10:38
Rakudo isn't
Su-Shee why don't we leave it to the natural evolution of language what "it" eventually will be dubbed? :) 10:39
huf Juerd: it's 3 syllables. that's an eternity. you need something with at most 2, preferably 1 ;)
or is that 'u' silent? 10:40
Juerd Su-Shee: Because there is no such evolution just yet, but the current naming is causing confusion.
carlin Call it Klingon; we have phasers, blorsts, borgs and nqp-rx is alien technology ... so it fits 10:42
Su-Shee huf: no, slightly muted in japanese. the u isn't spoken very clear.
carlin: and eigenstates. 10:43
Juerd carlin: Well it wouldn't help to pick *another* already-existing name.
carlin Google did ;-) 10:44
Juerd Did it help?
moritz_ notreally
Su-Shee now that I think of it .. before I already usally said "pugs perl". 10:45
moritz_: if you speak german, what do you call it?
moritz_ "Perl Sechs"
Su-Shee hm. ok.
moritz_ or just "Perl", depending on context :-) 10:46
it's perl, after all
Woodi opt Perl part stays... 10:47
maybe it will be good to do Perl5 allow to parse STD ? 10:48
moritz_ phenny: tell masak over the weekend I might find the time to write something about the relation between Perl 5 and Perl 6. Do you think it's a good idea to step forward with this, or rather wait a bit more? 10:50
phenny moritz_: I'll pass that on when masak is around.
moritz_ already has a conjectural title: "A bright future for Perl 5 and Perl 6" 10:53
Juerd It would be the nth writing about Perl 5<->6
huf call it perl6i, that way it's not larger than perl5 ;)
Juerd And someone googling will find all the different ones, that were written over time.
moritz_ is that an argument for or against anything? 10:55
Juerd Argument for amending historic posts, mostly 10:56
Which is practically impossible.
moritz_ well, I can only ammend what I have access to
Juerd And it's silly all over the place.
moritz_ and hope that I get a decent google ranking
Juerd But then, so is the whole issue.
moritz_ silly, but important
Juerd Important? Do you think that it's even possible to convince the average programmer that 6 !> 5? 10:57
moritz_ I think it's important to reduce the bad blood between the 5 and 6 communities
Juerd The values of numbers are too much set in stone to ever change how people will see it.
I don't think bad blood that is still there, can be reduced by clarifying the relation. Which is not meant to discourage you - by all means, please do try. 10:58
moritz_ lunch, bbiaw 11:00
11:02 kidd joined 11:06 gfx joined 11:08 kidd joined 11:11 envi^home joined 11:20 kidd joined 11:30 rfordinal joined 11:31 payload1 joined 11:33 payload1 joined, rfordinal left 11:39 zamolxes joined
jnthn Morning 11:54
moritz_ o jnthn 11:55
jnthn lol...beat masak!
12:02 mberends_ joined 12:04 SmokeMachine joined 12:17 IllvilJa joined 12:42 kaare joined
moritz_ loves rakudo ng: spectest takes <10 seconds! 12:53
jnthn moritz_: That's only 'cus there's so few tests that pass! :-P 12:56
jnthn is working hard on getting us some more. 12:57
moritz_ is curious to see the difference when he comes back on Sunday
jnthn Ah, you have a nice weekend break now?
:-)
moritz_ t/spec/S03-operators/equality.t is a LHF, only one failing test
jnthn: not yet, but will soon 12:58
jnthn :)
Ah yes, that is LHF. Thanks.
oh erm 12:59
ouch.
:-/
So apparently my $foo; is meant to default to Object. 13:00
Which stringifies to Object().
moritz_ maybe that test is wrong.
jnthn Dunno.
13:00 payload joined
moritz_ perl6: say '' eq undef 13:00
p6eval elf 29065: Use of uninitialized value in string eq at (eval 125) line 3.␤1␤ 13:01
..rakudo d04cce: Use of uninitialized value␤1␤
..pugs: 1␤
jnthn rakudo: my $x; say $x eq ''
p6eval rakudo d04cce: Use of uninitialized value␤1␤
jnthn rakudo: my Object $x; say $x eq ''
p6eval rakudo d04cce: 0␤
jnthn :-/ 13:02
moritz_ I think the test is wrong. 13:03
at least I don't see how it could work 13:04
jnthn Well, me either, but it's still a tad...surprising...
rakudo: my Object $x; $x ~= "monkey"; say $x; 13:05
p6eval rakudo d04cce: monkey␤
jnthn oh, that still does the Right Thing.
oh, but not in ng
> my Object $x; $x ~= "monkey"; say $x;
Object()monkey
13:06 rfordinal joined
colomon what, my $foo is equivalent to my Object $foo? 13:06
moritz_ yes
otherwise my $x = 1|2; would autothread
colomon moritz_: that's an argument that just zooms over my head. 13:07
And why does test 8 pass while test 6 fails? 13:08
moritz_ no idea. 13:09
jnthn Yeah, I wondered that one too...
moritz_ think that's a good question for Tene 13:10
erm, TimToady
tab fail :-)
jnthn is happy to live in a less populated area of the alphabet :-) 13:11
colomon I think I always thought "my $x" was equivalent to "my Any $x"...
jnthn It can't be 13:12
Junction !~~ Any
13:12 masak joined
jnthn lolitsmasak! 13:12
masak jnthn: I suspected you'd get here first :P 13:13
phenny masak: 03:30Z <Wolfman2000> tell masak New update on my Pastebin woes. Apparently the query I need to pull off works when there is no data inside the database. Once data is in, it breaks. Does this make sense to you?
masak: 10:50Z <moritz_> tell masak over the weekend I might find the time to write something about the relation between Perl 5 and Perl 6. Do you think it's a good idea to step forward with this, or rather wait a bit more?
13:13 fridim_ joined
moritz_ woah, masak shows up and phenny fills 1/3 of my irssi window :-) 13:14
masak moritz_: I'm leaning towards waiting a bit more, but to motivate that I feel like I should explain what mst and I have in store, and he advised me to deliver, not make promises, so... you put me in a bit of a spot with that question. :) 13:15
moritz_ masak: no, it's fine if you tell me to wait based on feelings or trust :-) 13:16
masak: I suspected something like that, which is why I asked
(which I usually don't before blogging :-)
masak moritz_: I look forward to whatever you have to write about it. please feel free to write it, and then maybe show it here before publishing, or something. 13:17
moritz_ so I'll focus on the book instead, which also needs work :-)
masak or that.
moritz_ I'll see what the weekend brings.
masak jnthn: did you fix my bug yet?
masak backlogs
jnthn masak: no.
masak: I didn't comprehend your bug yet. :-) 13:18
masak oh.
but it was right there, in your browser when you woke up! :P
jnthn ENEEDMORECOFFEE
Yeah, it was! :_)
13:18 szabgab joined
jnthn I looked at it, and then ran to the coffee machine. :-) 13:18
masak lol
moritz_ also found it a bit hard to follow :-)
masak I think by golfing it I actually made it harder to follow. :/ 13:19
when it was about indentation, it was immediate that it was wrong.
moritz_ or if you gave them names (<a b c d e>) and print that along with the number 13:21
masak the structure looks like this: Ma[Mb, Mc[Md], Me] 13:22
now, Mb and Me should be printed with the same indentation/number. 13:23
jnthn masak: ugh
masak but they aren't.
jnthn masak: Yes, I see the bug now.
13:23 FCO joined
masak submits rakudobug 13:23
jnthn I agree it's wrong.
takadonet morning all 13:26
13:27 lithos joined
masak takadonet: \\o 13:27
takadonet how are you doing masak? 13:31
masak takadonet: my waking hours are a mess. I have one work day left before vacation starts. my secret project occupies all my attention.
did I say secret project? I meant, um, an entirely boring project. not worth talking about, really. 13:32
takadonet ...
masak takadonet: how are you doing?
takadonet hehe
13:33 NorwayGeek joined
takadonet masak: Busy as hell at work. Leaves no time for perl6 . Getting ready some biological data to be submitted to genbank. Just cannot wait to go back to writing some Perl 5 and Perl 6 13:34
jnthn masak: Oooh...you has a secret project? 13:36
masak jnthn: no. and I've already told you about it, but you must have forgotten. :)
jnthn I think you've told me that you have a secret project. :-)
I don't think I know any more than that. ;-) 13:37
masak only one week left before I get to unveil it.
the tension is killing me. :)
jnthn thinks it's going to be something strange and loopy 13:38
masak oh yes.
jnthn Dunno why. Just a feeling I've got
;-)
moritz_ has a vague idea what it might be, and could be totally wrong
takadonet suddenly I want to know what it is
jnthn
.oO( collection of 100 obfuscated Perl 6 programs that all print the Austrian National Anthem )
13:42
moritz_ rakudo: say $*IN.lines
p6eval rakudo d04cce: Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken Herzen
..gleich.…
masak 1 down, 99 to go. 13:43
moritz_ that doesn't really count as obfuscated though, does it? :-)
masak no, true.
rakudo: say $*IN.lines>>.flip
p6eval rakudo d04cce: ,emortS ma dnaL ,egreB red dnaL,emoD red dnaL ,rekcÄ red dnaL!hcierstfnukuz ,remmäH red dnaL,enhöS reßorg ud tsib tamieH,enöhcS sad rüf tedangeb ,kloV,hcierretsÖ setmhüregleiv!hcierretsÖ setmhüregleivnettirtsmu dliw ,tedhefmu ßieH,nettimni ud lietdrE med tsgeil.hcielg nezreH nekrats
..menie…
moritz_
.oO( if you .flip Austrian it looks just like flipped German :-)
13:44
jnthn moritz_: Strange that.
:-)
I guess it's just 'cus I'm British, but Austrian and German look terribly alike to me even in their non-flipped forms.
moritz_ it's about as close as American and British English 13:45
except that there are less spelling differences (color vs. colour), but more words used differently 13:46
lithos they say, Austrians and Germans are not divided but by their common language ;)
jnthn :-)
Words used differently? That sounds like the path to amusement, depending on the differences. :-) 13:47
moritz_ don't forget the Alps :-)
jnthn phenny: tell pmichaud oh noes, I think we may have a general parsing issue with %item_assignment precedence level. Both ternary and default_value use <EXPR('i=')>, and both have parsing issues. 13:50
phenny jnthn: I'll pass that on when pmichaud is around.
moritz_ jnthn: nah, it's mostly boring differences. In .de "Schorle" means a mixture of $thing and water, and in .at $thing and lemonade 13:51
jnthn Aww. 13:52
Not like "pants" in AE/BE then. :-) 13:53
lithos there are significant differences in spoken language, though, which sometimes lead to amusement
arnsholt jnthn: Try asking about Swiss German O=)
moritz_ lithos: but I found the differences between spoken Austrian and Bavarian smaller than Bavarian and northern German dialects
jnthn arnsholt: I'm under the impression that is much more different. :-) 13:54
moritz_ it is, and it's sometimes amusing to listen to them :-)
arnsholt Yeah. From what I've been told Swiss German is weeeeeeird =D
lithos moritz_, that's true 13:55
13:55 oZ] joined 14:03 ihrd joined 14:04 ihrd left
PerlJam / <foo>? / making an array in the match object still trips me up every time. For some reason that's a lesson that's hard for me to learn. 14:05
masak PerlJam: I used to get tripped up by that as well. 14:06
I've since come to grips with the fact that it's more consistent, for at least two reasons.
PerlJam I understand and agree with the consistency. But it still trips me up :)
masak nod.
it will keep doing that for a while after you understand the reason. :) 14:07
TimToady++ # 'spunky little sister'
moritz_ had to look up 'spunky' 14:08
masak I think it fits.
moritz_ the closest word I knew was 'spooky' - not quite the same :-)
jnthn had to look it up too 14:10
Cool word
PerlJam why do I keep seeing tweets that say "I need to write a cranky editorial about the absurdity of Perl 6 having "missed the boat." " ? Is there some meme here that I'm missing?
moritz_ PerlJam: no, it's just something that spam bots picking up what one of us (Juerd? not sure) wrote once 14:11
or was it alester? not sure
PerlJam I thought I saw chromatic say it :)
masak it was alester. 14:12
I like that bots pick that up. it's a fun tweet.
Juerd ?
PerlJam well, I wish someone would write that cranky editorial and have the bots pick up the link to it.
Juerd Is there a bot that tweets irc snippets?! 14:13
masak PerlJam: alested did write that cranky editorial long ago.
PerlJam Having the bots pickup the link to it is the important part :)
masak Juerd: no, but some Twitter spambots mimick real tweets, and (I think) each other.
Juerd Ah
masak perlbuzz.com/2009/08/perl-6-has-not...-boat.html 14:14
Juerd "There is no boat." I like that explanation. 14:15
It's very concise
masak I think the warm, fuzzy feeling I get is that, ostensibly, even *spambots* are concerned about the way Perl 6 is perceived. :P 14:16
that's when you know your language is taking off. :)
carlin No, you know your langauge is taking off when someone writes a twitter spambot in it 14:17
masak carlin: maybe someone did, and what we're seeing is the tweeting of self-aware Perl 6 spambots. 14:18
it's only natural that bots written in Perl 6 will have the spark, at least a little: www.girlgeniusonline.com/comic.php?date=20091009 14:20
colomon "spunky little sister"! \\o/
jnthn Rakudo ng has when and default blocks back again. 14:22
To some degree anyway. 14:23
masak \\o/ 14:24
jnthn glances around for pmichaud
masak jnthn: in a week, where will the branch be, you think? ready for merge?
jnthn masak: It's hard to be sure at the momnet. It really depends how quickly we can bring back the setting, and then triage all the fails. 14:25
Or, all those we decide are merge-blocking, anyway. 14:26
masak right.
PerlJam puts on his optimist hat
jnthn I've just been trying to get Any-num.pm back in, for example.
PerlJam It'll be ready in a week.
masak it does sound promising.
jnthn In doing so, it's pointed out quite a few things that I've been able to fix.
But also turned up what I think is an OPP bug. :-/ 14:27
carlin Yay
jnthn I've no idea how hard that will be to deal with.
carlin has built rakud oon vista
jnthn We also can't parse numbers yet...
colomon Does ng's new PARROT_REVISION have nqp-rx as part of parrot?
jnthn I think so. 14:28
oh, wait, maybe not...
colomon 42461 is the parrot
I'm just trying to figure out how to build ng this morning. :)
moritz_ it has 14:29
rm -rf parrot_install; perl Configure --gen-parrot # profit! 14:30
colomon and no messing around with the nqx-rx build too?
moritz_ no 14:31
PerlJam pmichaud++
colomon \\o/ 14:35
masak re-reading the mst privmsg discussion, I see that he has a concept in his mind called 'the new wave of CPAN'. could someone tell me more about that? 14:36
PerlJam you'll probably have to ask mst about the stuff that's in his head :) 14:37
colomon If I remember correctly, my impression was that he was talking about things like Catalyst and Moose.
CPAN projects that are the product of active development communities rather than just isolated hackers. 14:38
PerlJam colomon: If I had to guess, I'd say it has something to do with Moose and the Mooseification of CPAN.
masak is it somehow related to "Enlightened Perl" and "Modern Perl"? 14:39
PerlJam (I don't see how Catalyst would come into play really other than it's an example)
colomon an example, exactly.
Su-Shee masak: modern perl is the chromatic stuff; enlightened perl is the organization to which mst is related afaik. 14:40
masak Su-Shee: so it's possible that "Enlightened Perl" is related to "the new wave of CPAN"?
PerlJam posits that speculation is less useful than asking mst directly 14:41
colomon But then, I admit I'm trying to read mst's mind, and I can't begin to understand why someone would choose perl 5 over a properly functional perl 6, so I may not be the right person to understand him.
s/functional/working/
oZ] Probably going to fight the 'maturity' and 'speed' monsters for a while after 'functional' occurs.
Su-Shee let me phrase is that way: the contemporary perl 5 seems to evolve perfectly fine with moose and family and moving towards p6 without breaking old stuff and with all the flexibility CPAN has to offer. so, think along the lines "why p6 instead?"
masak I mean. 14:42
masak Su-Shee: yes. believe me, I understand that train of thought. :) been talking to mst lately.
Su-Shee masak: enlightened perl is mostly an organization to enhance the visibility of perl itself and to lobby more/better for it. 14:43
masak colomon: mst has a lot invested in Perl 5. I understand why he sticks to it. it's way more effective for -him- than Perl 6 even promises to be for the general programmer. 14:44
Su-Shee: oh, ok. I thought it was a series of pro tips, like 'Modern Perl'.
I did know it was an organization, though. 14:45
14:45 astrojp joined
Su-Shee well I have to admit, that the evolution around moose, poe and mojo/catalyst etc had immensely impact on my willingness to stick with perl. otherwise, I would have abandoned it long ago. 14:45
PerlJam masak: aye; founded my mst even
masak Tene: now that the 'spunky little sister' meme is loose, having that t-shirt would *really* be timely. :)
Su-Shee: nod. they constitute a revival of sorts. 14:46
PerlJam Su-Shee: why do Moose, POE, and Catalyst matter to you exactly?
colomon still longs for a dark-colored Rakudo t-shirt...
Su-Shee masak: a very impressive one.
PerlJam: because it shows me the power of perl in a very impressive way at a time when I was ready to believe that python/ruby are the better choice, because supporting more "modern concepts". 14:47
PerlJam: after taking a look into those projects, I was amazed _how_ immensely powerful perl really is. 14:48
masak I feel the same.
PerlJam Su-Shee: had python or ruby had equivalent projects, would you have gone with one of them?
Su-Shee PerlJam: no. which is entirely personal and really only a gutt-thing: they ain't sexy. I plainly don't "like" python and I hate the fanboydom around ruby. 14:49
PerlJam: perl "somehow" speaks to me. ;)
masak as impressed as I am by Perl 6, Rakudo and the Perl 6 community, I can't help being similarly, or sometimes more, impressed by perl, CPAN and the Perl 5 community.
arnsholt Su-Shee: That's one of the reasons I like Perl as well. The power of the language, paired with the ludicrous inventiveness (and insanity) of the community
Su-Shee exactly. 14:50
arnsholt Which makes Perl 5, a relatively old programming language, support pretty much any buzzword people have come up with
PerlJam Su-Shee: You sum up well how many perl programmers think, I think.
Su-Shee: Perl fits my brain.
moritz_ wishes everybody a good weekend and disappears 14:51
Su-Shee HOP came to the right time as well.
PerlJam moritz_: you too!
arnsholt That's also why I'm so excited about Perl 6. You lot are completely insane, which means the language is going to be mega-awesome =D
takadonet wishes he had a perl 6 debugger
Su-Shee and consider this:
"go" is suddenly all the hype and they don't have "real" classes - and so doesn't javascript (which does some very hash-y things) - so suddenly perl doesn't look so bad anymore at all.. ;) 14:52
oZ] The Go hype will pass quickly.
masak moritz_: lolhavetheappropriateamountoffun! 14:53
arnsholt PerlJam: Me too! Perl fits my brain as well. Programming in Python for example gives me this horrid mental itch
Su-Shee if the programming evolution swaps back to less OO, it's going to be interesting - especially with all the functional programming languages books suddenly popping up all over.
arnsholt Su-Shee: IIRC, JS actually has OO. It's just not the OO you're used to from Java. It's prototype-based instead, which is quite cool
colomon agree that programming in perl fits my brain -- which is a large part of the reason I feel that perl 6 is perl -- it fits in the same way, only better. 14:54
masak arnsholt: you recall correctly.
pmichaud good morning, #perl6
phenny pmichaud: 01:30Z <masak> tell pmichaud that I don't understand why I get 0[1[] 2[3[]] 4[]] here and not 0[1[] 1[2[]] 1[]]. gist.github.com/233491 -- is it a lexicals bug? binding bug?
pmichaud: 13:50Z <jnthn> tell pmichaud oh noes, I think we may have a general parsing issue with %item_assignment precedence level. Both ternary and default_value use <EXPR('i=')>, and both have parsing issues.
Su-Shee arnsholt: that's essentially what I meant.
masak pmichaud: morning!
jnthn morning pmichaud :-) 14:55
pmichaud I'll start by fixing ternary. :)
PerlJam good morning pm
pmichaud it's an easy fix.
jnthn pmichaud: Is it the same issue as with default_value?
pmichaud I'm not sure what the issue with default value might be.
that one is a little trickier to imagine. do we have a short example?
jnthn pmichaud: It feels like precedence.
arnsholt colomon: Indeed. My particular fave, being a linguist with a penchant for formalisms, is the grammar stuff 14:56
Su-Shee mine is the "compactness" of writing code.
jnthn sub foo($x = 1) { } # fine
sub foo($a, $b = 1) { } # fine too
sub foo($a = 1, $b = 2) { } # confused
arnsholt Reading the spec made me think along the lines of, "Why hasn't anyone thought of this before?!"
jnthn pmichaud: I think it's not stopping at the comma.
PerlJam arnsholt: too busy holding on to the past to see into the future :)
pmichaud jnthn: looking 14:57
jnthn pmichaud: since
> sub foo($a = 1, $b) { } # confused
Symbol '$b' not predeclared in &foo
I think that is the really incriminating one. :-)
pmichaud easiest is to look at the parse tree
arnsholt Ain't that the truth. And just like regexes in Perl 5, it's very excellent that the syntax is integrated in the language
colomon arnsholt: and proper classes and operator overloading and metaoperators... it's like a dream come true for me.
jnthn Sorry, that last one isn't confused, it gives the error I showed... 14:58
PerlJam what does <EXPR('i=')> mean exactly?
14:58 orafu joined
pmichaud parse down to the 'i=' precedence level 14:58
which (as defined above) should be item precedence
jnthn pmichaud: Yes, parse tree shows that it's swallowed up the "1, $b"
pmichaud so whenever the operator precedence parser encounters a token with a precedence of i= or below, it should stop. 14:59
arnsholt Reading the spec on metaoperators was fun as well. Insane stuff
jnthn where it = default_value
arnsholt In my mind, if I have to pick one thing that makes Perl awesome, it's the influence from functional programming
It makes so much sense, even if it makes some people curl up and cry =) 15:00
masak man, "no ICU lib loaded" sucks. :(
Woodi lastly i wonder what is plan for propper parallel programming in p6... threads, continuations ?
pmichaud we _really_ need a FAQ
masak another one? 15:01
pmichaud do we have one now?
masak Woodi: continuations aren't an example of parallel programming. but I agree those are important questions.
Woodi not saw that question freqently...
masak pmichaud: feels like we have hundreds at this point. :/
splintered and scattered all over the place.
in various stages of info rot.
pmichaud masak: we need one that is actually kept up to date. on perl6.org 15:02
PerlJam masak: then perhaps pm should have said, "we really need _a_ FAQ" :)
masak nod.
pmichaud I'm seeing a lot of the same questions asked over and over lately
threads, continuations, will p5 replace p6, how will p5 use cpan, ...
er, how will p6 use cpan
masak by my experience, the Perl (6) community is bad at doing official/singleton things.
by design, most of the time. 15:03
pmichaud masak: ...except for perl6.org :)
we have a few examples where it's worked out
and the test suite is another :)
and the spec
masak pmichaud: yes, but there are still various other web resources where people end up instead of that one.
pmichaud: the test suite and the spec are internal documents, not PR-related. 15:04
pmichaud masak: sure, because the intertubes haven't really gotten around to making perl6.org the common path
I guess I should say interwebs
Woodi pmichaud: i hang here month or so and can write somewhere answers, but first someone who KNOW answer me...
masak I still see twitterers promoting rakudo.org as _the_ information hub for Perl 6 news.
jnthn Thet internet is a series of tubes.
carlin gist.github.com/233875 # Spectest results on Vista if anyone's interested 15:05
colomon carlin: woah. that's a lot of failures.
s1n about the endless Go discussion: i thought jnthn might find this interesting: golang.org/doc/go_lang_faq.html#overloading 15:06
jnthn Woodi: The answer is that we don't know the full answer to that question yet. Perl 6 provides a bunch of places for declarative parallelism (junctions, hyper-operators, etc). async blocks for spawning threads seem to be commonly recognized as likely. STM has been posited, but may or may not be the way to go. Part of the problem is that we just don't have an implementation where we can actually experiment with this stuff yet.
15:07 kaare joined
colomon s1n: aha! the one faq-answer explanation for why I will not be using Go. :) 15:07
jnthn s1n: thanks, looking
masak jnthn: doesn't Pugs do STM?
15:08 kaare_ joined
Su-Shee all those question will pop up as long until there were a handful of articles when r* was released. 15:08
Woodi jnthn: thank you. let hope adding threads (later) will not end like in p5...
jnthn masak: I think it may well have done, but Haskell provides STM also, so it was based off that.
masak jnthn: yes, of course.
jnthn: what I meant was that there is/was an implementation where we can actually experiment with this stuff. 15:09
jnthn masak: Yes, but sadly it's not so up to date at the moment with other aspects of current Perl 6.
Plus if we want to tweak it in response to "oh, coudln't this way work better", I don't think we have anybody around capable of doing that. 15:10
masak I'm not so sure it's _that_ difficult. :)
I've been delving into the Pugs internals at times.
sure, they're really scary, but not supernaturally so.
Woodi i read STM is not so superb... what about Actor model (en.wikipedia.org/wiki/Actor_model), seems Go channels comes from there... 15:11
masak I think if someone wanted to pick up Pugs development again, even some non-audreyt person, it would be quite possible.
jnthn Woodi: Yes, I've heard varying opinions on STM.
masak Woodi: write a proposal, and we'll try it!
jnthn masak: I expect so, it's just that someone who wants to coming along and doing it. :-) 15:12
Woodi masak: i am more in questions and answers (PR) then specs. but working on it... 15:13
s1n what i find most interesting about Go: google had engineers working full time on it, it's an incredibly basic language, and yet it still took 2 years
masak jnthn: don't look at me! I'm... busy. :)
jnthn s1n: Well, it's not untrue that it simplifies things to not do either of those. :-) 15:14
15:14 rfordinal joined
s1n jnthn: it just strikes me as funny given how much people bitch about perl6's dev time 15:15
jnthn s1n: Well, yes. :-)
masak: My hope is that we'll be able to start experimenting with threads things in Rakudo in the not too distant future.
arnsholt Someone mentioned C++0x a little while ago as well 15:16
And they're just working on a spec!
s1n arnsholt: it was me :)
arnsholt s1n: Oh, right
s1n arnsholt: they're spec has taken ~11 years 15:17
well, it's not a spec
just a change to c++98
arnsholt Oh?
s1n c++ was already approved by iso, so they're just making some changes
15:17 Psyche^ joined
PerlJam and, of course, the existence of C++ means that C is obsolete, right? 15:19
;-)
s1n heh
ironically, they made it a different language with a different name, maybe there's a lesson there
PerlJam We have a different name. "Perl 6" ne "Perl 5" :-) 15:20
but also note how everyone seems to want to keep "C" in there for C, C++, C#, C++0x, etc. 15:21
s1n there's a B and a D too :) 15:22
15:23 iblechbot joined
PerlJam yeah, but no one uses those. 15:23
pmichaud jnthn: confirmed a bug in the operator precedence parser... looking to fix 15:24
jnthn pmichaud++ 15:26
15:29 KyleHa joined
PerlJam someone refresh my memory on how foo {*} #= bar works. As soon as "foo" is parsed, a method named for the rule within which foo appears is fired with 2 args $/, and "bar" yes? 15:29
[particle] correct 15:30
in old nqp. std doesn't use #= anymore, and i don't know if nqp-rx uses it
jnthn Yes, it's still available. 15:31
We use it in maybe one or two places in Rakudo's grammar in ng.
(Where we want to pop into the action method at somewhere other than at the end of the rule.)
[particle] that makes sense, because otherwise it wouldn't be drop-in replacement
jnthn Yes, there's that angle too. :-) 15:32
I'm *so* happy we don't have to put {*} into every token/rule now though. 15:33
PerlJam jnthn: what do you mean? 15:35
{*} was required for the method to execute?
jnthn PerlJam: Correct. 15:36
PerlJam huh, I don't remember that at all.
jnthn PerlJam: See grammar.pg in master.
And all of the {*} :-)
15:37 mberends joined
mberends returns from the dentist, having had a Good Idea 15:38
jnthn waits for mberends to drill it into us
mberends ok :)
jnthn oh gah, my punitis is playing up again... :-/
jnthn listens attentively 15:39
masak jnthn: puns about drills are boring. :P 15:40
mberends it's almost written here a few minutes ago. To not annoy the Perl 5 community, we take a meme from the C language family and rename 'Perl 6' to 'Perl++'
masak feels very reluctant to rename Perl 6
mberends the karma bots will have to learn pre-increment, but that's doable 15:41
masak in the worst scenario, it'll be another PR disaster.
mberends ok, I had to get that off my mind, must travel UK->NL now
mberends waves
masak mberends: o/ 15:42
KyleHa Thanks for the idea, mberends++
masak we'll think++ about it.
PerlJam I don't remember where I read it or what, but there was some company that had a bad reputation and they did a study on how much they'd have to spend to fix it. The study concluded that they could spend their entire marketing/advertizing budget on it for the next 100 years before it would make a dent in public perception. 15:43
Their solution was to change names. (which worked) 15:44
As long as perl 6 isn't irrevocably damaged, we shouldn't change the name IMHO
diakopter or break it up into a bunch of littler pieces with more functionally descriptive names. 15:45
diakopter sort-of backlogged today; sigh.
masak PerlJam: I've been brought up-to-speed this week on how large the damage is. it's massive, but I don't think it's irrevocable. 15:46
diakopter: you mean like, PGE, PCT, nqp, Rakudo...?
diakopter yah
masak diakopter: that's good for people who care.
outsiders don't, generally, care.
jnthn That doesn't solve the problem that the language still needs a name.
PerlJam jnthn: it's the PGET+PCT+NQP+Rakudo language! :) 15:47
pmichaud I've been wondering if perhaps part of the solution is to focus less on "Perl 6" and more on another name, like "Rakudo"
masak diakopter: I remember the first 2-3 times I saw diagrams with flows describing PAST->POST->PIR. all I thought was 'tech the tech tech'.
diakopter: you only start caring about such abstractions as they become useful to you. 15:48
PerlJam pmichaud: be careful not to use up all the good names too quick.
we'd also need to be careful not to transfer the bad vibes too
pmichaud actually
Su-Shee PerlJam: you mean for all the other 3458604396 perls coming up next week? :) 15:49
pmichaud perhaps what we could lightly suggest is that Perl 5 get an additional "tag name" (more)
PerlJam (unless that's the goal, shift all the bad vibes to a new name and then abandon the name)
pmichaud there's already Vanilla Perl, Strawberry Perl, etc.
PerlJam Perl 6 == Ueber Perl
pmichaud in the case of Perl 6, we refused to have an official Perl 6 -- so we have Rakudo, Pugs, Elf, etc.
Su-Shee already says rakudo perl in every day talks about perl 6.
PerlJam Perl 6 == Super Perl (comes with a cape and theme music)
pmichaud maybe (and I do mean *maybe*) perl 5 could start doing distributions as well 15:50
PerlJam perl is already chopped up for linux dists, we might as well exert a little control over that process by doing the chopping ourselves 15:51
Woodi Perl 6 is like ISO standard.. Rakudo is like GCC..
PerlJam (at least that's how I'd pitch it to p5p)
pmichaud perhaps the conversations could shift away from "Perl 5 versus Perl 6" to things like "Rakudo Perl versus Strawberry Perl" ?
which more explicitly recognizes that different distributions would be more suitable to different applications
diakopter re: 'That doesn't solve the problem that the language still needs a name.' - okay. how about CORE, since that's what the setting calls itself 15:52
pmichaud but they're all under this nice umbrella we know as "perl"?
er, "Perl"
Su-Shee difficult. strawberry is specifically windows perl.
Woodi maybe just write p6 compatible compiler using p5 codebase ? name is not main problem...
diakopter COAR
15:52 gbacon joined, nihiliad joined
PerlJam Woodi: you're giving a technical solution to something that's a social problem. 15:52
Woodi btw. name can be "Way of Flaying Mug" 15:53
pmichaud Su-Shee: yes, Strawberry is specifically windows perl, but that's kind of my point.
PerlJam Su-Shee: seems like that fits right in to me.
pmichaud if I wanted to run Perl on Windows, I'd recommend "Strawberry Perl"
Su-Shee ah, now I got it.
PerlJam Hmm.
pmichaud if I want to run Perl on unix, then...
Su-Shee pmichaud: you run perl. 15:54
pmichaud Su-Shee: right. But if I want to run Perl 6 on unix, then ...
... I run Rakudo.
Woodi PerlJam: yea, becouse name Greeky tragic problem...
Su-Shee pmichaud: _I_ run rakudo perl. and before I ran pugs perl.
pmichaud right
diakopter Flaying? Flying?
pmichaud my point is that perhaps a help to this is for perl 5 to find a way to make the same distinction between "language" and "distribution" that we've been doing for Perl 6 15:55
Woodi PerlJam: bad p6 name will make p6 dead, good name will make p5 unhappy...
TimToady the name of Perl 6 is still Perl 6, and I don't see that changing
pmichaud it's already worked well for Strawberry Perl, so we're not completely off-the-wall
diakopter pmichaud: I think that's valid, if you combine it with my point about the cross-dependency/interop
KyleHa considers the set of problems that can be solved with only a name change.
pmichaud TimToady: I think we take that as axiomatic, fwiw 15:56
TimToady: at least I do :)
15:57 lithos joined
masak too 15:57
though I've never been as unsure about it as I am now. :/
pmichaud anyway, if Perl 5 can come up with other names, then to some extent we can eliminate the 6 > 5 issue. 15:59
or at least let that not be the focus of a discussion.
oZ] New Perl / Perl Classic?
pmichaud I've been specifically trying to avoid the "Classic" label.
PerlJam oZ]: gack! no! 16:00
oZ] ;)
diakopter Perl vLast
(kidding)
viPerl 16:01
Woodi so: 1. Perl6 is new language; 2. p5 and p6 languages are uncompatible ? 16:02
pmichaud Woodi: I'm not drawing #2 as a conclusion, no. 16:03
16:03 alester joined
Woodi pmichaud: i prefer not 2. but facts tell other thing... and now we can talk about PR... 16:04
PerlJam the real question might be are p5 and p6 culturally compatible
KyleHa WorkInFactPerl & WorkInProgressPerl
oZ] They're both ridiculously TMTOWTDI. 16:05
PerlJam KyleHa: those are fine for Perl 5, but what about Perl 6?
jsut|work it seems to me like the p6/parrot community is having significant impact on p5
PerlJam :)
arnsholt PerlJam: Hopefully they will be, once the community of Perl 6 users becomes more "mainstream"
16:06 gbacon joined
PerlJam arnsholt: I think it's safe to say that many people in the Perl 6 community are ardent Perl 5 users. that's a good start. 16:07
The problem is that there's a significant portion of the Perl 5 community that thinks we've all had our kool-aid spiked. 16:08
:)
arnsholt Heh
TimToady yes, well, there's more than one flavor of kool-aid...
16:09 gbacon joined
diakopter tmtofoka 16:09
pmichaud omg debugging is soooo much easier in nqp(-rx) !
16:09 ejs joined
jnthn :-) 16:10
pmichaud: I've just ripped out some of the num-ops cheats. :-)
pmichaud found the bug, testing
(testing fix)
jnthn pmichaud: yay :-)
pmichaud looks like it was a copy-pasto
jnthn d'oh
PerlJam does that mean that nqp has the same opp problem?
pmichaud PerlJam: not any more it doesn't (the bug is in the EXPR code that both nqp and rakudo-ng use) 16:11
so yes, nqp had the same problem, but no longer does.
Woodi realy prefer p5 gain new functionalities... up to point it can be compatible with p6 spec...
pmichaud PerlJam: did you add tests for the statement modifiers in nqp?
PerlJam I did.
pmichaud where? 16:12
02-if.t, etc?
PerlJam tests 5 & 6 in 02-if.t and 04-unless.t IIRC
pmichaud okay
wfm
pugs_svn r29066 | masak++ | [perl6.org] changed border colors to better contrast with their fill colors
16:13 ab5tract joined
PerlJam though, I'm trying to use {*} #= key and it's not working at all as I would like. 16:13
(the key doesn't seem to get set) 16:14
pmichaud use of {*} #= ought to be rare.
TimToady I ate the last one for supper last night. :P
PerlJam maybe I just have old-nqp-think in my head 16:15
TimToady {*} is a code smell that suggests decomposition
masak wow; last year {*} was all the rage. now it's already a code smell. :) 16:18
things oxidize far too rapidly in this business...
pmichaud masak: no, they're just over-reacting. :) 16:19
besides, {*} is definitely a place for reducing agents
TimToady they should only be used with cation though
masak groans 16:20
I sense a runaway chain reaction of chemistry jokes...
swimming &
pmichaud
.oO(swimming .... in heavy water?)
16:21
TimToady I think deuterium should be renamed to something less insulting to hydrogen.
dalek p-rx: 9555dc3 | pmichaud++ | src/cheats/ (2 files):
Move <ternary> subrule into HLL::Grammar.
16:25
p-rx: b6a6b03 | pmichaud++ | src/cheats/hll-grammar.pir:
Fix bug in preclim handling of EXPR() subrule.
p-rx: cf48f55 | pmichaud++ | src/Regex/Cursor.pir:
Allow Grammar.parse() to take the name of a subrule as well as a rule.
p-rx: 130a2bb | pmichaud++ | src/Regex/Cursor.pir:
Change rule argument in Cursor.parse to be a named argument.
p-rx: 344775f | pmichaud++ | src/stage0/ (4 files):
Update bootstrap versions.
16:25 justatheory joined
diakopter , in theory I mean 16:25
justatheory wow, some lag 16:26
jnthn pmichaud: Heh. One line deletion fixes the bug? :-) 16:28
pmichaud jnthn: it does.
jnthn pmichaud++
pmichaud at least, it appears to do so.
we'll know shortly -- I'm updating parrot's copy of nqp now
jnthn builds a latest nqp-rx
oh, or I can wait for that.
pmichaud: I've just been re-organizing value parsing a bit to look more STD-ish. 16:29
pmichaud jnthn: okay, good.
jnthn pmichaud: I'm at the point now where I can the number parsing (for non-integers) can go in.
pmichaud jnthn: I was thinking about that last night, and how I'd like to organize it. I'm thinking I'll have a string_to_num function to do it. 16:30
jnthn pmichaud: Sounds fine to me.
pmichaud actually, more accurate will be string_to_rat
jnthn pmichaud: I'm wondering if we can parse Rat.pm yet. Maybe we can...
pmichaud that would likely be high on the list, yes.
jnthn I can do that now. 16:31
I've been putting back lots of numbers bits.
pmichaud I may put string_to_rat into HLL::Grammar, though
so other languages can use it :)
jnthn Yes :-)
Let me see what I can do with Rat.
pmichaud in particular, it converts 123.45 into 12345 / 100
jnthn Cool
pmichaud and dead.beef into 0xdeadbeef / 65536 :-) 16:32
(assuming base 16 on "dead.beef") 16:33
jnthn
.oO( token steak { } )
pmichaud too bad 'r' is so late in the alphabet, so we could do something with "beer" :)
jnthn pmichaud: OK. I've got the number rule in place now, and numish...so if you like, you can take that and start to fillet out. ;-)
pmichaud I will do that.
TimToady just need base 28 or so
pmichaud "beer". "ale". "mead" 16:34
bah
16:34 seanstickle joined
pmichaud "brew" 16:34
jnthn rakudo: say :28<beer>
p6eval rakudo d04cce: 252867␤
jnthn My new favorite number.
16:35 gbacon joined
TimToady rakudo: say :16<beer> 16:35
p6eval rakudo d04cce: 48891␤
TimToady rakudo: say :2<beer>
p6eval rakudo d04cce: 199␤ 16:36
pmichaud that's fixed in the ng branch, fwiw
TimToady it's worth a free beer :)
jnthn oh hol
Rat just went and compiled straight off. 16:37
pmichaud those dirty rats.... so, can we run the tests? or do we need numish for that? ;-)
TimToady I smell a Rat smell
16:37 oZ] left
pmichaud we might need the integer operators 16:37
jnthn pmichaud: See my recent ng commits... :-) 16:38
16:40 seanstickle left
jnthn pmichaud: oh damm...I think I failed. 16:42
It actually...doesn't quite compile.
OK, now it does. :-) 16:45
pmichaud pmichaud@orange:~/ng$ ./perl6 16:47
> sub xyz($a = 1, $b = 2) { 1 }
lambdabot <no location info>: parse error on input `='
pmichaud # no longer confused
jnthn Unless you're lambdabot, of course.
pmichaud++ # thanks
pmichaud I think this also fixes ternary (which was a different problem)
16:48 fax joined
pmichaud > say 1 ?? 'yes' !! 'no' 16:48
yes
> say 0 ?? 'yes' !! 'no'
no
lambdabot <no location info>:
lexical error in string/character literal at chara...
<no location info>:
lexical error in string/character literal at chara...
jnthn pmichaud: Ah, OK.
Great. :-)
[particle] pmichaud: what do you think about including the nqp-rx source as comments in the generated pir?
KyleHa I love ternary!
jnthn I can uncomment a bunch of stuff.
pmichaud: I seem to haz a fail in "is copy"...after fixing that, Rat might work. 16:49
pmichaud [particle]: you mean that goes into the parrot repo? I think we should have the sources themselves as separate files.
the purpose of having the original source is so that parrot could fix a minor bug independent of the nqp-rx repo 16:50
so for that, the actual files are better
[particle] ok, then how about line# annotations? 16:51
colomon jnthn: Is there any real reason for "is copy" to be there in the Rat constructor? I know pmichaud did that, but I never understood why...
jnthn pmichaud: Because it modifies the gcd 16:52
gah, wrong sentence, wrong nick
colomon: Because we use gcd and then modify $numerator in the routine.
colomon jnthn: that makes perfectly good sense. (Though I think the is copy was there before the GCD routine was...) 16:53
jnthn colomon: Aye. I'm not sure 100%, there may well be a reason.
pmichaud++ tends to have reasons for doing things :-) 16:54
colomon He may have just expected the gcd bit would be coming soon...
jnthn maybe ;-)
pmichaud it's possible that I did copy to avoid attribute initialization problems also 16:55
jnthn ah, ok
pmichaud anyway, do whatever makes sense for the new implementation :)
jnthn I'm lazy...dragging in code we know works makes sense to me. ;-)
pmichaud unless that code was based on cheats or incorrect assumptions, though
jnthn oh crap...I broke the build I think. 16:56
pmichaud: Is the rw flag just "rw" or "$!rw"? 16:57
pmichaud I think it's just "rw" right now
jnthn And does it have to be a true value, or just non-null?
pmichaud I'm fine with switching it
I think we want it to be true
jnthn gah
ok
pmichaud looking
it checks for truth
(as well as non-null) 16:58
[particle]: aren't the line numbers in the source already?
[particle] maybe i missed them. i'm looking at a diff of nqp-rx in the parrot repo, and it's impossible to see what actually changed 16:59
pmichaud yes, it's very hard to see the changes from the source diffs
if we had the full source tree there, it'd be easy to see.
[particle] yes, that's true
pmichaud but seeing changes in generate code is likely to be really hard no matter what we do.
[particle] it would be easier for me to search for /^[-+]#/ 17:00
that's why i suggested the comments, but source is easier still
pmichaud well, the line numbers generally appear as '.annotate "line", ##' 17:01
although I might not have the source files in place yet
(the source file annotations, that is)
should probably do that this weekend
17:02 ronny_ left
pmichaud jnthn: yes, broken build here :-( 17:02
jnthn pmichaud: pushed fix, but amongst it all I seem to ahve got some new test failures... 17:03
pmichaud: I'm not sure quite where they slipped in. Investigating.
17:08 jan_ joined
jnthn pmichaud: ah, it was something about adding Rat back. 17:09
pmichaud: Backed it out of Makefile.in for now. 17:10
pmichaud okay
bbiab 17:11
jnthn I have a nasty idea what it may be...
Yes, it is that... :-| 17:21
class Foo { }; multi bar(Foo $x) { }; bar(Foo.new) # fail - the loadinit that builds the class ends up coming after the one for building the signature of the sub.
pmichaud huh? 17:23
that doesn't seem right.
loadinits are supposed to be generated in the same sequence the blocks appear in the tree
is something happening that causes the loadinits for class Foo to be attached to something other than its block?
oh 17:24
I know what it is
it's that the loadinit for bar() is being attached to its outer scope
because it's now lexical
we need to do the same for the module loadinits
(we'll have to do that when we get to lexical classes anyway) 17:25
jnthn Yeah 17:26
pmichaud so, instead of putting the class setup code on the .loadinit for its block, put it on the other block
jnthn That'll be the fix.
pmichaud that should fix it.
jnthn *nod*
pmichaud (and it'll be more correct when we do lexical classes)
jnthn Right, lexical classes should become quite easy then.
pmichaud okay
any priorities you think I need to be working on today?
jnthn OK, I can fix that.
pmichaud I'm about to grab some lunch, but can work on a variety of things when I return 17:27
jnthn You've dealt with some of the biggest ones.
(the ternary and the default value issue)
pmichaud I'll probably do num handling
jnthn Yes, that would be excellent.
pmichaud we need/want it for nqp as well
jnthn In fact, what I was going to suggest.
pmichaud okay
so, nom, then num
jnthn :-)
pmichaud bbiaw
jnthn k 17:28
Actually, I could use some fresh air and I need to go to the store at some point anyway...
jnthn takes a break too
quietfanatic Now, I know caller() is NYI, but is there a way to emulate it, like with PIR? 17:38
PerlJam quietfanatic: I seem to recall that there's a PIR op that tells you such information from a Parrot perspective. 17:43
pugs_svn r29067 | lwall++ | [S05] <foo=bar> doesn't suppress bar capture, use <foo=.bar> for that 17:44
r29067 | Send :keepall off to go and live with :panic.
r29068 | lwall++ | [STD] capture integer parts for pmichaud++ 17:47
r29068 | add <binint> and <decint> rules, and use <fooint> consistently
r29068 | use new <foo=.bar> notation consistently everywhere
17:49 cdarroch joined
PerlJam Hmm. So ternary is fixed now? or no? 17:52
oh. nqp/rakudo need build/PARROT_REVISION bumped up. 17:54
quietfanatic PerlJam: the annotations opcode just gives file and line. 18:05
pugs_svn r29069 | lwall++ | [S05] fossils 18:08
TimToady note you no longer have to say <foo=bar=bar>
instead you say <foo=.bar> to get the old renaming semantics
now only (...) --> $0 gets suppressed by an explicit alias 18:09
shower & 18:10
KyleHa rakudo: say Bool::False.name 18:18
p6eval rakudo d04cce: Method 'name' not found for invocant of class ''␤in Main (file src/gen_setting.pm, line 324)␤
KyleHa rakudo: say Bool::True.name
p6eval rakudo d04cce: Method 'name' not found for invocant of class ''␤in Main (file src/gen_setting.pm, line 324)␤
KyleHa Is it true that those are supposed to be there?
colomon rakudo: say Bool::False.perl 18:21
p6eval rakudo d04cce: Bool::False
quietfanatic KyleHa: I'd think, but rakudo isn't quite all the way on top of enums right now. 18:25
jnthn back
KyleHa quietfanatic: Thanks.
I can't find support for it in the spec, but maybe my grep-fu is weak.
jnthn TimToady: Thanks for those! :-) 18:26
diakopter nqp: say(3) if((say(3) if(3))) 18:44
p6eval nqp: Confused at line 1, near "say(3) if("␤current instr.: 'parrot;HLL;Grammar;panic' pc 448 (src/cheats/hll-grammar.pir:197)␤
diakopter nqp: say(4) if(4)
p6eval nqp: 4␤
pmichaud looks like a statement modifier buglet
diakopter bugle[t]
pmichaud TimToady++ change to renaming semantics 18:45
PerlJam Does <ws> require whitespace?
pmichaud ...now I get to go try to clean up p6regex and nqp
PerlJam: no
PerlJam: but it does required <!ww> 18:46
*require
TimToady: fwiw, I'm not sure I need separate whole number and fractional captures anymore 18:47
it won't hurt to have them, but I think it may in fact be easier to treat it as a unit
(we'll see :-)
dalek p-rx: 8d6dfe2 | duff++ | (4 files):
[nqp] Naive while/until loop modifiers
18:49
KyleHa @seen moritz_ 18:50
lambdabot Unknown command, try @list
pmichaud PerlJam++ # while/until
std: say 3 if(4); 18:51
p6eval std 29069: [31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/qsKyud5JgM line 1:␤------> [32msay 3 if[33m⏏[31m(4);[0m␤ expecting nofun␤FAILED 00:01 102m␤
KyleHa rakudo: my $ro = 'unset'; sub x(Int $x){ $ro = 1 + $x }; sub x(Int $x is rw){ ++$x }; say x(5); say $ro; my $n = 6; x($n); say $n; 18:53
p6eval rakudo d04cce: Redefinition of routine x␤6␤6␤6␤
[particle] if needs a space, no? 18:54
pmichaud yes, it does.
[particle] ok, i wondered about that nqp result above, looked right to me
KyleHa Is that right? I see a ticket that seems to imply that $n should have changed. 18:55
18:56 rfordinal joined
pmichaud KyleHa: need a "multi" 18:56
KyleHa My test file says Ambiguous dispatch.
pmichaud I'm not sure that rakudo master is able to distinguish "is rw" from "is readonly" yet 18:57
KyleHa That seems true.
diakopter nqp: say(3) if ((say(3) if (3)))
p6eval nqp: Confused at line 1, near "say(3) if "␤current instr.: 'parrot;HLL;Grammar;panic' pc 448 (src/cheats/hll-grammar.pir:197)␤
KyleHa My question is whether that's a fair spec test. 18:58
pmichaud if there's multi in front of sub, I think it is.
(a fair test)
KyleHa OK, thanks, pmichaud++
pmichaud nqp: say(3) if (3);
p6eval nqp: 3␤
pmichaud nqp: say(3) if (say(3));
p6eval nqp: 3␤3␤
pmichaud nqp: say(3) if (say(3) if (3));
p6eval nqp: Confused at line 1, near "say(3) if "␤current instr.: 'parrot;HLL;Grammar;panic' pc 448 (src/cheats/hll-grammar.pir:197)␤
pmichaud oh yes, nqp doesn't do comprehensions 18:59
(yet?)
so it doesn't recognize statements inside of parens
jnthn: when you get back, I'm still experiencing lots of test failures in the ng branch 19:00
(in "make test")
jnthn pmichaud: oh?
pmichaud I can confirm that Rat isn't being included in the makefile 19:01
jnthn pmichaud: Check Makefile.in still doesn't have Rat in.
OK.
pmichaud and I've done realcleans
jnthn perl -e "say 1 + 1" # works?
pmichaud fails
jnthn oh.
pmichaud "null PMC access in invoke"
jnthn Right, that's what I removed Rat to fix.
pmichaud appears to have not fixed. or we have a dependency somewhere and a failure in "make clean" 19:02
jnthn presumably perl6 -e "Rat.new" fails?
pmichaud pmichaud@orange:~/ng$ ./perl6 -e "Rat.new"
No applicable candidates found to dispatch to for 'new'
jnthn In a "Can't find sub &Rat" kinda way?
pmichaud nope
jnthn huh?
pmichaud looks like Rat is still there somehow
jnthn yeah
pmichaud something wrong in the makefile, I'm guessing
I'll find/fix it
jnthn cat src/gen/core.pm | grep 'class Rat'
(Should find nothing.) 19:03
pmichaud it's there, so core.pm isn't being updated
jnthn oh
pmichaud or removed when I do "make clean"
jnthn OK, makefile fail.
nod
pmichaud okay, I'll fix.
jnthn OK, thanks.
I've sorted out that package bug...but I'm getting another weird issue as a result.
The error/line numbers are bull. 19:04
pmichaud oh, I see the problem. :)
jnthn So having some fun tracking it down.
pmichaud the PIR error line numbers?
jnthn Yeah.
pmichaud they've been bogus for a few weeks now
19:04 TSa joined
pmichaud they always seem to correspond to the top of a sub 19:04
jnthn Yeah, sometimes more so than others.
:-/
well, that's...useless.
pmichaud I think it has to do with annotations -- if a file has annotations in it, then the PIR line numbers are essentially lost 19:05
or something like that
anyway, it's been that way for a few weeks. very annoying and hard to debug.
pugs_svn r29070 | kyle++ | [t/spec] Test for RT 66498: quoting regex with snowman and comet
r29071 | kyle++ | [t/spec] Tests for RT 66588
r29072 | kyle++ | [pm.txt] A question for TimToady
19:05 chromatic joined
pugs_svn r29073 | kyle++ | [t/spec] fix multi test after talk with pmichaud++ 19:05
jnthn Null PMC access in isa()
current instr.: '' pc -1 ((unknown file):-1)
# eww
pmichaud the problem with Rat is that technically core.pm isn't out of date :-) 19:06
i.e., none of the files it depends on changed, even though the list of dependencies did :)
anyway, I'll fix it in 'make clean' 19:07
Tene so can core.pm depend on the deps list too?
pmichaud that's a bit hard to do in a Makefile
basically you need to make it depend on the Makefile
but some versions of make interpret that oddly
Tene Okay. 19:08
pmichaud jnthn: also, I get a fair number of compiler warnings in the *.ops and *.pmc build process -- I'll nopaste the output 19:09
would be good to eliminate those
(if we can, they look very eliminatable)
gist.github.com/234077 # compiler warnings from "make clean all" 19:10
jnthn blech 19:11
perl6.ops:48: warning: request for implicit conversion from ‘void *’ to ‘INTVAL (*)(struct parrot_interp_t *, struct PMC *, struct PMC *, struct PMC *, INTVAL, struct STRING **)’ not permitted in C++
Why do we care what C++ does?!
It's *C*. 19:12
:-)
pmichaud I think parrot is trying to make sure it builds in C++
jnthn Sure, that this is Rakudo, not Parrot. :-)
chromatic Some platforms don't have reliable C compilers.
pmichaud but we use Parrot's command line.
jnthn Ah, yes.
It's still an odd warning.
pmichaud ...unless you want to create your own configure subsystem for that.
jnthn Oh...hmm...I know why we have it too.
But I'm not sure how to fix it.
Oh 19:13
pmichaud ...make the conversion not implicit?
jnthn Maybe just a missing cast.
Yeah
I'd missed the "implicit"
perl6.ops:643: warning: nested extern declaration of ‘Parrot_ext_call’ # anyone know what this one means? 19:14
pmichaud I think it means you have a nested extern declaration of 'Parrot_ext_call' :-P
(No.)
jnthn :-P 19:15
pmichaud: I'll see if I can quieten it down a bit later on. :-)
pmichaud okay, great. Just wanted to let you see the warnings I was seeing. I figured you weren't seeing them on your system.
jnthn pmichaud: oh no!!
pmichaud: I think I've just found the bug. 19:16
chromatic You didn't include parrot/extend.h.
jnthn Or something related to it.
chromatic: Ah...in that case it's an easy fix - thanks.
pmichaud: OK, here's what I'm running into...maybe you know The Answer. 19:17
pmichaud: I moved the decl code for the class into the enclosing package's loadinit.
pmichaud: It fixes the issue I found, but we now have a new one. 19:18
The init code for the method emits:
get_hll_global $P367, ["Object"], "true"
Which is handing back null, since we don't put the thing in the namespace (no nsentry)
pmichaud "true" is wrong.
jnthn Worse, the loadinit is looking it up that way too, rather than by subid.
Trying to look it up in the namespace at all is wrong, no? 19:19
pmichaud there is no "true" in the namespace
there is no "true"
jnthn Right.
That doesn't really help me. :-) 19:20
pmichaud what is generating that code?
whatever is generating that statement is wrong.
jnthn The PAST tree I build has the loadinit of the package containing the class we're declaring. 19:21
It has a call to add_method, and that's where the PAST for the method is living.
pmichaud let me restate what I think you just said (or intended to say)
jnthn However, since the loadinit we're putting this into is outside of the namespace, we have to set .namespace on the methods's block. Otherwise, the method is in the wrong ns and "export" doesn't work. 19:22
pmichaud okay
thinking
jnthn However, then the call to add_method gets emitted with a get_hll_global. 19:23
pmichaud the PAST tree you build is the one for the class declaration
yes?
jnthn Yes.
pmichaud it contains the add_method calls, yes?
jnthn Right
pmichaud and the add_method calls are also the things that handle is export 19:24
?
jnthn No
pmichaud I mean as part of the class declaration
jnthn is export is done from the loadinit of the block itself.
pmichaud oh
put the class declaration into its own block with an appropriate namespace setting.
jnthn The thing is that is export, afaik, cares about what namespace it's called from.
pmichaud (immediate block)
jnthn Yes, that's what we used to do.
pmichaud I'm saying do that again.
I'm saying there are two blocks 19:25
one for the class declaration, one for the package body
the class declaration one is executed at .loadinit
(as part of its outer package's .loadinit)
jnthn Oh, you mean we call it from the outer package's .loadinit?
pmichaud the package body one is treated like a normal bare immediate block
yes.
jnthn Ah
That would work, I guess.
pmichaud the alternative is to find a way for the 'export' handler to figure out the namespace of the thing it's adding 19:26
jnthn Yeah
But unless it lives in that namespace...that's awkward
pmichaud right
I feel more comfortable if the loadinit block lives in its own namespace
jnthn Plus we actually for "our" scoped methods will want a namespace entry too.
Yeah 19:27
pmichaud we just invoke it from the other namespace's .loadinit
jnthn Well, the block that loadinit calls, but yes.
pmichaud to preserve the order-of-initialization
jnthn Yup, which was the original problem I was trying to solve. :-)
pmichaud anyway, try that. should be pretty straightforward :-)
jnthn Aye 19:28
ETOOMANYWRONGWAYSTODOIT
pmichaud might be a good argument to be made that the P::C::Package should generate its own PAST::Block
(that is then attached to the .loadinit of the outer package)
er, it's own *initializing* PAST::Block
jnthn s/attached to/called by/ but yes.
pmichaud right, called by 19:29
anyway, we both know what we're saying, even if we don't know the right way to say it :)
jnthn OK, I'll take a crack at doing it that way.
:-)
Yeah :-)
This one mighta been easier with a whiteboard. :-)
pmichaud I am *sooooo* glad I chose to rewrite the regex engine than to try to extend PGE. r29067 would've been just about impossible in PGE (to preserve backwards compat) 19:31
jnthn :-) 19:32
pmichaud I'm also glad I chose to basically ignore :panic and :keepall :-)
jnthn heh, since they just got ripped out ;-)
pmichaud exactly. laziness ftw
so far I've had good wins with "laziness" and "hubris" lately :)
jnthn Clearly, they're the way to go. :-) 19:33
19:35 rfordinal left 19:37 FCO joined
jnthn pmichaud: yay, I think it works. :-) 19:39
19:42 nihiliad joined 19:44 nihiliad joined 19:48 [synth] joined
jnthn pmichaud: Something perhaps rw-ish goes awry in gcd. 19:48
colomon what's it doing? 19:53
(is %= really already working?) 19:54
jnthn I'm not sure... 19:58
However, I get weird fail in 06-op-inplace.t too
So I'm kinda wondering if something might be awry there. 19:59
Seems the common thread here, but I'm not convinced it's not just coincidence.
Looking.
20:02 IllvilJa joined
IllvilJa rakudo: say 'Hello world!' 20:02
p6eval rakudo d04cce: Hello world!␤
IllvilJa It worked! :-)
pmichaud it's possible/likely that the automatically generated routine for %= (and all of the 'x=' metaops) doesn't have quite the right signature characteristics
because that code was done before signatures were in place 20:03
jnthn Ah.
pmichaud src/builtins/assign.pir:46
(maybe)
still, it's been working before now... not sure what would've changed 20:04
oh, yes I am
$P0 = get_global $S0
probably wrong
might need to be find_name
either that or the operators defined in Rat.pm etc. need to be declared 'our'
as 'my' doesn't cut it yet. 20:05
(src/builtins/assign.pir:52)
jnthn I've declared 'em our, I thought. Coulda missed some though.
colomon huh. I just built latest ng, and 5/2 is a Num? 20:09
pmichaud colomon: we're still working on some of those pieces.
jnthn colomon: oh, let me push the Rat addition, so you cna see the issues.
colomon: I'm cooking at the moment, so a bit distracted 20:10
colomon: Feel free to investigate now.
pmichaud std: 5/2.0 20:11
p6eval std 29073: [31m===[0mSORRY![31m===[0m␤Confused at /tmp/MYPRWOAoz5 line 1:␤------> [32m5/2.[33m⏏[31m0[0m␤ expecting any of:␤ integer␤ postfix_prefix_meta_operator␤FAILED 00:01 102m␤
pmichaud okay.
jnthn std: 5 / 2.0
p6eval std 29073: ok 00:02 100m␤
jnthn heh
pmichaud right
jnthn That'll catch somebody.
:-)
pmichaud was just checking to make sure my guess matched std's
(it did) 20:12
jnthn I'm not entirely sure I like that, but I agree we match STD. :-) 20:13
20:13 justatheory joined
KyleHa rakudo: my $o = rand for ^3; say $o 20:14
p6eval rakudo d04cce: Lexical '$o' not found␤in Main (file src/gen_setting.pm, line 324)␤
colomon jnthn: thanks. I will be traveling in a moment, but I'll try to take a look.
jnthn kk 20:15
KyleHa Sometimes I feel like I'm poking the soft spot on baby Rakudo's head.
pmichaud KyleHa: that one gets fixed in ng also :) 20:20
as in, it'll "just work" when we have 'for' implemented.
KyleHa pmichaud: Yay!
jnthn Oh, nice.
pmichaud: When do you expect we'll have for back in, btw? 20:21
pmichaud tonight or tomorrow, likely
jnthn (I know it needs map, which in turn needs effort... :-))
Does that imply lazy gather/take too? :-)
pmichaud oh, statement_mod_loop:for can probably go in before map
I'm not sure we have to make it use 'map
jnthn Ah, OK, just equivalent semantics.
pmichaud right
statement_control:for will likely use 'map' 20:22
jnthn ah, that's the one i was more asking after. :-)
pmichaud at the moment I'm trying to figure out how to bring NQP into the <abc=def> new world
jnthn pmichaud: What's the difficulty? 20:28
Or is it just a case of writing the code?
Or a case of handling the <foo=.bar> case? 20:29
pugs_svn r29074 | kyle++ | [t/spec] Test for RT 66622: statement mod "for" makes no implicit block
pmichaud several items
since NQP and the regex engine are self hosted, the two grammars aren't 100% compatible
so using the old engine to compile a grammar with the new semantics doesn't quite work
so I have to get <abc=.def> to work first
then bootstrap
and then I can enable <abc=def> 20:30
with its new semantics
jnthn oh!
pmichaud so, all of the existing instances of <abc=def> have to be converted to <abc=.def>
then recompile
and re-bootstrap
then I can work on getting the new meaning of <abc=def> in place
but this means that <OPER=infix=infix> also has to work for <OPER=infix=.infix> 20:31
so it just gets a bit dicey
the new implementation will be much cleaner with the new semantics; it's just getting from here to there that is tricky
time to pick up kid -- bbi30 20:32
jnthn :-) 20:34
KyleHa rakudo: class A { enum B <c d e>; ::c = B::c }; say A::c 20:35
p6eval rakudo d04cce: ( no output )
KyleHa rakudo: class A { constant f = 3; }; say A::f 20:39
p6eval rakudo d04cce: ( no output )
KyleHa Is that supposed to output '3', or just have a better error message?
jnthn iirc, constants are now package scoped (Rakudo didn't catch up with that yet). 20:43
So I'd expect it to work.
nom - bbs
KyleHa OK, thanks.
TimToady alternately, we need to make A::f able to pull something out of A's lexical scope somehow; the 'ourness' of constants feels like a kludge 20:48
20:59 oZ] joined
TimToady perhaps there's some relationship between packages and exportable lists 21:00
perhaps the package is the :ALL list 21:01
I guess that's not very different from saying constants are "our" though 21:02
jnthn TimToady: Why did constants become our scoped? 21:03
TimToady so that the A::b notation would find them
jnthn Ah, ok
TimToady otherwise Bool::True is hidden
jnthn Well, to the extent that Bool::True is a constant... :)
jnthn has given up on trying to work out what Bool::True is. 21:04
TimToady what I tell you three times is a constant?
jnthn We've been through enum element and role so far, so I guess constant is fine too. ;-)
TimToady enums are considered constants, among other things... 21:05
jnthn
.oO( one other thing is "mind-bending to implement" :-) )
Anyway, I guess in that case, yes we'd like Bool::True to be visible.
I wonder if part of the issue is that we're treating constant as a scope declarator. 21:06
So we thus don't have the option or "our constant" or "my constant"
TimToady they could be considered to be in the sub slot instead
or equiv to the subset declarator 21:07
jnthn The latter is more along the lines of what I was pondering.
Not quite sure what the fallout of making them be that way is though.
TimToady well, all constants are just subsets of one value
pmichaud back
jnthn oh hai 21:08
pmichaud one that that hasn't been constant is our notion of constant :-)
21:08 quietfanatic joined
TimToady and since subsets kinda follow class semantics, they'd reasonably default to 'our' 21:08
pmichaud "constants aren't, variables won't" 21:09
TimToady it is the sun! no, it is the moon!
pmichaud "what light through yonder window breaks?"
TimToady must be a pretty powerful light beam to break a window...
X-ray laser, maybe 21:10
pmichaud nah. Windows breaks on my computer all the time. :-)
TimToady I think we should rename Windows 7--it's an insult to all the Windows Vista users... :P 21:11
jnthn
.oO( Perl Vista )
pmichaud I was thinking much the same earlier today.
We all know that Windows 98 is better than Windows 95, so it must be *way* better than Windows 7.
TimToady "requires Windows 98 or better..." 21:12
pmichaud (and for folks reading the backlog -- yes, I fully recognize that the 6 > 5 has a different flavor; I'm not intending to be sarcastic here, just humorous.)
[particle] were you discussing the defenestration of luminescence again?
PerlJam quotes pmichaud out of context 21:13
pmichaud
.oO( is there any other way I get quoted? )
TimToady obviously, 6 is only 20% better than 5 21:14
[particle] no way is 5 more than 80% of 6, i don't care what you say.
PerlJam TimToady: makes sense. Improvement increments asymptotically approach 0% over time.
21:14 masak joined
pmichaud void qq{pmichaud}; # quoting pmichaud out of context 21:15
TimToady that's why the bell labs folks had to go all the way from System V to Plan 9
masak Perl 9
PerlJam TimToady: so, Perl 5 is like AT&T Unix, and Perl 6 is like BSD Unix? 21:16
(complete non sequitur, but that's just how the brain (okay, *my* brain) works some times)
TimToady well, that would be one way to reframe it...
pmichaud wonders if Camelia can grow horns. 21:17
PerlJam and a tail
chromatic Do you really want a slake moth as your language mascot?
TimToady though it would upset both the people who prefer BSD and Perl 5, as well as the people who prefer SysV and Perl 6, if there are any
masak the Norwegian horntail...?
TimToady maybe we should call in Perlaris, and rename Rakudo * to North * 21:18
[particle] i wonder if rakudo * will mark the completion of the second 80% of perl 6 21:19
PerlJam All the wrong connotations at once!
Tene Maybe just change the vowel. Parl.
masak Purl.
masak shudders
pmichaud Tene: *Now* you're talking!
PerlJam Tene: and huffmanize it: P
jnthn masak: No no no too many bad connotations!
TimToady PTSD
masak PTSD 6.
[particle] the S is for 6. 21:20
TimToady Maybe we should rename Perl Six to Perl Sex.
masak I don't see a problem with that.
PerlJam Perl does already power a porn site
Tene We'd need to rename the operators, though. 21:21
pmichaud The MooseX folks might protest.
TimToady but it's only powered by Perl Vibe
PerlJam Tene: we already have a goatse op !
[particle] the grammar is named fine. 21:23
masak TimToady: can you reframe my pangs of regret over :keepall joining :panic? 21:27
PerlJam masak: did you have a usecase for it?
masak yes. even the spec itself did.
pmichaud oh, we already know of use cases. 21:28
TimToady we just don't want to implement it
pmichaud +1
masak 'for forcing a grammar that throws away whitespace and comments to keep them instead'
PerlJam "forcing"? that doesn't sound very perlish at all.
masak how is that done in a post-:keepall world?
pmichaud I think we look at :keepall as a post-6.0.0 feature
TimToady turns out, however, that .caps and .chunks cover much the same ground
pmichaud indeed, they do! 21:29
masak hokay. I like that answer.
sjohnson y0
masak sjohnson! \\o/
pmichaud afk for a bit -- another kid to retrieve
TimToady eventually they run out 21:30
sjohnson (´ー` )
[particle] you need a leash!
PerlJam [particle]: they'd just chew through it
pmichaud it will likely be at least another 11 years or so before our kids run out :)
21:30 rgrau joined
masak I need to write a cranky editorial about the absurdity of Perl 6 having "missed the boat." 21:33
PerlJam masak: heh!
masak man, I love that sentence!
it's often spouted on Twitter by scantily-clad beautiful women. 21:34
Su-Shee missed _what_ boat?
masak I think there's some conditioning going on here.
[particle] perl 6 is taking the hoverboard instead
masak Su-Shee: exactly. there is no boat.
PerlJam Su-Shee: the USS Titanic.
masak Su-Shee: that's what the cranky editorial eventually said.
Su-Shee masak: are you really going to bother?
masak and then it cut the wires holding the elevator and zoomed up the shaft, holding Trinity in one arm. 21:35
PerlJam masak++ lol
21:35 TiMBuS joined
masak (I know that movie far to well.) 21:35
too bad they never made any sequels.
Su-Shee: bother what? writing cranky editorials? no. 21:36
21:36 Wolfman2000 joined
Wolfman2000 afternoon 21:37
PerlJam masak: I'm just waiting for the day when someone releases a you tube video of some actors doing things they never did in real life based on samplings from other movies and it looks *real*
masak: that day is nigh upon us I expect
masak Su-Shee: it wasn't I who said that sentence, it was 'frostyamy', a dark-haired 20-spmething wearing but a necklace.
s/spmething/something/, though an oddly appropriate misspelling.
japhb nqp: sub foo () { return 0 if 0; return 1; }; say(foo()); 21:38
p6eval nqp: Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1630 (src/Regex/Cursor-builtins.pir:179)␤
japhb "Kaboom, Kaboom!"
masak Wolfman2000: \\o
KyleHa rakudo: enum A <b c>; say A.c; say 'alive'
Wolfman2000 masak: update since you were asleep. I have...a better idea of what went wrong with my pastebin planning the past week. It wasn't so much the database as it was my poor attempts at understanding DBIC docs.
p6eval rakudo d04cce: ( no output ) 21:39
masak I never sleep. I 'regenerate'.
jnthn finally thinks he's worked out why Rat is broken...
masak Wolfman2000: that sounds good. I'll try to do some pastebin work too now. 21:40
pugs_svn r29075 | kyle++ | [t/spec] Label test for RT 66636: package-scoped constant 21:41
KyleHa Is that A.c call on the enum A supposed to work? 21:43
Wolfman2000 rakudo: enum A<b c>; say A::c; say 'alive'; 21:45
masak KyleHa: I think it's A::c, as Wolfman2000 has it.
p6eval rakudo d04cce: ( no output )
Wolfman2000 I think rakudo hates enums
masak Wolfman2000: no, it's just p6eval being lazy.
Wolfman2000: Rakudo used to hate enums, though.
KyleHa masak: So is A.c expected to die?
masak KyleHa: I think so. there's no method .c 21:46
KyleHa Good enough for me.
masak just a name A::c in the A package.
21:47 Exodist joined 21:50 M_o_C joined 21:53 M_o_C joined 21:55 M_o_C joined, justatheory joined, fax joined
masak priceless. fellow enters #perl (freenode) and asks the people there to help him finish a conversion of a Perl script to Python. the people there freeze him out, and he leaves dejected. his last words: "I gues they were right about wht they said about perl... it really is a shitty community" 21:56
pugs_svn r29076 | kyle++ | [t/spec] Test for RT 66648: acessing enum element as method
masak naturally, I chatted him up afterwards. :)
Wolfman2000 masak: ...wow
can't say I fully understand what is meant by freezing out, but...still
masak Wolfman2000: they didn't actually do much. they suggested he ask his python question on #metallica. 21:57
whatever that means. I don't understand the jokes on #perl.
they also asked him, sarcastically, to be more specific about his issue. 21:58
jnthn I really don't get that. Perl rocks far more than Python. ;-)
21:58 pnate2 joined
jnthn #perl sounds like an...odd...place. :-) 21:58
masak yes. I don't know why people prefer such an atmosphere. maybe it's a hormone thing. 22:01
chromatic Remember that the first wave of Perl adoption was system administrators.
Tene masak: it was meant as a demonstration of how #perl isn't the right place to be asking python questions... no more appropriate than #metallica. 22:02
masak Tene: ah. 22:03
KyleHa I thought it meant the band would be more familiar with snakes than programmers. 22:04
masak the person in question appears a bit untrained in asking smart questions. not that that makes it any more motivated to shun him. 22:05
Tene I didn't see it as shunning. The response I saw was "We're not going to write python code for you, and it's a bit silly of you to ask. If you want some Perl help from us, go ahead and tell us what you want." 22:06
Which seems completely reasonable to me.
Maybe I've got whatever #perl has, though. :) 22:07
masak Tene: I didn't react until the fellow left with a disappointed message. 22:09
I think I'm extra sensitive to sentences containing 'community' right now. :)
Tene :)
22:11 pnate joined 22:12 zamolxes joined
jnthn cries 22:15
*sigh* 22:16
I hope the bug I just found ain't what I think it is.
Tene What's that? The ng branch is too stressful? You want me to delete it for you?
masak Tene: last time I checked, that's not how you reduce someone's stress. :P
KyleHa jnthn: It's just a flesh wound!
jnthn Tene: It's git, do what you like. :-P
chromatic: ping 22:17
chromatic pong, jnthn 22:18
jnthn chromatic: Do you have vague recollections of an IMCC optimizer issue a while back, where something of the form "foo"() could end up getting mapped directly to a constant PMC lookup?
If so - did the code that did this get ripped out, or was an alternative "if there's a lexical of the same name" rule added? 22:19
I think it's just bitten me again in a more subtle case. :-(
chromatic That sounds familiar, but I can't recall any details at the moment.
jnthn OK. 22:20
I can try and reduce this to something small.
chromatic That could be because I fixed it and remember how I fixed it, or because I think I know how to fix it.
I'm happy to fix any test case you can provide, though.
jnthn I'm pretty sure you fixed something along these lines.
chromatic That sounds like something I would do. 22:21
jnthn :-)
chromatic I keep meaning to get a Poor Impulse Control tattoo on my hand to remind me never to volunteer to fix something like IMCC again.
masak in the end, I couldn't help the fellow at all. (it was a Python problem above my abilities.) but I sent him off to #python, hugged him and sent my best wishes from the Perl community. :D he seemed very pleased with this.
chromatic Now I'm one more oblique SF reference away from a hat trick.
jnthn I've been thinking "oh no, what on earth is wrong with MMD", whereas it seems we're not entering the dispatcher at all... 22:22
KyleHa Hey, chromatic, you tried Snow Crash?
chromatic I reviewed it, years ago. 22:23
22:28 colomon joined
KyleHa rakudo: say 1.WHAT 22:30
p6eval rakudo d04cce: Int()␤
masak rakudo: say i.WHAT
KyleHa rakudo: Int.WHAT = Str; say 1.WHAT;
p6eval rakudo d04cce: Could not find non-existent sub i␤in Main (file src/gen_setting.pm, line 324)␤ 22:31
rakudo d04cce: Str()␤
jnthn KyleHa: EWWW.
KyleHa jnthn: What should it do?
jnthn KyleHa: ng does:
> Int.WHAT = Str; say 1.WHAT;
Cannot assign to readonly value
lambdabot <no location info>: parse error on input `='
KyleHa That's what I was thinking too. 22:32
jnthn We tend to get such things less wrong in ng. :-)
22:32 Su-Shee left
jnthn chromatic: Ah, I think the problem basically boils down to "if the target sub is marked :anon, the optimization shouldn't apply, since a lookup of it through the namespace would not work". I can probably write a small code example for that, but I may be able to write a patch too... 22:34
22:37 PacoLinux joined
chromatic I'll take the test. I'm sure you'd rather work on Rakudo than IMCC, and I don't mind doing the IMCC part with a test. 22:38
We don't want to blow your instruction cache OR your data cache here.
jnthn chromatic: Heh. OK, looking at IMCC the problem is actually not so much writing the patch, but I can't actually find where on earth that opt happens. :-) 22:39
chromatic: Will try and hack up some short PIR example.
chromatic That's usually the case.
pugs_svn r29077 | kyle++ | [t/spec] Test for RT 70237: assignment to .WHAT dies 22:40
masak Wolfman2000: half an hour's work. do you want to see my (modest) progress? 22:41
Wolfman2000 masak: sure
jnthn chromatic: You want a Trac ticket, or is a nopaste OK?
masak Wolfman2000: feather.perl6.nl:8110/cgi-bin/show?id=314
jnthn chromatic: gist.github.com/234236 is the nopaste is enough 22:42
Wolfman2000 ...farther than me
masak :)
Wolfman2000: of course, I started in the wrong end.
Wolfman2000 then again, we're at different points
masak: no telling if I started on teh right end or not. I got hung up.
masak Wolfman2000: *all* you can do at this point is look at that paste. :P
masak likes starting in the wrong end
now I have something do blog about today 22:43
and, uh, I need to hurry! :)
Wolfman2000 then hurry away
masak hurries
jnthn chromatic: I realize that we could actually get to the point of saying "well hey, let's rip the opt out alltogether, since you could still do this if it was non-anon". For now, a more convervative "look for the :anon flag and don't apply the opt in that case" will unblock me.
chromatic jnthn, that should work. I'll try to have it in the next 24 hours. 22:44
pmichaud back for a bit
chromatic Fixing the optimization the right way probably requires pirc. 22:45
jnthn chromatic: OK, great, thanks. :-)
chromatic: I've added to the gist another amusing example in which we can call by name an anonymous sub. :-)
pmichaud 22:34 <jnthn> chromatic: Ah, I think the problem basically boils down to "if the target sub is marked :anon, the optimization shouldn't apply, since a lookup of it through the namespace would not work". I can probably write a small code example for that, but I may be able to write a patch too... 22:46
that answer feels very wrong
jnthn pmichaud: Well, the existence of the optimization at all could well be argued to be wrong...
pmichaud it could be, yes. But I'm not sure it is (more)
the "optimization" is the only way to get to a :anon sub without using a constant lookup 22:47
i.e., for a long time, parrot's model was that one would get to an anon sub by name
jnthn I'm not quite sure relying on a mis-applied optimization for a feature is a great plan... :-S
pmichaud: You can do it by subid now, no? 22:48
pmichaud put another way, assuming that 'foo'(3) always goes through the namespace isn't/hasn't been Parrot's model.
jnthn: you can do it by subid by doing a constant lookup, yes.
22:48 fax joined
pmichaud my point is that the change you're proposing almost absolutely requires a deprecation cycle 22:48
because the classic way to get to anonymous subs is through the "optimization" 22:49
jnthn Ouch.
pmichaud (it was the only way to do it before we had subid)
jnthn *sigh*
We've had subid for quite a while though. But yes, people may have come to rely on it.
chromatic Let's see what the change breaks in Parrot's test suite first.
pmichaud chromatic: that's reasonable, although I'm sure I've written a fair bit of code that uses :anon subs in exactly this way. 22:50
jnthn pmichaud: Turns out whipping setting .name out of routine_def fixes the problem (but of course, causes other ones).
pmichaud: I'm not quite sure what the next most desirable workaround is. 22:51
pmichaud a flag on a sub that says "never short circuit to me" ?
or perhaps the existence of some other flag can indicate that 22:52
jnthn I had thought :anon was such a flag, but now you've made me think again on that.
pmichaud no, :anon is definitely *not* that flag :)
at least, not historically
jnthn IMHO, the current semantics should be deprecated. But I can understand that they may need a deprecation cycle. 22:53
pmichaud we're clearly talking subs here, not methods? 22:54
jnthn Yes.
pmichaud exported or no?
i.e., with the & sigil or no?
jnthn The problem (and I went tracing through the multi-dispatcher before realizing this) is that we construct and install a Perl6MultiSub in &infix:<+>
But then within core, calls to that are getting re-written to the top candidate. 22:55
So we never - within core - enter the multi-dispatcher.
It's actually not a problem outside of core, because it's a separate compilation unit.
pmichaud ah, and they're being rewritten because the subs don't have :multi
the existence of :multi also disables the optimization, fwiw
jnthn I guess maybe that woulda suppressed it too... 22:56
hmm
Not really sure I want to go that way though.
But it explains why we've not hit this before. 22:57
pmichaud we'd also end up fixing it if we turned them into lexicals (which needs to eventually happen to), but I think it's a bit premature to be doing that
*too
jnthn oh, and then they're exported?
Yeah, I fear so. 22:58
Does it actually have to be done like that?
pmichaud CORE is a lexical scope, yes.
it's not a package.
jnthn ew
OK.
Actually, though, we still need to solve the general problem, or it'll impact user's code. 22:59
pmichaud the nicest approach going forward (from the PIR side, not necessarily IMCC) would be to have a flag that says "don't optimize calls to this sub"
i.e,. to take it out of consideration for the optimization
of course, we'd end up using that flag on basically, everything. :)
jnthn Yeah. 23:00
masak Wolfman2000: there. I'm done hurrying. :)
zaslon lolmasakhazblogged! masak++ 'November 13 2009 -- crying wolf and slinging mud': use.perl.org/~masak/journal/39894?from=rss
pmichaud another way could be a pragma that turns off that particular optimization altogether in IMCC
jnthn That could be cleaner.
Wolfman2000 crying wolf? I don't like the sound of that
masak Wolfman2000: it's about Armero, not about Web.pm :)
pmichaud so IMCC defaults to its current behavior, but with the pragma in place it never performs the direct-call-to-sub optimization for things in the compilation unit
the pragma sounds bestish
jnthn Alternatively, we teach PAST to never emit 'foo'() but always find_name... 23:01
pmichaud I don't want to do that in PAST, though.
that removes a capability.
jnthn Hm
pmichaud We could set a flag in PAST that says to always do find_sub_not_null
jnthn
.oO( removes a bug )
;-)
Yeah, we could do that but...well... 23:02
pmichaud I'll do that if it's the best approach, but I'd prefer an imcc-level fix, since it's an imcc-level thing we're trying to address
jnthn Yeah, agree.
23:02 jan____ joined
jnthn I really, really don't want a PAST-level flag for this. 23:02
Anyway, the upshot is that we're going to kinda block on a resolution to this. 23:03
Whichever one we end up going for. 23:04
pmichaud chromatic: any opinions about an imcc pragma to disable this optimization versus other approaches?
masak Wolfman2000: I'm thinking about going to bed, in an unexpected homage to sane sleep times. 23:05
pmichaud (I have to depart in, oh, 8 mins)
Wolfman2000 masak: ...this is unexpected.
jnthn masak: huh
masak :)
jnthn masak: Who'm I gonna talk linguistics with at 3am now? :-P
Wolfman2000 jnthn: 3 am which time zone?
masak that was an awesome conversation. :)
jnthn Wolfman2000: Mine. 23:06
masak jnthn and I are in GMT+1.
jnthn masak++ # better answer than mine :-)
Wolfman2000 While I'm stuck in...I think it's GMT-5 or something along those lines
EST
masak nod.
jnthn What's it actually called? CET or so?
Central European Time?
masak aye.
jnthn It's called that in Sweden too? :-)
masak CET is either GMT+1 or GMT+2 depending on season.
jnthn: what are you implying? :P 23:07
some parts of Sweden are Central European!
jnthn masak: That there's a disconnect between the geographical region known as "central Europe" and the timezone. :-)
pmichaud jnthn: I have to leave shortly -- can I leave it to you and chromatic to work out the details? If an imcc-level flag isn't likely, I'll see about a PAST fix of some sort.
jnthn I guess there's more than one definition of Central Europe though :-) 23:08
pmichaud: Can do. :-)
pmichaud or you could just emit bogus subnames
masak jnthn: given how the time zones span the Earth, I think a horizontal interpretation of Central is in order in this case.
pmichaud and use :nsentry()
masak s/a horizontal/an East-West/ 23:09
jnthn masak: Gah, you just go on making good points, don't you. :-)
masak that's one of my character flaws.
jnthn pmichaud: Emitting empty subnames was fail, but yeah..hmm.
pmichaud: It's like, after midnight here, so I'll probably wait and see if a fix emerges in the near future.
It's not like I'm going to get all that much more doen. 23:10
*done
masak jnthn: what have you done? will you blog?
pmichaud jnthn: that works for me
jnthn: are you planning to be around over the weekend?
masak hasn't been keeping up
jnthn masak: I was *hoping* to be able to blog that I've made a bunch of tests for Rat pass again, and maybe even get Complex and Num back in. 23:11
pmichaud my schedule looks much the same as it has been -- a few hours here and there interrupted by various family-related stuff
jnthn masak: In reality, I've spent two hours tracking down an obscure bug. :-|
masak: Such is software dev.
masak jnthn: I know the feeling. :/
jnthn pmichaud: I'll be around.
pmichaud okay
I'm gone for a while -- bbi120ish
jnthn pmichaud: I need to rest a bit at some point, and I need to do a little @other-job.
But I'll be around for sure.
masak: It's OK...I'm happy I found what's wrong. 23:12
masak jnthn++
jnthn masak: Just means I'm not going to be able to write a very exciting post.
masak jnthn: 'honesty' ge 'excitement'
jnthn True. :-)
masak but also 'lying' ge 'honesty', so... er... 23:13
jnthn "Today I got the ng branch passing all tests again!"
masak :)
jnthn It's true. I've had it passing all the tests that it passed this morning. ;-)
jnthn had to look up where Armero is 23:14
(well, click the link, anyway :-))
masak Colombia.
jnthn Yes. 23:15
Whoa. Epic disaster.
People are weird about volcanos though. 23:16
When I was in Italy, I went to Vesuvius, and people are still building WAY closer than is a good idea to the thing.
Or so the vulcanologist was saying anyway.
masak nod.
jnthn Apparently the soil is really fertile.
masak figures.
jnthn Due to ash from pervious erruptions. 23:17
masak lots of inorganic... yes.
jnthn So it's a great place for growing grapes.
And making wine.
I tried some. It's good wine. But still...quite a risk living there. :-/
masak tradeoff. (1) make great wine (2) possibly die in volcano eruption
jnthn Yeah 23:18
Well, erruptions are not exactly a frequent event I guess.
23:18 quietfanatic joined
jnthn Which probably makes it harder to convince people it's a problem being there... 23:18
jnthn gets onto the non-disaster part of masak++'s blog post :-) 23:19
masak sometimes the non-disaster part is below the ❦ :) 23:20
jnthn masak: I love it apart from this line: say @found[0][2];
masak yeah, non-ideal.
feel free to make a comment about it! :)
jnthn OK, so long as you agree it's non-ideal, I'm happy something ideal will happen in the future. :-)
I just did. :-P 23:21
oh, you mean on the...right...
masak prefers public flogging 23:22
jnthn You've publicly flogged. Enjoy! 23:23
masak gracias.
jnthn Nech sa paci.
uh
masak the n00b from #perl is back, privmsging me!
jnthn De nada.
:-)
.oO( should try and at least language match occasionally )
23:24
masak seems the #python people were assholes. :)
jnthn lol
I guess now he can take his experiences and extrapolate to "programmers" ;-)
masak guess so.
anyway, now he's asking simple Perl questions, so I can actually help him. 23:25
oZ] Hah.
Wolfman2000 WOOT! Finally got something I can share! 23:32
masak Wolfman2000: money? :) 23:33
Wolfman2000 masak, oZ], others: i33.tinypic.com/sq6z46.png <-- I believe I'm now able to show which pastes are recent.
masak Wolfman2000: cool! 23:34
Wolfman2000 That was what was bugging me this past week.
Mainly due to my incompetence with DBIC
masak recent. dang, I should add timestamps to my pastes. :)
Wolfman2000 masak: I have timestamps AND an expires column in minutes
already got the query made
and it works
masak Wolfman2000++
Wolfman2000 ...I'm still giving a thumbs down to mysql-- however. 23:35
oZ] Wolfman2000++
diakopter nqp: sub a() { return 7,[4,5,6] }; say(a()) 23:43
p6eval nqp: 2␤
Wolfman2000 ...and my database structure is slightly off. Figures.
...now important is annotating pastes anyway? 23:44
masak not very.
Wolfman2000 masak: Usually easier to just make new pastes?
diakopter nqp: sub a() { return 7,[4,5,6] }; say(a()[1])
p6eval nqp: 3␤
Wolfman2000 ...I have new stuff to think about then. 23:46
masak Wolfman2000: we're starting from different directions in that sense too. 23:47
23:48 hcchien joined
masak Wolfman2000: you do design-implement-design. I do implement-design-implement. :) 23:48
Wolfman2000 masak: I don't quite get what that means.
masak Wolfman2000: I didn't phrase it too well. 23:49
Wolfman2000: I think your design is more deliberate than mine.
my design is more by-need.
Wolfman2000 masak: Well, I'm partly cheating by using one of my other website layouts right now. 23:50
masak that's permissible. :) 23:51
23:51 astrojp joined 23:54 astrojp left
masak 'night, #perl6. 23:57
jnthn night masak