Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-04-16

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:05 ruben1194navarro joined #perl6
00:08 cdarroch left #perl6
00:14 ruben1194navarro left #perl6
00:16 ymasory left #perl6
00:23 xinming_ left #perl6
00:23 xinming joined #perl6
00:24 s1n joined #perl6
00:36 cookys left #perl6
00:38 colomon left #perl6
00:42 MindosCheng left #perl6
00:46 colomon joined #perl6
01:12 stkowski left #perl6
01:14 whiteknight left #perl6
01:52 cxreg joined #perl6
02:03 ymasory joined #perl6
02:09 orevdiabl left #perl6
02:09 revdiablo joined #perl6
02:09 revdiablo left #perl6
02:09 revdiablo joined #perl6
02:21 jedai left #perl6
02:21 jedai joined #perl6
02:35 alester joined #perl6
02:40 leprevost joined #perl6
02:49 ymasory left #perl6
03:19 _jaldhar joined #perl6
03:37 alester left #perl6
03:43 gantrixx left #perl6
03:51 sunnavy left #perl6
03:51 sunnavy joined #perl6
03:52 sunnavy left #perl6
03:52 sunnavy joined #perl6
03:55 orafu left #perl6
03:56 orafu joined #perl6
04:01 jrockway left #perl6
04:01 jrockway joined #perl6
04:01 envi joined #perl6
04:08 am0c joined #perl6
04:13 sunnavy left #perl6
04:14 sunnavy joined #perl6
04:18 sunnavy left #perl6
04:18 sunnavy joined #perl6
04:22 [particle]1 joined #perl6
04:24 [particle] left #perl6
04:25 nymacro joined #perl6
04:26 bluescreen10 left #perl6
04:42 MayDaniel joined #perl6
04:52 f00li5h joined #perl6
04:57 colomon left #perl6
05:00 spinclad left #perl6
05:07 Khisanth left #perl6
05:07 colomon joined #perl6
05:12 Khisanth joined #perl6
05:22 MayDaniel left #perl6
05:22 dayangkun joined #perl6
05:34 justatheory left #perl6
05:34 am0c left #perl6
05:35 dayangkun_ joined #perl6
05:38 dayangkun left #perl6
05:46 cookys joined #perl6
06:12 s1n left #perl6
06:13 s1n joined #perl6
06:24 birdwindupbird joined #perl6
06:27 molaf joined #perl6
06:27 devnull_ joined #perl6
06:33 devnull_ left #perl6
06:39 miso2217_ morning all
06:40 miso2217_ Is there a Data::Dumper stype .perl (with indentation for huge data structures) for perl6?
06:47 TimToady there is a .pretty method specced, but I don't think it's implemented yet
06:56 dayangkun_ left #perl6
06:57 dayangkun_ joined #perl6
06:58 araujo left #perl6
06:59 sorear we're not quite sure how it should best work
07:11 miso2217_ sorear: why? What are the possible issues?
07:11 dayangkun__ joined #perl6
07:14 birdwindupbird left #perl6
07:14 dayangkun_ left #perl6
07:21 sorear miso2217_: there are just a lot of decisions to make, and Perl 6 hackers are by their nature perfectionists
07:42 dayangkun_ joined #perl6
07:43 daxim joined #perl6
07:44 dayangkun__ left #perl6
07:49 miso2217_ sorear: I would personally be quite happy to use .perl whith a few tabs and newlines. Is the discussion on the .pretty issues available somewhere? (irc logs?). Perfectionism is good, a less than perfect .pretty is better than none at all I think.
07:50 dayangkun__ joined #perl6
07:51 dayangkun_ left #perl6
07:54 Mowah joined #perl6
08:05 birdwindupbird joined #perl6
08:08 mberends miso2217_: http://irclog.perlgeek.de/search.pl?c​hannel=perl6&nick=&q=.pretty # you can also search for other keywords ;-)
08:12 mberends afair .perl whether pretty or not is unable to deconstruct all possible data back to the perl6 code that could reconstruct it. There are so many difficult corner cases.
08:15 birdwindupbird left #perl6
08:19 mberends rakudo: my $u = -> $s { $s.uc.say }; $u("hi"); $u.perl.say # <-- miso2217_
08:19 p6eval rakudo 5ac05e: OUTPUT«HI␤{ ... }␤»
08:21 starcoder is now known as spameggs
08:21 spameggs is now known as starcoder
08:22 mberends some perfectionists believe that the ... above should rather be the source code of the pointy sub, but implementing that is either hard or impossible.
08:22 tadzik sounds possible to me. Isn't that quite similar to .WHY?
08:23 tadzik So we include the original source code with every object in the code
08:23 tadzik like .orig in Match
08:23 tadzik not that I like the idea
08:24 birdwindupbird joined #perl6
08:24 masak joined #perl6
08:24 masak salutations, #perl6.
08:24 tadzik hello masak
08:25 masak first day in quite a while with some time available for Perl 6. :)
08:26 * masak pulls and builds
08:26 tadzik tbh, I'd like to see a sub with a signature, but the source code? Meh
08:26 mberends \o/
08:26 miso2217_ mberends: And what says the spec on that?
08:27 masak tadzik: I'm quite neutral on "seeing the source code", but I'd definitely like to access it, if need be.
08:27 mberends miso2217_: dunno, you read it and tell me please
08:28 masak tadzik: the Ruby people seem to get quite a bit of mileage out of analyzing source code as ASTs.
08:29 mberends shopping(nom) &
08:29 miso2217_ mberends: ok I'll look at this
08:29 tadzik masak: well, I don't quite like the idea to be honest
08:30 birdwindupbird left #perl6
08:36 miso2217_ the spec says .pretty is just a .perl with formatting, the .pretty method doesn't seem to have any aditionnal features compared to .perl
08:37 tadzik `makes sense
08:38 dayangkun joined #perl6
08:38 miso2217_ to me as well
08:39 miso2217_ how difficult would it be to try some rakudo hacking on the implementation of the .pretty method?
08:40 dayangkun__ left #perl6
08:41 tadzik not :)
08:41 tadzik we just need some manpower I suppose
08:42 tadzik tuned .perl for arrays and hashes alone would be quite .pretty I think
08:43 miso2217_ There was a doc on implementing new methods for rakudo in perl6, I just cann't remember where, any ideas?
08:43 tadzik moritz blog I suppose
08:44 miso2217_ tadzik: exactly what I think, I'm using .perl to dump moderatly complex data structures and it quickly becomes useless because of the lack of readability
08:44 tadzik it's basically use MONKEY_TYPING and augment class someclass {}
08:44 tadzik miso2217_: I know that feeling
08:45 tadzik rakudo: use MONKEY_TYPING; augment class Array { method perl { "foobar" } }; [1,2,3].perl.say
08:45 p6eval rakudo 5ac05e: OUTPUT«===SORRY!===␤A method named 'perl' already exists in class 'Array'. It may have been supplied by a role.␤»
08:45 tadzik shite
08:46 tadzik rakudo: my @a = 1, 2, 3 but role { method perl { "foobar" } }; @a.perl.say
08:46 p6eval rakudo 5ac05e: OUTPUT«[1, 2, foobar]␤»
08:46 tadzik precedence
08:47 tadzik rakudo: my @a = 1, 2, 3; @a = @a but role { method perl { "foobar" } }; @a.perl.say
08:47 p6eval rakudo 5ac05e: OUTPUT«[1, 2, 3]␤»
08:47 miso2217_ shouldn't the role by applied on the Array type instead of the instance?
08:48 * tadzik wonders why the augment example actually doesn't work
08:48 miso2217_ s/by/be/
08:48 tadzik miso2217_: yeah, should
08:49 tadzik hmmm
08:50 miso2217_ strange
08:50 miso2217_ I'll play with it later, o/
08:50 tadzik rakudo: use MONKEY_TYPING; augment class Array { method pretty { self.perl.subst(/ /, "\n } }; [1,2,3].perl.say
08:50 p6eval rakudo 5ac05e: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near ", \"\\n } };"␤»
08:50 tadzik prr
08:50 dayangkun_ joined #perl6
08:50 tadzik rakudo: use MONKEY_TYPING; augment class Array { method pretty { self.perl.subst(/ /, "\n", :g) } }; [1,2,3].pretty.say
08:50 p6eval rakudo 5ac05e: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near ", \"\\n\", :g"␤»
08:50 tadzik rakudo: use MONKEY_TYPING; augment class Array { method pretty { self.perl.subst(" ", "\n", :g) } }; [1,2,3].pretty.say
08:51 p6eval rakudo 5ac05e: OUTPUT«[1,␤2,␤3]␤»
08:51 tadzik hi-ha
08:52 tadzik alright, I got motivated
08:52 broquaint left #perl6
08:52 am0c joined #perl6
08:53 broquaint joined #perl6
08:53 Mowah left #perl6
08:53 dayangkun left #perl6
08:54 tadzik oh funny, my Rakudo doesn't work :)
09:11 dayangkun__ joined #perl6
09:12 envi left #perl6
09:14 dayangkun_ left #perl6
09:14 yegor left #perl6
09:19 yegor joined #perl6
09:31 daxim left #perl6
10:00 woosley joined #perl6
10:01 masak $ touch Foo.pm
10:01 masak $ perl6
10:01 masak > use Foo
10:01 masak _block110
10:01 masak > use Foo
10:01 masak P
10:02 masak > ^C
10:02 masak I'd consider the above a bug if I understood it better.
10:02 masak so let's start at the top. what piece of code is '_block110' here?
10:02 masak should it really be returned? what's the use case?
10:03 masak and what in the world does "P" mean?
10:03 tadzik masak: consider ^D instead of ^C :)
10:03 masak thanks :P
10:03 masak I usually do ^D, but I just wanted to get out of the REPL this time... :)
10:04 masak anyway, unless there are acausal things involved, that shouldn't matter for the above questions.
10:04 tadzik sure
10:05 tadzik for me it could just return Bool::True
10:10 moritz good mroning
10:10 masak morning, moritz.
10:11 tadzik good mroritz
10:11 dayangkun_ joined #perl6
10:12 masak rakudo: use Test
10:12 p6eval rakudo 5ac05e:  ( no output )
10:12 masak rakudo: my $c = (use Test)
10:12 p6eval rakudo 5ac05e: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤    in file 'EVAL_11' line 25077063␤===SORRY!===␤syntax error ... somewhere␤»
10:12 masak wonderful error message.
10:12 masak but I just submitted a rakudobug with that one.
10:12 tadzik when /imcc/ { poke whiteknight } :)
10:12 pernatiy left #perl6
10:14 s1n left #perl6
10:14 spinclad joined #perl6
10:15 dayangkun__ left #perl6
10:18 s1n joined #perl6
10:19 masak some of you may remember my little experiment Index::Multidim: https://gist.github.com/892178
10:19 masak I plan to rewrite it to reach a bit further.
10:19 masak in short, I'm too eager for S09 features to actually sit around and wait for them ;)
10:20 masak the reason I'm bringing it up here is that I'd like to bounce around a few design decisions.
10:20 frettled Ah, the good old bouncy-bouncy.
10:20 masak notable, the whole API thing.
10:20 masak I'd like a natural syntax for calling into Index::Multidim. that's really the most important part.
10:21 masak you'll note that I currently use an infix:<@@> operator and pass in a string.
10:21 masak in retrospect, I think both of these decisions might've been wrong :)
10:22 frettled If not outright ugly. :)
10:22 masak even that.
10:23 masak the nice thing with passing in a string is that the string will look exactly like the S09 syntax.
10:23 frettled yup
10:23 frettled That's what made it an acceptable hack in my book.
10:23 masak the trouble with passing in a string is that it gets increasingly tricky to parse that string as we pile on features.
10:23 masak variable interpolation. ranges. combinations of these features.
10:24 frettled and if someone throws in a string in there…
10:24 masak right. it starts degrading pretty quickly.
10:24 masak now, as to alternatives to that:
10:25 masak I found out that I could declare an infix:<;> operator, and then use that within an actual [] array constructor.
10:25 masak I think that has real potential. because then I could pass in actual ranges, actual variables, actual whatevers, and so on.
10:25 masak but!
10:25 frettled Hmm.
10:26 masak I think in today's Rakudo, I'm fairly limited in setting the precedence of infix:<;>.
10:26 masak is that correct?
10:26 frettled *crickets*
10:27 masak rakudo: class Semi { has $.lhs; has $.rhs }; our sub infix:<;>($lhs, $rhs) { Semi.new(:$lhs, :$rhs) }; say [1,2;3,4,5;6].perl
10:27 p6eval rakudo 5ac05e: OUTPUT«[1, Semi.new(lhs => 2, rhs => 3), 4, Semi.new(lhs => 5, rhs => 6)]␤»
10:28 masak that's not what I want.
10:28 masak infix:<;> gets a tighter precedence than infix:<,>.
10:28 frettled Oh bugger...
10:28 masak now, I don't think that's a showstopper.
10:29 masak if nothing else, I think I can post-process that Array to get out what it should've been! :)
10:29 frettled Yep, that's pretty much it for your neat solution.
10:29 masak please shudder in unison.
10:29 * frettled shudders in unison.
10:29 masak ;)
10:29 masak I'll have lunch, and then write such a post-processor.
10:30 masak in the meantime, if anyone knows of a better way, feel free to speak up.
10:30 frettled I'll go for a bike ride, and will probably be idle for a looong time again.  :D
10:30 * frettled thinks masak is on a right-ish track, at least.
10:30 masak frettled: it was nice bouncing with you.
10:30 frettled masak: nice bouncing with you too! :D
10:30 masak :D
10:40 tadzik frettled: please watch your wrists :)
10:40 dayangkun_ left #perl6
10:40 tadzik I hope it's not too late :)
10:41 daxim joined #perl6
10:41 * masak hugs poor tadzik
10:43 * tadzik hugs back
10:43 tadzik this gypsum makes typing quite entertaining
10:43 masak phenny: "gypsum"?
10:43 phenny masak: Language guessing failed, so try suggesting one!
10:44 moritz phenny: "gips"?
10:44 phenny moritz: "gypsum" (ro to en, translate.google.com)
10:44 masak :P
10:44 moritz phenny: de "gips"?
10:44 phenny moritz: "gypsum" (de to en, translate.google.com)
10:44 moritz :-)
10:44 masak phenny: se "gips"?
10:44 phenny masak: "gypsum" (se to en, translate.google.com)
10:44 whiteknight joined #perl6
10:44 masak phenny: "vit riddare"?
10:44 phenny masak: "white knight" (sv to en, translate.google.com)
10:45 tadzik hrm
10:45 tadzik this heavy white thing they put on your hand when it's broken
10:45 moritz not "rider"?
10:45 tadzik phenny: "gips"?
10:45 phenny tadzik: "gypsum" (ro to en, translate.google.com)
10:46 flussence cast?
10:46 masak moritz: no, that's "ryttare".
10:46 masak moritz: a bit inconsistent, I know.
10:46 masak phenny: se "ryttare"?
10:46 phenny masak: "rider" (se to en, translate.google.com)
10:46 tadzik maybe a cast
10:46 masak yes, a cast.
10:46 daxim left #perl6
10:47 moritz phenny: "ritter"?
10:47 phenny moritz: "Knight" (de to en, translate.google.com)
10:47 moritz phenny: "reiter"?
10:47 phenny moritz: "Reiter" (de to en, translate.google.com)
10:47 * moritz didn't know that Reiter was an English word too
10:48 masak it isn't :)
10:48 tadzik phenny: "halt"?
10:48 phenny tadzik: "containing" (de to en, translate.google.com)
10:48 tadzik phenny: oh, really?
10:48 tadzik phenny: "hammerzeit"?
10:48 phenny tadzik: Language guessing failed, so try suggesting one!
10:48 masak rakudo: class Multiproxy { has $.target; method postcircumfix:<[ ]>($x) { say "Doing multidim on $.target.WHICH() with $x.perl()!" } }; role Multidim { method multi { return Multiproxy.new(:target(self)) } }; my @a; @a does Multidim; @a.multi[1,2]
10:48 p6eval rakudo 5ac05e: OUTPUT«Doing multidim on 36356296 with (1, 2)!␤»
10:48 masak I believe we have something here.
10:49 masak how'd you like that syntax? :)
10:49 tadzik du du dum :)
10:49 envi joined #perl6
10:49 tadzik is that the S09 syntax?
10:49 masak no, there's an extra '.multi' there.
10:49 masak and this is without the semicolons, so far.
10:49 masak but it shows that it's possible to wire up.
10:50 masak rakudo: class Multiproxy { has $.target; method postcircumfix:<[ ]>($x) { say "Doing multidim on $.target.WHICH() with $x.perl()!" } }; role Multidim { method multi { return Multiproxy.new(:target(self)) } }; my @a does Multidim; @a.multi[1,2]
10:50 p6eval rakudo 5ac05e: OUTPUT«Doing multidim on 55283216 with (1, 2)!␤»
10:50 masak I like that a lot.
10:50 moritz without semicolon you'll just have troubles mixing slices and multi dim
10:50 masak yes, but see above. I think I can simulate the real behaviour of the semicolon.
10:51 masak define infix:<;> as building a Semi object, and then post-translate from Semi to LolSlice.
10:51 tadzik lolisliced!
10:51 masak man, I love the power of ASTs.
10:51 masak that's really a blog post all on its own.
10:56 masak the post-translation will take [1, Semi.new(:lhs(2), :rhs(3)), 4, :lhs(5), :rhs(6))] and turn it into [LolSlice.new([1, 2]), LolSlice.new([3, 4, 5]), LolSlice.new([6])]
10:56 jnthn teh weekend \o/
10:56 masak \o/
10:57 am0c left #perl6
10:58 pernatiy joined #perl6
11:00 uniejo left #perl6
11:01 tadzik yay, let's go biking... ohwait :(
11:01 leprevost left #perl6
11:02 masak tadzik: you're facing a time of less strenuous activity. take advantage of it. read books. re-read the apocalypses/synopses. learn Haskell. see the opportunities. :)
11:05 tadzik :)
11:09 coldhead left #perl6
11:12 dju joined #perl6
11:13 daxim joined #perl6
11:32 daxim_ joined #perl6
11:34 daxim left #perl6
11:37 daxim_ left #perl6
11:38 daxim_ joined #perl6
11:45 daxim_ left #perl6
11:45 JimmyZ joined #perl6
11:46 daxim_ joined #perl6
11:54 Patterner left #perl6
11:56 Psyche^ joined #perl6
11:57 Psyche^ is now known as Patterner
12:04 icwiener joined #perl6
12:13 f00li5h left #perl6
12:14 JimmyZ left #perl6
12:14 _twitch joined #perl6
12:14 am0c joined #perl6
12:15 masak it is *so good* to be writing Perl 6 again.
12:22 am0c left #perl6
12:22 colomon masak++
12:23 _twitch left #perl6
12:25 meswami joined #perl6
12:32 masak awww.
12:32 masak who would have guessed, declaring a sub infix:<;> causes problems...
12:32 masak rakudo: our sub infix:<;>($lhs, $rhs) {}; { say "A"; say "B" }
12:32 p6eval rakudo 5ac05e:  ( no output )
12:32 masak :(
12:33 masak rakudo: our sub infix:<;>($lhs, $rhs) { say $lhs, $rhs }; 1; 2; 3
12:33 p6eval rakudo 5ac05e: OUTPUT«infix:<;>1␤Bool::True2␤Bool::True3␤»
12:34 masak I believe this is backwards. the stopper ';' should take precedence over any declared infixes, unless we're inside a parenthetical thingy.
12:34 * masak submits rakudobug
12:35 masak oh well. will have to use double ';;' for Index::Multidim. not really a problem, but would've been nicer with single ones.
12:37 envi left #perl6
12:38 envi joined #perl6
12:42 jnthn What does STD think?
12:42 jnthn std: sub infix:<;>($lhs, $rhs) {}; { say "A"; say "B" }
12:42 p6eval std 4608239: OUTPUT«Potential difficulties:␤  $rhs is declared but not used at /tmp/UjV4z1oj7u line 1:␤------> [32msub infix:<;>($lhs, [33m⏏[31m$rhs) {}; { say "A"; say "B" }[0m␤  $lhs is declared but not used at /tmp/UjV4z1oj7u line 1:␤------> [32msub infix:<;>([33m⏏[31m$lhs, $rhs) {}; {
12:42 p6eval ..say "…
12:42 jnthn std: sub infix:<;>($, $) {}; { say "A"; say "B" }
12:42 p6eval std 4608239: OUTPUT«ok 00:01 122m␤»
12:42 colomon how can std tell the difference?
12:42 colomon errr, that's not what I wanted to say
12:42 jnthn std does know about user defined operators
12:43 jnthn I'm thinking that example doesn't force it to reveal what it's parsing that ; as though
12:43 colomon that's what I meant
12:43 jnthn And wondering how to construct one that does :)
12:43 colomon without executing the code, I can't see how to do it.
12:44 f00li5h joined #perl6
12:44 jnthn Well, we could look at the AST that STD produces, but that needs somebody with a local STD :)
12:45 mj41 joined #perl6
12:45 colomon yeah
12:47 masak yes, that's the ticket. looking at viv output.
12:47 masak I also don't have that set up. I definitely should.
12:47 jnthn oh, maybe you can do it with statement modifiers
12:47 jnthn std: sub infix:<;>($, $) {}; { say "A" if 1; say "B" if 1; }
12:47 p6eval std 4608239: OUTPUT«ok 00:01 122m␤»
12:48 jnthn I expect that'd fail if the ; wasn't being parsed as a statement sep there.
12:48 masak jnthn++
12:48 * masak submits rakudobug
12:49 jnthn You already did submit the Rakudo bug! :P
12:49 colomon std: (say "A" if 1;) + 10
12:49 p6eval std 4608239: OUTPUT«ok 00:01 121m␤»
12:49 masak apparently I'm getting senile.
12:49 colomon std: (say "A" if 1) + 10
12:49 p6eval std 4608239: OUTPUT«ok 00:01 121m␤»
12:49 masak ok, I'll just amend that ticket, then.
12:49 colomon jnthn: are you sure?
12:50 masak colomon: yes, it's the 'if' twice that makes it work.
12:51 jnthn std: say "A" if 1 + say "B" if 1
12:51 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/0oSvOuPJP1 line 1:␤------> [32msay "A" if 1 + say "B" [33m⏏[31mif 1[0m␤    expecting statement_mod_loop␤Parse failed␤FAILED 00:01 120m␤»
12:53 Mowah joined #perl6
12:55 noganex joined #perl6
12:56 daxim_ left #perl6
12:57 daxim_ joined #perl6
12:58 noganex_ left #perl6
13:01 daxim__ joined #perl6
13:02 daxim_ left #perl6
13:05 noganex left #perl6
13:07 masak rakudo: class Semi { has $.lhs; has $.rhs }; our sub infix:<;;>($lhs, $rhs) { Semi.new(:$lhs, :$rhs) }; say [1;;2;;3].perl
13:07 p6eval rakudo 5ac05e: OUTPUT«[Semi.new(lhs => Semi.new(lhs => 1, rhs => 2), rhs => 3)]␤»
13:07 masak hmmm.
13:08 masak I don't think I've encountered the kind of transformation that I need to do here before.
13:08 masak it's a kind of flattening-and-separation.
13:09 Chillance joined #perl6
13:10 jnthn It looks more like you just want it parsed at list precedence?
13:10 noganex joined #perl6
13:10 jnthn er
13:10 jnthn list associativity
13:12 masak is there a way to do that in Rakudo?
13:14 jnthn Not easily.
13:14 masak thought so.
13:14 masak which is why I'm post-processing it to look like it had list associativity all along.
13:14 masak in a twisted way, that's kinda fun, too.
13:16 hanekomu joined #perl6
13:16 * jnthn goes to read for a bit
13:16 hudnix joined #perl6
13:21 AdamGallagher_ joined #perl6
13:23 AdamGallagher_ If you're a programmer, want to create a 2D real-time MMORPG with me? I can provide the art, here's a sample: http://i55.tinypic.com/2yxrdkl.png. If interested, my MSN and email is writing-a-new-one@live.co.uk
13:26 tadzik I was expecting Rick Astley on the picture
13:27 masak AdamGallagher_: do you plan to use Perl 6?
13:27 AdamGallagher_ Yes.
13:28 masak hm. challenging.
13:28 masak what graphics library? or is that as yet undecided?
13:30 Adam93 joined #perl6
13:30 AdamGallagher_ left #perl6
13:31 tadzik darn
13:31 masak something tells me that wasn't a stay-on anyway...
13:31 masak I'd love to see something like that get done in Perl 6. but I also don't think it's a particularly easy First Project at this point.
13:32 masak to say the least.
13:32 meswami left #perl6
13:32 tadzik aye
13:32 tadzik but it reminded me of making an ncurses module :)
13:32 masak there's ncurses in Parrot, so that should be fairly straightforward.
13:32 tadzik oh
13:34 tadzik that's a pir I've never seen before
13:36 uniejo joined #perl6
13:37 masak rakudo: sub foo { my @a = 1, 2, 3; push @a, 4, 5, 6 }; say foo.perl
13:37 p6eval rakudo 5ac05e: OUTPUT«[1, 2, 3, 4, 5, 6]␤»
13:40 Adam93 left #perl6
13:40 AdamGallagher_ joined #perl6
13:40 masak AdamGallagher_: welcome back. :)
13:42 AdamGallagher_ Thank you.
13:42 tadzik seen supernovus
13:42 aloha supernovus was last seen in #perl6 88 days 16 hours ago saying "Well, that set of optimizations seems to have helped, went from 1m16.339s with the old page generation method to 0m41.936s with the new one.".
13:43 masak AdamGallagher_: I think the MMORPG idea is cool. I'm wondering if Perl 6 is ready for it yet, though.
13:44 masak AdamGallagher_: two things: first, the graphics part. I haven't seen a connection to any graphics library that would help you build such a game. second, the real-time part. I think you might find Rakudo's performance... wanting.
13:44 masak I say this not to discourage you, but to let you know what the limitations are right now.
13:46 AdamGallagher_ Yeah, I suppose so. The engine has not been chosen yet, and I've just been nailing out the basic tiles/sprites for the project, so the language is flexible.
13:46 masak maybe Niecza would be a viable target.
13:47 masak sorear might know more about which graphics libs are accesible from Niecza on Mono or the CLR.
13:49 masak AdamGallagher_: I know pygame is generally well-liked as a game library: http://www.pygame.org/news.html
13:49 tadzik pygame is just SDL bindings, isn't it?
13:50 masak seems that way.
13:50 masak here's one game written with pygame: http://taw.chaosforge.org/jrpg/
13:50 masak seems to be RPG-ish, but it's for learning kanji.
13:52 pernatiy left #perl6
13:54 AdamGallagher_ left #perl6
13:55 masak huh. I'm so used to vim that I find it hard to use nano or pico nowadays. the keyboard shortcuts are so... arbitrary! :)
13:55 masak ^O for saving? really??
14:03 ymasory joined #perl6
14:04 risou joined #perl6
14:07 colomon left #perl6
14:10 colomon joined #perl6
14:18 tadzik surveytime! ~/.perl6/doc/Foo::Bar/some_example or ~/.perl6/doc/Foo/Bar/some_example?
14:18 tadzik the latter then, thanks
14:20 jnthn ^O feels like "open" :)
14:23 geekosaur ^Kd :)
14:26 masak tadzik: I'd go with the latter as well.
14:28 tadzik especially having the namespaces stuff in mind, as in with HTTP::Server, HTTP::Server::Simple, HTTP::Server::Simple::PSY etc
14:29 tadzik o/
14:30 tadzik ww
14:32 masak ooh, this Index::Multidim thing is really coming together.
14:32 masak I'm currently at 77 lines, and I already handle most of the important plumbing.
14:33 masak I don't know if you're aware, but Perl 6 is a terrific language for these things ;)
14:33 lateau joined #perl6
14:34 tadzik :)
14:34 tadzik I'm starting to find TDD terrific
14:34 mj41 left #perl6
14:34 tadzik instead of thinking "how do I make this work" I think "I'll write a test for it, let's see what will happen"
14:36 masak same here.
14:36 jnthn masak: Is Index::Multidim related to S09?
14:36 masak yes.
14:37 * moritz finds the lingual proximity of "terrible" and "terrific" curious
14:37 jnthn yay :)
14:37 masak it gives us some of the goodness from S09 using an external library.
14:37 masak moritz: both used to mean "frightening".
14:37 jnthn masak: Anything that could eventually make it into core Rakudo?
14:38 geekosaur moritz: IIRC they are related in much the way "awe" and "awful" are
14:38 masak jnthn: I'm not aiming for that, but I wouldn't rule it out either.
14:38 jnthn moritz: You can use "terribly good" to mean "really really good" :)
14:38 moritz geekosaur: that was the second connection I thought of :-)
14:38 masak it's just a process by which negative words enter slang and become positive words.
14:39 jnthn Aye. The "terribly good" thing appears in Slovak too. I was a little surprised to see the idiom pop up in a literally translatable way. :)
14:39 masak in the book "Rainbows end", which takes place ~30 years into our future, the word "tragic" has become slang and means "cool, awesome". :)
14:40 tadzik :)
14:40 jnthn A school teacher friend in the UK says that some of her pupils are now starting to use the word "sick" to mean "awesome".
14:40 jnthn For my generation it decidedly means disgusting. :)
14:40 geekosaur that's several years old in the US
14:40 moritz that probably takes some time to get used to :-)
14:41 jnthn geekosaur: Gah, why'd it have to cross the atlantic... :P
14:42 geekosaur it's some corollary of bad news traveling faster than good, I think
14:42 geekosaur :)
14:43 tadzik that's because humans are interested in sad things, at least some of them
14:43 tadzik news are full of death, sadness and hate. I think there is a Day of Good News in Poland, in which TV stations at least try to broadcast happy things
14:45 masak I think positive words become worn out, and negative words take their place because they evoke some emotion. and people who are hip don't mind that they mean the opposite of what they want to express.
14:45 masak "wow, that is so disturbed! kudos!"
14:46 geekosaur that's some of it.  there's also some amount of the younger generation wanting to shock or at least confuse the older
14:46 tadzik words of the wise, indeed
14:46 tadzik true too
14:50 masak all tests pass. oh, what joy.
14:50 jnthn Time to write more tests.
14:52 tadzik shh!
14:52 jnthn So, where had I got to with nqp/ctmo...
14:52 tadzik "all tests pass for me too!"
14:53 tadzik oh so it's hackathon time?
14:53 tadzik (say yes, I have a beer which needs a use-case)
14:54 jnthn tadzik: Yes, the first tuit-less half of my month is over, and now I should have far more Perl 6 time :)
14:54 masak yes, I'm already writing more tests. :)
14:54 tadzik yay :)
14:54 Axius joined #perl6
14:57 masak oh dear. it's not just comma.
14:57 masak guess how .[0..1;;2] is parsed... :/
14:57 masak well, down the rabbit-hole we go.
14:57 colomon 0 .. (1;;2), eh?
14:57 masak yup.
14:59 masak luckily, there's only a finite number of these cases.
15:03 tadzik hmm. Is there a blocker for the META.info-based ecosystem to become The Ecosystem other than making modules.perl6.org use it?
15:04 * moritz just read perl6-users. OH NOEZ
15:05 colomon moritz: what's up?
15:05 * moritz anticipates another totally useless thread
15:05 icwiener_ joined #perl6
15:05 moritz "Does there currently exist a set of criteria by which Perl6, or an implementation thereof, can be defined as "production-ready"?
15:05 moritz "
15:05 tadzik when is that?
15:06 moritz I'm inclined to answer "no", or put that thread on my ignore list before I read any more mails
15:06 tadzik oh, it's "now()"
15:06 moritz like, 4 minutes ago
15:06 tadzik moritz: please don't
15:06 moritz which one?
15:06 tadzik if they keep asking, then we probably need to announce it wide and open
15:07 tadzik more wide and more open, if needed. And reply to the email with the link
15:07 tadzik then put it in some FAQ, and then we can dance macarena and laugh everytime someone asks that
15:07 tadzik so far, I can understand their worries
15:07 icwiener left #perl6
15:08 tadzik so, who wants to blog about this? :)
15:08 masak moritz: it's natural of people becoming more involved asking questions like these. think of it as an initiation rite.
15:09 masak moritz: and the answers we give are usually so warped by our echo chamber that they don't really make it across. so people keep asking.
15:10 tadzik like with "when will perl6 be complete, and how soon is that"
15:11 moritz ok, I've written a reply, against better judgement
15:13 tadzik given the api change, as in repo-url => source-url in META.info, how should things like this be announced? Make a module installer complain about this? It's stupid, not every user is a module developer
15:13 pernatiy joined #perl6
15:14 tadzik moritz: good too (the reply)
15:14 tadzik that quite sums it up
15:15 * masak also sent a reply
15:15 masak tadzik: I'd suggest doing what you did last time: bugging developers until everyone's switched over.
15:15 masak tadzik: if you phrase it in the form of a badge to be gained, it's not so bad :)
15:16 gdey joined #perl6
15:16 masak "get the source-url badge for your Perl 6 module!"
15:16 masak s/get/earn/
15:16 masak "here's what you need to do:" -- and then very concrete instructions, step by step.
15:17 masak that, combined with nagging.
15:18 leprevost joined #perl6
15:18 tadzik so 1) panda commit, 2) perl6-users mail, 3) hacking on modules.perl6.org to make it ecosystem-friendly, 4) adding an Up-to-date badge for the modules
15:18 tadzik s/ecosystem/new ecosystem/
15:19 tadzik and hopefully 5) merging the new-ecosystem
15:19 frettled tadzik: wrists? :)
15:19 tadzik frettled: oh, how did the biking go? :)
15:19 masak tadzik: with (2), maybe a blog post as well. easier to link to when people ask for instructions.
15:19 masak and easier to update after the fact.
15:20 frettled tadzik: just fine, but I'm exhausted, I underestimated the needed energy intake before the trip, so I ended up doing ≈ 40-45 minutes on reserve energy.  :)
15:20 tadzik frettled: I was skateboarding on thursday and broke my wrist, hence my warning: watch out :)
15:20 frettled tadzik: aha!
15:20 gdey left #perl6
15:20 tadzik oh, shiny!
15:20 tadzik .u ≈
15:20 phenny U+2248 ALMOST EQUAL TO (≈)
15:20 tadzik I need this in my keyboard layout
15:21 frettled tadzik: But broken wrists suck :(  You have my sympathy!  (For us bicylists, it's the collarbone that we worry about. ;)
15:21 TimToady .u ≋
15:21 phenny U+224B TRIPLE TILDE (≋)
15:22 masak ouch, collarbone. :/
15:24 TimToady masak: btw, STD used to try to parse semi as an operator, but it's much simpler to parse ; as statement sep
15:24 TimToady then instead of subscripts supplying context at compile time, you merely transform a statement list into a lol at reduction time
15:24 gdey joined #perl6
15:24 tadzik ≈≈≈
15:24 tadzik yay :)
15:26 TimToady and at the same time, we got list comprehension improvements by defaulting bracketed things to statementlist
15:26 frettled tadzik++
15:26 frettled or perhaps that should be:
15:26 frettled tadzik±±
15:27 rjbond3rd joined #perl6
15:27 TimToady tadzik∓∓
15:28 TimToady frettled: I always thought it was the cranium that bicyclists worry about the most...
15:28 orphu joined #perl6
15:28 tadzik I should github that keyboard layout, for if I lose it, I won't be able to type again
15:29 frettled TimToady: nah, that's protected by the Helmet of Invincibility.
15:29 masak TimToady: oh!
15:29 TimToady and if you break your cranium, your worries are over, I guess
15:29 masak TimToady: well, I'm not sure I can do that from a module, since it needs to be done at compile time.
15:29 gdey left #perl6
15:29 masak so I'll just keep heading down the path I've set out.
15:30 masak but it's good to know that it's really the same semicolon even within lols. thanks.
15:30 masak std: 1..2..3
15:30 p6eval std 4608239: OUTPUT«[31m===[0mSORRY![31m===[0m␤".." and ".." are non-associative and require parens at /tmp/4tIHW8ezru line 1:␤------> [32m1..2..[33m⏏[31m3[0m␤Check failed␤FAILED 00:01 120m␤»
15:31 masak oh, good.
15:31 masak rakudo: say (1..2..3).perl
15:31 p6eval rakudo 5ac05e: OUTPUT«2..3␤»
15:31 * masak submits rakudobug
15:31 masak rakudo: say (7..8..9).perl
15:31 tadzik rakudo: my %a; given %a<foo> { when '' { say 'a' }; when Any { say 'b' };default { say 'c' } }
15:31 p6eval rakudo 5ac05e: OUTPUT«2..9␤»
15:31 p6eval rakudo 5ac05e: OUTPUT«b␤»
15:31 rjbond3rd left #perl6
15:32 tadzik rakudo: my %a; %a<b> = 5; say %a<a> // %a<b>
15:32 p6eval rakudo 5ac05e: OUTPUT«5␤»
15:33 * masak ==> STORE
15:33 TimToady masak is FETCHing
15:35 * jnthn gets out his circularity chain saw and tries to get NQP (and thus later Rakudo) to have a view of packages that somewhat matches the synopses
15:36 TimToady the synopses define packages more by what they don't do (anymore) than by what they do do...
15:36 jnthn aye
15:37 jnthn Things are...very lexical :)
15:37 tadzik ISTR a discussion about what do we actually need packages for
15:37 TimToady except when they're MOPy
15:37 tadzik when a package can't just be a module?
15:37 jnthn TimToady: I'm still pondering that a particular compilation unit's view of GLOBAL (maybe to be merged into the loading unit's one) lives in UNIT::GLOBAL
15:37 TimToady you can still register packages as failovers via CANDO
15:38 TimToady you can still use packages to make variables globally visible
15:38 jnthn TimToady: I don't see the spec saying it can be, but I don't see anything saying I can't do it that way either. :)
15:38 jnthn And it makes loading quite sane
15:38 jnthn I mean, it needs the UNIT of the module being loaded anyway, to find EXPORT
15:39 TimToady well, the peculiar view has to have some name or other; I think STD used GLOBALish, but it's certainly negotiable
15:39 jnthn Really the unit's view of GLOBAL wants to be accessible the same way, imo.
15:39 gdey joined #perl6
15:39 TimToady the question is whether our GLOBAL unification ends up looking more like mixin/shadowing or composing/unification
15:39 jnthn Hmm, I guess calling it GLOBAL is confusing 'cus it's not really what GLOBAL::Foo::Bar would map to
15:40 jnthn As that has to map to the final merged view, otherwise it's not very, well, global. :)
15:40 TimToady what I think
15:40 TimToady that's why I called it GLOBALish
15:41 risou_ joined #perl6
15:41 jnthn Aye, I start to appreciate that now. :)
15:41 TimToady .o(what is something before it's global?)
15:42 jnthn Ambitious? :)
15:42 TimToady GLOBALescent
15:43 risou left #perl6
15:43 TimToady HEMISPHERICAL
15:43 TimToady REGIONAL
15:43 moritz CONTINENTAL
15:43 TimToady OCEANIC
15:43 TimToady TITANIC
15:44 TimToady oh, wait...
15:44 TimToady MULTINATIONAL
15:45 TimToady TECTONIC
15:45 * TimToady pictures all these UNIT plates grinding against each other
15:45 TimToady GLOBALIZATION
15:46 TimToady FREE TRADE ASSOCIATION
15:46 justatheory joined #perl6
15:46 TimToady wait, that ttiar, unless it's ttiar...
15:49 pmurias joined #perl6
15:49 * TimToady is now thinking about Miss X | Miss Y | Miss Z ==> Miss Universe
15:50 * TimToady now wonders whether we
15:50 TimToady will end up with a UNIVERSE outside of PROCESS outside of GLOBAL
15:51 TimToady .oO(Before breakfast is the easiest time to believe six impossible things.)
15:56 JimmyZ joined #perl6
16:04 am0c joined #perl6
16:05 ncow hi. I'm attempting to compile rakudo star 2011.01 (is that really the version number?), I started it at around 22:00 before going to bed, it's now 09:05 and 'make' is still running.
16:05 ncow How long does it take to build this, good grief
16:06 TimToady how much memory do you have?
16:06 TimToady you're probably thrashing
16:06 ncow Perl 5 takes under 10 min on this machine, Perl 6 really needs to take 10+ hours (11 so far) ?
16:07 ncow this machine has about 256, and 2 GB in swap
16:07 TimToady the threshold for thrashing is a well known discontinuity in computer performance
16:07 TimToady and rakudo has a big file to compile
16:07 ncow yeah it is thrashing, but the system is still responsive
16:08 TimToady responsiveness will usually depend on whether you're trying to do something disk-bound
16:08 TimToady CPU is idle mostly
16:08 ncow TimToady: granted, but perhaps maybe the devs will realize this may not be the best way to build a programming language compiler
16:09 TimToady there are tradeoffs...
16:09 ncow I mean this takes more than twice as long as building a modern gcc
16:09 moritz ncow: we're working on reducing the memory footprint during compilation and runtime. But it's not an easy task.
16:09 jnthn The devs understand the issue fairly well, and care about it, but have to care about dozens of other things too. :)
16:09 moritz well, C is a simple language in comparison to Perl 6
16:09 ncow (I think last time I build gcc on this box it took maybe 2 hours, or less
16:10 jnthn Anyway, memory usage improvements for AST nodes and match objects are in the works already.
16:10 ncow jnthn: I get that, it just seems like a bad move over all to have designed it in this way at all. OH well
16:10 jnthn And those are the big cost for the compilation.
16:10 jnthn ncow: Designed what in what way, specifically?
16:11 moritz ncow: we didn't design rakudo with the goal of consuming large amounts of memory during compilation :-)
16:11 moritz we just decided to focus on features first, and resource usage second
16:11 moritz which seems to have worked out pretty well, considering the community we built around it
16:12 TimToady and as a temporary workaround, adding memory works pretty well :)
16:12 jnthn The answer isn't really to try and find weird ways to break a single lexical scope over a bunch of files and then try and pretend it's one scope. It's to make compiling something of the size of core.pm not consume crazy resources.
16:13 tadzik ncow: it takes about 5-10 minutes on my 2 GB machine, so it's not exactly how you think
16:13 ncow I guess what I mean is, I don't really understand why it isn't a straight up C source package like Perl 5 is (for example)
16:14 TimToady it depends on how you want your interpreter loop to look too; my impression is that core.pm compiles all together so that it can "goto" from one instruction to another "efficiently", for some definition of both of those
16:14 moritz there are several reasons
16:14 ncow tadzik: I'd by lying if I said this box had the newest hardware, but I'm just comparing this to the realive ease it has in building Perl 5 and other source packages
16:14 TimToady Perl 5 is not trying to do nearly as much as Perl 6 is
16:14 moritz 1) there's an impedance mismatch between rakudo and parrot, for which we pay with increased resource usage
16:15 jnthn Trying to build a Perl 6 compiler entirely in C is FAR harder than a Perl 5 one, in my view.
16:15 moritz 2) Perl 6 needs a much more elaborate runtime environment than p5 or C
16:15 leprevost left #perl6
16:16 moritz 3) even the Perl 5 developers acknowledge that perl5 is not the easiest project to hack on. The efficiency comes at a great price: decreased hackability
16:16 moritz we chose not to pay that price up-front
16:16 TimToady 4) Perl 6 is not written in fiddly C like P5 is, but in a higher level language (Perl 6 itself, eventually)
16:16 TimToady or maybe that's the same as 3
16:17 moritz there's certainly a connection
16:18 tadzik ncow: I understand
16:18 tadzik ncow: don't get me wrong, I'm not happy with it either
16:18 ncow TimToady: ok but that sounds like a chick-and-egg scenario: "It's written in Perl 6, but if you don't already have Perl 6, how are you going to build Perl 6, but if you already have Perl 6, then why do you need to build Perl 6?!"
16:18 moritz ncow: GCC is also written in C
16:19 moritz ncow: you could ask the exact same question about C
16:19 ncow no I know it's not exactly that, but it does seem clearing with C sources. I'm not sure how it actually is with Perl 6 (I think it's using Perl 5 for the initial build, as it runs Configure.PL)
16:19 tadzik and about coffee
16:19 tadzik to know why do you need coffee, you need coffee
16:19 * moritz is not coffee-bootstrapped
16:19 ncow moritz: thats' becuase you usually build gcc with another intance of gcc or other C compiler
16:20 TimToady ncow: but the nice thing about bootstrapping in Perl 6 is that whenever Perl 6 gets faster, our compiler gets faster too
16:20 moritz ncow: but why do you do it, if you already have a C compiler?
16:20 ncow I've build full tool-chains, and you always start with a host system that has one already
16:20 TimToady (rakudo is not really bootstrapped yet, though niecza is)
16:20 ncow s/build/built/
16:20 TimToady (for the most part)
16:20 ncow TimToady: true
16:21 ncow niecza? Sounds central/eastern european (polosh, czec, russian?)
16:21 TimToady eventually we'd like Perl 6 to replace a lot of programming that currently has to be done in C or C++
16:22 jedai_ joined #perl6
16:22 ncow you want to replace all C packages out there?
16:22 jedai left #perl6
16:23 moritz not all
16:23 moritz don't think in absolutes
16:23 ncow or are you talking about Perl related, like XS stuff?
16:23 tadzik ncow: yep, it's Polish-inspired
16:23 ncow oh, tak :)
16:23 ncow bardzo dobze
16:30 TimToady .oO(Pragmatic idealists think in absolutes but act in relatives.)
16:33 JimmyZ left #perl6
16:33 TimToady The truth is somewhere in the middle; we never get to absolutes, but it's not true that everything is equally relative; reality is mostly defined not by straight lines but by asymptotes.
16:34 TimToady That's the Real Meaning of Postmodernism, or an approximation to it. :)
16:36 masak ncow: hi. nice meeting you.
16:36 masak ncow: don't think we're blind to the fact that Rakudo is slow and memory-hungry. quite the opposite.
16:37 masak ncow: and we want it to improve as well. but in practice, the skills to actually do that sit with a small number of people whose time is very limited.
16:37 TimToady we could do it a little faster if someone would give us a billion dollars, but then people would fight more...
16:38 masak I think we might as well adopt the "skunkworks project" moniker and run with it...
16:39 masak not that I'd object to someone donating a billion dollars to the Perl 6 effort.
16:39 TimToady when people invest more they usually expect more ROI
16:40 TimToady but more investment of time and money will come naturally as we asymptotically approach world domination
16:41 bacek left #perl6
16:41 masak aye.
16:41 TimToady and we should remember that you can kill an engine as easily by flooding it as by starving it
16:41 risou joined #perl6
16:42 masak when I look at the Rakudo project in one-year jumps, it's easy to see the progress.
16:42 TimToady or is this analogy dying now that we're done with carbeurators...
16:42 masak ;)
16:42 masak maybe someone should slip us a billion dollars distributed over 10 years.
16:43 TimToady I think of it more in surfer terms; you have to catch the wave as it builds up, neither too soon nor too late.
16:43 TimToady they have to pretend it's less money to begin with, I think
16:43 masak Pugs caused a wave. I know because I felt it abate in 2007.
16:44 TimToady that was a wipout :)
16:44 TimToady *wipe
16:44 risou_ left #perl6
16:44 masak Rakudo caused another wave, but it was much longer and flatter.
16:44 TimToady niecza is currently looking more like a tsunami...
16:44 masak Niecza might well cause a wave almost as spiked as Pugs, but it's partly shadowed by Rakudo's wave.
16:45 masak but it's looking more attractive with every release.
16:46 dalek nqp/ctmo: a0bc338 | jonathan++ | src/stage0/ (7 files):
16:46 dalek nqp/ctmo: Update bootstrap so that int/num/str are stored lexically in the setting.
16:46 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/a0bc338218
16:46 dalek nqp/ctmo: 2dd24da | jonathan++ | src/HLL/SerializationContextBuilder.pm:
16:46 dalek nqp/ctmo: Just re-use the perfectly good existing mechanism for getting hold of UNIT of a module being loaded; no need to invent a new one.
16:46 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/2dd24da3c3
16:46 dalek nqp/ctmo: bc6e222 | jonathan++ | src/Regex (2 files):
16:46 dalek nqp/ctmo: Give the PIR Regex module a block that can be considered its otuer scope. Twiddle the way we find 'int' to remove the hack for this and just do it by normal lexical lookup in the setting.
16:46 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/bc6e222580
16:46 TimToady and it's not all written in Haskell :)
16:48 masak ;)
16:48 masak I got Greg Young (the teacher at the CQRS course) to have a look at Perl 6. this was one of his reactions: http://twitter.com/gregyoun​g/status/58540276943306752
16:48 masak not sure what (or whether) to say to that.
16:49 masak s/say/reply/
16:49 moritz well, don't
16:49 jnthn ...of all the things to pick out...
16:49 daxim__ I read it as implied "that shan't be possible because I think it's not a good idea"
16:50 TimToady ugly things should look ugly, and that does
16:50 moritz you *can* obfuscate in nearly all languages. I'm sure Mr. Young knows that
16:50 masak jnthn: the other thing he picked out was "I don't like file-scoped class decls." odd indeed.
16:50 Axius left #perl6
16:51 masak I like TimToady's and moritz' replies. those are the one's I'd have replied with, had I replied.
16:51 TimToady seems to be falling into the anything not prohibited is mandatory falacy
16:51 TimToady *fallacy
16:52 masak I replied that it's not an either-or thing. you could do it with a block or with a file-scoped declaration.
16:53 hanekomu left #perl6
16:53 TimToady might just be the typical allergic reaction to TMTOWTDI too
16:53 daxim__ left #perl6
16:54 Rotwang joined #perl6
17:00 TimToady but ::($name) is ugly in the same way that http://en.wikipedia.org/wiki/Escape_tower is ugly
17:00 colomon left #perl6
17:01 Vlavv left #perl6
17:02 Vlavv joined #perl6
17:04 colomon joined #perl6
17:07 masak TimToady: how is it ugly "in the same way"?
17:08 mj41 joined #perl6
17:09 tadzik one man's ugly is another man's prettu
17:10 tadzik ...that turned out deeper than I wanted it to be
17:14 masak maybe the analogy is that neither ::($name) nor the escape tower was built to be pretty.
17:15 masak they were meant to accomplish something with little fanfare or eye towards esthetics.
17:21 araujo joined #perl6
17:23 hanekomu joined #perl6
17:24 masak but yes, beauty is also in the eye of the one doing the beholding.
17:24 TimToady they're both escape mechanisms, like BEGIN or eval
17:24 masak oh, I see.
17:25 masak a friend of mine is very proud of Ruby's '5.times do ...' feature. when I see that one, all I can think is "what's that method doing on a Fixint?
17:26 tadzik I have something like this coded for Perl6 I think :)
17:27 TimToady except we prohibit ttiar, so something has to bypass that
17:27 TimToady 5.times: {...} would be pretty easy
17:27 tadzik yep, that's what I mean
17:28 whiteknight left #perl6
17:29 masak my point is not that it could be done in Perl 6, but that what's syntactically pretty to my friend is semantically ugly to me.
17:30 hanekomu left #perl6
17:30 TimToady which is why that isn't built-in, which is kinda our point :)
17:30 tadzik moritz: how is build_projects_list.pl treating you recently? It doesn't work for me
17:30 tadzik Use of uninitialized value $contents in split at build-project-list.pl line 123.
17:31 TimToady 買い物をします。&
17:33 dalek nqp/ctmo: 7054621 | jonathan++ | src/ (5 files):
17:33 dalek nqp/ctmo: Enable a way to get hold of 6model's core meta-object 'KnowHOW' without installing it in the root of the global Parrot namespace (so that this pollution can be cleaned up).
17:33 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/7054621a3e
17:33 dalek nqp/ctmo: 1ed385e | jonathan++ | / (25 files):
17:33 dalek nqp/ctmo: While cleaning up anyway, start the long-promised removal of the name Rakudo from the 6model core and NQP.
17:33 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/1ed385e7c4
17:33 dalek nqp/ctmo: 7462ede | jonathan++ | / (7 files):
17:33 dalek nqp/ctmo: Another round of changes; seems we're consistently referring to 6model objects now.
17:33 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/7462edeaeb
17:35 masak ctmo ftw! jnthn++
17:37 * jnthn is happy to be slowly getting things moving again :)
17:39 s1n left #perl6
17:41 s1n joined #perl6
17:42 risou_ joined #perl6
17:43 dju_ joined #perl6
17:44 lateau left #perl6
17:45 risou left #perl6
17:46 dju left #perl6
17:46 twinshadow left #perl6
17:47 tadzik gosh, it's ssled github doing tricks again
17:54 alester joined #perl6
17:54 nymacro left #perl6
17:56 Sarten-X left #perl6
17:57 tadzik masak: processing https://github.com/masak/perl6​-literate/raw/master/META.info
17:57 tadzik malformed UTF-8 character in JSON string, at character offset 109 (before "\x{82c}a Haskell) in...") at build-project-list.pl line 127.
17:57 tadzik masak: *poke*
17:58 tadzik is UTF-8 JSON-illegal?
17:58 tadzik or I need to decode_utf8 that first? I never know
17:59 moritz \x{82c} is already decoded, and probably shouldn't be
18:00 masak clearly, something's odd there.
18:01 tadzik encohprocessing https://github.com/masak/perl6​-literate/raw/master/META.info
18:01 tadzik bleh, this darn cast
18:01 tadzik encode_utf8 did it
18:01 tadzik one day I'll learn it instead of shotgun coding every time I need it
18:02 moritz tadzik: read http://perlgeek.de/en/arti​cle/encodings-and-unicode if you want to learn it :-)
18:02 tadzik yeah, I remember that post :)
18:02 tadzik I remember reading it, but I don't remember the content good enough to put it into practice. Plus I very rarely need it
18:03 tadzik okay, build_projects_list is a bit slower than it was, but it seems to work for META.infos
18:03 tadzik it needs to be ran with PERL_LWP_SSL_VERIFY_HOSTNAME=0 though
18:04 tadzik *mumble grumble github mumble stupid mumble grumble*
18:05 Sarten-X joined #perl6
18:05 JimmyZ joined #perl6
18:06 tadzik http://www.cpan.org/ got a lot prettier recently, if you didn't know
18:07 masak improvements++
18:08 Mowah left #perl6
18:09 masak tadzik: the basic rule is that outside of your program, things are sequences of bytes. inside your program, things should be strings (=sequences of characters). the two are not the same, so you need to convert at the I/O boundaries.
18:10 tadzik yep, I'm aware of that
18:10 tadzik so how does moritz know whether "before \x{82c}a Haskell" is encoded or decoded? :)
18:11 moritz because encoded strings contain bytes
18:11 moritz and 0x82c > 0xFF
18:12 tadzik mhm
18:12 sorear good * #perl6
18:13 masak sorear! \o/
18:14 tadzik yay, win!
18:15 sorear niecza: sub infix:<;>($lhs, $rhs) {}; { say "A"; say "B" }
18:15 p6eval niecza v4-65-g79da9b6: OUTPUT«Potential difficulties:␤  $lhs is declared but not used at /tmp/4zHVBt8dS0 line 1:␤------> [32msub infix:<;>([33m⏏[31m$lhs, $rhs) {}; { say "A"; say "B" }[0m␤  $rhs is declared but not used at /tmp/4zHVBt8dS0 line 1:␤------> [32msub infix:<;>($lhs,
18:15 p6eval ..[33m⏏[31m$rhs) {}; { say "…
18:16 tadzik moritz, look: http://i.imgur.com/j1TEO.png
18:16 tadzik note the new names ;)
18:17 * masak doesn't know what to look for
18:17 tadzik masak: note how it's Acme::Meow. Now look at modules.perl6.org, and glue the changes with the new ecosystem
18:18 masak tadzik: ah.
18:18 tadzik basically: modules.perl6.org is now META.info compatibile
18:18 masak \o/
18:19 masak tadzik: let me just say that I admire the work that you're doing with the ecosystem. tadzik++
18:19 moritz tadzik: nice
18:19 tadzik thank you masak :)
18:19 tadzik moritz: is build_projects_list.pl ran with this fancy env variable currently?
18:20 tadzik moritz: and, any againsts about me pushing this, merging my ecosystem fork with perl6/ecosystem and fulfill the destiny? :)
18:20 tadzik * fulfilling
18:20 moritz perl build-project-list.pl /var/www/modules.perl6.org/ 2>&1 >>~/update-mp6.log
18:20 moritz is the call
18:20 moritz tadzik: go right ahead
18:21 tadzik I'm quite sure you need PERL_LWP_SSL_VERIFY_HOSTNAME=0 perl build-project-list.pl
18:21 tadzik or maybe not, look in the logs
18:21 tadzik it didn't work for me at least
18:21 moritz BEGIN { $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0 }  should do
18:22 tadzik w/o BEGIN it worked only for the 1st get() in here
18:22 sorear niecza: sub infix:<;>($lhs, $rhs) { say $lhs, $rhs }; { say "A"; say "B" } #OK
18:22 tadzik let's see
18:22 p6eval niecza v4-65-g79da9b6: OUTPUT«A␤B␤»
18:22 sorear aww
18:22 sorear ncow: hi!
18:24 dalek ecosystem: 080f198 | tadzik++ | spec.pod:
18:24 dalek ecosystem: Add a bare-bones META.info spec
18:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/080f19867c
18:24 dalek ecosystem: acee9be | moritz++ | spec.pod:
18:24 dalek ecosystem: s/repo/source/, make source-type optional
18:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/acee9bed2b
18:24 dalek ecosystem: 202e965 | tadzik++ | spec.pod:
18:24 tadzik hide!
18:24 dalek ecosystem: Add a note about doc/ directory
18:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/202e9656a2
18:24 dalek ecosystem: 1b45a6f | tadzik++ | spec.pod:
18:24 dalek ecosystem: POD fix
18:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/1b45a6fe59
18:24 dalek ecosystem: 2f232c8 | tadzik++ | spec.pod:
18:24 dalek ecosystem: Clarify where are the doc/ contents installed
18:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/2f232c833c
18:24 dalek ecosystem: 0aa3d75 | tadzik++ | projects.list:
18:24 dalek ecosystem: Merge git://github.com/perl6/ecosystem
18:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/0aa3d756b9
18:24 tadzik oh, that wasn't that bad
18:25 masak dalek survived :)
18:25 tadzik yeah, I'm suprised
18:25 tadzik where did those dozens of META.list and SHELTER commits go?
18:25 tadzik dalek must have remorted the last 5 commits
18:25 tadzik dalek++
18:26 mayuresh joined #perl6
18:27 envi left #perl6
18:27 dalek modules.perl6.org: c5f7f34 | tadzik++ | web/build-project-list.pl:
18:27 dalek modules.perl6.org: Make build_projects_list.pl aware of the new ecosystem
18:27 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/c5f7f341c0
18:28 tadzik so, an up-to-date badge. Definitely a Panda picture
18:29 ymasory left #perl6
18:30 mayuresh left #perl6
18:31 tadzik http://en.wikipedia.org/wiki/File:Pand​a_Cub_from_Wolong,_Sichuan,_China.JPG -- perfect
18:31 masak awwww
18:32 justatheory left #perl6
18:32 justatheory joined #perl6
18:34 tadzik I _so_ regret this will have to be small on the modules page
18:34 moritz masak: about the Class/Teacher/Student example yesterday... I'm still not convinced if the separation you suggested is beneficial
18:35 moritz masak: because in the end, you still needs reports of who attends or teaches which class
18:36 moritz so there needs to be some amount of coupling anyway - when you try to reduce it, you introduce other complexity (waterbed theory et al)
18:36 justatheory left #perl6
18:37 masak moritz: I must confess that the rationales behind aggregates still confuse me.
18:38 masak I expect to have to go through a cycle of trying them out and failing a bit before really grokking them.
18:39 moritz masak: one more thing... in the shopping cart example, you mentioned that the cart ID is the only reference in a shopping cart item
18:39 moritz masak: but what about a reference to product description/price etc.?
18:40 masak moritz: short answer: if that's important in the shopping cart (and it likely is in this case), copy it over.
18:40 masak moritz: that's what we did with Student-Schedule-Enrollment in the third image.
18:41 masak and it's just a more extreme form of denormalization.
18:41 moritz well, of course it's important, otherwise we wouldn't know what to ship and bill :-)
18:42 masak there's a principle behind all this madness: "Tell, don't ask"
18:42 masak we're making the Cart more independent of Products.
18:43 masak and things like Enrollment are called "transaction objects" or "time interval objects".
18:43 glass joined #perl6
18:43 risou joined #perl6
18:44 ymasory joined #perl6
18:45 risou_ left #perl6
18:46 PerlJam masak: When you "try and fail" in the process of learning, if you could keep snapshots of each attempt along  with some notes, that would be excellent material for a tutorial I think.
18:48 masak hm, interesting idea.
18:48 masak jnthn and I just set Friday as a full-day hackathon for trying out CQRS and Event Sourcing.
18:49 masak we could easily inhabit #cqrs-perl6 while doing that, and share our insights along the way.
18:49 masak we're building a next-generation real-time connection game server. :)
18:49 tadzik wow :)
18:50 jnthn \o/
18:50 jnthn masak: How many gallons of beer will this need? ;)
18:50 masak (Druid is a connection game. Hex, Y, and Gonnect are a few others. they're my favourite kind of games.)
18:50 masak jnthn: I'll let you be the domain expert of that :P
18:51 * jnthn aggressively denormalizes systembolaget
18:52 arnsholt jnthn: Forgot about the insane opening hours again? =)
18:53 jnthn :P
18:53 ymasory left #perl6
18:54 Mowah joined #perl6
18:55 sorear masak: hmm. Think I should rejoin #perl6-cqrs?
18:57 mkramer1 joined #perl6
18:59 masak sorear: it's #cqrs-perl6, and I can't answer that for you :)
18:59 masak been fairly quiet there today.
19:01 PerlJam I don't really "get" cqrs, but it seems that one of the big ideas is to have a user-centric API rather than a programmer-centric one.
19:01 PerlJam s/rather than/in addition to/ perhaps
19:03 masak yes, it usually starts in the task-based interface.
19:04 masak Greg Young likes to point out that you can't really do DDD on the traditional server/client model, where only DTOs are sent back and forth.
19:04 masak because DDD cares more about the domain model than the CRUD mould allows.
19:07 arnsholt jnthn: Same thing happens to me (every damn time, just about) and I'm a native! >.<
19:07 PerlJam masak:  and another big idea is  .... laziness :)
19:08 masak yes. under the name of "eventual consistency".
19:08 drbean left #perl6
19:09 masak but the term "consistency" shouldn't be discussed with clients. it's better to frame things in terms of time, and say that the data is "stale" or "old".
19:13 am0c left #perl6
19:15 drbean joined #perl6
19:18 noganex_ joined #perl6
19:19 noganex left #perl6
19:25 glass left #perl6
19:35 tadzik moritz: did you write build_projects_list.pl?
19:35 moritz tadzik: partially
19:35 tadzik hmm
19:36 tadzik I set a $projects->{$name}->{some_badge} in get_projects(), then as I see the $projects hash travels around the source code, and in the meantime the badge is lost
19:50 alester left #perl6
19:57 woosley left #perl6
19:57 dalek modules.perl6.org: 1353611 | tadzik++ | web/ (3 files):
19:57 dalek modules.perl6.org: Award a Panda badge to projects which conform to the newest specs
19:57 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/1353611739
19:57 tadzik I hope I managed to make it before 22 :)
19:57 tadzik aloha: clock?
19:57 masak aloha: time?
19:58 masak aloha: chrono-something?
19:58 tadzik it responds to clock? on #parrot
19:58 frettled aloha: aloha!
19:58 dukeleto aloha msg aloha say hello
19:59 tadzik aloha: wake up!
19:59 tadzik we're losing her! /o\
19:59 * tadzik runs in circles
20:00 * dukeleto walks in the opposite direction in precessing ellipses
20:00 frettled how cryptic of you
20:01 tadzik phenny: "parabola"?
20:01 phenny tadzik: "parabola" (it to en, translate.google.com)
20:01 tadzik pff
20:01 tadzik phenny: pl "parabola"?
20:01 phenny tadzik: "parabola" (pl to en, translate.google.com)
20:05 masak phenny: sv "ett parallelogram är blott en galen kvadrat"?
20:05 phenny masak: "a parallelogram is but a crazy square" (sv to en, translate.google.com)
20:06 tadzik phenny: pl "równoległobok to kopnięty kwadrat"?
20:06 phenny tadzik: "This kicked square parallelogram" (pl to en, translate.google.com)
20:07 y3llow_ joined #perl6
20:08 pothos left #perl6
20:08 pothos_ joined #perl6
20:08 justatheory joined #perl6
20:09 justatheory left #perl6
20:09 y3llow left #perl6
20:09 y3llow_ left #perl6
20:10 pothos_ is now known as pothos
20:10 y3llow joined #perl6
20:11 starcoder left #perl6
20:11 starcoder joined #perl6
20:11 dual joined #perl6
20:14 sorear ncow: ping
20:15 molaf left #perl6
20:15 frettled http://people.su.se/~jj/junk/dragon-vomit.png
20:16 frettled tadzik: ^ for an, ahem, better translation thingy.
20:16 y3llow left #perl6
20:16 y3llow joined #perl6
20:18 jnthn frettled: bwahaaha
20:18 jnthn frettled: Is that for real?!
20:18 jnthn :)
20:18 frettled Yes, fortunately. :)
20:18 jnthn omg
20:18 jnthn :)
20:18 frettled jnthn: http://groups.google.com/group/shibboleth-user​s/browse_thread/thread/123bd2d82822a3a7?pli=1
20:19 tadzik ;)
20:19 tadzik Install 2,3 repeat, spank, vomit blows
20:20 jnthn dragon with intercourse to goat-time?
20:21 justatheory joined #perl6
20:22 masak to how many times like the wind, a pole, and the dragon?
20:23 masak that's what I always end up asking myself.
20:23 jnthn Please apologize for your stupidity. :P
20:23 frettled jnthn: almost like reading Usenet, eh?
20:23 jnthn frettled: Yeah, apart from this makes more sense.
20:23 jnthn ;)
20:23 frettled \o/
20:24 masak jnthn: this insult to father's stones?
20:24 masak anyway. there are many thank you.
20:24 frettled The answer in Japanese is rather friendly, though, if we can believe Google translate: «Matsumoto, hello. This is Nate.  Google Translator is a incompetent, is vulgar. (Laughs) Be sure to email me directly.  Not.  You can write in Japanese. I will help you.»
20:25 masak awww :)
20:25 jnthn :)
20:25 masak frettled: I find it somewhat amusing that the list is called "shibboleth-users" :P
20:25 frettled masak: yes, wonderfully ironic :D
20:25 * jnthn had noticed that too :)
20:26 masak it's like ra-i-ain on your wedding da-y-y-y.
20:26 masak SORRY!!!!!
20:27 jnthn Yes, alanis... :P
20:27 masak a little too ironic. don't you think?
20:28 frettled Ironic, ironic, I want your &s all over my <BODY>.
20:28 masak anyway, I think the take-home message here is "the wind, pole, and dragon".
20:28 frettled masak: not to forget that if you lack skill with the goat-time, you should get help.
20:29 masak frettled: I initially read that as "I want your ampersands all over my body"... :)
20:29 jnthn I read it as a reference to the sub s...
20:29 moritz geek erotic? :-)
20:29 masak frettled: true. lacking skill with the goat-time would be an insult to father's stones.
20:31 frettled And we don't want that, do we?
20:34 jnthn Oh no, that could lead to parsing configuration for JSP error handler.
20:34 jnthn oh, wait...
20:35 tadzik http://modules.perl6.org/ -- Pandas!
20:35 jnthn Unbearably cute \o/
20:36 frettled w00t!
20:36 tadzik the Big Image was not only too big, but too cute to be shown on the website :)
20:37 tadzik the perl6-users email explains it all
20:37 * dukeleto likes pandas
20:38 dukeleto tadzik: i see you have been doing good work up here in Perl 6 land
20:38 dukeleto tadzik: how (if at all) does Pies relate to Plumage?
20:39 tadzik dukeleto: just finishing what I started few months ago :)
20:39 gdey left #perl6
20:39 tadzik dukeleto: no Plumage connection, yet I plan to look into "how plumage handles stuff" and analyze for the possible ideas exchange
20:41 dukeleto tadzik: yes, lots of thought went into plumage, and it would be nice if plumage and pies knew enough about each other to not stomp on each other and hopefully, work well together
20:41 tadzik dukeleto: I have a feeling that Plumage should be possible to be implemented as a Pies implementation. If not, then Pies is probably not good enough
20:41 dukeleto tadzik: sounds like -Ofun to me
20:41 tadzik Plumage in nqp, right?
20:42 dukeleto tadzik: yep
20:42 dukeleto tadzik: the newer flavor of nqp :)
20:42 tadzik :)
20:42 tadzik which newer? :)
20:42 dukeleto tadzik: the older newer
20:43 dukeleto tadzik: the artisticly licensed code formerly known as nqp-rx (sorry, prince)
20:43 tadzik I see
20:51 justatheory left #perl6
20:53 kensanata joined #perl6
21:00 orphu left #perl6
21:01 bacek joined #perl6
21:25 dorlamm joined #perl6
21:28 Mowah left #perl6
21:29 donri left #perl6
21:57 tadzik ...how silent
21:58 masak well, I stopped coding and helped jnthn design a polar bear with a viking helmet.
21:59 masak and now it's sleep o'clock.
21:59 jnthn I wrote lots about how awesome Malmö is and why everybody should come in June to do Perl stuff. :)
21:59 jnthn masak++ # makes awesome polar bears
22:00 tadzik that explains the silence. I wouldn't want the bear to wake up eithe
22:00 masak jnthn: thanks :)
22:00 tadzik share!
22:01 masak soon enough :)
22:01 jnthn Will be on the workshop website very soon (tomorrow, maybe... :)).
22:01 jnthn Or in next few days, anyway :)
22:06 dorlamm left #perl6
22:10 bacek left #perl6
22:11 tadzik workshop website?
22:11 masak tadzik: we're doing Nordic Perl Workshop this year.
22:13 tadzik oh cool
22:15 lue hello worlds! o/
22:15 masak czesc lue!
22:16 masak 'night, #perl6.
22:16 tadzik o/
22:16 masak left #perl6
22:16 bacek joined #perl6
22:27 bacek left #perl6
22:34 Rotwang left #perl6
22:41 bacek joined #perl6
22:42 coldhead joined #perl6
22:44 icwiener_ left #perl6
22:45 ymasory joined #perl6
22:45 Transformer joined #perl6
22:48 Transformer left #perl6
22:55 jnthn sleep &
22:59 kst left #perl6
23:01 justatheory joined #perl6
23:05 ponbiki left #perl6
23:06 pmurias left #perl6
23:11 kst joined #perl6
23:45 twinshadow joined #perl6
23:47 mj41 left #perl6

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

Perl 6 | Reference Documentation | Rakudo