Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-12-10

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 romanhunt still no dice
00:00 romanhunt it sets me up to track ng from origin but origin is my fork
00:00 romanhunt I cannot get it to accept "remote" or "upstream"
00:01 romanhunt would it just be easier to delete the repository and pull it from the master?
00:03 [particle] yeah, it's easy to recreate the repo
00:03 zaslon lolperl6adventhazblogged! perl6advent++ 'Day 10: A Regex Story': http://perl6advent.wordpress.com/​2009/12/10/day-10-a-regex-story/
00:03 [particle] nuke it
00:06 carlin rakudo: 1~~/./;my @a=((1|1),'',[],1,{1},1,$/,/1/,/1/,(1​=>1),/1/,'',{1},$/,[],{1},/1/,'');my @b=(0,2,0,2,0,1,1,1,2,1,2,1,4,1,1,1,0,1,​0,1,1,1,2,1,1,1,4,1,0,1,3,2,1,1,2,1);for map {lc .WHAT},@a {print .substr(@b.shift,@b.shift)};
00:06 p6eval rakudo 7ef386: justanotherperlhacker
00:07 carlin rakudo: my %h = { foo => 1 };
00:07 p6eval rakudo 7ef386:  ( no output )
00:07 carlin rakudo: my %h = { foo => 1 }; say 'alive'
00:07 p6eval rakudo 7ef386:  ( no output )
00:08 carlin looks like evalbot's hashes are broken too
00:13 romanhunt ok I think Im set
00:13 romanhunt the parrot rev is correct so I am reconfiguring --gen-parrot
00:13 romanhunt thx for the help
00:14 jnthn my $advent-post is scheduled;
00:17 romanhunt can ~~ be used in place of an isa ? as in $obj.method if $obj ~~ 'Foo'?
00:18 colomon no quotes around the Foo.
00:18 romanhunt cool
00:18 colomon rakudo: say 1 ~~ Int;
00:18 p6eval rakudo 7ef386: 1␤
00:18 colomon say (4/7) ~~ Rat
00:18 jnthn If you want to try and call a method if it's there, there's also $obj.?method, fwiw. :-)
00:19 colomon what happens if it's not there?
00:19 jnthn (not quite the same thing)
00:19 jnthn colomon: failure
00:19 jnthn colomon: but not exception.
00:19 colomon makes sense.
00:19 jnthn I most like it when you've got some object that may or may not have had a thingy mixed into it.
00:19 jnthn And you want to call a potentially mixed in method if it's there.
00:20 Wolfman2000 joined #perl6
00:20 jnthn sheesh, the wordpress admin area is sloooow
00:20 Wolfman2000 jnthn: perhaps there is another slashdot effect?
00:20 jnthn dunno
00:21 jnthn I wonder if my post really is scheduled yet...
00:23 jnthn ah yes
00:23 jnthn 2009/12/11
00:23 jnthn Scheduled
00:23 jnthn :-)
00:23 colomon \o/
00:23 jnthn review welcome
00:23 colomon I like the blog being at least a day ahead.
00:24 jnthn Less stress. :-)
00:24 colomon :)
00:25 arnsholt I wish you'd publish at something like 8 or 9 in the morning European time though
00:25 arnsholt Less temptation for me to peek before going to bed that way =)
00:27 colomon jnthn: nice post.
00:31 gfldex joined #perl6
00:35 jnthn colomon: Thanks for checking it :-)
00:36 Limbic_Region joined #perl6
00:37 Limbic_Region left #perl6
00:40 romanhunt so where has src/setting 's functionality moved to in ng?
00:41 romanhunt src/core ?
00:41 jnthn yes.
00:41 romanhunt werd
00:42 romanhunt ha! the work I was peeking at to do id done
00:44 jnthn There's plenty more work, I'm sure ;-)
00:44 jnthn <- exhausted
00:44 * jnthn goes for a rest
00:44 romanhunt all of traints.pm doesnt look to still be there
00:44 romanhunt are the other funcs obsoleted?
00:44 romanhunt *traits
00:44 colomon ng still has huge holes in it.
00:45 colomon (For perspective: I implemented pop and shift today.)
00:45 romanhunt jesus
00:45 romanhunt thats cool though!
00:47 colomon Basically, ng is waiting to get a few more key components that a lot of things depend on.  Then I imagine there will be an explosion of stuff moved to it very quickly.
00:48 colomon pop, for instance, is a lot simpler in ng than it was in master.
00:48 colomon our multi method pop() { self.elems > 0 ?? pir::pop__PP($!values) !! Mu; }
00:48 romanhunt cool. I am just glad to be sync'd to the current dev tree at this point
00:48 colomon (The Mu should really be fail with a message, but we don't quite have that yet.)
00:49 quantumEd what's Mu?
00:49 colomon quantumEd: it used to be called Object.
00:49 colomon Used like that it's the most fundamental undefined type.  :)
00:49 quantumEd coool
00:50 TimToady seems like it should return Nil, maybe
00:50 colomon romanhunt: Today I ran into the fact that @ array arguments don't work in ng yet.  So @array.pop works, but pop(@array) causes a NullPMC crash.
00:51 colomon TimToady: It should return a fail, shouldn't it?
00:51 colomon If you reckon Nil is a more appropriate psuedo-fail, I'd be glad to change the code.
00:51 TimToady I can argue it both ways
00:52 RichiH what is the rationale behind using ^^ and $$ instead of ^ and $ in regexp?
00:52 TimToady s/instead of/in addition to/
00:53 TimToady ^^ and $$ can match multiple places in a multi-line string, while ^ and $ can only match at beginning/end of string
00:58 * PerlJam is so glad he did his perl6advent entry early
00:58 PerlJam There is no way I would have gotten it done today.
00:59 RichiH PerlJam: guess why i asked ;)
00:59 RichiH TimToady: so would $$ match \n\n\n\n in a multi-line match?
00:59 TimToady it would match before each \n
00:59 PerlJam RichiH: it would match multiple times.
01:00 PerlJam s/would/could/  (depending on how it was used)
01:00 RichiH ah, ok
01:00 RichiH PerlJam: in my specific example, it would
01:00 RichiH but i know what you mean :)
01:00 TimToady and ^^ would match after each \n
01:01 TimToady except maybe that last one
01:01 TimToady I think ^^ shoudn't match at $
01:01 colomon Would it match before the first \n as well?
01:01 TimToady *shouldn't
01:01 TimToady if that were at ^, yes
01:02 PerlJam RichiH: you know, you can leave comments on the calendar.  Perhaps someone else could gain the wisdom of the answer to your question  :)
01:02 jaldhar joined #perl6
01:03 RichiH PerlJam: actually, i think it would be cleaner if you modified the the entry itself to explain this
01:03 RichiH not everyone reads the comments
01:03 RichiH i know i don't
01:03 pmurias /exit
01:04 PerlJam RichiH: if I modified the entry, then I'd have to introduce ^ and $ and explain them in some way.  I think it's better to leave people asking questions  :)
01:06 TimToady well, it's certainly questionable...
01:06 TimToady but ^ and $ wouldn't have to be explained to people who think they know how those work already
01:06 felipe joined #perl6
01:07 RichiH PerlJam: the concept behind the advent calendar entries is to introduce new stuff in perl 6. as you are the first to use ^^ and $$, it's your job to explain them
01:07 RichiH 'build upon prior entries or explain it yourself'
01:07 PerlJam RichiH: I did! :)
01:09 RichiH '^^ matches the beginning of a line' '$$ matches the end of a line' -- to me, that read as if ^ and $ were being replaced by ^^ and $$ which is why i asked. as i _did_ ask, i obviously disagree about if you did explain this properly ;)
01:09 spinclad joined #perl6
01:09 zaslon lolfrettledhazblogged! frettled++ 'GCD - A Small Language Enthuser': http://howcaniexplainthis.blogspot.com/2​009/12/gcd-small-language-enthuser.html
01:09 frettled carlin++ - zaslon didn't barf :D
01:10 RichiH in any case, battery dead and 0210 local -> bed
01:11 RichiH PerlJam: i still think the original article needs t be modified, though
01:11 PerlJam RichiH: perhaps we can agree to disagree here, but the way I see it, if I waxed prosaic about every little detail, then there'd be nothing to talk about.  And I much prefer dialog to monolog.
01:12 PerlJam (add the missing "ue"s as is your wont :)
01:14 RichiH "[UPDATE]tim rememered that perl has the neat new ^^ and $$ identifiers which match beginning and end across several lines and decided to use them[/UPDATE]"
01:14 RichiH but your choice, really
01:15 RichiH one last point though: it's not about every little detail, but it is very much about stuff that is new in perl6
01:15 * RichiH will leave it tat that :)
01:26 SmokeMachine joined #perl6
01:35 Tene colomon: ng does have fail with a message.  It just returns Mu right now, but if you use it in ng, it'll do the right thing once fail() dtrt too.
01:35 colomon Tene: really?  I thought I had issues when I tried to use it.
01:35 colomon hmm...
01:36 Tene ng: sub foo { fail("lol") }; my $a = foo(); say $a.WHAT;
01:36 p6eval ng dc293e: Mu()␤
01:36 Tene see?
01:36 colomon Tene++
01:37 colomon ng: say fail("hello");
01:38 p6eval ng dc293e: No exception handler and no message␤current instr.: '&fail' pc 13834 (src/builtins/Junction.pir:200)␤
01:38 colomon I was misled by that.
01:39 Tene ng: say return("lol");
01:39 p6eval ng dc293e: Could not find non-existent sub &return␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
01:39 cotto joined #perl6
01:39 Tene same thing
01:40 * colomon is running through the ng code adding fails...
01:42 Tene That's great.  Thank you.
01:44 colomon Thank you!
01:44 Tene real Failure support is coming soon.  Not tonight, but maybe tomorrow.
01:46 colomon Okay, so that wasn't a lot of changes, actually.  Still, feels good to have proper fails in there.
01:48 colomon Will have them pushed in a few minutes.
01:53 japhb joined #perl6
01:54 colomon Tene: The commit is pushed.  When it pops up, could you double check it to see if my uses of fail look right to you?
01:55 Wolfman2000 umm...isn't today Day 11?
01:55 Wolfman2000 I'm not seeing the post
01:56 colomon Wolfman2000: Today is day 10.
01:56 colomon Hmmm... maybe Dalek's down again.  http://github.com/rakudo/rakudo/commit/9​20640fd95e816adbb6b95935720b663d8bb1c59
01:57 jl_2 left #perl6
01:58 silug joined #perl6
01:58 dalek rakudo/ng: 920640f | (Solomon Foster)++ | src/core/A (2 files):
01:58 dalek rakudo/ng: Replace several cheat returns of Mu with actual returns of fail messages.
01:58 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/9​20640fd95e816adbb6b95935720b663d8bb1c59
02:00 Tene colomon: according to the spec, the very first hunk is wrong, as a failed index should return some kind of NYI StrPos object, which should still be reflected in a comment there.
02:00 Tene fail is the best option for now, though, yes.
02:00 Tene otherwise, that looks fine.
02:01 colomon Tene: thanks.
02:04 colomon There is a comment at the beginning of the function about StrPos...
02:06 Tene that's probably good enough.
02:07 colomon Woah, StrPos looks very tricky to implement.
02:15 agentzh joined #perl6
02:37 JimmyZ joined #perl6
02:44 Entonian joined #perl6
02:55 vamped joined #perl6
03:13 colomon joined #perl6
03:17 IMeMyself joined #perl6
03:18 rgrau` joined #perl6
03:19 dalek joined #perl6
03:20 agentzh joined #perl6
03:21 rgrau joined #perl6
03:21 hicx174 joined #perl6
03:21 reid06 joined #perl6
03:21 athomason joined #perl6
03:21 r0bby joined #perl6
03:42 envi^office joined #perl6
03:56 tarbo2 joined #perl6
03:57 vamped left #perl6
04:14 crythias left #perl6
04:34 Entonian joined #perl6
04:35 wayland76 xenoterracide: Also, there's Web.pm for perl 6 :)
04:36 c9s_ joined #perl6
04:42 Lorn joined #perl6
05:09 envi^home joined #perl6
05:10 hicx174 joined #perl6
05:30 Lorn joined #perl6
05:31 tann1 joined #perl6
05:32 tann2 joined #perl6
05:38 hugh4life joined #perl6
05:42 thowe joined #perl6
05:42 hicx174 joined #perl6
05:42 thowe good evening
05:43 sjohnson hi
05:45 perigrin joined #perl6
05:51 masak joined #perl6
05:52 masak good morning!
05:52 diakopter masak: how
05:53 TimToady I'd say scrambled, but I'm allergic to eggs...
05:53 masak :P
05:53 TimToady so it's a good thing he asked you instead...
05:53 masak sunny side up for me, then.
05:54 TimToady I daresay it's not very sunny where thowe lives at the moment
05:54 thowe No.  Also very very cold...
05:55 thowe I think the contents of my compost tumbler may be frozen...
05:55 TimToady though Bend itself is kinda down in a slightly warmer pocket
05:55 thowe Not currently.
05:55 thowe We are experiencing a strange long spell of very cold.
05:55 diakopter http://mono.pastebin.com/d3a20d235 # causes Microsoft's C# compiler to emit invalid MSIL bytecode, but which isn't caught by its verifier.
05:55 TimToady well, compared to the surrounding hills...
05:56 thowe yeah.  One of my data center AC units froze...
05:56 masak diakopter: submit a monobug!
05:56 diakopter mono doesn't even implement __refvalue and __makeref
05:56 masak oh, ok.
05:56 diakopter they're Microsoft extensions to the ECMA C# standard
05:57 diakopter also undocumented/unsupported kewords
05:57 diakopter keywords
05:57 TimToady thowe: I was in Bend when I figured out who I was going to marry, as it happens.  :)
05:57 TimToady (she wasn't there at the time)
05:58 thowe Must be a story there...  The examined life, so to speak.
05:58 TimToady well, not really, the realization took about 5 seconds.
05:59 TimToady was installing some registration software at COCC at the time...
05:59 thowe The examination must have been a background process...
05:59 thowe Whoa, really?
05:59 TimToady ancient history
06:00 TimToady 1978, in fact
06:00 thowe I have only been there to play disk golf and see a speach.
06:01 thowe er speech
06:01 thowe Yeah...  a bit before my time...
06:01 thowe They are a customer of ours...
06:02 thowe their network configuration is sad...
06:02 thowe I know a couple people who teach there.
06:03 TimToady so what interests you about Perl 6?
06:03 thowe So, there you were, installing some registration software and you suddenly said "hm, I'm gonna marry..."
06:03 TimToady well, I was sitting in my motel room at the moment.
06:03 TimToady but yes, pretty much like that.
06:03 thowe several things...  some of them subjective
06:04 TimToady helped that we'd already been good friends for two years
06:04 thowe I work for this phone company and we do a lot of our own data processing in-house...
06:05 thowe I write a million little programs to throw data around all the time
06:05 thowe I use a lot of Ruby
06:06 thowe I kind of cut my teach on this kind of stuff with Perl 5...  sys admin stuff, CGI stuff, everything to run an ISP basically..
06:06 thowe er teeth
06:06 thowe I'm probably like a million other guys/gals who just need to get stuff done
06:07 TimToady good, we can certainly use your viewpoint on all this
06:07 diakopter use it or lose it! ;)
06:07 thowe Perl 6 sounds like it has cool features.  I like to learn new things, too.
06:08 thowe For some reason Ruby is becoming less fun
06:08 TimToady do you have any feelers for why that might be?
06:08 thowe Maybe all the Rails hype...  When I started RUby there wasn't even any english docs
06:08 thowe Hmm...
06:09 TimToady so you read 日本語, do you?  :)
06:09 thowe I have some ideas, but they are hard to put into words...
06:09 thowe read?  sure
06:09 thowe less than I would like
06:10 * masak too
06:10 TimToady かっくいい!
06:10 masak Google Translate turns that into "Kuii hue!".
06:11 TimToady more or less means "Cool!"
06:11 TimToady kinda slangy though
06:11 masak ah.
06:11 thowe to me, Ruby is becoming less interesting because when I first got into it, I was not really good at OOP.  But I've pretty much figured oop out for practical purposes now, and Ruby just seems to be less pragmatic than I feel I want to be on a day to day basis...
06:12 TimToady is that because it's a bit too single-paradigm?
06:12 TimToady or something else?
06:13 thowe Possibly...  I took a look at Python because I thought that might be it, but Python doesn't feel right.
06:13 thowe I used to like Perl 5, but it started to feel...  undisciplined might be a close word...
06:13 TimToady Python is sort of a one-trick pony
06:14 masak by design!
06:14 TimToady yes, well, it grew more than it was designed
06:14 masak "The pony should have only one obvious trick."
06:14 thowe The idea that a modern language built from the ground up with so much thought put into it but a Perl sensibility sounds appealing.
06:15 kaare joined #perl6
06:15 thowe I mean, I like Z Shell scripting too, but that's only gonna get me so far.
06:15 thowe "Perl sensibility" probably means something different in my head than in many others.
06:15 TimToady yeah, part of the p6 motivation was from the places where p5 just runs out of juice
06:16 TimToady it's been obvious for ten years that p5 would never be able to outgrow those limitations
06:16 TimToady so many of the p6 design decisions have been driven by the desire not to run into those boundaries quite so soon
06:16 thowe I take a disciplined approach to my code, and I do like it to be easy to read...  Never a fan of the crazy one-liners, but I do find them impressive.
06:16 TimToady while still giving an easily used core language
06:17 TimToady so you don't have to learn the fancy stuff till you need it
06:17 TimToady but with subtle encouragement to do things in a way that will scale better
06:17 thowe I'm also interested in the idea of Parrot.  WHich is odd, because Java and Mono don't get my mojo up.
06:18 hicx174 joined #perl6
06:18 thowe THis one thing always bugged me....
06:19 thowe passing a multi-dimensional array to a function always seemed to flatten it...  I probably just needed to know how to pass by reference or something, but it was really un-intuative...
06:19 thowe I'm talking about Perl 5
06:20 thowe I could have just been much less clever then....
06:20 TimToady yeah, fixed that one too, so normal parameters don't flatten any more, only slurpies
06:20 TimToady a lot of the p6 design was just picking better defaults
06:21 thowe Well, I'm interested in this new perl.  At least for the past couple of days.  I may get some time to poke around with it this weekend...
06:22 TimToady well, have fun with it
06:22 thowe It's probably no secret that Perl gets hated on a bit by some crowds.
06:22 TimToady we aim to fix that too, but it takes time :)
06:23 TimToady and some folks will just never appreciate freedom
06:23 thowe Well, I have to say (and I said it the other day)...
06:23 thowe this is just about the friendliest prog lang channel I have ever been in.
06:23 TimToady but we can take away all the not-so-good reasons for hating Perl, and leave the good ones. :D
06:24 beggars joined #perl6
06:24 masak thowe: it is very friendly. and we're having a lot of fun, too.
06:24 TimToady I blame the butterfly, it chases away the meanies.  :)
06:24 sjohnson hi
06:24 TimToady actually, in large part it's Audrey Tang's legacy
06:24 thowe TimToady: it totally does!
06:24 masak it definitely repels the meanies. don't know if it chases them away. :P
06:24 thowe That's been a thought in my head
06:25 thowe It struck me odd at first, but it is a bit disarming
06:25 thowe it kind of sets a tone
06:25 Wolf2k_Pinged joined #perl6
06:26 thowe I came accross some talk Larry Wall did about music or something the other day.  He seems manic, but also brilliant.
06:26 TimToady one of the things we'd like to fix is the culture of high priesthood that looks down on lesser mortals
06:26 thowe well, manic isn't the right word...
06:26 TimToady yes it is
06:26 TimToady or at least maniacal...
06:27 thowe heh, no.  I think that means something I don't mean to say.  It could just be that I was reading it instead of listening to it.  It seemed really fast-paced
06:27 masak I like Larry Wall's talks.
06:27 thowe but in an odd way, despite the fact it seemed all over the place, it came back and made a point when I least expected it to.
06:28 masak thowe: "Strangely Consistent" :)
06:28 thowe OK, yeah.  I'll go with that.
06:28 masak thowe: that's actually a description that emerged about Perl 6.
06:28 TimToady well, if you can't fix it, feature it.
06:29 TimToady in any case, Larry is not a linear thinker, and never will be.
06:31 masak probably a good thing. linear is also a bit of a one-trick pony.
06:31 thowe Well, to build a projet like this probably requires many kinds of thinking.
06:31 masak look at Linear Algebra, for example. wildly successful, but also very limited.
06:33 thowe Wall was doing this stuff before I was born...  When I think of everything I have learned in the past 4 years alone, that's got to be a lot of stuff going on in that head.  Also, I imagine his experiences have often been more enriching than mine.
06:34 thowe wait...
06:34 thowe TimToady: dude, you're Larry Wall?
06:34 TimToady you mean, experiences like visiting Bend, OR :)
06:35 * TimToady pretends to be
06:35 * TimToady pretends to be better than anyone else
06:35 * thowe is confused
06:35 * TimToady pretends to be Larry Wall better than anyone else
06:35 diakopter TimToady: I thought you were the answering machine Larry Wall
06:36 TimToady you should ask someone who has stayed at my house
06:36 thowe oh, dude...  I just got your nick too...  TMTOWTDI
06:36 masak :)
06:36 thowe OK, I'm a little embarrassed now
06:36 TimToady never a serious moment around here... :)
06:36 diakopter oh, the suspense
06:37 TimToady I don't mind hearing what people really think, either positiver or negative.
06:37 thowe OK, so, that must have been a bit of a laugh
06:38 TimToady I am easily amused.  :D
06:39 masak thowe: TimToady does this quite frequently lately. :)
06:40 thowe OK, so I kind of wonder...  How do you stay interested in doing this for so long?
06:40 TimToady mostly by being interested in everything else at the same time
06:41 TimToady but it's true in a sense that I'm the only person who isn't allowed to quit.
06:41 thowe wow.  that....  makes a hell of a lot of sense
06:41 TimToady so I have learned to pace myself.
06:41 TimToady the last several years I've been keeping sane by learning Japanese
06:41 diakopter yeah, but the pace car already lapped the lead car a few times :/
06:42 TimToady and classifying all the CJK characters in Unicode
06:42 TimToady and learning to play the drums
06:43 thowe Nice.  I started gardening...  and making beer.
06:44 TimToady both are well-loved, if ephemeral, arts
06:45 fridim_ joined #perl6
06:45 thowe You can enjoy doing them badly.
06:45 TimToady fraid I froze some of the new leaves on my avocado tree last night; didn't think I'd need to put a light-bulb in its little tent
06:46 TimToady I blame your cold air coming down to California
06:46 thowe I don't think it was ours...
06:46 TimToady well, wind was from the nne, so maybe it was from Pendleton  :)
06:47 thowe Yeah, I wouldn't put it past them...
06:49 thowe I hope the parrot lisp stuff works out...  I probably would have stuck with CL if I found an implementation I liked...
06:53 TimToady that'd be nice, though I suspect parrot's current data structures are rather heavyweight compared to the usual lisp implementation
06:55 thowe Well, I'm a bit in awe and impressed that you took some time to talk to me, TimToady.  I'm unusually interested in getting something going with Rakudo.
06:56 thowe hmm.  Those were two different thoughts separated by more on this end than is apparent..
06:56 TimToady talking to people is another thing I do to stay sane :)
06:56 TimToady or at least saner
06:56 TimToady less insaner
06:56 thowe I'm quite sure I will be no help there..
06:57 masak thowe: of course you can.
06:57 masak thowe: for one thing, it's been interesting reading the above conversation.
06:57 * TimToady twitches
07:00 masak thowe: and if you have an interest in Perl 6, you'll probably help just by sticking around and asking questions as you discover it.
07:00 thowe Well, if that's what you call help, my ignorance is at your disposal.
07:00 * thowe salutes
07:00 mberends joined #perl6
07:00 masak :)
07:01 masak thowe: I've put my ignorance at #perl6's disposal for about five years now. :)
07:01 mberends morning masak :) # that was an adjective
07:01 masak mberends: greetings mberends # that too :)
07:02 TimToady technically, a noun being used as an adjective...
07:02 mberends masak, "a man for all timezones"
07:02 masak mberends: mornings are so nice. I got up at 5-ish this morning out of *impatience*!
07:02 masak that's never happened before, I think.
07:02 thowe I seem to hate mornings more and more lately...  Maybe I need a vacation.
07:03 TimToady maybe you have seasonal affective disorder
07:03 mberends masak: bring on *hubris* and *laziness* and you'll have a perfect Perl day
07:03 masak mberends: the conditions are favourable, that's for sure. :)
07:04 mberends here too :)
07:05 szabgab joined #perl6
07:05 mberends TimToady: using 'make test' in pugs/src/perl6 throws up a few viv errors. are they serious?
07:05 masak TimToady: if waking up in time is the disorder, I'm not interested in treatment. :)
07:06 TimToady mberends: probably not
07:07 mberends :) ignoring them. I may do some commenting in the Makefile on the forgiveness principle
07:07 TimToady I usually do 'make snaptest' myself
07:07 mberends ah, will try that
07:07 TimToady includes the non-spec tests, and does a snapshot so I can keep editing
07:08 TimToady should get about 6 hard errors, and a number of warnings about missing modules and such
07:09 TimToady two of the hard errors are because it doesn't really understand 'use v5' yet
07:09 mberends the Makefile:52 looks wrong: 'distclean purge: clean'
07:09 mberends supposedly purge is the new distclean, or what?
07:10 TimToady no clue, I didn't write that part
07:10 TimToady and a couple of the errors are due to the fact that STD doesn't really run any P6 code at compile time, but just fakes it
07:11 mberends I'll try a few variations and comment the conclusions
07:11 TimToady so some of the more macro-y things don't work out right
07:12 mberends those faking errors are understandable, will make a note somewhere
07:14 TimToady and I never bothered to fix the Temporal::DateTime error because I don't like that typename :)
07:15 * masak neither
07:16 mberends renegotiating those names was a hopeless bikeshed session :(
07:16 masak I'd prefer just DateTime.
07:16 * mberends runs away from the bikeshed
07:16 masak "It's going to blaow!"
07:17 mberends or should thet be BikeShed ;)
07:18 masak :P
07:19 vamped joined #perl6
07:22 thowe is there a list of available perl 6 modules?  Specifically PostgreSQL?
07:22 thowe are they just in CPAN?
07:24 thowe I ask because I seem to be finding various stuff online, but I don't know what's been settled on...
07:24 thowe like CPAN6...
07:24 masak thowe: there's a big hole right now where a Perl 6 modules/projects manager should be.
07:24 masak thowe: we fill it with various things in the meantime, mostly proto.
07:24 thowe proto?
07:25 masak thowe: there's a list of projects in there: http://github.com/masak/prot​o/blob/master/projects.list
07:25 masak thowe: yes, proto is the "throw me away when there's something better" installer.
07:25 masak hence the name.
07:25 thowe looks like yaml
07:25 masak it is.
07:26 masak ...and since there's no YAML reader for Perl 6 yet, we fake that when we read the file. :/
07:26 thowe once again, I know just enough to look like I know what I am alking about...
07:26 envi^home joined #perl6
07:27 thowe thought of adding a description field?
07:27 mberends patches welcome ;)
07:28 masak thowe: it's been suggested several times. I've opposed it each time.
07:28 moritz_ re
07:29 masak the 'patches welcome' slogan is generally right, but there's an exception for proto. in short "don't improve it". :)
07:29 masak work on the real one instead.
07:29 thowe but, say I am looking for a Pg interface...  Any someone decides to name it "Becky"...
07:30 masak thowe: yes, I see your use case.
07:30 thowe s/Any/And/
07:30 mberends that functionality is too far down the road for now
07:30 masak thowe: it's just that I want things to get better not by improving a bad solution, but by building a good one.
07:30 corneliu1 joined #perl6
07:31 mberends masak: revolution, not evolution
07:31 thowe Ah.  OK, I can see your point.
07:31 masak thowe: note the word 'hyper-lightweight' in the github description of proto.
07:31 masak thowe: oh, and speaking of github descriptions -- there you go. :)
07:32 masak thowe: much better to write a 3rd-party tool that traverses proto's projects.list and fetches the github descriptions. :) those are already filled in and often very good.
07:33 masak that way, proto is kept lean, and the work on the 3rd-party tool can possibly be re-used when the revolution comes.
07:34 mberends plumage could be that successor to proto
07:35 thowe well, I should really call it a day...
07:35 thowe TimToady: very nice meeting you.
07:35 masak mberends: yes, for what I've heard of it, it seems very nice. and it's targeted for Parrot things, not just Perl 6 things, which seems inherently right.
07:35 thowe masak: Thank you for your help...  again.
07:36 masak thowe: thanks for stopping by! do come back.
07:36 thowe I'll be around.  Need to catch up on these Advent Calendar articles...
07:37 masak :)
07:37 Su-Shee joined #perl6
07:37 Su-Shee good morning.
07:37 masak Su-Shee! \o/
07:37 thowe Good night, all.
07:37 masak 'night, thowe.
07:38 moritz_ good morning
07:38 c9s_ joined #perl6
07:39 Su-Shee my cto yesterday emphasized his will to switch to perl 6 with our product. "people are watching!" :)
07:39 mberends moritz_: good morning, do you often type 're' on a line by itself?
07:39 moritz_ mberends: somtimes I do
07:40 mberends moritz_: it usually causes a pregnant pause...
07:40 moritz_ usually not in the morning, though
07:40 agentzh joined #perl6
07:40 mberends Su-Shee: that is great news!
07:41 masak mberends: I've been thinking the same thing. to be 're' seems 1-ary. :)
07:41 Su-Shee yes. he doesn't what to abandon the perl ship. :)
07:41 Su-Shee want.
07:41 mberends Su-Shee: can you tell us a little more about the product?
07:41 Su-Shee more coffee.
07:42 moritz_ "more coffee" sounds like a good product for programmers :-)
07:42 Su-Shee mberends: it's essentially a web application where "members" exchange "messages" and put "documents" in which both can be filtered in a highly flexible way.
07:43 masak a CMS?
07:44 Su-Shee hmhm, more like a domain specific "groupware" kind of thing. it's used to manage very large construction projects.
07:44 masak ah.
07:44 rbaumer joined #perl6
07:44 Su-Shee so people stuff large plans and such in it. the largest site is about 1.5 tb data.
07:45 rbaumer left #perl6
07:45 moritz_ it will be a while before anything parrot based can handle such large data :/
07:46 mberends that's a common enough use case that the support libraries for it would be relevant to many other developers. Nice.
07:46 Su-Shee I'm planning the next version right now, afterwards I can be rather precise what a future version would really need. (really international date handling for example, ssl...)
07:47 Su-Shee mberends: very much so, yes. it's really just "web app" under the hood with a SOAP interface in addition.
07:48 mberends Su-Shee: does the employer have confidentiality concerns or is it permissible to discuss functionality in this public forum?
07:50 Su-Shee mberends: those are very common problems; what makes our product fancy is essentially the way data is handled and the architecture which definetely easily fit into perl 6. (it works with perl 5.8, html 3 with frames and such right now. ;)
07:50 Su-Shee mberends: so discussing speed, the amounts of data involved and i18n stuff: no problem.
07:51 mberends Su-Shee: I think some sort of collaboration between your employer and members of #perl6 would be mutually beneficial
07:52 Su-Shee cto is willing to. we've participiated in some postgres stuff and in SOAP modules.
07:53 Su-Shee (global majestic "we" - I didn't, I'm not even out of the probation period :)
07:53 mberends :) a win-win scenario for #perl6 and the $job
07:53 Su-Shee and my nervs. :)
07:54 Su-Shee what I'm probably be doing is to code something inbetween-ish - mildly moose based, as much 6-ish concepts as possible to make the transition easy.
07:55 mberends yes, a very sound plan
07:58 Su-Shee here, that's all based on our product: http://www.thinkproject.com/projects-refer​ences/project-portraits-and-case-studies/ (remove the marketing foo and imagine the amount of organizational stuff involved)
08:00 mberends yes, I see
08:02 mberends CMS indeed, with plugin extensions per installation
08:02 * masak groans at pun in first sentence of jnthn++'s draft post
08:05 Su-Shee mberends: handling russian and arabic required. ;)
08:06 mberends masak: arrgh, beyond my pun threshold
08:06 masak :)
08:06 masak mberends: it's a sort of text-only pun.
08:07 mberends Su-Shee: that's not obvious from your main site. How do you work for the Munich people when you live near Berlin?
08:08 Su-Shee tech is in berlin, sales is in munich
08:09 Su-Shee (which is common due to the structure of german economy and the busines landscape.)
08:10 Su-Shee add an s, please. :)
08:10 mberends right. well, terabytes of data is not scary when it's suitably chopped up and indexed. the database is the key. (oops, pun)
08:10 * masak groans again
08:11 Su-Shee in terms of http load, there's nothing complicated. it's not a million users facebook kind-of-thing. :)
08:13 mberends Su-Shee: like you said, allowing the clients to specify custom relationships between various documents and other records is crucial. Also audit trails, archiving...
08:13 Su-Shee exactly.
08:14 Su-Shee perl does all this quite happily since 1997 or something, so there is no reason at all why perl 6 shouldn't be the perfect language later on.
08:14 * mberends knows that stuff, but mainly under a M$ veil of obfuscation
08:16 Su-Shee our veil of obfuscation is called "age of the code" ;)
08:17 mberends Su-Shee: you should not need to change the database at all. Multiple web front ends in different languages should be able to share the content, thus letting you develop old and new code side by side.
08:17 Su-Shee anyway. in a few weeks or so I can probably be rather precise about what this software needs, but there won't be any surprises for anyone who's dealing with web apps.
08:21 Su-Shee mberends: what, I don't get to play with one of those noSQL thingies? no way. :)
08:22 mberends Su-Shee: beware the "object databases", they make hollow promises and fail to scale. long live the relational model :)
08:23 flip214 joined #perl6
08:23 flip214 `\_o_/´
08:23 flip214 morning
08:37 Baggio_ joined #perl6
08:37 mathw Morning
08:48 riffraff joined #perl6
08:53 gfx joined #perl6
08:54 Su-Shee mberends: luckily, I hate databases anyway. so not my thing.. :)
09:02 * wayland76 wants a real tree-based database with a real tree-based path language for selecting data
09:02 * mberends too
09:03 egypt joined #perl6
09:03 * wayland76 was writing one until he ran into an intractable XML::LibXML bug :(
09:04 wayland76 ie. a segfault that moves every time you change any part of the code :(
09:04 masak wayland76: I've been using eXist and Xindice. they're pretty good, both with their strengths and weaknesses.
09:05 wayland76 Mine had thins nice overlay thing, where you could overlay one tree on another
09:05 wayland76 It was great for eg. providing defaults that could be overwritten
09:05 wayland76 s/thins/this/
09:06 egypt wayland76: are you a dvorak user? :)
09:06 wayland76 No :)
09:06 mberends maybe one day people will stop being entranced by XML and will be more open to alternatives eg YAML. the problem is inertia in the name of interoperability
09:06 wayland76 But I have two keyboards, one with a normal layout, and one with 4 different layouts I can switch between :)
09:07 wayland76 One thing I wanted in my tree stuff is to be able to backend onto any tree -- XML, filesystem, LDAP, whatever
09:07 egypt wayland76: ah, being able to change the way you input is quite handy sometimes
09:08 wayland76 My plan now is to do it as a Perl6 lib
09:08 wayland76 Oh, also, I want to invent EXML that is like XML, but can have multiple "perspectives".  Tags within a perspective must nest properly, but ags from different perspectives do not have to nest properly
09:09 wayland76 egypt: my plan is to be able to select things like /etc/config/whatever.xml/Document/Section/Tag
09:10 * Su-Shee doesn't want to see "/etc/config" and "xml" in one sentence. ;)
09:11 wayland76 Well, you know what I mean.  I don't want xml in the /etc directory either
09:11 egypt having had sufficient unix brain massaging I'm inclined to agree. :P
09:11 wayland76 but how about /etc/fstab/*[name ="/mnt"] to select an fstab entry?
09:12 wayland76 (kind of like what augeas does)
09:12 mberends wayland76: way to go!
09:12 wayland76 Well, all kinds of ideas, but not much code at the moment :)
09:13 wayland76 When -ng lands, though, I'll revisit, and see if they've cleared up some of my pet bugs :)
09:13 Su-Shee egypt: I recently switched from xorg.conf to hal.. from now on, I will call it hell.
09:14 wayland76 hal is deprecated.  You're supposed to use auto-detect now :)
09:14 * Su-Shee starts crying. :)
09:15 * wayland76 has spent the last year on the xorg list, hoping for multi-monitor functionality to be fixed; I think it has now, but I haven't upgraded :)
09:15 wayland76 hugme: hug Su-Shee
09:15 * hugme hugs Su-Shee
09:15 * Su-Shee waits for so many things for over a decade now.. :)
09:15 wayland76 Well, at least E17 is here now :)
09:15 wayland76 (FSVO here :) )
09:16 Su-Shee installed, clicked, thrown away.
09:17 wayland76 You didn't like E17?
09:17 Su-Shee fancy gimmicks, really bad UI.
09:17 wayland76 Ah.  Well, it handles multiple monitors in different sizes fairly well
09:18 wayland76 Maybe you needed a different theme :)
09:18 Su-Shee yeah, I was too lazy to build one and it simply doesn't have what I really want so I stick with fvwm.
09:19 Su-Shee if there would be a really good xlib/xcb API in something like let's say perl 6 with a really nice book, one could easily code their favorite WM. ;)
09:20 wayland76 I once tried to convince them to use parrot-based languages as their scripting languages, but it didn't fly :)
09:21 Su-Shee why not?
09:21 * mberends groans at the flying pun
09:21 Su-Shee instead having no scripting language at all?
09:21 wayland76 mberends: Unintentional, but I'll take karma :)
09:21 wayland76 No, instead of (IIRC) lua
09:22 mberends wayland76++
09:22 wayland76 something with a small vm, anyway
09:22 wayland76 Thanks :)
09:22 Su-Shee isn't lua just included as a scripting lang to xcb based awsome?
09:24 wayland76 Su-Shee: Not sure I understood that, but I had only the vaguest understanding of what they were actually using it for anyway :)
09:25 egypt Su-Shee: weren't you looking into Parrot bindings for some graphics lib a while ago?
09:25 Su-Shee wayland76: the window manager awsome is coding in xcb instead of xlib and uses lua as their built-in scripting language.
09:25 Su-Shee egypt: still doing. hence me cursing the tediousness of learning "x"
09:25 wayland76 Ah, I'm unfamiliar with the window manager called "awsome"
09:26 ejs joined #perl6
09:26 Su-Shee wayland76: another tiling one.
09:26 Su-Shee awesome? looks better.
09:27 wayland76 "awesome" is the correct spelling; I was assuming that the product name was an acronym or something clever that required that it not have an 'e'
09:28 Su-Shee no, just me failing in english. :)
09:28 egypt Su-Shee: my sympathies (learning x) :)
09:29 egypt I think I looked into using the API many years ago and quickly gave up.
09:29 wayland76 Well, your English is a lot better than many I've seen.  Don't take #perl6 as being typical; much like others have said of themselves, I feel like the dumbest one present :)
09:29 * Su-Shee is confided to have the appropriate knowledge around 2019.
09:30 Su-Shee (x-wise ;)
09:30 egypt Su-Shee: :P
09:30 * wayland76 is waiting for perl6-gtk-3 so that he can write his own office suite
09:30 Su-Shee wayland76: it's usally depending on how tired I feel or what language I used the hours before.
09:31 Su-Shee wayland76: perl 6 will be sooner then gtk 3 afaik.
09:31 wayland76 Possibly.  But GTK3 will be more incremental
09:31 Su-Shee if there isn't something nicer and more modern based on clutter.
09:32 wayland76 If I understand correctly, GTK3 will have "read my lips, /no new features/"
09:32 Su-Shee I think so too besides minor things like getting support for a canvas for example.
09:32 Su-Shee I think, it's the wrong decision anyway, gtk already looks very outdated compared to qt4.
09:33 wayland76 Oh, yes, forgot that.  And moving to a scene-graph thing underneath.  And moving to a better ABI
09:33 Su-Shee isn't clutter doing this scene graph thing?
09:34 wayland76 Maybe.  I'm no expert.  I just read up enough on them to get a vague feel for their plans
09:35 Su-Shee ah well, if they're contiuing being that slow, chrome os like concepts will have taken over the desktop anyway. ;)
09:38 egypt Su-Shee: as long as a) Perl 6 has good bindings for everything and b) Google don't become evil, that's fine by me ;)
09:38 wayland76 Not after I write my office suite :)
09:38 Su-Shee wayland76: I haven't used an office suite since 1996 anymore.
09:39 wayland76 I use OpenOffice pretty much daily
09:39 Su-Shee egypt: me as well, I realized 2 years ago that I actually need so few things in desktop terms - but those could really interact much better then they're doing today.
09:39 Su-Shee wayland76: really? for what?
09:39 wayland76 I also have every file I've ever made, just about
09:40 wayland76 Well, for a start, for the book(s) I'm writing :)
09:40 Su-Shee I write everything in plain text.
09:40 Su-Shee articles, books, notes, letters..
09:40 Su-Shee converting only if necessary.
09:41 wayland76 I like to have WYSIWYG when I do tables, especially
09:41 Su-Shee the only real apps I still have and use are browser, gimp, inkscape, editor.
09:42 Su-Shee chat client. mail client. (both extremely easily transferred to web)
09:42 jnthn Morning, #perl6
09:43 wayland76 Su-Shee: I use those, + office + rosegarden (sheet music editor); probably not much else, most of the time, but it's nice to have eg. a sound editor sometimes
09:43 * wayland76 waves to jnthn
09:43 egypt <=o    (drinks to jnthn's arrival)
09:44 mberends jnthn: morning
09:44 jnthn Talking of drinks...I need coffee.
09:45 mberends hmm, a cuppa tea would not go amiss
09:49 tann1 joined #perl6
09:51 Su-Shee ui, web sockets.
09:51 Su-Shee (alternative to xmlhttprequest)
09:52 * wayland76 wishes for XForms support in browsers
09:53 moritz_ jnthn: you're up before 10am in your time zone, are you ill? :-)
09:55 jnthn moritz_: One of my clients had scheduled a phone meeting for 10am.
09:55 mathw wayland76: Might as well wish for HTML to be sane while you're ad it
09:55 jnthn moritz_: However, after I dragged myself out of bed at this odd hour...they decided they didn't want one after all. :-/
09:55 moritz_ jnthn: so clients are a disease? :-)
09:56 jnthn moritz_: ....not quite the angle I was going for. ;-)
09:56 wayland76 mathw: Ha, you think that's insane?  Try HTML-with-ferrets!  Try HTML-with-pitbulls!  Try HTML-with-POLAR-BEARS!!! :)
09:57 wayland76 hugme: hug jnthn
09:57 * hugme hugs jnthn
09:58 egypt <html><furryhead><sleekbody><icanhazpara>... :|
10:01 masak lolitsjnthn!
10:03 * egypt hands jnthn a cup of really. strong. coffee. "think you have healthy adrenals? not after this."
10:03 jnthn masak! \o/
10:03 jnthn egypt: mmmm....strong...gooood
10:03 * jnthn slowly starts to feel awake
10:04 * jnthn glances over the ng changes list
10:04 wayland76 If strong is *that* good, I'll have to take up weightlifting again
10:04 wayland76 oh, wait, not /that/ kind of strong.
10:04 * wayland76 tries to stop disturbing jnthn's thought processes :)
10:05 jnthn colomon++ # epic patching win
10:06 moritz_ indeed
10:16 masak I'm getting a segfault running t/spec/S32-str/flip.rakudo in the ng branch.
10:16 masak right after test 6.
10:16 moritz_ that happens
10:16 krunen joined #perl6
10:16 moritz_ :(
10:16 masak yes, but here it happens consistently.
10:17 masak I'll try and isolate it.
10:17 jnthn Runs all 13 here. :-/
10:19 mberends does that mean Window is better than OS X?
10:19 jnthn ng: my %h; %h<a> = 42; say %h<a>
10:19 p6eval ng 920640: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 13684 (src/builtins/Junction.pir:124)␤
10:19 mberends *Windows
10:19 jnthn mberends: Of course! ;-)
10:19 * moritz_ still suspects a relation to icu
10:20 jnthn mberends: OSX is too shiny, so the tests slip over all the time.
10:21 jnthn Hmm...is ng actually still totally lacking hashes?
10:22 moritz_ ng: my %h; %h<a> = 'b'; say %h.keys
10:22 p6eval ng 920640: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 13684 (src/builtins/Junction.pir:124)␤
10:23 jnthn And how do we end up in Junction?!
10:25 * moritz_ imagines ng has still a long path to walk
10:25 sjohnson y0
10:26 egypt y0 sjohnson, welcome :)
10:26 Baggio_ joined #perl6
10:26 moritz_ ok, I recompiled with --optimize and without ICU, that doesn't affect the errors in flip.t and comb.t
10:28 moritz_ http://www.twitalyzer.com/twitalyze​r/profile.asp?u=rakudoperl&amp;p=7
10:32 moritz_ ng: say (+'24').WHAT
10:32 p6eval ng 920640: Num()␤
10:34 moritz_ hugme: tweet rakudoperl Perl 6 Advent Calendar Day 9: beautiful arguments http://perl6advent.wordpress.com/2009/12/09/da​y-9-having-beautiful-arguments-and-parameters/
10:34 hugme moritz_: Sorry, too long (142 chars, 140 allowed)
10:34 moritz_ hugme: tweet rakudoperl Perl 6 Advent Calendar Day 9: Arguments http://perl6advent.wordpress.com/2009/12/09/da​y-9-having-beautiful-arguments-and-parameters/
10:34 * hugme hugs moritz_; tweet delivered
10:35 moritz_ hugme: tweet rakudoperl Perl 6 Advent Calendar Day 10: A Regex Story http://perl6advent.wordpress.com/​2009/12/10/day-10-a-regex-story/
10:35 * hugme hugs moritz_; tweet delivered
10:35 * moritz_ has neglected his duties... can we teach zaslon to tell hugme to twitter? :-)
10:36 egypt yayletthebotsdoeverything :P
10:36 jnthn Don't bots talking to each other cause the appocalypse?
10:38 moritz_ hey, they should cause the synopsis instead :-)
10:39 egypt i think we'd still need  human exegete. :)
10:39 egypt *a human exegete
10:40 moritz_ egypt++
10:46 Juerd_ http://perl6advent.wordpress.com/2009/12/09/da​y-9-having-beautiful-arguments-and-parameters/
10:46 Juerd_ Can you use whitespace around .=?
10:46 Juerd_ std: $foo.=bar()
10:46 p6eval std 29302: Potential difficulties:␤  Variable $foo is not predeclared at /tmp/br5bZIORAE line 1:␤------> [32m$foo[33m⏏[31m.=bar()[0m␤ok 00:01 107m␤
10:46 * mathw needs to write the day 12 advent post tonight
10:46 Juerd_ std: $foo .= bar()
10:46 p6eval std 29302: Potential difficulties:␤  Variable $foo is not predeclared at /tmp/x0uVdZKCkN line 1:␤------> [32m$foo[33m⏏[31m .= bar()[0m␤  Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/x0uVdZKCkN line 1:␤------> [32m$foo .=[33m⏏[31m bar()[0m␤ok 00:01 106m␤
10:46 Juerd_ Adventbug. Where to report?
10:47 mathw any one of us who have edit permissions
10:47 Juerd_ Do you?
10:47 mathw I did two days ago :)
10:48 Juerd_ Do you still have them? :)
10:48 mathw I think so
10:48 Juerd_ In day 9 there's $middle .= substr(0, 1);
10:48 Juerd_ Should probably be $middle.=substr(0, 1);
10:49 Alias joined #perl6
10:50 jnthn Juerd_: I call STD bug there.
10:51 jnthn std: my Int $foo .= new;
10:51 p6eval std 29302: ok 00:01 108m␤
10:51 jnthn std: my Int $foo .= new();
10:51 p6eval std 29302: ok 00:01 106m␤
10:51 jnthn std: my Int $foo; $foo .= new();
10:51 p6eval std 29302: ok 00:01 106m␤
10:51 jnthn huh...
10:51 * jnthn wonders what heuristic it's going on.
10:52 jnthn Anyway, the answer is "you can use whitespace around it, but it's parsed a different way"
10:52 moritz_ aye, it should work
10:53 moritz_ rakudo: my $x = 'foobar'; $x .= substr(0, 1); say $x
10:53 p6eval rakudo 7ef386: f␤
10:53 moritz_ and it does work :-)
10:53 Juerd_ Oh
10:54 * moritz_ calls Juerd_bug :-)
10:54 Juerd_ :)
10:54 Juerd_ Does this mean whitespace around . is somehow possible too now, or is that still prohibited?
10:54 moritz_ Juerd_: it's special-cased
10:54 pmurias joined #perl6
10:54 moritz_ for example you can call methods as $foo.+bar, but $foo .+ bar is not allowed
10:55 moritz_ and for whitespaces around . you need unspace
10:55 moritz_ std: 'a'\.  bar
10:55 p6eval std 29302: [31m===[0mSORRY![31m===[0m␤Confused at /tmp/3ZE4rcVjR4 line 1:␤------> [32m'a'\.[33m⏏[31m  bar[0m␤    expecting postfix_prefix_meta_operator␤FAILED 00:01 104m␤
10:55 moritz_ std: 'a'.\  bar
10:55 p6eval std 29302: ok 00:01 104m␤
10:55 Juerd_ Why is .= special cased?
10:55 moritz_ std: 'a'\  .\  bar
10:55 p6eval std 29302: ok 00:01 104m␤
10:56 moritz_ Juerd_: might be related to my Type $x .= new  being very common
10:56 * mberends frowns at future newbie confusion about whitespace special cases
10:57 * wayland76 experienced ranting on another channel today on that very topic
10:57 pmurias the p6 design minutes mention that Damian and TimToady gear up for a book, when is "Programming Perl 6" expected?
10:58 mberends after Christmas ;)
10:58 * moritz_ hopes it's way after April, otherwise our combined book effort is likely to pale very quickly :-)
10:58 moritz_ otoh I hope it's rather soon, so that I can finally read something that makes me understand Perl 6 :-)
11:00 Juerd_ Is there anything specific that you'd like to understand?
11:01 mberends moritz_: as long as the spec remains in whirlpool mode, the official book cannot be frozen either.
11:02 moritz_ Juerd_: there's a long mental list of topics I haven't grokked
11:02 moritz_ like how slices and lazyness interact
11:03 moritz_ or how the AST generation in macros work
11:03 Juerd_ After the advent calendar it might be a nice project to collect vague and general questions like that, to find out what the community wants to know.
11:04 moritz_ and then there's a (varying) list of detail questions that aren't mentioned in the spec at all
11:04 pmurias moritz_: AST generation is a bit implementation specific, as you can use quasi quotes but for more details you need to assume a particular representation
11:04 moritz_ for example: which methods on the Whatever star are executed, and which generate a WhateverCode?
11:05 moritz_ what about the corresponding functions?
11:05 moritz_ is defined(*) the same as *.defined?
11:07 moritz_ pmurias: but that still leaves question open... for example if I have an 'is parsed' macro, and match <EXPR> there, how do I get that AST from the parse tree?
11:07 moritz_ how can I execute that statement immediately?
11:09 moritz_ maybe I should write these questions down, as Juerd_++ suggested
11:11 moritz_ or: how do I introspect attributes of foreign objects?
11:11 moritz_ how should .perl serialize closures?
11:12 Juerd The questions quickly became very specific :)
11:12 Juerd But writing them down is probably still a good idea :)
11:16 moritz_ actually two weeks ago I had some less specific questions
11:16 moritz_ but TimToady++ cleared some things up recently
11:18 PZt joined #perl6
11:18 jnthn If he clears these ones up, you'll only be back with more. ;-)
11:19 moritz_ sure
11:20 Juerd jnthn: That's okay because Perl 6 can handle infinity :)
11:23 Su-Shee moritz_: everybody will need both books.
11:26 alexn_org joined #perl6
11:41 jferrero joined #perl6
11:43 * jnthn bbs - dog walk...
11:43 jnthn Just about got has $.x = 42; style stuff in place again in ng.
11:48 mathw \o/
12:00 Baggio_ joined #perl6
12:00 payload joined #perl6
12:01 * jnthn back
12:04 SmokeMachine joined #perl6
12:06 envi^home joined #perl6
12:07 envi_home2 joined #perl6
12:08 masak Juerd: I like your idea about the vaguelist.
12:10 frettled You'd lost your kanelbulle again.
12:11 masak op bit by liking stuff.
12:11 masak frettled: and I'm just leaving, so about to lose it again, I'm afraid.
12:11 masak but thanks. :)
12:11 envi_home joined #perl6
12:13 frettled I'll take care of it until next time. ;)
12:14 meppl joined #perl6
12:17 pugs_svn r29303 | mberends++ | [src/perl6/Makefile] added help and a few comments
12:19 Astoria` joined #perl6
12:20 Baggio_ joined #perl6
12:23 frettled nice!
12:24 envi_home2 joined #perl6
12:25 mikehh joined #perl6
12:42 ejs1 joined #perl6
12:51 envi^home joined #perl6
13:06 colomon Good morning!
13:09 quantumEd joined #perl6
13:13 hicx174 joined #perl6
13:17 moritz_ \o/ colomon
13:18 colomon Probably a waste of time promoting me to op the way my connection to the channel has been unstable for the last week, but thank you.  :)
13:20 moritz_ <aragorn>There is always hope!</aragorn>
13:21 takadonet joined #perl6
13:21 takadonet morning all
13:21 colomon I figure its some sort of law of nature that there must always be at least one annoying issue with your computers.
13:21 colomon takadonet: o/
13:22 takadonet colomon: how are you ?
13:22 colomon Just had my best night's sleep in over a year, I think.
13:22 colomon :)
13:23 takadonet good to hear
13:26 colomon Now I just need to rearrange the ground level of our house, which is completely taken apart to let carpet cleaners get to it, and get a bunch of $work done today.
13:43 JimmyZ joined #perl6
14:26 dalek rakudo/ng: ecd068a | jnthn++ | src/metamodel/ClassHOW.pir:
14:26 dalek rakudo/ng: Fixes to ClassHOW.attributes (it gets shorter...yay.)
14:26 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e​cd068a47708ecb91d33893373e696f4174e0f4f
14:26 dalek rakudo/ng: 3b958a6 | jnthn++ | src/Perl6/ (3 files):
14:26 dalek rakudo/ng: Handle RHS of assignment to an attribute declaration being passed along as the build closure, including creating that closure and passing it when setting up the attribute. Needs updates to CREATE and BUILD before it'll all work though.
14:26 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/3​b958a6cb13639ec3816aa7de9c4457050bbae89
14:29 SmokeMachine joined #perl6
14:29 colomon \o/ patches!
14:30 iblechbot joined #perl6
14:31 jnthn Yeah. Wish I'd more, but this is a little...tricky.
14:33 moritz_ ng: say 1 ~~ Positional
14:33 p6eval ng 920640: 0␤
14:33 moritz_ ng: say Array ~~ Positional
14:34 p6eval ng 920640: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
14:34 moritz_ the former died in ng before jnthn's patch
14:35 colomon so, progress!
14:35 colomon errr.... that ng isn't using those patches, is it?
14:36 moritz_ it is
14:36 moritz_ I just pulled and make'd on the server
14:36 moritz_ which doesn't update the revision file
14:36 moritz_ so, my fault
14:36 colomon ah.
14:36 * colomon is easily mislead by lying computers.
14:36 colomon s/mislead/misled/
14:37 ejs2 joined #perl6
14:38 moritz_ sometimes we miss lead, too :-)
14:40 jnthn Huh...I didn't know I'd fixed either of those. :-)
14:41 jnthn Hmm...half of S14-role/attributes.t passes now.
14:47 colomon Based on what I was seeing yesterday, there are a number of test files which will (or easily could) half-pass.  Things like pop where the method version works and the sub version doesn't...
14:57 takadonet left #perl6
14:58 jnthn yay FINALLY
14:58 jnthn > class Foo { has $.x = 42; }; say Foo.new.x
14:58 jnthn 42
14:58 lambdabot <no location info>: parse error on input `class'
15:01 was kicked by moritz_: moritz_
15:01 jnthn \o/
15:01 jnthn ...but...but...karma!
15:01 * moritz_ sacrifizes karma logging for sanity
15:01 jnthn :-)
15:01 jnthn wfm.
15:01 jnthn TimToady: In S14 I find this:
15:01 jnthn Two C<has> attributes of the same
15:01 jnthn name, whether public or private, are simply merged into one slot,
15:01 jnthn provided the types are the same; otherwise, the composition fails.
15:02 jnthn Please can we kill this "types are the same" exception?
15:02 * mathw agrees
15:02 jnthn I've never liked it, a Moose guy has said it's "just wrong".
15:03 jnthn And since has $.a; and has $.a; have the same type...
15:03 jnthn ...well, it relies on people writing type annotations to get compositional safety. Which feels wrong.
15:04 mathw yes
15:05 mathw and also it means that some collisions are going to silently resolve, where others don't, and that's a bit too weird
15:05 mathw because you're probably still going to end up with lots of Wrong
15:05 jnthn Yeha.
15:05 jnthn Feels dangerous.
15:08 lisppaste3 joined #perl6
15:09 takadonet joined #perl6
15:10 * moritz_ wonders if in Perl 6 it's possible to have two types A and B with A !=== B but A ~~ B and B ~~ A
15:11 KyleHa joined #perl6
15:13 jnthn ooh...I've caught that pesky segv in flip.t under the debugger.
15:13 dalek rakudo/ng: 8c95c34 | jnthn++ | src/metamodel/ClassHOW.pir:
15:13 dalek rakudo/ng: Need to make .attributes and .parents not use e.g. Array so we can actually use these to more cleanly do BUILD and CREATE.
15:13 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8​c95c34ceb70b9aa4edee099f296305a4012d738
15:13 dalek rakudo/ng: aaf1b8d | jnthn++ | build/Makefile.in:
15:13 dalek rakudo/ng: Need Parcel earlier on in the bootstrap.
15:13 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a​af1b8d601c35471260ee7311a926788993bc686
15:13 dalek rakudo/ng: 949d32a | jnthn++ | src/metamodel/ClassHOW.pir:
15:13 dalek rakudo/ng: Override P6metaclass's new_class helper method so we can get attribute handling correct (e.g. actually call add_attribute, not just hack it into the Parrot table and ignore the attribute protocol).
15:13 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/9​49d32ab822093730babe4db60210885c9c8206d
15:13 pmichaud good morning, #perl6
15:14 pmichaud moritz_: one could override .ACCEPTS for A or B
15:14 pmichaud (to accept the other)
15:14 jnthn pmichaud: morning.
15:14 moritz_ pmichaud: I've thought of that too, but it's not what I meant
15:14 moritz_ pmichaud: good morning :-)
15:14 moritz_ pmichaud: have you made a decision wrt release and ng?
15:16 pmichaud I've decided to postpone the decision until Sunday morning :-)
15:17 pmichaud because I'm expecting a fair bit of ng hacking time on my part between now and then :-)
15:17 pmichaud PerlJam: ping
15:17 jnthn Meh. 0xbaadf00d is a crappy pointer.
15:17 moritz_ pmichaud: sounds like a good plan
15:18 colomon woo-hoo, jnthn and pmichaud back to hacking on ng more actively!
15:18 dalek rakudo/ng: 92cd743 | jnthn++ | src/builtins/Mu.pir:
15:18 dalek rakudo/ng: Get BUILD working a bit more again; now it uses the .build closure, and actually deals with attributes through the protocol more (we still end up with one use of te underlying Parrot Class, but that's only for the benefit of getattribute).
15:18 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/9​2cd743e021f2a3c14b9aac97add1efdc6835b2a
15:18 dalek rakudo/ng: c959619 | jnthn++ | src/Perl6/Compiler/Role.pm:
15:18 dalek rakudo/ng: Fix to role attribute's build closures. Gets us another test in S14-role/attributes.t.
15:19 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/c​959619e7451b3d82e218d58dd60cfd0f0ce8903
15:20 frettled deadbeefcafef00dbabe
15:21 jnthn oh my.
15:21 jnthn I dunno how this happens, but Parort's internal state is REALLY f**ked when we segfault.
15:21 mathw :(
15:21 jnthn The current context is full of junk data.
15:33 jnthn Trouble is, it's sufficiently messed up, I can't even work out what sub we're in.
15:33 jnthn Because the context and thus call chain is corrupt.
15:33 colomon :(
15:34 mathw ouch
15:35 colomon jnthn: this is on windows?
15:36 jnthn yup
15:36 jnthn worse
15:36 jnthn it goes away under -G
15:36 jnthn Which makes it look horribly like we're ending up with contexts, of all things, getting prematurely GC'd.
15:37 colomon I may be seeing similar sorts of things here...
15:37 colomon I had a crash yesterday in unpolar.t every time I ran it.
15:37 jnthn colomon: If you've got set_returns in your bt, most likely.
15:37 jnthn colomon: It matchs at least one of the stacktraces you have sent me.
15:37 colomon Today after merging your changes it looks like it's switched to exp.t
15:37 jnthn Yeah
15:38 jnthn Seems it's a memory corruption bug, so they tend to move.
15:38 colomon Including moving when you switch debugging settings.  :(
15:39 moritz_ my spectest run just was all PASS
15:39 jnthn Possible, hasn't done that to me.
15:39 jnthn moritz_: yay :-)
15:39 moritz_ on c959619e7451b3d82e218d58dd60cfd0f0ce8903 that is
15:39 colomon moritz_: that's where I am too.
15:39 jnthn moritz_: dunno if "has $.x = 42" style things working will let us claim back any more.
15:40 * moritz_ runs tools/update_passing_test_data.pl
15:40 moritz_ speaking of which... any objections to rename that beast?
15:40 moritz_ tools/comb-spectests.pl?
15:41 jnthn tools/brush-spectests.pl?
15:41 jnthn tools/wash-and-blow-dry-spectests.pl
15:41 nihiliad joined #perl6
15:41 colomon This looks for spectests that aren't run but could work?
15:42 jnthn colomon: yeah
15:42 colomon Or does it look for unneeded fudges in the currently run tests?
15:42 jnthn I think both?
15:42 moritz_ no
15:42 jnthn colomon: oh noes. --trace=4, which mighta told me where we were when we crashed, also makes it go away.
15:42 moritz_ that's what tool/autounfudge.pl is for
15:43 jnthn Goes away with --gc-debug too... *sigh*
15:43 colomon jnthn: these sorts of bugs suck, no doubt.
15:43 moritz_ t/spec/S29-conversions/ord_and_chr.t passes all of 408 tests, and then aborts
15:43 moritz_ don't know if it's a LHF
15:44 jnthn colomon: Yes. I feared from the stack trace it may be illusive
15:44 colomon moritz_: odds are its the bug we're looking at...
15:44 jnthn And digging in a bit further, it doesn't get any more obvious what could be wrong.
15:44 Psyche^ joined #perl6
15:45 jnthn Other than somehow we managed to lose a context.
15:45 colomon moritz_: yesterday unpolar.t would die in the middle of a loop, after the first N loops went just fine...
15:45 Baggio_ joined #perl6
15:45 moritz_ actually it dies with Method 'Int' not found for invocant of class 'Range'
15:45 moritz_ so... probably blocks on pmichaud++
15:45 colomon moritz_: or it could be real LHF.  :)
15:46 moritz_ you mean s/ '..' /.../?
15:46 colomon Is Int on Range just supposed to be the number of elems if you turn the Range into a list?
15:46 colomon moritz_: hold on, let me look at the test
15:46 moritz_ ng: say for 1..3
15:46 p6eval ng c95961: sh: ./perl6: No such file or directory␤
15:46 moritz_ oh
15:47 moritz_ that does the trick
15:47 colomon moritz_:  it's the 0..31 that's the problem?
15:47 justatheory joined #perl6
15:47 pugs_svn r29304 | moritz++ | [t/spec] use series instead of range in ord_and_chr.t
15:47 moritz_ aye
15:47 colomon yes, ... with two ints works.
15:48 colomon woot, that's a nice big test to have working!
15:49 moritz_ that will crack the 2k limit :-)
15:49 jnthn \o/
15:50 jnthn Crap! --trace=1 also hides the segfault...by causing a differnet segfault.
15:50 jnthn parrot--
15:51 jnthn ng: my Str $a = 'Hello World !'; say $a .= flip
15:51 p6eval ng c95961: ! dlroW olleH␤
15:52 colomon The ... in ng is the dumbest one possible, I think, but it gets the job done a lot of the time.
15:52 jnthn trouble is, that on its own (the test where we segv) doesn't...only in the context of the test.
15:53 moritz_ which test, btw?
15:53 jnthn flip.t at the moment
15:53 jnthn But it moves around.
15:53 colomon Yeah, flip.t works for me but exp.t fails.
15:53 dalek rakudo/ng: 695ca5c | moritz++ | t/spectest.data:
15:53 dalek rakudo/ng: re-enable ord/chr tests
15:53 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​95ca5cfa8120b991d7ba5bc740e0834bcd8616f
15:54 jnthn colomon: It's gonna be tricky to get to the bottom of this one, I fear. :-(
15:54 colomon it will drive us insane until we do...
15:54 KyleHa I get a segfault in S32-str/words.t
15:55 lisppaste3 moritz pasted "valgrind run on flip.t" at http://paste.lisp.org/display/91879
15:55 lisppaste3 colomon pasted "valgrind error on exp.t" at http://paste.lisp.org/display/91880
15:55 colomon apparently moritz_ and I were thinking along the same lines there.
15:56 moritz_ :-)
15:57 moritz_ I just fear it's not conclusive
15:57 moritz_ if something corrupted the memory first, the calling conventions would be a natural place for it to show/blow up
15:58 nihiliad joined #perl6
15:58 colomon oh hey, yours is much more interesting than mine.
15:58 jnthn moritz_: Yeah. It doesn't ad a whole lot more info than the backtrace, sadly.
15:58 xomas_ joined #perl6
16:00 jnthn Yeah. It's gonna be a headache to get to the bottom of this one. :-(
16:01 moritz_ maybe you can motivate some parrot folks to work on it? :-)
16:01 * Tene hides.
16:01 moritz_ "hey bacek, it segfaults in a function you recently touched, don't you wanna take a look?"
16:01 jnthn hehe!
16:01 frettled pmichaud: Thanks for the non-recursive version
16:01 jnthn It can be hard to re-produce 'cus it moves around. :-/
16:01 colomon jnthn: I started to say (and then got sidetracked), maybe you can run all the tests with the --trace=4 (or whatever), and see if it pops up someplace else then?
16:02 jnthn colomon: Hmm, could try that, yeah.
16:04 KyleHa My valgrind run on words.t looks like Moritz's run on flip.t  (It says "Conditional jump or move depends on uninitialised value(s)").  Is it worth pasting?
16:05 literal joined #perl6
16:06 perlygatekeeper joined #perl6
16:07 pmichaud frettled: you're welcome -- thanks for the interesting post!  Made me want to refresh my memory of euclid's algorithm a bit more.  :-)
16:08 kcwu joined #perl6
16:11 alester joined #perl6
16:12 colomon KyleHa: where does it say that?  That's normal (ugh!) for the garbage collector...
16:12 KyleHa I'll paste.
16:13 frettled :)
16:13 frettled pmichaud: I'll keep this in mind; always blog while feverish.  ;)
16:14 pmichaud (feverish blogging)++
16:19 Tene pmichaud: is the O() stuff documented anywhere other than cheats/hll-grammar.pir?
16:19 pmichaud Tene: at present, no.
16:19 Tene Okay.
16:20 pmichaud I'd welcome some documentation, though :-).
16:20 pmichaud the best place for now would be nqpbook
16:21 masak joined #perl6
16:21 Tene there's an nqp book?
16:21 jnthn mORNINGasak!
16:21 masak jnthn: you wish :)
16:21 pmichaud there's an empty shell for writing one :-)
16:21 moritz_ hugme: show nqpbook
16:21 hugme moritz_: the following people have power over 'nqpbook': PerlJam, TimToady, [particle], jnthn, masak, moritz_, pmichaud. URL: http://github.com/perl6/nqpbook/
16:22 jnthn oh wow, I had an unknown power
16:22 pmichaud my goal is to write a book about compiler writing in nqp
16:22 masak jnthn: I'm back in CEST now.
16:22 moritz_ hugme: add tene to nqpbook
16:22 * hugme hugs tene. Welcome to nqpbook!
16:23 pugs_svn r29305 | pmichaud++ | [pm.txt]:  Another question for TimToady++ .
16:23 pugs_svn r29305 |
16:23 pugs_svn r29305 | Pm-15:  S11:300 gives the following as an example of importing
16:23 pugs_svn r29305 |     a tagset into package scope:
16:23 pugs_svn r29305 |
16:23 pugs_svn r29305 |         require Sense :OUR<ALL> # but this works
16:23 pugs_svn r29305 |
16:23 pugs_svn r29305 |     Should this be :OUR(:ALL) instead?  It seems to me that
16:23 pugs_svn r29305 |     :OUR<ALL> would attempt to import a &ALL symbol (since
16:23 frettled whoa
16:23 pugs_svn r29305 |     :MY<common> imports the &common symbol).
16:25 masak jnthn: I agree that we should kill off the 'provided the type names are the same' exception.
16:25 jnthn masak: Ooh, all the consensus is almost giving me a feeling of forgiveness over permission!
16:25 masak jnthn: I was just going to follow up with that. :)
16:25 pmichaud +1 from me
16:25 Tene jnthn: any chance you'll look into the vtable issue soon?
16:26 masak jnthn: if nothing else, we'll probably be able to pull off innocent looks when we reach the 'forgiveness' stage.
16:26 moritz_ +0.5 # I didn't think enough about it to give it a full +1 :-)
16:26 masak jnthn: with all the agreement flying around, I mean.
16:26 frettled masak: Are you hungry for a kanelbulle tonight?  ;)
16:26 masak frettled: I seldom use it, but I think it suits me. :)
16:26 frettled I'm with moritz_ here :d
16:26 pmichaud I didn't think about it a lot either, but having attributes auto-merge sets off alarm bells in my head
16:26 * masak admires his kanelbulle in the mirror
16:27 jnthn OK I KILLZ IT
16:27 frettled masak: I apparently mostly use it to clone kanelbuller for you
16:27 pmichaud and anytime masak++ and jnthn++ agree on something, that's worth an extra +0.5  :)
16:27 frettled good point
16:27 jnthn what on earth is a kanelbulle?
16:27 masak I agree with jnthn that Indian food tastes yummy.
16:27 jnthn +0.5!
16:27 jnthn :-)
16:27 masak jnthn: it's a Swedish word. :)
16:27 frettled jnthn: http://commons.wikimedia.or​g/wiki/File:Kanelbulle.jpg
16:28 Su-Shee "really?" ;)
16:28 jnthn An animal that swims in canals and looks like a cow?
16:28 frettled the white stuff doesn't have to be there
16:28 masak jnthn: it means 'cinnamon bun', but here it's a description of the op @.
16:28 colomon what is the white stuff?
16:28 jnthn Meh, I wish my op tasted so good.
16:28 frettled colomon: sugar
16:28 jnthn colomon: Chunks of health sugar, no? :-)
16:28 masak colomon: melted sugar, I think.
16:29 Tene Looks like Su-Shee is the only person without a Kanelbulle chatting right now.
16:29 colomon drooooooollllll
16:29 jnthn Kanelbulles all around!
16:30 Su-Shee great, now I'm hungry. ;)
16:30 jnthn masak: You know, I'm tempted to make bless handle the "rebless into a subclass" thingy.
16:31 jnthn masak: If only 'cus it lets me get rid of some magic in a place I don't want it... :-)
16:31 * masak gently shoves jnthn towards the temptation
16:31 masak jnthn: I want to rebless something into a subclass. \o/
16:32 frettled blessed be the subclasses, for they shall inherit the ...
16:32 jnthn ...superclass.
16:33 REPLeffect_ joined #perl6
16:33 KyleHa1 joined #perl6
16:33 jnthn ng: my @a; say @a eq []
16:33 p6eval ng 695ca5: 1␤
16:33 jnthn phew
16:34 * jnthn noticed that we have no hash support in ng yet either. :-
16:34 jnthn |
16:34 jnthn ETOOMUCHTODO
16:34 frettled #brownies
16:34 frettled But I seem to have run out.
16:35 frettled The fact that I never had any may be a good explanation for that.
16:35 frettled jnthn: don't worry about today what you can worry about tomorrow :D
16:36 jnthn ng: role A { has $.x; }; role B { has $.x; }; class C does A does B { } # plz die kplzthnx
16:36 p6eval ng 695ca5: Attribute '$!x' conflicts in role composition␤current instr.: 'perl6;Perl6;Metamodel;Rol​eToRoleApplier;_block203' pc 6919 (src/gen/RoleToRoleApplier.pir:606)␤
16:36 jnthn whee
16:38 supernovus joined #perl6
16:38 slavik joined #perl6
16:38 jnthn ng: role A { has $.x; }; class C does A { has $.x } # plz die kplzthnx
16:38 p6eval ng 695ca5: Attribute '$!x' already exists in the class, but a role also wishes to compose it␤current instr.: 'perl6;Perl6;Metamodel;Rol​eToClassApplier;_block179' pc 8328 (src/gen/RoleToClassApplier.pir:342)␤
16:39 jnthn hmmm...so why eval_dies_ok has a sad... :-/
16:39 frettled I think those error messages are pretty awesome, they help me see the problem.
16:39 frettled (if I hadn't already known that you were creating a problem, that is)
16:40 jnthn ng: use Test; role A { has $.x; }; eval_dies_ok 'class C does A { has $.x }';
16:40 p6eval ng 695ca5: not ok 1 - ␤
16:40 jnthn wtf
16:40 jnthn ng: use Test; eval_dies_ok 'die "omg"'
16:40 p6eval ng 695ca5: ok 1 - ␤
16:40 jnthn :-/
16:41 masak jnthn: re 'attribute $!x already exists in the class, but a role also wishes to compose it'... what would it take to say *which* class and *which* role?
16:41 jnthn masak: Not too much. :-)
16:41 masak \o/
16:41 frettled ooh, that would be even grander!
16:41 jnthn masak: I didn't make .name on ClassHOW and RoleHOW work yet.
16:41 masak oh, ok.
16:42 masak in due time.
16:42 jnthn masak: oh btw, the composition algorithm and the thingy that gives that error is implemented in NQP. ;-)
16:42 jnthn That means you can hack on it too. ;-)
16:42 masak ORLY?
16:42 jnthn YA RLY
16:42 masak wai~!
16:42 jnthn OK, why does my eval_dies_ok not die... :-|
16:43 jnthn well, not recognized the death.
16:43 jnthn ng: eval 'our sub foo(Int $x) { say $x }'; foo("lol")
16:43 p6eval ng 695ca5: Could not find non-existent sub &foo␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
16:43 jnthn um.
16:44 jnthn pmichaud: I fear eval may not end up running the loadinits... :-/
16:44 jnthn .oO( it's broke, innit? )
16:46 jnthn hmm...but why wouldn't it... :-S
16:46 Tene jnthn: stuff in eval runs inside a lexical scope.
16:46 Tene although, it's our..., so nm
16:47 masak this looks interesting for metaheads like jnthn: http://www.shadowcat.co.uk/blog​/matt-s-trout/shaving-a-moose/
16:47 Tene ng: eval 'our sub foo { say "lol" }; foo()'; say 'h'i; foo();
16:47 p6eval ng 695ca5: sh: ./perl6: No such file or directory␤
16:49 jnthn masak: looks interesting.
16:50 jnthn ng: use Test; role A { has $.x; }; say eval 'class C does A { has $.x }'; say $!;
16:50 p6eval ng 695ca5: !class_init_21␤␤
16:50 astrojp joined #perl6
16:50 jnthn um
16:51 jnthn ...so it's returning a reference to the block that does the class init rather than running it. That'd be a problem...
16:52 jnthn oh. putting those two on consecutive lins in the repl is fail too.
16:52 * jnthn is has a confused
16:56 Astoria` joined #perl6
17:01 * masak smiles at Sean Hunt's email to p6l
17:01 masak I bet that's another advent newbie. hope someone replies to him.
17:02 pmichaud jnthn: I'm pretty sure that eval runs the loadinits... I mean, it pretty much has to do so.
17:02 pmichaud it's possible that it's not firing the phasers, though.
17:02 SmokeMachine joined #perl6
17:02 pugs_svn r29306 | jnthn++ | [t/spec] Get rid of same type = composition OK test.
17:02 jnthn pmichaud: It's Ok, I found it.
17:03 jnthn pmichaud: reentrancy bug.
17:04 jnthn S14-roles/attributes.t now passes in ng.
17:05 moritz_ ship it!
17:06 jnthn It's only 6 more tests, sadly.
17:06 SHTOPOR joined #perl6
17:06 colomon \o/
17:06 jnthn Though a six that tell us quite a few things work.
17:06 SHTOPOR left #perl6
17:10 pugs_svn r29307 | jnthn++ | [spec] Kill the same type = attribute composition OK rule; now it's just always a conflict.
17:10 payload joined #perl6
17:11 cdarroch joined #perl6
17:12 masak jnthn: hehe, you edited the spec so as to contain the slightly slangy 'fail'-as-a-noun. :)
17:13 masak not that I mind. just amused.
17:14 dreadpiratepeter joined #perl6
17:15 jnthn masak: ;-)
17:19 cotto joined #perl6
17:20 dalek rakudo/ng: b95e792 | jnthn++ | src/metamodel/RoleToInstanceApplier.nqp:
17:20 dalek rakudo/ng: Fix one of the issues with attribute mix-ins; gets back another test.
17:20 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/b​95e79230e336b6647506869bc7f0351b2ed73ee
17:20 dalek rakudo/ng: fd4738d | jnthn++ | src/Perl6/Actions.pm:
17:20 dalek rakudo/ng: Fix a reentrancy issue.
17:20 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/f​d4738decc65bfdf980560b9cd3ac190a69278a9
17:20 dalek rakudo/ng: 71d5281 | jnthn++ | src/ (2 files):
17:20 dalek rakudo/ng: s/Perl6Array/Array/
17:20 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/7​1d52818be6273346e0ef04cbd169045fefadb19
17:20 dalek rakudo/ng: 4a98e29 | jnthn++ | t/spectest.data:
17:20 dalek rakudo/ng: S14-roles/attributes.t now passes.
17:20 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/4​a98e295d3edbeecc082c59ef68a8dfca4bd3c96
17:23 Alias_ joined #perl6
17:33 SHTOPOR joined #perl6
17:34 SHTOPOR left #perl6
17:35 SHTOPOR joined #perl6
17:35 SHTOPOR left #perl6
17:35 dreadpiratepeter left #perl6
17:36 dreadpir` joined #perl6
17:36 SmokeMachine joined #perl6
17:41 masak by TimToady, 'a method declaration should fail outside of a class regardless of any qualifications to its invocant'. what about the converse? are any sort of qualifications to the invocant allowed in a method declaration inside a class?
17:43 diakopter std:  submethod foo() { };
17:43 p6eval std : ok 00:01 105m␤
17:44 diakopter std:  method foo() { };
17:44 p6eval std : ok 00:01 105m␤
17:44 diakopter NYEnforced
17:47 masak in other words, can I do something like this? class A; has $.robot-arm; multi method foo(A $me where { $.robot-arm eq 'spooky and intimidating' }, $a, $b, $c) { ... }
17:48 masak I suppose that's no problem. the invocant plays according to the ordinary rules of MMD.
17:48 jnthn ng: say Block
17:49 masak I'm thinking whether there could be funny effects between invocant MMD and inheritance.
17:49 jnthn masak: I don't see why that wouldn't work.
17:49 jnthn p6eval?
17:50 * masak needs to write a cranky editorial about how p6eval has 'missed the boat'
17:50 TimToady which boat were we aiming at?  :P
17:51 p6eval ng 4a98e2: Block()␤
17:51 TimToady maybe it was just a shot across the bow
17:51 colomon Love Boat.
17:51 Guest69693 joined #perl6
17:51 Guest69693 so perl6 has a formal definition ?
17:51 masak Guest69693: fsvo formal, yes.
17:52 TimToady more like semiformal, where the girls get to dress up, and the guys don't have to
17:52 masak we like it if it wears a tie, but it's not a must.
17:52 jnthn Guest69693: It has a formal grammar, a written spec and a test suite that forms a kind of "executable spec"
17:52 masak fsvo executable. :)
17:52 jnthn :-P
17:54 TimToady Guest69693: what is your definition of "formal"?
17:54 Guest69693 like any other language, unlike perl5
17:55 TimToady that's a pretty informal definition of "formal"  :)
17:55 Guest69693 you can't define formal formally
17:56 TimToady especially since there are other languages that are as informally defined as perl5, but I take your point
17:56 Guest69693 TimToady, like ?
17:56 Guest69693 well, none popular
17:57 TimToady but yes, p6 is certainly more formally defined than p5
17:57 Guest69693 haha
17:58 TimToady otoh, Perl 5 was one of the first scripting languages to actually come with a test suite, which says something
18:01 supernovus Ruby and Python have no "formal" specifications either, and I'd say they are popular.
18:02 stephenlb joined #perl6
18:02 TimToady I suppose one might say that French is more formally specified than English...
18:03 arnsholt TimToady: I blame the Academie Française for that
18:03 arnsholt Prescriptivists (perhaps even proscriptivists) the lot of 'em
18:04 TimToady well, we've got plenty of those English too
18:05 TimToady which is why I try to bend English into a linguistic pretzel whenever possible
18:05 TimToady I think human languages should be first of all extensible :)
18:05 arnsholt Indeed. Mutable and extensible. Part of what makes them so interesting
18:07 supernovus Mutable and extensible, like Perl 6 itself. Any programming language that has "phaser blasts" in its official specification gets my seal of approval ;-)
18:07 jnthn ng: sub foo($x) { say "invoked"; True }; 1 ~~ &foo
18:07 p6eval ng 4a98e2: Method 'ACCEPTS' not found for invocant of class 'Perl6Sub'␤current instr.: '&infix:<~~>' pc 177563 (src/gen/perl6-actions.pir:12105)␤
18:07 thowe joined #perl6
18:08 thowe hi folks
18:08 colomon thowe: hello
18:08 TimToady howdy, just in time for me to leave for shirk^Wwork
18:09 TimToady commutating &
18:11 PerlJam pmichaud: pong
18:11 colomon ng: say Array ~~ Positional
18:11 p6eval ng 4a98e2: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
18:12 jnthn Heh. I really should try and fix that one...
18:12 colomon jnthn: Would be handy...  :)
18:13 jnthn colomon: Still need to sort out how ng does does.
18:14 payload joined #perl6
18:14 colomon jnthn: I keep on hoping one of your changes will accidentally fix it.
18:15 jnthn colomon: Is a change where I deliberatel fix it OK too? ;-)
18:16 colomon jnthn: any fix is a good fix.
18:16 jnthn colomon: I'm sure I could think of a bad way to fix it too..
18:17 colomon Well, I suppose if you maybe anything ~~ Positional be true, that would be bad...
18:18 ShaneC joined #perl6
18:20 jnthn hmm...S06-signature/introspection.t is massive fail (I think listy issues), but at least we can parse it now. :-)
18:21 ejs joined #perl6
18:21 colomon t/spec/S06-signature/introspection....
18:21 colomon Non-block anonymous sub-types su todo at line 72, near ") { };\n   "
18:21 colomon That's the massive fail you get?
18:22 jnthn colomon: That's the parse/compile issue I just fixed.
18:22 jnthn (not pusehd yet, verifying I didn't break any spectests)
18:22 colomon ah, okay.
18:22 jnthn I just put anonymous where blocks back in.
18:23 pmichaud PerlJam:  In the p6advent post, I was curious if your use of '|' versus '||' is intentional.
18:23 PerlJam mostly  :)
18:24 PerlJam why?
18:24 dalek rakudo/ng: 608e0f1 | jnthn++ | src/core/Parameter.pm:
18:24 dalek rakudo/ng: Add missing attribute decl in Parameter.
18:24 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​08e0f1db9c439a0d86709589acaca3067f4cbcf
18:24 dalek rakudo/ng: 2c77505 | jnthn++ | src/ (2 files):
18:24 dalek rakudo/ng: Fix where blocks up a bit (includes adding ACCEPTS for code).
18:24 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​c775059d4afaab7511a7706cd246009c8804c1f
18:24 PerlJam Are you thinking I missed a good opportunity to introduce ||  ?
18:25 pmichaud no, I'm wondering if it actually will work with '|'
18:25 pmichaud i.e., how do we know that the first alternation will match if there's a color in parens at the end?
18:25 pmichaud since the second one could match also
18:26 abra joined #perl6
18:26 PerlJam oh.  I guess I was thinking || semantics when I wrote that then
18:26 pmichaud right :-)
18:27 pmichaud thus my question.  :-)
18:27 abra joined #perl6
18:27 justatheory joined #perl6
18:27 pmichaud I _think_ it might turn out alright in the end because the '(' literal ought to prioritize the ltm to the first alternative..... but I'm not entirely sure that's the case.
18:28 pmichaud I'm not sure it's worth the difficulty of modifying the article at this point -- was just curious about it.
18:29 cotto_work joined #perl6
18:29 colomon jnthn: oh geez, we won't be passing that test for a long time... needs junctions, hyperoperators, etc.
18:30 jnthn colomon: Well, parallel dispatch wroks, I think...but yes.
18:35 jnthn colomon: I'll try and get .does stuff fixed up later on today.
18:36 pugs_svn r29308 | pmichaud++ | [S11]:  'import' is syntactic sugar for .EXPORTALL, not .import_alias .
18:37 * pmichaud shoots directly for forgiveness > permission in S11.  :-)
18:37 payload1 joined #perl6
18:39 pmichaud although perhaps the .WHO in that patch should be omitted.
18:42 ejs joined #perl6
18:43 * jnthn takes a break for a nom
18:47 TimToady PerlJam, pmichaud: the grammar does in fact work okay; since both tokens are the same length, it will pick the '('...')' one if it can, and fail over to the other
18:49 snearch joined #perl6
18:53 ejs joined #perl6
18:59 pmichaud TimToady++
18:59 quantumEd joined #perl6
19:00 pmichaud TimToady: as you've probably guessed, I'm mucking about with S11 today -- feel free to update/revert anything I do that isn't correct :)
19:02 mariano__ joined #perl6
19:04 TimToady well, it's ruoso that's more likely to quibble, since that was his code :)
19:05 pmichaud ah.
19:06 pmichaud he can feel free to update/revert things then as well :)
19:06 pmichaud (actually, anyone can, of course)
19:10 pmichaud ugh, most of the import_alias and import_realias calls in S11 seem to have different interfaces
19:10 moritz_ feel free to unify :-)
19:11 pmichaud I think I shall.
19:11 pmichaud oh, wait
19:11 pmichaud we have  'install_alias', 'import_alias', and 'import_realias'
19:11 pmichaud hrm.
19:12 pmichaud I think I confused install_alias and import_alias
19:13 pmichaud it's not clear to me why they need to be separate anyway, though.  (I understand why import_realias is different.)
19:15 moritz_ hugme: tweet rakudoperl rakudo-ng now passes 2430 spectests
19:15 * hugme hugs moritz_; tweet delivered
19:15 pmichaud \o/
19:15 pmichaud only 30K-ish left to go!  :)
19:15 moritz_ :-)
19:16 TimToady .oO(plus however many more we write...)
19:17 tann1 joined #perl6
19:17 rgrau joined #perl6
19:18 pugs_svn r29309 | lwall++ | [STD,Cursor] move initparse into Cursor so other grammars don't have to define it
19:18 pmichaud left to go before we merge to master.... :)
19:19 payload joined #perl6
19:20 moritz_ .u hot beverage
19:20 phenny U+2615 HOT BEVERAGE (☕)
19:20 Guest69693 ☕ a hot block of zeros for me
19:21 moritz_ rakudo: say '☕'.ord
19:21 p6eval rakudo 7ef386: 9749␤
19:21 moritz_ rakudo: say '☕'.ord.fmt('%h')
19:21 p6eval rakudo 7ef386: ␤
19:21 pmichaud ...%h?
19:21 * moritz_ forgot what hex is
19:21 * pmichaud hands moritz_++ a %x
19:21 moritz_ rakudo: say '☕'.ord.fmt('%x')
19:21 p6eval rakudo 7ef386: 2615␤
19:21 moritz_ pmichaud++
19:24 TimToady I don't think WHO.methodname can work; that's P5-think
19:25 TimToady methods don't live in packages anymore
19:26 pmichaud packages don't have methods?
19:26 pmichaud this isn't asking for methods in the package, it's a method call *on* the package
19:27 pmichaud i.e., the package is the invocant
19:29 TimToady there might not even be a package, it might just be a lexical scope containing an EXPORT package
19:30 pmichaud hmmm.
19:30 pmichaud Anyway, I was using .EXPORTALL here in the same sense as given by S11:108
19:30 pmichaud The C<Foo> module will export C<&foo>, C<&bar> and C<&baz> by default;
19:30 pmichaud calling C<Foo::Bar::.EXPORTALL> will export C<&bar> and C<&baz> at runtime
19:30 pmichaud to the caller's package.
19:30 pmichaud I do agree that .WHO probably needs to go, however.
19:31 pmichaud because if Factorial is a class, then we want to use the class' EXPORTALL and not the EXPORTALL on its associated package/namespace
19:32 TimToady maybe
19:32 TimToady I'm thinking the exporting might actually be done by methods in the tag namespaces
19:33 TimToady under EXPORT::
19:33 pmichaud maybe
19:33 pmichaud .... then    import XYZ <common @horse>;    would end up using a method from EXPORT::ALL ?
19:33 pmichaud er, XYZ::EXPORT::ALL ?
19:33 TimToady and we might want to detangle the notion of standard exporting from any extra hook that is for additional shenanigans
19:35 TimToady as well as a backchannel for macroish redefinition in the importing module, both textual and hygienic
19:35 TimToady in a sense, 'use' is a fancy macro
19:36 JeffreyKegler joined #perl6
19:39 TimToady and we should look at the extent to which the macro mechanism can do what we want without inventing a lot of new stuff
19:39 TimToady to the extent that they might be unified
19:39 pmichaud I'm fine with that... at the moment I'm just looking for an API that I can implement :-)
19:40 pmichaud so, I'm looking at how one deals with something like
19:40 TimToady btw, currently Package isn't even a class in CORE.setting, it's just a role
19:40 TimToady my role Package does Stash { }
19:40 pmichaud use XYZ :OUR(:DEFAULT, 'common', '@horse');    # is this even legal?
19:40 TimToady and my role Module does Stash { }
19:41 TimToady but my role Class does Module { }
19:41 jnthn *cough*
19:41 jnthn Class?
19:41 * moritz_ thought there was no Class class or role
19:42 jnthn Aye. :-)
19:42 TimToady it's just trying to capture the notion of what methods a Stash that is supporting a metaclass might provide
19:42 TimToady that's all
19:42 PerlJam Modules don't do the Package role?
19:43 jnthn TimToady: Oh, so a metaclass would do Class, for example?
19:43 jnthn TimToady: Of course, that gets a little fun in that Role also does Class about from Class is a role... ;-)
19:43 hercynium joined #perl6
19:43 TimToady I'm not thinking that the metaclass does Class
19:43 solarion joined #perl6
19:43 jnthn TimToady: ah, ok
19:43 TimToady just trying to clarify what different kinds of package there might be
19:44 TimToady could go away if it's a useless distinction
19:44 pmichaud at any rate, it feels as though Stash in general has methods for manipulating the stash
19:44 TimToady but anyway, the CORE lexpads are lexical scopes without packages, but they can have an EXPORT list anyway
19:45 pmichaud e.g.   import_alias  and  EXPORTALL  from S11
19:45 TimToady well, to the first approximation a Stash is just a Hash
19:45 TimToady a Stash for a lexical scope has an extra level of indirection over a package Stash
19:45 pmichaud right, it supports the hash interface
19:46 pmichaud but if we can export from a lexical scope, that is either a method on the lexical scope or some other helper function/method that does it for us, yes?
19:46 TimToady but to the extent possible, I'd like to run the export stuff lexically, and not assume the existence of a package on either end
19:46 pmichaud and presumably that would be similar to whatever handles exporting from packages and other stashes
19:47 TimToady but finding the EXPORT in a lexical scope (which is how Cursor does it) is related to the problem of finding lexically scoped constants
19:47 TimToady "all constants are 'our'" is kind of a workaround
19:48 pmichaud in order to export from a lexical scope, one would have to explicitly do something like module EXPORT::XYZ { ... }   ?
19:48 TimToady if Num::pi can find pi even if pi isn't 'our', then that's much like finding EXPORT without requiring EXPORT to be 'our'
19:49 pmichaud or are you aiming at changing   "our sub xyz() is export { ... }"  to handle the "is export" in the lexpad instead of a package?
19:49 TimToady I think 'my sub xyz() is export' should also work
19:50 pmichaud right, my question is about the "is export" mechanics more than any my/our distinction
19:50 TimToady and anything that is exported should perhaps be nameable externally even without a package
19:50 TimToady well, the mechanics depend on where you're gonna look for the name
19:51 pmichaud right.  currently that's done in  EXPORT::foo packages
19:51 TimToady the tag spaces are packages, which means there's not really a need for the top level to be a package, as long as you can get to the EXPORT space
19:51 pmichaud well, the tag spaces really only have to be hashes also :)
19:52 TimToady packages are only just hashes, really :)
19:52 pmichaud so, the export space is just a HoH  somehow
19:52 pmichaud I'm perfectly fine with that.  In many ways that would be far more acceptable to Parrot
19:53 pmichaud the question just then becomes "where does one find EXPORT" ?  ;-)
19:53 TimToady so the notion is rather than looking up the name in the HoH to see if it's exportable, and then aliasing from the top package
19:53 TimToady you just export from the tag package
19:53 TimToady and maybe even with code defined in that package somehow (sub or method)
19:54 pmichaud right, I thought that's basically what EXPORTALL was doing  :-)
19:54 TimToady well, as I mentioned, Cursor already looks for EXPORT in the lexical scope, not in the package
19:56 payload joined #perl6
19:57 pmichaud feels to me like the tag packages ought to be something other than "packages" though.  "Exporters"  or something like that.  Or even "TagExports"
19:57 pmichaud and then EXPORT is just a hash of exporters
19:57 TimToady currently trying to unify OUR:: with EXPORT::ALL:: in my head
19:58 pmichaud from my earlier example?  or from a different situation?
19:58 pmichaud ::OUR and EXPORT::ALL:: don't feel like things that ought to be unified to me
19:58 pmichaud *OUR::
19:59 pmichaud EXPORT::ALL is a list of all exportable symbols, which might not be the same as OUR::.  Or perhaps you're thinking of a different unification.
19:59 TimToady why would you declare anything 'our' if you didn't want to allow aliases to it?
20:00 pmichaud I'm thinking that EXPORT::ALL might contain symbols from subpackages
20:01 TimToady so might OUR::
20:01 pmichaud i.e.,  module Foo {  our sub abc is export {...};   module Bar { our sub def is export {...} } }
20:01 pmichaud would we expect Foo::def there?
20:02 TimToady no, why would we?
20:02 TimToady two different packages, and two different lexical scopes
20:03 pmichaud right.  But S11 currently says that  Foo::Bar::def would appear in Foo's export list
20:03 pmichaud thus Foo::EXPORT != Foo
20:03 pmichaud (in terms of the symbols there)
20:03 TimToady hmm
20:04 TimToady that might be a fossil
20:04 pmichaud it's a long-standing fossil, if so :)
20:04 pmichaud S11:94 is the current reference, at any rate.  :)
20:05 pmichaud anyway, I'm personally more comforted with the notion that the only things that get exported are those that are explicitly exported, and that "our" isn't sufficient to do that.
20:05 pmichaud otoh, I see the issue with constants and the like.
20:06 TimToady our would be more 'exportable', but not by default, in that view
20:06 pmichaud right
20:06 pmichaud just figured that out :)
20:06 pmichaud so,  'our' causes things to appear in  EXPORT::ALL (or whatever we end up calling it), but not in EXPORT::DEFAULT
20:06 pmichaud and if you don't want it to appear in EXPORT::ALL, you use "my"
20:07 TimToady but the point of adding an import verb was to allow inlined modules to export to their surrounding scope, so the autoexport seems wrongish now
20:07 pmichaud right
20:08 pmichaud in particular, the S11:94 part seems to imply that "is export" in any module automatically exports to its outer scope
20:08 pmichaud which is probably not what we want.
20:08 _jaldhar joined #perl6
20:08 pmichaud and actually, exports to its outer scope*s*
20:08 TimToady a lot of my revisionist thinking is from trying to work out the namespace issues in the setting
20:09 pmichaud yes
20:09 TimToady where we're trying to avoid any overt package searching
20:09 pmichaud a lot of reason that Rakudo (master and ng both) don't always handle namespaces so well is because I couldn't get it to map well to S11 :-)
20:09 TimToady (except maybe embedded packages like EXPORT)
20:10 TimToady though moving more toward exporting lexicals rather than package vars does increase the potential of "alias will not stay shared" when cloning happens
20:11 TimToady at which point it becomes slightly beneficial to actually emphasize our-ness
20:12 TimToady though it makes it possible to export different clones of the same variable to different destinations, if that's what you want
20:15 * TimToady keeps nudging package semantics and lexical semantics closer to each other to see where it exceeds critical mass and explodes :)
20:15 pmichaud ...it sounds as though S11 may go through another significant revision here...
20:16 jnthn TimToady: Well they're both just hashes, right? ;-)
20:16 TimToady different value type though
20:16 TimToady a package is more like a dynlexpad
20:16 TimToady with directly held containers
20:16 jnthn yeah
20:17 pmichaud jnthn: (both just hashes)  -- yes, I've been looking at the hashness aspect quite a bit, especially with respect to mapping them to parrot constructs for hll-interop and exportation
20:17 TimToady a lexical scope pad just records positions in whatever the current dynlexpad is
20:17 pmichaud from a parrot hll-interop perspective, we really want export/import to be more of a function of the compiler than of the lexpad/package/whatever
20:17 pmichaud so that we can do name mangling on either side
20:18 TimToady which is why I'd like to keep shenanigans as a separate mechanism, if possible
20:18 pmichaud agreed fully there
20:18 pmichaud that thinking lends itself to thinking that namespaces, lexpads, and the like are things that are operated on, rather than things that do the operating.
20:19 pmichaud which tends to move away from ".EXPORTALL" on packages
20:20 TimToady I want to think more about the notion of a module as a large hygienic macro though
20:21 TimToady where shenanigans might mean textual macro instead of hygienic
20:21 TimToady install this AST here vs reparse this text than the 'use' returned
20:21 TimToady s/than/that/
20:22 TimToady where the latter degenerates to a simple include, when you think about it
20:23 pmichaud rakudo already tends towards the former, though.  Are you thinking of aiming for the latter ?
20:23 TimToady I'm thinking the latter is the 'evalish/beginnish' escape valve that allows the former to be the correct default most of the time
20:24 pmichaud right
20:24 TimToady aliasing lives in the former
20:24 TimToady the 'shenanigans' live in the latter
20:24 pmichaud oh
20:24 pmichaud hmmmmmmmmmmm
20:24 pmichaud right now in order to get precompiled modules to work, we tend to try to put everything into the AST
20:25 pmichaud (or the compiled form, whatever it happens to be)
20:25 TimToady but if a chunk of that AST is a hook that can be executed to return text to be macroized unhygienically, that's what I'm talking about
20:25 pmichaud iiuc, you're suggesting that many shenanigans should remain as text and then be ..... right
20:28 TimToady it's even possible that lift could get implemented something like that, where the generic code gets instantiated at use time; though that might be doable hygienically
20:28 pmichaud I'm not sure that text-based shenanigans would work well from an hll-interop perspective, though.
20:28 TimToady well, you use a module that has that as part of its official interface, you lose.
20:28 TimToady that why text is unhygienic
20:29 payload joined #perl6
20:29 TimToady you can't predict the exact language it will be reparsed under
20:29 TimToady same problem with nested source filters
20:30 TimToady but it's possible that multis containing lift turn into hygienic macros transparently
20:30 TimToady which means it could be prototyped unhygienically, if the need arose
20:31 TimToady have to think about that with respect to the current caller semantics of lift
20:32 pmichaud I now have to think about all of this with respect to finishing my grant  1/2 :-)
20:32 TimToady it seems like it would work, since a macro by definition is in the caller's scope, if instantiated everywhere the same way
20:32 TimToady well, we can hope that *something* will be easier to change than *nothing* will, though that doesn't always work out in practice...
20:33 pmichaud for my grant I pretty much need to be able to handle import and export semantics
20:33 pmichaud macros aren't part of the grant, nor lift, nor ... :)
20:34 TimToady well, the standard export/import can be hidden under a compiler abstraction that may or may not implement it with macros
20:36 TimToady I think you are correct there about the passivity of the data
20:36 TimToady so just aim for that for now
20:36 pmichaud oh good (more)
20:36 pmichaud yes, if I'm correct about passive data for export/import, then it becomes much easier on this end
20:36 pmichaud I can put something together that's workable for now, supports some level of hll-interop, and we clean it up as we know more later
20:36 TimToady .oO(I love it when it sounds like we know what we're talking about. :)
20:36 pmichaud lol
20:37 pmichaud I'll just aim for some simple interfaces on compiler objects, along with various warning notes that it's still somewhat on the experimental side
20:37 pmichaud (so the particulars may change)
20:37 pmichaud we can then hide Perl 6 complexities under those interfaces when we have them
20:37 pmichaud and, of course, a compiler talking to its own modules is generally free to ignore the interfaces anyway
20:38 payload joined #perl6
20:41 pmichaud afk, kid pickup
20:43 pmurias joined #perl6
20:46 Tideflat joined #perl6
20:47 Tideflat rakudo: [*] [1,2,3,4];
20:47 p6eval rakudo 7ef386:  ( no output )
20:47 moritz_ rakudo: say [*] 1, 2, 3, 4
20:47 p6eval rakudo 7ef386: 24␤
20:48 Tideflat rakudo:say [*] [1,2,3,4];
20:48 moritz_ you might need the space after ':'
20:48 Tideflat rakudo: say [*] [1,2,3,4];
20:48 p6eval rakudo 7ef386: 1 2 3 4␤
20:48 Tideflat oh
20:48 romanhunt joined #perl6
20:48 moritz_ reducing a list of one element returns that element
20:49 romanhunt hello all
20:49 moritz_ here it's an Array
20:49 moritz_ hi romanhunt
20:50 Tideflat does perl 6 have "off the wall" support? Like how in python you use '    ' to mark blocks?
20:51 quantumEd don't think so..
20:51 * moritz_ doesn't understand what that means
20:55 * colomon is with moritz_ here
20:56 sjohnson afternoon guys
20:56 sjohnson moritz_: i think he means white-space significance in regards to delimit when a block starts and ends
20:57 TimToady yeah, he just means counting whitespace characters as syntax
20:57 pmichaud whitespace characters *are* syntax :) :)
20:57 TimToady but not counting them
20:57 pmichaud okay
20:58 TimToady well, except counting from 0 to 1
20:58 pmichaud I tend to say "whitespace as block delimiters" to get the point across :)
20:58 TimToady negative indentation to indicate something positive
20:59 TimToady but the whole notion of counting whitespace characters is really Unicode-unfriendly
20:59 moritz_ and evalbot-unfriendly :-)
20:59 TimToady and programmer unfriendly the moment your block exceeds the size of your screen
21:00 [particle] screens are cheap.
21:00 TimToady even on the same screen, it can be hard to line things up vertically
21:00 moritz_ programmers aren't :-)
21:01 romanhunt rakudo ng: say [1...4]
21:01 moritz_ it's just 'ng: '
21:01 romanhunt that just segfaulted my cp of ng
21:01 TimToady and ... nyi, I think
21:01 moritz_ ng: say [1...4]
21:01 p6eval ng 2c7750: 1 2 3 4␤
21:02 TimToady of course, I could be wrong...
21:02 pmichaud ng: say 1...4
21:02 TimToady ng: say 1 ... 4
21:02 p6eval ng 2c7750: 1234␤
21:02 p6eval ng 2c7750: 1234␤
21:02 moritz_ only the most basic, eager case is implemented in ng
21:02 romanhunt mustve been something else it is running it now
21:02 moritz_ rakudo: say 'a' ... 'd'
21:02 TimToady ng: say 1 ... *+2, 5
21:03 p6eval rakudo 7ef386: abcd␤
21:03 p6eval ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
21:03 moritz_ rakudo: say 1 ... *+2, 5
21:03 p6eval rakudo 7ef386: 135␤
21:03 pmichaud ng doesn't whatever yet, I don't think.
21:03 TimToady ng: say 1,3,5 ... 9
21:03 p6eval ng 2c7750: No applicable candidates found to dispatch to for '&infix:<...>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
21:03 pmichaud ng:  say (*+2)(3)
21:03 p6eval ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
21:04 pmichaud ...although implementing WhateverCode and the Whatever forms shouldn't be all that difficult.
21:04 TimToady ng: say 1 ... { $_ + 2 }, 5
21:04 pmichaud ng:  say *.WHAT
21:04 p6eval ng 2c7750: No applicable candidates found to dispatch to for '&infix:<...>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
21:04 p6eval ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
21:05 pmichaud ng:  my $x = *;  say $x.PARROT;
21:05 p6eval ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
21:05 pmichaud I think a dispatcher issue there.
21:05 pmichaud afk, kid studies
21:06 jnthn Ah, just a problem in the way something is creating code objects.
21:06 pmichaud but * by itself shouldn't be a code object.... should it?
21:07 moritz_ nope
21:07 pmichaud it's just.... Whatever.
21:07 pmichaud rakudo:  my $x = *;  say $x.PARROT;
21:07 jnthn pmichaud: Yes, but then you call a method on it.
21:07 p6eval rakudo 7ef386: !whatever_dispatch_helper␤
21:07 pmichaud oh, and calling a method on it turns it into a WhateverCode.... right
21:07 jnthn pmichaud: Right.
21:08 jnthn pmichaud: Apart from something is broken about that atm.
21:08 pmichaud right
21:08 jnthn I think it's untested and then never caught up with the lazy sig init changes.
21:08 sjohnson use python;
21:08 pmichaud use python; fail;
21:09 TimToady std: use python;
21:09 p6eval std : Potential difficulties:␤  Can't locate module python at /tmp/tLX7ySHFKu line 1:␤------> [32muse python[33m⏏[31m;[0m␤ok 00:01 104m␤
21:09 jnthn std: use whitespace;
21:09 p6eval std : Potential difficulties:␤  Can't locate module whitespace at /tmp/55i7EBqiV3 line 1:␤------> [32muse whitespace[33m⏏[31m;[0m␤ok 00:01 102m␤
21:10 TimToady std: use STD;
21:10 p6eval std : ok 00:01 123m␤
21:12 jnthn std: use STD:ver<6>;
21:12 p6eval std : Potential difficulties:␤  Can't locate module STD:ver<6> at /tmp/gGlDMzDQ8b line 1:␤------> [32muse STD:ver<6>[33m⏏[31m;[0m␤ok 00:01 103m␤
21:12 jnthn ;-)
21:12 TimToady std: use STD; my Cursor $c;
21:12 p6eval std : [31m===[0mSORRY![31m===[0m␤In "my" declaration, typename Cursor must be predeclared (or marked as declarative with :: prefix) at /tmp/n74wHEefrB line 1:␤------> [32muse STD; my Cursor[33m⏏[31m $c;[0m␤FAILED 00:01 124m␤
21:13 TimToady std: use STD; my STD::Regex $r;
21:13 p6eval std : ok 00:01 126m␤
21:16 diakopter std: method foo() { method bar() { } }
21:16 p6eval std : ok 00:01 105m␤
21:16 Intensity joined #perl6
21:18 jnthn ng: class Dog { method foo() { say 1; method bar() { say 2 } } }; Dog.foo; Dog.bar;
21:18 p6eval ng 2c7750: sh: ./perl6: No such file or directory␤
21:18 jnthn ng: class Dog { method foo() { say 1; method bar() { say 2 } } }; Dog.foo; Dog.bar;
21:18 p6eval ng 2c7750: 1␤2␤
21:18 jnthn :-)
21:18 pugs_svn r29310 | duff++ | [perl6advent] update schedule
21:33 diakopter std: class Bar is also { };
21:33 p6eval std : ok 00:01 104m␤
21:33 cognominal joined #perl6
21:34 diakopter std: class Foo { }; class Foo is also { };
21:34 p6eval std : [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/kQ5DPAG0T1 line 1:␤------> [32mclass Foo { }; class Foo[33m⏏[31m is also { };[0m␤FAILED 00:01 104m␤
21:35 pugs_svn r29311 | pmurias++ | [mildew] more porting to new STD
21:35 diakopter std: class Bar does Bar { };
21:35 p6eval std : ok 00:01 104m␤
21:38 guest28 joined #perl6
21:39 colomon TimToady: unless someone got up to something when I wasn't looking, ng so far only handles the n1 ... n2 case right now.  It's as dumb as possible, just enough to get a bunch of tests that formerly used .. for that working.
21:41 * pmurias shouldn't have let mildew lag behind STD so much :/
21:42 guest28 Hi. Quick question: If Perl 6 is another language in the Perl family, and if Perl 5 keeps being referred to by many as simply "Perl", is Perl 6 always going to be called "Perl 6" (with a binary named "perl6")?
21:43 moritz_ guest28: I call both Perl 5 and Perl 6 "Perl"
21:44 moritz_ guest28: but if a binary is called "perl", it must default to perl5
21:44 pmurias guest28: Perl 6 will replace Perl 5 once it good enough
21:44 pjcj_ joined #perl6
21:46 sjohnson pmurias: that will be a day to crack a celebration beer
21:46 jnthn pmurias: Provided people choose to use it instead of Perl 5. ;-)
21:47 TimToady when Perl 6 includes Perl 5 as a module, and Perl 5 includes Perl 6 as a module, we can call it all "Perl"  :)
21:49 arnsholt jnthn: I think it's a (very) long term goal
21:49 arnsholt After all, how long did it take before Perl 5 had entirely supplanted Perl 4? (If that has actually happened yet =)
21:51 * diakopter thinks TimToady's last statement should be put into S01
21:53 guest28 Ok. I think I see. With Perl 5, the language is "Perl 5" and the implementation (the binary) is "perl". With Perl 6, the language is Perl 6 (which some might eventually just call "Perl"), and one implementation is called rakudo.
21:53 pugs_svn r29312 | pmurias++ | [mildew] ported over for
21:54 frettled guest28: That's nice and succintly put.
21:54 frettled guest28: To some outsiders who don't care about Perl at all, they're both "Perl" already.  :D
21:55 sjohnson how is SMOP coming along?
21:55 pmurias slowly
21:55 frettled I know this from trying my "hey, would you look at this, it's a new member of the Perl family" and getting a "meh, it's still Perl" response.
21:55 frettled (and not just once!)
21:55 pmurias sjohnson: i'm updating mildew to the current STD.pm
21:55 sjohnson neat
21:56 guest28 @frettled: Well, I would hope so, no? I mean, that's a good sign if people look at Perl 6 code and say, "yeah, that's Perl alright". :)
21:57 sjohnson std: hi
21:57 p6eval std : Undeclared routine:␤       'hi' used at line 1␤ok 00:01 105m␤
21:57 pmurias sjohnson: i added a js backend to mildew, and was focusing on it before as dealing with C and the assorted memory leaks is very fun
21:57 frettled guest28: Yep, it means it's still recognizable as such.
21:57 pmurias * isn't
21:57 frettled And that is sortof the point, isn't it?
21:57 moritz_ actually for http://perlgeek.de/blog-en/pe​rl-6/rats-and-other-pets.html I wrote code that's both valid Perl 5 and Perl 6
21:58 moritz_ and it doesn't look too contrived
21:58 frettled moritz_: cool
21:59 guest28 The only trouble is, if I follow the instructions on the Perl 6 Advent calendar to build a Perl 6, I'm building rakudo, but I *get* a binary called "perl6" instead of "rakudo".
22:00 PerlJam guest28: how is that trouble? :)
22:00 frettled moritz_: huh?  I suggested that blog post?  Oh.
22:00 moritz_ frettled: you suggested the title :-)
22:00 frettled I must have been brilliant in September, for that was a very good blog post.
22:00 moritz_ guest28: at times that bothered me a bit too
22:00 guest28 Because rakudo is supposed to be only one particular impl of Perl 6.
22:01 sjohnson pmurias: keep up the good work
22:01 frettled guest28: Well, yes, ehrm.  Season to taste, and all that.  You get the same problem with Java, actually.
22:03 frettled guest28: I think it may be more of a problem now when none of the implementations are quite 100% functionally compliant and bug-free, but when implementations are functionally equivalent, using the same binary name makes sens.
22:04 frettled It's how we've traditionally done it with other executables in Unix, even with versions that _aren't_ functionally equivalent.  (awk, nawk, gawk, ...)
22:04 guest28 So, perhaps rakudo will name its binary "rakudo" when other Perl 6 implementations come along?
22:04 frettled I don't think it should.
22:04 arnsholt It should certainly be an option to play nice with other implementations
22:05 guest28 Arg. Must go. Thanks for the clarifications all. Bye.
22:05 guest28 left #perl6
22:05 arnsholt But if your system has a Perl 6 implementation installed, it'd make sense to link one of the to /usr/bin/perl6
22:05 frettled arnsholt: like Debian's /etc/alternatives, I suppose
22:06 moritz_ I guess Debian would use the "alternatives" mechan... what frettled said :-)
22:06 frettled Too bad that our guest had to run, I was about to suggest just that, and that "perl6 --version" should say which implementation it is according to some standard.
22:07 frettled Rakudo already identifies itself as Rakudo, but I was thinking about something more similar to the java binary, actually.
22:08 lisppaste3 frettled pasted "Java version identifiers" at http://paste.lisp.org/display/91905
22:08 frettled Like that.
22:09 frettled I don't think an exact copy of that would be necessary, but it's reasonably nice and clean.
22:10 moritz_ when we're so far I'd like to see language version, implementation and implementation version
22:10 * moritz_ peels the Puma off his sweater
22:11 frettled That's essentially how it's done with Java.
22:12 * TimToady peels the sweater off his puma
22:13 moritz_ in Soviet Russia Pumas peal you off :-)
22:13 diakopter pmichaud said that "maybe rakudo should [consider naming its fakecuteable rakudo]", if I recall correctly
22:16 frettled I don't really see any advantage to that.
22:16 jnthn gah...so I need to like, do some cleaning...and I can't figure out how on earth to use my family's super-advanced vacuum cleaner...
22:16 jnthn it blows rather than sucks...
22:16 frettled jnthn: Get paid help! :)
22:16 jnthn yeah!
22:16 diakopter frettled: for less confusion in the long run, imho
22:17 diakopter (because if the most-used distributions will rename it anyway and have an alternatives system.....)
22:17 frettled heh
22:18 frettled lrwxrwxrwx 1 root root 40 2009-10-07 17:55 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java
22:18 frettled that one's not renamed
22:18 frettled Nor is this one:
22:18 diakopter true.. I guess I meant renamed in the PATH resolution-namespace
22:19 * frettled skips that paste.
22:19 frettled RHEL 5 also uses /etc/alternatives, BTW
22:20 frettled I see they use a different Java version than Debian: /usr/lib/jvm/jre-1.4.2-gcj/bin/java
22:20 frettled Anyway, I think it's reasonable that the executable is named perl6 to avoid unintentional side-effects from presumptious programs. :)
22:21 frettled Now I'll crawl back into bed and hope that the fever gives up before tomorrow.  :D  Good-night!
22:22 TimToady get better!
22:22 IllvilJa joined #perl6
22:22 TimToady you'd better get better...
22:22 moritz_ get well soon!
22:23 diakopter frettled: I see, yeah... I guess we're talking about the 'install' target more than the default target
22:23 frettled Thanks, guys.  diakopter: yup
22:23 sjohnson cya
22:23 diakopter apparently the BSDs/Solaris don't use a config-file/symlink-based system like that
22:24 sjohnson frettled: you need to do way instain flu bug>
22:25 jnthn My parry are with the frettled
22:26 sjohnson who lost his concentraiton
22:26 jnthn *lots
22:26 jnthn Know Your Memes!
22:26 pmurias moritz_: aren't pumas North American cats?
22:27 sjohnson jnthn: the lots is when we are "truly sorry"
22:27 jnthn oh!
22:27 jnthn damm!
22:27 jnthn I fail!
22:27 sjohnson but we are truly sorry for his lots none the less
22:27 moritz_ pmurias: this one was made in Herzogenaurch, Germany :-)
22:27 jnthn I am truly sorry for frettled's lots (of bacteria) though.
22:29 * jnthn decides to procrastinate the .does changes until tomorrow.
22:29 jnthn Turned out not quite so straightforward as hoped. :-/
22:30 jnthn Muchly because Parrot insists on being able to turn things into strings and compare them when pointer comp would be just fine (and what Rakudo is going to do...)
22:35 * colomon is trying to install icu on his Mac....
22:38 TimToady jnthn: I'm sure Dijkstra would have no difficulty pinning the brain rot onto the use of Perl 5, which is, after all, just a disguised form of BASIC
22:39 hercynium joined #perl6
22:46 TiMBuS joined #perl6
22:48 thowe that's a hell of a disguise
22:49 IllvilJa The last BASIC I dealt with were with that old Commodore 64 back in the 1980ies.  Compared with that, Perl 5 is rocket science and LHC combined!
22:50 sjohnson basic is the first language  i learned on an apple //e
22:50 sjohnson daddy showed my brother and I how to write code.  i thought it was pretty cool and straightforward
22:50 cognominal I did not know this one : "Object-oriented programming is an exceptionally bad idea which could only have originated in California"
22:51 * colomon imagines LHC means "Low Hanging Chocolate"...
22:51 dbrock mmm...
22:52 cognominal he did not talk of the awful 00 Perl 5 syntax though, even if it is from California too
22:52 nihiliad joined #perl6
22:53 colomon Hmmm, with ICU the unpolar.t crash went away and now I have the words.t crash instead.
22:54 jnthn Ain't it wonderful to have a choice.
22:55 jnthn :-/
22:55 jnthn colomon: It'll just be slightly different memory layout causing the bug to manifest in different ways I guess.
22:55 colomon jnthn: something like that, I'm sure.
22:56 colomon Any notion how I could help track it down here?
22:56 synth joined #perl6
22:57 jnthn colomon: I spent an hour or so looking...unfortunately, the debugger doesn't yield much. --trace=4 makes the problem go away...if we can catch it under that, it *may* help.
22:57 jnthn colomon: I'm not sure if knowing where we've been beforehand will tell us anything.
22:57 colomon Does that go in the perl6 command line?
22:58 jnthn No, you have to run Parrot with that flag.
22:58 jnthn path/to/parrot --trace=4 perl6.pbc script.p6
22:59 colomon okay, that's dumping a lot of something... :)
23:00 colomon oh yup, with that turned on, no crash.
23:07 jferrero joined #perl6
23:11 thowe dang...  C++ is hard
23:12 sjohnson thowe: ... and then Perl came along.  you came to the right place
23:17 colomon rakudo: say hyper 1...10;
23:17 p6eval rakudo 7ef386: Could not find non-existent sub hyper␤in Main (file src/gen_setting.pm, line 324)␤
23:17 colomon hmmm... didn't expect it to do anything useful, but I thought it might at least be stubbed in there.
23:18 thowe been reading about and working with C++ for almost 2 years now and I feel like I know nothing...
23:19 thowe maybe I'm reading the wrong stuff...
23:19 thowe anyway, sorry..  OT  Hurray for Perl!
23:20 colomon I've been working with C++ for 20 years now...
23:21 thowe so you almost have the hang of it then?
23:21 colomon I think I do okay, anyway.  :)
23:21 colomon I stay the hell away from template metaprogramming and things like that.
23:22 thowe Well, I eventually get stuff to work well, but I have to think about it hard.
23:22 thowe It's not easy to read.
23:22 colomon It's incredibly verbose.
23:23 jnthn I suspect if I did C++ I'd find the template metaprogramming too hard not to try and do Crazy Stuff with...
23:23 thowe I like Qt4...
23:23 colomon I'm slowed down with trying funky new stuff because the C++ code I write has to be *very* portable.
23:24 colomon That's as in, I got complaints when I did things earlier this year that made the code not compile on Microsoft's Visual C++ 6.0 Compiler, from circa 1999.
23:25 colomon And I think some customers may still be using Borland's circa 2000 compiler.
23:25 colomon jnthn: for what it's worth, I just got some bus errors using master, too.
23:27 thowe So, I see that there is a markdown "compiler" for Parrot.  I'm not quite sure how to think about that, but does it mean that any parrot lang now can do markdown?
23:27 thowe Can I stick markdown in my Perl 6 somehow for some reason?
23:28 thowe if I am using Rakudo?
23:28 thowe should I be bugging parrot guys with that one?
23:28 colomon thowe: I don't think so.
23:29 colomon (I don't think you can do in rakudo, maybe the parrot guys can tell you more.)
23:31 colomon jnthn: seems like the difference is in master I have to do a lot of computations before the bug triggers, in ng it happens pretty early.
23:36 jnthn thowe: If you can get things set up right, it's possible $output = eval($markdown_input, :lang<markdown>) or some such may work.
23:37 pugs_svn r29313 | lwall++ | [IO] long promised destruction of p{}
23:38 thowe hmm
23:44 colomon Oh, weird.  I've been thinking about how to write a simple Mandelbrot program in p6.
23:45 colomon It felt to me like it ought to be possible to code it using a hyperoperator, but I was having trouble figuring it out.
23:45 colomon Just occurred to me the most natural way might be:
23:46 colomon rakudo: class Complex is also { method mandel() { $z = 0i; my $i = 50; while $z.abs < 2 && $i-- { $z = $z * $z + self; } return $i == -1; }; }; say (0i).mandel;
23:46 p6eval rakudo 7ef386: Confused at line 2, near "return $i "␤in Main (file <unknown>, line <unknown>)␤
23:47 colomon rakudo: class Complex is also { method mandel() { $z = 0i; my $i = 50; while $z.abs < 2 && $i-- { $z = $z * $z + self; };  return $i == -1; }; }; say (0i).mandel;
23:47 p6eval rakudo 7ef386: Symbol '$z' not predeclared in mandel (/tmp/Yo858t1QYV:2)␤in Main (file <unknown>, line <unknown>)␤
23:47 colomon rakudo: class Complex is also { method mandel() { my $z = 0i; my $i = 50; while $z.abs < 2 && $i-- { $z = $z * $z + self; };  return $i == -1; }; }; say (0i).mandel;
23:47 p6eval rakudo 7ef386: 1␤
23:48 colomon That strikes me as a rude way to code it, but it's the best I've been able to figure out so far.
23:49 colomon Then you can just load up a 2D list with the complex points you're interested in, and do >>.mandel on it.
23:50 coppro joined #perl6
23:51 Psyche^ joined #perl6
23:53 colomon rakudo: say (0i ... 10i).perl
23:53 p6eval rakudo 7ef386: Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤
23:55 colomon rakudo: say (0i ... { $_ + (1/10)i }, 1i).perl
23:55 p6eval rakudo 7ef386: Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤
23:56 colomon rakudo: say (0i, (1/10)i, (2/10)i, ... 1i).perl
23:56 p6eval rakudo 7ef386: Confused at line 2, near "1i).perl"␤in Main (file <unknown>, line <unknown>)␤
23:56 colomon rakudo: say (0i, (1/10)i, (2/10)i ... 1i).perl
23:57 p6eval rakudo 7ef386: Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤
23:58 coppro is the rule about 'default' coming last a syntactical one, or one of convenience?
23:58 coppro (in a 'given' block)
23:58 colomon default will execute the block that follows whenever it is reached.
23:58 colomon so anything that comes after it cannot be executed.
23:59 colomon (Well, unless that block breaks or something like that.)
23:59 colomon sorry, continues, not breaks.

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

Perl 6 | Reference Documentation | Rakudo