Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-11-15

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 lue what's the em dash for?
00:01 tylercurtis std:  my $x = -> { my Int $c=10; return { say $c— } }(); $x(); $x();
00:01 p6eval std a194beb: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/8CFndbP3_T line 1:␤------> [32m $x = -> { my Int $c=10; return { say $c[33m⏏[31m— } }(); $x(); $x();[0m␤    expecting any of:␤  POST␤   bracketed infix␤        infix or meta-infix␤    postfix␤
00:01 p6eval ..postfix_prefix_meta_operator␤   statement modifier l…
00:01 tylercurtis std:  my $x = -> { my Int $c=10; return { say $c-- } }(); $x(); $x();
00:01 p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
00:01 flatwhatson_ joined #perl6
00:08 ash_ left #perl6
00:09 dalek left #perl6
00:09 MindosCheng lue: One way to tell Perl 6 that is a closure. *I guess*
00:10 MindosCheng rakudo: $x -> { say $c— }; $x(); $x();
00:10 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Confused at line 22, near "$x -> { sa"␤»
00:10 tylercurtis MindosCheng: There's no postfix:<—> operator in Perl 6.
00:11 tylercurtis You want postfix:<-->
00:11 tylercurtis (although, of course, one could define a postfix:<—> operator)
00:11 MindosCheng rakudo: my $x = -> {say $c— }; $x(); $x();
00:12 MindosCheng Wrong syntax...
00:12 tylercurtis rakudo: my $x = -> {say $c-- }; $x(); $x();
00:13 MindosCheng rakudo: my $c=10; say $c—; say $c—;
00:14 MindosCheng tylercurtis: You meant $c— part?
00:14 tylercurtis MindosCheng: indeed.
00:16 sorear Where did you read about this syntax?
00:17 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
00:17 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Symbol '$c' not predeclared in <anonymous> (/tmp/_xFryqqvOH:22)␤»
00:17 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Confused at line 22, near "say $c\u2014; s"␤»
00:23 MindosCheng I think the IRC client changed the minus minus.
00:24 risou left #perl6
00:25 p6eval left #perl6
00:27 p6eval joined #perl6
00:29 sorear I think you'll have fun with the sub foo(Bar:D $x) {} syntax
00:30 QinGW joined #perl6
00:31 MindosCheng sorear: Don't know yet...
00:31 p6eval left #perl6
00:34 rgrau left #perl6
00:38 p6eval joined #perl6
00:42 meppl left #perl6
00:46 p6eval left #perl6
00:49 MindosCheng left #perl6
00:50 MindosCheng joined #perl6
00:51 MindosCheng rakudo: my $c = 10; say $c--; say $c--;
00:53 MindosCheng Have to go. Bye.
00:53 * MindosCheng &
00:54 p6eval joined #perl6
00:54 MindosCheng rakudo: my $c = 10; say $c--; say $c--;
00:55 p6eval rakudo 015d77: OUTPUT«10␤9␤»
00:56 MindosCheng left #perl6
00:57 MindosCheng joined #perl6
00:58 MindosCheng left #perl6
00:59 p6eval left #perl6
01:00 p6eval joined #perl6
01:03 sftp left #perl6
01:15 p6eval left #perl6
01:26 drbean left #perl6
01:27 drbean joined #perl6
01:31 anick joined #perl6
01:31 anick left #perl6
01:33 p6eval joined #perl6
01:44 redicaps joined #perl6
01:46 PhatEddy joined #perl6
01:48 redicaps left #perl6
01:51 PhatEddy rakudo: my @a ||= @a; say qq/{@a}/;
01:51 p6eval rakudo 015d77: OUTPUT«(timeout)»
01:51 PhatEddy rakudo: my @a ||= @a; say qq/{@a}/;
01:51 p6eval rakudo 015d77: OUTPUT«maximum recursion depth exceeded␤  in 'Array::at_pos' at line 2963:CORE.setting␤  in 'Array::at_pos' at line 2963:CORE.setting␤  in 'Any::postcircumfix:<[ ]>' at line 1725:CORE.setting␤  in 'Any::join' at line 1432:CORE.setting␤  in 'Any::join' at line 1437:CORE.setting␤  in
01:51 p6eval ..'List:…
01:52 diakopter interesting
01:52 PhatEddy rakudo: my @a ||= 1, 2; say qq/{@a}/;
01:52 p6eval rakudo 015d77: OUTPUT«1␤»
01:52 PhatEddy rakudo: my @a = 1, 2; say qq/{@a}/;
01:52 p6eval rakudo 015d77: OUTPUT«1 2␤»
01:53 PhatEddy Am a bit of a novice - is the ||= case OK?
01:53 PhatEddy with 1,2 ..
01:56 sorear I suspect you need parens
01:56 sorear but why would you want to do such a thing
01:56 sorear std: my @a ||= 1, 2
01:57 p6eval std a194beb: OUTPUT«ok 00:01 122m␤»
01:57 ash_ joined #perl6
01:57 PhatEddy rakudo: my @a ||= (1, 2); say @a.perl
01:58 p6eval rakudo 015d77: OUTPUT«[(1, 2)]␤»
01:58 PhatEddy rakudo: my @a = 1, 2; say @a.perl
01:58 p6eval rakudo 015d77: OUTPUT«[1, 2]␤»
02:01 ggoebel left #perl6
02:02 PhatEddy Unless some objection will probably file the my @a ||= @a one since it blows and leave others ...
02:05 PhatEddy rakudo: my @a = (1 ,2); say @a.perl
02:05 p6eval rakudo 015d77: OUTPUT«[1, 2]␤»
02:08 mindos1 joined #perl6
02:09 PhatEddy rakudo: my $a = my ($b, $c) = 1, 2; say $a
02:09 p6eval rakudo 015d77: OUTPUT«1 2␤»
02:25 sorear what you're doing doesn't make a whole lot of sens
02:34 ch3ck3r joined #perl6
02:37 kanishka joined #perl6
02:38 ch3ck left #perl6
02:46 PhatEddy left #perl6
02:50 whiteknight left #perl6
02:50 Chillance left #perl6
02:52 ash_ left #perl6
02:53 alester joined #perl6
02:57 agentzh joined #perl6
03:04 dalek joined #perl6
03:13 scottdware joined #perl6
03:14 scottdware left #perl6
03:15 satyavvd joined #perl6
04:04 dalek niecza: c4c533a | sorear++ | lib/JSYNC.cs:
04:04 dalek niecza: [jsync] Fix parsing of hex escapes
04:04 dalek niecza: review: https://github.com/sorear/niecza/commit/c4c533a565de9c69d340ec0b9215123278505595
04:04 dalek niecza: 17d8d1b | sorear++ | lib/JSYNC.cs:
04:04 dalek niecza: [jsync] Check character set of anchors
04:04 dalek niecza: review: https://github.com/sorear/niecza/commit/17d8d1b722c7a3cd966f0e50e9e0a26166eda807
04:14 leprevost joined #perl6
04:23 leprevost left #perl6
04:25 dalek niecza: c877daa | sorear++ | lib/JSYNC.cs:
04:25 dalek niecza: [jsync] Implement reading of encapsulated documents
04:25 dalek niecza: review: https://github.com/sorear/niecza/commit/c877daad2da95e1878ee959bdcd1e186501dd789
04:27 plobsing joined #perl6
04:46 kaare joined #perl6
04:46 kaare is now known as Guest4737
05:02 dalek niecza: 0c5d47e | sorear++ | / (3 files):
05:02 dalek niecza: [jsync] Implement thawing of object data
05:02 dalek niecza: review: https://github.com/sorear/niecza/commit/0c5d47e085c7243a6781e70c2a4d7e169e126ce2
05:27 nymacro joined #perl6
05:38 hax left #perl6
05:39 LionMade0fLions left #perl6
05:39 frettled left #perl6
05:39 pnu left #perl6
05:40 redicaps joined #perl6
05:40 frettled joined #perl6
05:45 pnu joined #perl6
05:49 hax joined #perl6
05:51 LionMade0fLions joined #perl6
06:09 justatheory left #perl6
06:25 satyavvd left #perl6
06:37 moritz_ good morning
06:38 moritz_ phenny: tell masak your strangelyconsistent atom feed contains   <name>$author</name>
06:38 phenny moritz_: I'll pass that on when masak is around.
06:39 sorear hi moritz_
06:39 tylercurtis left #perl6
06:42 dalek mu: fdd4c7a | moritz++ | misc/perl6advent-2010/articles/main-sub.pod:
06:42 dalek mu: [perl6advent] add an article about MAIN subs
06:42 dalek mu: review: https://github.com/perl6/mu/commit/fdd4c7a58a74906bbf0c6466f3923892cee612b3
06:42 alester left #perl6
06:43 sorear Didn't we do MAIN last year?
06:43 * sorear wonders exactly what the goal for these articles is
06:43 moritz_ sorear: just multis in general
06:44 moritz_ sorear: the goal is to enthuse and educate people about Perl 6
06:58 wtw joined #perl6
06:59 dalek niecza: 1d78ea1 | sorear++ | / (2 files):
06:59 dalek niecza: Add &spew
06:59 dalek niecza: review: https://github.com/sorear/niecza/commit/1d78ea163ff63dff0e42c841ade872020ff24919
06:59 dalek niecza: 8628f27 | sorear++ | / (2 files):
06:59 dalek niecza: Add JSYNC.pm6
06:59 dalek niecza: review: https://github.com/sorear/niecza/commit/8628f2706344a0be37c99ba8c77f42c77baa9edf
07:08 moritz_ phenny: ask jnthn to please re-test gen_parrot.pl. I think your fix was RONG, and the code that it fixed was RONG too (I forgot to update it)
07:08 phenny moritz_: I'll pass that on when jnthn is around.
07:09 dalek rakudo: d1ca2e3 | moritz++ | build/gen_parrot.pl:
07:09 dalek rakudo: remove a fossile in gen_parrot.pl; needs re-testing under windows
07:09 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/d1ca2e3adcd30583a9e86adf72b06890b4291e27
07:12 rodarmor joined #perl6
07:12 rodarmor Hi there :)
07:12 sorear Hi!
07:12 sorear Welcome.
07:12 rodarmor Haha, I like this channel already.
07:12 rodarmor I'm trying to install rakudo-star-2010.10 on my mac, and it's segfaulting.
07:12 rodarmor Am I hosed?
07:13 sorear How are you trying to install it?
07:13 rodarmor (rakudo isn't segfaulting gmake is segfaulting)
07:13 rodarmor perl Configure.pl --gen-parrot --prefix=/opt/rakudo
07:13 rodarmor and then
07:13 rodarmor gmake
07:13 sorear and then gmake crashes!?
07:14 rodarmor haha, I'm probably still being inaccurate
07:14 rodarmor the exact error is:
07:14 rodarmor whoop's irc doesn't like my slashes
07:14 rodarmor Can I quote something in IRC?
07:14 rodarmor (so that it doesn't get interpreted as IRC commands)
07:15 sorear / /stuffwithslashes
07:15 sorear but it's better if you not paste long stuff; use pastie.com or something like that
07:15 sorear >3 lines
07:16 rodarmor ah, sweet, thx
07:16 rodarmor http://pastie.org/1298983
07:17 rodarmor Do you know if other mac users have successfully compiled/installed rakudo-star-2010.10?
07:17 sorear oh, so it *is* Rakudo segfaulting
07:17 sorear that makes more sense than gmake doing it :D
07:17 sorear what kind of mac?  ppc, ppc64, amd64, x86?
07:17 rodarmor You'd be surprised, I've had some weirdo gmake bugs.
07:18 rodarmor It's a first generation macbook pro
07:18 rodarmor so it's x86 32 bit, about 4 years old
07:18 sorear uname -m?
07:18 sorear a
07:18 sorear ah
07:18 rodarmor i386
07:19 moritz_ rodarmor: yes, some of our developers are mac users
07:19 rodarmor moritz_: good to know!
07:20 moritz_ rodarmor: how much free memory do you have on that machine?
07:20 rodarmor I don't know how accurate it is, but Activity Monitor is showing 784MB free
07:21 rodarmor Plus 425MB inactive
07:21 moritz_ that should be enough
07:22 moritz_ rodarmor: you could try to build the latest rakudo from source, following the instructions on http://rakudo.org/how-to-get-rakudo
07:22 moritz_ that way you just get the compiler, not the distribution
07:22 moritz_ but there's hope that you at least get *something* :-)
07:23 rodarmor I was a little nervous about that. What else do I need to have the distribution, and what's missing?
07:24 moritz_ the distribution also contains some mdoules
07:25 moritz_ which you can probably install with http://github.com/tadzik/neutro/ once you've got Rakudo running
07:26 rodarmor will perl6 itself be complete though, without the modules?
07:27 moritz_ yes
07:28 rodarmor Okay, sweet :)
07:28 rodarmor I'll give that a shot.
07:28 rodarmor although I'm going back on my never-try-to-build-bleeding-edge-packages-from-source policy...
07:30 _xiaomo_ joined #perl6
07:31 rodarmor1 joined #perl6
07:31 rodarmor left #perl6
07:32 rodarmor1 wow, this time it actually took down my whole box :)
07:34 kanishka left #perl6
07:41 sorear any luck?
07:43 rodarmor joined #perl6
07:43 rodarmor1 left #perl6
07:43 rodarmor I really hate computers sometimes :P
07:44 rodarmor i'm trying to compile the latest from github now
07:46 rodarmor macports provides parrot 2.6.0, is that good enough for the latest version of rakudo?
07:48 gaww\w joined #perl6
07:52 mindos1 rodarmor: I use brew instead of Macports.  I can build successfully.
07:53 rodarmor left #perl6
07:54 mindos1 rodarmor: I am using OS X Server 10.5.6
07:56 rodarmor1 joined #perl6
07:56 rodarmor1 brew looks pretty cool
07:56 rodarmor1 how does the package selection compare to macports?
08:01 rodarmor1 well, the actual compilations seem to be crashing my computer :(
08:01 rodarmor1 I think I'm going to give up for now.
08:01 rodarmor1 man do i want to try out perl6 though!
08:08 rodarmor1 left #perl6
08:09 mindos1 rodarmor1: You can try /msg p6eval perl6: say "hello world"
08:10 gaww\w left #perl6
08:12 flatwhatson_ left #perl6
08:16 mindos1 rodarmor1: I am new here. But I think perl6 uses its own parrot.  When build, you will get that parrot on local, too.
08:16 ascent_ joined #perl6
08:17 moritz_ there's exactly one rakudo release that works with parrot 2.6.0
08:25 dukeleto moritz_: how is rakudo on parrot.git working? noticing any bugs?
08:25 moritz_ dukeleto: nothing git specific so far
08:26 moritz_ but yes, it's full of bugs... just take a look at RT :-)
08:28 dukeleto moritz_: i am sure you will have the appropriate amount of fun
08:28 moritz_ :-)
08:36 fhelmberger joined #perl6
08:37 cjk101010 joined #perl6
08:40 dukeleto moritz_: http://perlgeek.de/blog-en/perl-6/pvc-perl6-vocabulary-coach.html looks like something that could be a good Google Code-In task
08:40 dukeleto moritz_: such as writing up docs for it
08:40 moritz_ might be
08:41 dukeleto moritz_: or even just a blog post about perl 6 applications and libraries written in the last year
08:42 moritz_ so, code-ins are really small pieces of work?
08:42 dukeleto moritz_: yes. http://leto.net/perl/2010/11/parrot-foundation-the-perl-foundation-google-code-in.html
08:42 dukeleto moritz_: http://trac.parrot.org/parrot/wiki/GoogleCodeIn2010Tasks
08:42 dukeleto moritz_: small "tasks" which are specific sets of "work", which can be many things in addition to code
08:43 dalek rakudo: 3131a2a | moritz++ | README:
08:43 dalek rakudo: expunge subversion references from README
08:43 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/3131a2a3775437f69b68229e9db2d452c27b722f
08:43 dalek rakudo: 9ca0de5 | moritz++ | docs/ (2 files):
08:43 dalek rakudo: [docs] fix a few links
08:43 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/9ca0de506b168f8dd9be1be67cbbbbee320b872d
09:01 mavrc joined #perl6
09:06 flussence I think I found a bug in rakudo's .gitignore, "/parrot" and "/parrot_install" probably shouldn't have those leading /'s because git clean doesn't remove them, even though it says it does.
09:07 flussence (and the other lines with leading slash in them...)
09:08 moritz_ flussence: my 'git status' doesn't show parrot
09:09 moritz_ otoh it doesn't hurt to remove leading slashes
09:09 flussence huh, it seems to ignore stuff with its own .git subdir...
09:10 moritz_ it didn't show parrot_install either
09:11 redicaps left #perl6
09:14 flussence strace says git-clean prints the "Removing" line, then straight away it checks for a .git/ and does nothing if that's there. I suppose it's intentional behaviour, but their manpage doesn't say it'll do that... :/
09:15 moritz_ then submit a doc patch
09:15 sorear Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different git repository, it is not removed by default. Use -f option twice if you really
09:15 sorear want to remove such a directory.
09:17 flussence Oh... that's that then.
09:17 flussence .oO(I really shouldn't be messing with this stuff first thing in the morning)
09:18 * moritz_ wonders what happens if you put a complete svn checkout under git version control
09:27 dakkar joined #perl6
09:28 dalek niecza: 626548d | sorear++ | v6/ (2 files):
09:28 dalek niecza: [v6] Implement symbol dumping
09:28 dalek niecza: review: https://github.com/sorear/niecza/commit/626548dc6c67ce5437137181587750300542016c
09:37 QinGW left #perl6
09:38 * sorear out
09:43 wamba joined #perl6
09:45 lucs left #perl6
09:46 moritz_ sorear was right about people being disturbed by github outage: http://www.reddit.com/r/programming/comments/e62c7/male_citizens_all_over_the_world_aged_between/ :-)
09:48 _xiaomo_ left #perl6
09:56 daxim joined #perl6
10:05 szbalint "ARGH the centralized HUB of my decentralized version control system is down! Now I can't get work done because I can't route around the failure with my decentralized version control system.
10:08 meppl joined #perl6
10:08 wallberg joined #perl6
10:20 plobsing left #perl6
10:29 masonkramer left #perl6
10:29 masonkramer joined #perl6
10:41 colomon szbalint: to be fair, having github down makes all of the current p6 module installers useless, for instance.  Just because all the source is still out there and safe doesn't mean losing your hub is painless...
10:47 szbalint I realise that. I had to postpone a new module release because I couldn't sync changes from github myself. It's still funny though :)
10:47 szbalint sort of like "making backups doesn't mean they work"
10:48 tzhs joined #perl6
10:49 moritz_ but when somebody accidentally deleted the parrot repo on github (was an admin, shouldn't haven been), somebody else just re-pushed his local copy.
10:49 moritz_ I find it awesome that such things work
10:51 bbkr joined #perl6
10:51 Chillance joined #perl6
11:02 Chillance left #perl6
11:02 mathw You can be as distributed as you like, but when it's working having a central hub as the definitive place for things is the easiest way to work
11:02 mathw and github doesn't go down very often, after all
11:05 Chillance joined #perl6
11:07 tzhs left #perl6
11:11 agentzh left #perl6
11:23 ggoebel joined #perl6
11:26 kanishka joined #perl6
11:34 ch3ck3r left #perl6
11:35 ch3ck joined #perl6
11:36 ggoebel left #perl6
11:36 jfried joined #perl6
11:38 daxim left #perl6
11:40 daxim joined #perl6
11:54 ggoebel joined #perl6
11:58 _xiaomo_ joined #perl6
12:05 masonkramer left #perl6
12:10 tzhs joined #perl6
12:20 kanishka left #perl6
12:28 orafu left #perl6
12:28 orafu joined #perl6
12:30 mariano__ joined #perl6
12:33 pnu left #perl6
12:35 kanishka joined #perl6
12:59 mindos2 joined #perl6
12:59 mindos2 left #perl6
13:02 MindosCheng joined #perl6
13:07 Guest4737 left #perl6
13:10 silug left #perl6
13:18 PhatEddy joined #perl6
13:21 takadonet joined #perl6
13:21 PhatEddy rakudo: my (@a, @b); @a = (1, 2); say @a.perl; @b ||= (1, 2); say @b.perl
13:21 takadonet morning all
13:21 p6eval rakudo 015d77: OUTPUT«[1, 2]␤[(1, 2)]␤»
13:22 PhatEddy sorear: ping - last night you complained I wasn't making sense - I partially agree but with this example not completely ...
13:23 mathw o/
13:23 Patterner left #perl6
13:24 colomon \o
13:24 MindosCheng o//
13:25 MayDaniel joined #perl6
13:28 mathw yay people
13:28 mathw everywhere seems very quiet today
13:34 Psyche^ joined #perl6
13:34 Psyche^ is now known as Patterner
13:34 PhatEddy phenny: tell sorear to check back here in irc when he has chance ... http://irclog.perlgeek.de/perl6/2010-11-15#i_2995501
13:34 phenny PhatEddy: I'll pass that on when sorear is around.
13:38 MayDaniel left #perl6
13:44 jnthn o/
13:44 phenny jnthn: 07:08Z <moritz_> ask jnthn to please re-test gen_parrot.pl. I think your fix was RONG, and the code that it fixed was RONG too (I forgot to update it)
13:45 jnthn moritz_: Can do when I get home.
13:46 moritz_ no hurry, should just be before the release
13:47 _kaare joined #perl6
13:51 mariano__ left #perl6
13:52 mariano__ joined #perl6
13:52 pnu joined #perl6
13:53 timbunce joined #perl6
13:55 * colomon is looking at this, and thinking he wants it for Perl 6: http://pdf.cx/6gc94
13:57 dalek rakudo: c766295 | moritz++ | build/gen_parrot.pl:
13:57 dalek rakudo: [gen_parrot.pl] git fetch in the right directory
13:57 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/c766295d05e8d60e1d038ae0c6ab390c1b95ef6a
13:57 dalek rakudo: 89b9544 | moritz++ | build/gen_parrot.pl:
13:57 dalek rakudo: [gen_parrot.pl] avoid redundant fetching directly after git clone
13:57 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/89b9544c75df20598863250c3755159652e27029
13:58 timbunce left #perl6
13:58 timbunce_ joined #perl6
14:00 _xiaomo_ left #perl6
14:02 timbunce_ left #perl6
14:02 mariano__ left #perl6
14:02 mariano__ joined #perl6
14:05 PhatEddy left #perl6
14:05 mariano__ left #perl6
14:10 timbunce joined #perl6
14:12 moritz_ colomon: fast evaluation in CPU would be a decent first step :-)
14:14 colomon that's not sexy, it's just necessary.  ;)
14:16 dalek roast: c941342 | (Kodi Arfer)++ | S03-metaops/hyper.t:
14:16 dalek roast: [hyper.t] Added a test for a bug fixed in Rakudo f0e270f.
14:16 dalek roast: review: https://github.com/perl6/roast/commit/c941342bed13b74a64322d8650b6b37101932648
14:18 dalek rakudo: f0e270f | KodiB++ | src/core/metaops.pm:
14:18 dalek rakudo: [metaops] Don't itemize the result of a recursive call to &hyper.
14:18 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/f0e270f8718a9e2872c64a49d8c5a2fdc8e70161
14:22 mariano__ joined #perl6
14:31 kanishka left #perl6
14:32 timbunce left #perl6
14:38 KyleHa joined #perl6
14:39 moritz_ pack.t fails one test
14:48 gavv\w joined #perl6
14:49 alester joined #perl6
14:51 PacoLinux joined #perl6
14:53 icwiener joined #perl6
14:56 mkramer left #perl6
14:58 tadzik o/
14:59 colomon \o
15:00 tadzik moritz_++ # advent calenar work
15:03 colomon do you have a quick link for that?
15:03 kanishka joined #perl6
15:03 moritz_ mu repo misc/perl6advent-2010/
15:04 sftp joined #perl6
15:06 kanishka1 joined #perl6
15:07 kanishka left #perl6
15:15 colomon moritz_++
15:15 colomon not that that was a quick link, but it got me to get off my arse and download mu, so it's an all-around win.
15:16 colomon woah, you've actually got an article done already!?!
15:17 colomon err... why does add.pl with no arguments return 7?
15:17 silug joined #perl6
15:19 slavik1 colomon: that's a bug, it should return 42 :P
15:20 MayDaniel joined #perl6
15:21 kanishka1 left #perl6
15:21 wamba left #perl6
15:23 tzhs left #perl6
15:27 tadzik yay REPL
15:27 tadzik colomon: default params?
15:27 tadzik err, values
15:28 tadzik ah, I see what you mean
15:31 mkramer joined #perl6
15:32 oyse joined #perl6
15:32 masak joined #perl6
15:33 masak oh hai, #perl6!
15:33 phenny masak: 06:38Z <moritz_> tell masak your strangelyconsistent atom feed contains   <name>$author</name>
15:33 masak moritz_: thanks, fixed.
15:34 jnthn o/ masak
15:34 jnthn masak: Journey home work out OK?
15:34 masak jnthn: \o
15:34 masak yes. :)
15:34 jnthn yay :)
15:35 masak it was... a weird experience.
15:35 jnthn Oh?
15:35 masak sleep was fitful, and I think I spent something like three hours packing and closing up my backpack :)
15:36 masak flat tire on the bike. just as well, I might have been too tired to ride it.
15:36 masak bed looked too attractive when I got home. crashed and slept for six hours.
15:36 jnthn :)
15:37 jnthn So now you're...really out of sync!
15:37 masak I have no idea when I'll fall asleep tonight. :)
15:38 masak yes. my sleep is now disjunct from Standard Sleep.
15:39 Axius joined #perl6
15:39 masak on the plus side, I've now read through the whole DOM API specification.
15:39 jnthn \o/
15:40 jnthn You've set up your brain the DOM. :)
15:40 masak yeah :)
15:40 masak well, someone did.
15:41 tadzik masak: o/
15:42 wtw left #perl6
15:42 masak tadzik: greetings.
15:46 Axius left #perl6
15:47 masak interesting bit of community musings: http://blog.laufeyjarson.com/2010/11/ugly-old-perl/ http://news.ycombinator.com/item?id=1906070
15:47 masak he starts out complaining that Perl 5 people aren't always paying attention to improvements in the language.
15:47 echoprinter joined #perl6
15:48 masak then he ends suggesting that both Perl 5 and Perl 6 should change their names for PR reasons.
15:50 risou joined #perl6
15:52 tadzik wtf PR
15:52 tadzik bah, phenny should have that feature
15:52 tadzik Public Relations?
15:53 masak I'd be disinclined to support the introduction of a command 'wtf' on the channel. we tend to use that when we're seeing highly unexpected p6eval output.
15:53 masak in general, I think the need for infobot functionality on a channel is a community design smell.
15:55 frettled Such things can be supported by the user doing /msg infobot, and infobot doing /notice user
15:55 frettled (and should)
15:55 masak ooh
15:55 masak and /topic could give info on how to get started.
15:55 frettled Best practice for IRC bots states that bots should never send PRIVMSG themselves, not even to a channel.
15:55 tadzik so what's PR?
15:55 tadzik :)
15:55 frettled Also, bots shall not respond to NOTICE.
15:55 frettled tadzik: public relations.
15:56 oyse left #perl6
15:56 frettled Bonus: bot responses are all the more visible when they use /notice to a channel than regular msg; it's far easier to see that it comes from a bot.
15:57 masak tadzik: basically, it's how the external world perceives your project/company/organization.
15:57 tadzik mhm
15:57 masak frettled: sounds nice.
15:58 flussence irssi's "/help notice" is pretty informative in this case
16:02 rvrgs joined #perl6
16:02 masak oh! petdance++ has already covered that blog post: http://perlbuzz.com/2010/11/progressing-vs-leapfrogging.html
16:05 justatheory joined #perl6
16:07 wamba joined #perl6
16:08 hercynium joined #perl6
16:11 MindosCheng left #perl6
16:17 alester You mean alester? :-)
16:19 pmb joined #perl6
16:20 ch3ck hi pmb
16:20 pmb hi ch3ck
16:21 masak alester: oh, right :)
16:23 mariano__ left #perl6
16:24 ch3ck morrn masak
16:24 masak :)
16:25 masak well, it's not that bad, but almost.
16:25 masak planning to go swimming soon.
16:25 * TimToady blurs into existence in a vague sort of way
16:25 masak TimToady: fuzzy greetings.
16:30 sftp left #perl6
16:31 sftp joined #perl6
16:35 mariano__ joined #perl6
16:39 masak left #perl6
16:42 _xiaomo_ joined #perl6
16:46 dalek mu: 536f6ab | (Solomon Foster)++ | misc/perl6advent-2010/topic-brainstorming:
16:46 dalek mu: Couple more ideas.
16:46 dalek mu: review: https://github.com/perl6/mu/commit/536f6ab41ed2991a99fcc3aba17b149b127cf003
16:51 mila__ joined #perl6
16:51 dual left #perl6
16:52 _xiaomo_ left #perl6
16:54 mila_ left #perl6
17:19 pyrimidine joined #perl6
17:19 takadonet pyrimidine: hey
17:19 pyrimidine o/
17:21 Bzek_ left #perl6
17:27 Bzek joined #perl6
17:30 TimToady colomon: GPU support depends mostly on getting S09 implemented someday
17:31 timbunce joined #perl6
17:36 timbunce left #perl6
17:36 mkramer left #perl6
17:37 stkowski joined #perl6
17:38 impious joined #perl6
17:42 cdarroch joined #perl6
17:42 cdarroch left #perl6
17:42 cdarroch joined #perl6
17:42 envi left #perl6
17:44 mkramer joined #perl6
17:54 MayDaniel left #perl6
17:56 sirhc left #perl6
18:02 arnsholt left #perl6
18:05 dakkar left #perl6
18:11 rvrgs left #perl6
18:28 wallberg left #perl6
18:32 frettled Mellow greetings, citizen.  What seems to be your boggle?
18:33 moritz_ TimToady: seems that jnthn++ is working on it :-)
18:37 plobsing joined #perl6
18:48 dalek rakudo: 248bab6 | moritz++ | .gitignore:
18:48 dalek rakudo: remove leading slashes from .gitignore, since flussence++ reported that those slashes can cause problems
18:48 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/248bab62e576a745295422414ddcb47f799c9ca6
18:48 dalek rakudo: 9256321 | moritz++ | docs/ChangeLog:
18:48 dalek rakudo: [docs] update ChangeLog
18:48 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/92563218b77a435eb90ccad0c5e819cbc10047de
18:51 nymacro left #perl6
18:54 arnsholt joined #perl6
18:57 jfried left #perl6
19:06 hercynium_ joined #perl6
19:06 hercynium_ left #perl6
19:06 hercynium_ joined #perl6
19:10 hercynium left #perl6
19:10 hercynium_ is now known as hercynium
19:10 ederksen joined #perl6
19:11 ederksen left #perl6
19:12 broquaint left #perl6
19:22 echoprinter left #perl6
19:25 nomad1 joined #perl6
19:26 nomad1 left #perl6
19:31 MayDaniel joined #perl6
19:32 nomad1 joined #perl6
19:35 justatheory left #perl6
19:35 justatheory joined #perl6
19:37 fhelmberger left #perl6
19:45 hercynium left #perl6
19:46 hercynium joined #perl6
19:50 fhelmberger joined #perl6
19:51 rgrau joined #perl6
19:53 masak joined #perl6
19:53 masak ahoy!
19:54 diakopter chips!
19:56 colomon fish!
19:57 sjohnson &
19:58 moritz_ Kartoffelpuffer!
19:58 moritz_ http://uplaoad.wikimedia.org/wikipedia/commons/9/98/Kartoffelpuffer.jpg FYI
19:59 diakopter http://upload.wikimedia.org/wikipedia/commons/9/98/Kartoffelpuffer.jpg
19:59 meraxes joined #perl6
19:59 colomon Yum!
20:00 daxim because it's chrimas time:  http://hu.wikipedia.org/wiki/L%C3%A1ngos
20:07 nothingmuch joined #perl6
20:07 masak nothingmuch! \o/
20:07 huf i can never eat a whole langos, it's too oily
20:07 nothingmuch masak: ?
20:07 impious left #perl6
20:08 masak nothingmuch: hi!!1!
20:08 masak :)
20:08 nothingmuch i mean, it's quite nice to be greeted so enthusiastically, but I don't know that I deserve it ;-)
20:08 masak of course you do. :)
20:08 nothingmuch were you just talking about me or something? i swear it wasn't my fault
20:08 masak no, I tend to greet people that way on this channel.
20:08 daxim left #perl6
20:09 nothingmuch ah
20:09 masak informal research indicates it lifts the mood. :)
20:09 * nothingmuch closed irssi for the first time in months today, i guess that's whY i'm not used to it =)
20:11 masak nothingmuch: on the topic of whether you deserve arms raised in greeting: to the extent that you were/are involved in the development in Moose and KiokuDB -- thank you.
20:12 nothingmuch =)
20:12 Trashlord left #perl6
20:15 masak moritz_: I made Raggmunk/Kartoffelpuffer the other day! :)
20:16 risou left #perl6
20:17 colomon I just finished cleaning up some dead code from one of my $work projects: 1200 lines of code deleted!
20:17 colomon whoops, 2200 lines of code deleted!
20:17 takadonet colomon: which language?
20:17 masak wow.
20:17 colomon C++
20:17 takadonet nice
20:17 colomon that's more than half.
20:17 colomon (in that source file)
20:20 impious joined #perl6
20:21 pyrimidine left #perl6
20:21 pyrimidine joined #perl6
20:23 fhelmberger left #perl6
20:27 MayDaniel left #perl6
20:30 nothingmuch left #perl6
20:34 masak left #perl6
20:38 mavrc left #perl6
20:38 zby_home_ joined #perl6
20:39 molaf joined #perl6
20:41 [particle] left #perl6
20:44 [particle] joined #perl6
20:50 stkowski left #perl6
20:52 stkowski joined #perl6
20:59 dual joined #perl6
21:12 simcop2387 left #perl6
21:12 colomon left #perl6
21:13 simcop2387 joined #perl6
21:20 nomad1 left #perl6
21:22 pothos left #perl6
21:22 y3llow_ joined #perl6
21:23 pothos joined #perl6
21:24 y3llow left #perl6
21:24 y3llow_ is now known as y3llow
21:25 simcop2387 left #perl6
21:27 simcop2387 joined #perl6
21:27 KyleHa left #perl6
21:29 KyleHa joined #perl6
21:33 broquaint joined #perl6
21:35 icwiener left #perl6
21:36 icwiener joined #perl6
21:37 timbunce joined #perl6
21:38 colomon joined #perl6
21:38 mariano__ left #perl6
21:41 justatheory left #perl6
21:41 colomon left #perl6
21:44 alester left #perl6
21:50 alester joined #perl6
21:52 alester left #perl6
21:52 icwiener left #perl6
21:55 alester joined #perl6
21:56 masak joined #perl6
21:56 masak o/
22:02 justatheory joined #perl6
22:02 muixirt joined #perl6
22:03 muixirt hi folks, how is the parrot git transition going w.r.t. rakudo (star)?
22:03 sjohnson masak!
22:04 jnthn lolitsmasak
22:04 moritz_ muixirt: rakudo now builds from parrot-on-git
22:04 moritz_ haven't looked at star yet
22:04 moritz_ sleep &
22:05 muixirt good n8 moritz_
22:06 mariano__ joined #perl6
22:06 masak "n8"? doesn't that expand to "neight"?
22:06 sjohnson heh
22:06 jnthn how h8ful
22:07 sjohnson nite nite m8
22:07 mkramer unless you have a thick cockney accent
22:07 masak I imagine "good n8" is what horses would say, could they form words.
22:07 muixirt n8 == the bus line for moritz_
22:07 mkramer then it's good noight
22:07 Tene .u ????
22:08 phenny U+1F684 (No name found)
22:08 jnthn I 8 a gr8 pl8 of noms quite l8.
22:08 masak might as well go with the Yiddish "good noyt".
22:08 * Tene briefly entertains the idea of the following as an alternative to '==>' http://www.fileformat.info/info/unicode/char/1f684/index.htm
22:08 spq1 left #perl6
22:09 * jnthn puts a bullet through the idea
22:09 jnthn ;)
22:09 Tene masak: I've mostly seen germans use 'n8', iirc.  Might be a dialect variation.
22:09 masak Tene: the Unicode Consortium needs to be stopped.
22:10 jnthn Or some training on what characters to include...
22:10 jnthn ...before they go totally off the rails.
22:10 masak Tene: that makes sense because de:'ei' is pronounced en:/eye/
22:10 muixirt Tene: right, from German to German :-)
22:11 Tene jnthn: they've really run away with this
22:11 masak /aɪ/
22:11 Tene I just don't see the track they used to get here
22:12 masak maybe they lost their train of thought.
22:12 mariano__ left #perl6
22:13 mkramer whatever happened to their engineers?
22:13 Tene Are we really all aboard this?  Who's checking their ticket?
22:14 mkramer the tyrannical addition of pointless codepoints is really not fare
22:14 jnthn It's a signal of bad things to come.
22:15 muixirt jnthn: that is the minimum requirement for a vm (bytecode interpreter) for rakudo to be a worthy target for a backend?
22:16 diakopter muixirt: a thoroughly integrated GC with value & reference types
22:16 muixirt diakopter: "a thoroughly integrated GC"
22:17 diakopter sorry, badly worded
22:17 muixirt a vm built around "a thoroughly integrated GC"?
22:17 justatheory_ joined #perl6
22:17 justatheory left #perl6
22:17 justatheory_ is now known as justatheory
22:17 jnthn muixirt: Is that "minimum to possibly make it work" or "minimum for me to consider it interesting"? :)
22:18 muixirt jnthn: both would be interesting to me :-)
22:18 jnthn muixirt: I'd generally want it to have decent GC, support for native types, support for dynamic library loading and runtime code-gen...
22:18 Tene jnthn: I'm curious about the difference.
22:19 justatheory_ joined #perl6
22:19 justatheory left #perl6
22:19 simcop2387 left #perl6
22:19 justatheory_ is now known as justatheory
22:19 muixirt jnthn: GC? Your wished might be to much formed be parrot, I meant it more the general way ...
22:20 _kaare left #perl6
22:21 zby_home_ left #perl6
22:22 colomon joined #perl6
22:22 muixirt Decent GC? Ok. Native types? Ok, too. Dynamic library loading? Where is that solved in a perfect way? Runtime code generation?
22:23 diakopter runtime code generation/loading like in the JVM or CLR
22:23 jnthn Right.
22:24 jnthn What they provide (JVM through the ClassLoader, CLR through...whatever it was I used...Assmbly Loader) is sufficient.
22:25 diakopter also, it doesn't need to be a bytecode "interpreter" _per_se_ to be a sufficient VM
22:25 diakopter it can load programs by reading bytecode but JIT them to native, of course.
22:26 KyleHa left #perl6
22:26 diakopter or do any number of optimizations or pessimizations or frivolous transformations along the way :D
22:27 muixirt diakopter: well some people like (Tene?) don't make a difference between bytecode and a VM
22:28 diakopter the "virtual" aspect in the term "virtual machine" is just that the operations/code that is executed is controlled tightly by the runtime; it doesn't need to be an interpreter to do that
22:28 Tene muixirt: Eh?
22:29 mkramer What of this is LLVM missing?
22:29 jnthn muixirt: From my point of view at the moment, I want to make stuff work and want to understand performance. The graphical debugger in Visual Studio, and the RedGate profiler, mean a lot to me and make .Net dev quite pleasant, for example.
22:29 muixirt but "backend" is likely to be some immediate representation (aka bytecode)
22:29 diakopter mkramer: the GC
22:29 jnthn muixirt: I'm also very keen to explore the bits of the Perl 6 spec that are less explored, especially concurrency and parallelism.
22:29 simcop2387 joined #perl6
22:30 colomon jnthn++
22:30 diakopter mkramer: and the runtime code generation/loading bindings... (you'd have to do yourself)
22:30 jnthn muixirt: So being intersting to me at the present is muchly about toolchain, good threading support and stability.
22:30 muixirt Tene: once I said that I hate bytecode and you argued that virtually everything is a VM (== bytecode?)
22:32 stkowski left #perl6
22:32 muixirt jnthn: well that means only the JVM and CLR are worthwhile. Or do I miss something?
22:34 diakopter muixirt: I'm guessing that ghc & lua & PLTScheme & plenty others would be...
22:34 muixirt Tene: I have had the impression that you think bytecode and a VM are  interchangeable terms (from a discussion some weeks ago)
22:35 muixirt diakopter: ok, you seem be more knowledgable than me, please explain
22:36 muixirt concurrency and parallelism
22:37 donaldh joined #perl6
22:37 muixirt jnthn: last time I checked concurrency and parallelism were somewhat vague in the specs, did that change?
22:37 justatheory left #perl6
22:38 jnthn muixirt: IN the Perl 6 specs?
22:39 jnthn muixirt: In which case - yes, that's why they desparately need an implementation we can play around with so the spec can go somewhere concrete.
22:39 muixirt jnthn: or is that totally clear for implementors?
22:39 diakopter muixirt: I just mean, I thought those VM/compilers provided all of those requirements
22:39 muixirt jnthn: a somewhat vicious circle ;-)
22:40 mkramer diakopter: thanks, interesting
22:40 XaRDaX joined #perl6
22:40 jnthn muixirt: Yes, but history shows that implementations tend to be the best chance of breaking it :)
22:40 KyleHa joined #perl6
22:40 muixirt jnthn: good luck :-)
22:43 masak rakudo: "foo" ~~ /f(o)o/; say "$0"
22:43 p6eval rakudo 015d77: OUTPUT«o␤»
22:43 masak rakudo: "foo" ~~ /f(o)o/; say "$0li"
22:43 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'Undef'␤»
22:43 masak std: "foo" ~~ /f(o)o/; say "$0li"
22:43 p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
22:43 masak std: "foo" ~~ /f(o)o/; say "$totally_made_up_variable"
22:43 p6eval std a194beb: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $totally_made_up_variable is not predeclared at /tmp/PIxrbeCoU3 line 1:␤------> [32m /f(o)o/; say "$totally_made_up_variable[33m⏏[31m"[0m␤Check failed␤FAILED 00:01 123m␤»
22:44 * masak submits rakudobug
22:44 diakopter mkramer: I just don't know enough to know whether or how well existing GC engines can be hooked into a compiler using llvm.
22:44 masak oh; it's already in there: http://rt.perl.org/rt3/Ticket/Display.html?id=74180
22:45 KyleHa left #perl6
22:45 diakopter mkramer: for all I know, it's very easy, or it would take an enormous amount of work. I have no idea.
22:46 wamba left #perl6
22:50 Tene muixirt: having both a VM and bytecode doesn't mean that they're the same thing.  If I always have a paper every time I use a pen, that doesn't mean that paper==pen.
22:53 muixirt Tene: exactly. Bytecode as an "API" is what bothers me. Looking forward to projects that generate machine code while compiling p6 code.
22:54 muixirt It seems that route wasn't thought of, right?
22:54 Tene Perl 6 isn't natively representable as x86 machine code.  You need higher-level abstractions that aren't present in x86 machine code.
22:55 muixirt Tene: well at the end you need a system that executes machine code, x86 or any other cpu.
22:55 Tene muixirt: Yes, I know.
22:56 masak muixirt: that's not the same as saying you can compile down to it.
22:57 whiteknight joined #perl6
22:58 muixirt well, of course that generated machine code isn't like anything an assembly coder would write.
22:58 masak muixirt: you reply tells me you don't understand.
22:58 masak s/you/your/
22:58 Tene It could be that I'm horribly off-base.  I certainly don't claim to be exhaustively-informed, but as far as I can think of, you'll always have a significant runtime operating on and manipulating a representation of a Perl 6 program at a higher level than x86 bytecode.
22:58 muixirt I'm not saying it is "as easy" like compiling C code to assembly
22:59 masak muixirt: Tene (and I) tell you it can't be done.
22:59 masak as in, impossible.
23:00 Tene It *may* be possible to write a compiler that could recognize those Perl 6 programs that can have an x86-machine-code representation, and produce that code for those programs or sections of programs, and do something else (larger runtime layer, fail) for those programs that can't.
23:01 Tene The approach most people here are taking is to first write a full compiler/runtime, and then work on doing exactly that, through JIT or other methods.
23:01 Tene 'say "OMG HAI"' certainly does have a compact x86 machine code representation.
23:02 muixirt masak: I'm really interested in *what* I don't understand, please tell me (and I mean that)
23:02 masak muixirt: I'll try. let me know how I'm doing.
23:03 muixirt ok
23:03 Tene muixirt: Perl 6 has features not compactly representable in x86 machine code.  Consider complex OO with roles being applied at runtime.
23:03 masak muixirt: both Perl 5 and Perl 6 have parts that are sufficiently dynamic and too abstracted to be compiled down to machine code.
23:03 Tene Consider what the x86 code would look like to dispatch to a multimethod on an object that has had a role applied to it at runtime.
23:04 masak whar Tene said.
23:04 Tene You'll have to have a significant runtime library operating on abstract representations of these things.
23:04 masak s/whar/what/
23:04 stkowski joined #perl6
23:05 Tene Consider the case like: if (random() < 0.5) { $foo does RoleA } else { $foo does RoleB };
23:05 masak and the runtime library will equal the VM.
23:05 Tene Even if some simple cases can be proven to not require complex manipulation at runtime, others do need it.
23:05 masak and you have to build the compiler for the general case.
23:07 Tene You still need *something* to determine what code to execute there.
23:08 Tene It's certainly possible and desirable to have a compiler that only loads those things needed for the program at hand.  Right now, we're primarily focused on getting all of those things implemented at all, before worrying about choosing what to load and when.
23:11 muixirt Tene: one problem might be that you think too much of egde cases, if someone does something like your if (random() < 0.5) example I'm happy that the compiler generates megabytes of bloated and slow machine code
23:12 flussence would it be a useful idea to implement bits of perl6 as native libs, like libpcre exists for p5?
23:12 Tene muixirt: That's not so much an edge case, actually.  There are plenty of legitimate examples of applying roles based on information not available to the compiler, such as user input.
23:12 muixirt to be more precise: perl6 lacks of well engineered (production) code, so it is easy to think about lots of edge cases
23:12 Tene muixirt: consider iterating over lines in a file, and constructing an object for each line, applying roles based on the data in each line.
23:12 Tene That's a very normal sort of thing to do.
23:13 muixirt and as jnthn points out, perl6 is in a stage were it has to break that vicious circle: implemetation vs. specsw
23:14 Tene muixirt: so your proposed method of doing that is to ask for a dramatically more sophisticated and complex compiler?
23:14 Tene I don't see how that's related?
23:18 masak muixirt: I, and others, are writing as much code as we can, and edge cases from that code is indeed finding bugs in Rakudo. we're thinking of building the whole known code base nightly to (semi-)automate the bug finding.
23:18 muixirt Tene: well the point is that if you target parrot your compiler *is* dramatically complex, the parrot building bricks aren't that sophisticated to circumvent the complexity of perl6
23:18 masak muixirt: but I would argue that the cases towards the more dynamic end of the spectrum are actually not that uncommon.
23:19 masak as soon as you start doing OO, you're way over in dynamic-land.
23:21 Tene muixirt: It's certainly worth looking at, but I really expect that you have a dramatically inaccurate sense of where the complexities lie here if you think that *discarding* a VM is going to *decrease* the scope and complexity of the project.
23:21 masak +1
23:21 Tene The things that a VM does are things that actually need to be done.  If we're not using a VM to do them, *we* need to write that code to handle them instead.
23:22 masak essentially reinventing the VM, poorly.
23:22 justatheory joined #perl6
23:22 Tene You can look at the rakudo source.  It's primarily Perl 6, with some VM-specific parts.  You can look at what those VM-specific parts do.  It's mostly the files named *.pir in the rakudo repo.
23:23 Tene They're mostly simple OO, setting up foundations for the Perl 6 parts.
23:24 muixirt Tene: It's primarily pir and c, and Perl6 code that contains a lot of Q:PIR and pir::something
23:26 Tene The Perl 6 execution model isn't trivial.  You've got exceptions, resumable exceptions, lazy lists, gather/take, lexically-scoped return.  That's not trivially-representable in x86 machine code in the general case, and handling it requires manipulating an abstract representation of the flow of execution.  Significant pieces of Perl 6 rely on this.
23:26 envi joined #perl6
23:27 Tene You're going to have to reimplement all of that and add a GC just to get started, and then you have the object model, which is similarly-complex.
23:28 Tene That has to happen *somewhere*.  If we don't use a VM for that, we have to reimplement that ourselves, and that's not a trivial task.  How is that going to *reduce* the scope and complexity?
23:28 rindolf joined #perl6
23:28 rindolf Hi all.
23:29 Tene hi rindolf
23:29 rindolf src/gen/core.pm > src/gen/core.pir is taking a lot of time and RAM with rakudo-trunk.
23:29 rindolf It's already up to 17.4% of my 3+3 GB of RAM.
23:29 rindolf x86-64.
23:29 rindolf Tene: hi.
23:30 masak hi rindolf
23:30 muixirt Tene and masak: thanks for the explanations.
23:30 rindolf masak: hi.
23:30 masak muixirt: thank you. hope it made some sense.
23:30 timbunce left #perl6
23:31 jnthn sleep &
23:31 Tene muixirt: I think I'm really missing your point here, and I want to understand what you're saying.  All I'm getting from you is "I don't understand what a VM does, so it must not be important.  Can't you just discard it and go faster?"
23:31 muixirt masak: if it doesn't it's completely my fault
23:31 Tene It's kind of like noticing that the engine in a car is very heavy, and asking if you can throw it out to go faster, because then you'll weigh less. :)
23:31 masak muixirt: I wish it was more like you think it is. that would mean we had a shot at creating a much lighter-weight compiler.
23:32 diakopter Tene: here's the benefit-of-the-doubt route
23:32 masak Tene: best metaphor so far :P
23:32 diakopter Tene: if all aspects of the VM code (the "runtime") could be inlined (or just statically linked) along into the target executable (whether in memory only or on disk as well), there wouldn't be a "VM" :)   see, magic!
23:33 muixirt Tene: well let's look at the neighbours. Spidermonkey has a bytecode interpreter and a runtime.
23:33 muixirt the bytecode interpreter is small, the runtime is large
23:34 rindolf OK, it  finished now.
23:34 rindolf Still it took a long time.
23:35 rindolf And consumed a lot of RAM.
23:35 muixirt so why not get rid of the bytecode and its interpreter. And that is what the V8 engine did
23:35 diakopter muixirt: sure, and what all the other JS engines did, including Mozilla's
23:36 rindolf PackFile_unpack: This Parrot cannot read bytecode files with version 9.1.
23:36 rindolf Should I delete something?
23:36 Tene rindolf: you have files installed from an older version of Parrot.
23:36 rindolf Tene: ah.
23:36 mariano joined #perl6
23:37 rindolf Well, I'm going to sleep.
23:37 rindolf left #perl6
23:37 diakopter muixirt: now you're talking about the use of a "JIT" compiler targetting machine-code...  and yes that's what lots of VMs do.
23:37 diakopter parrot did that for years
23:38 dukeleto and will again, soon.
23:38 Tene muixirt: javascript is dramatically simpler than Perl 6, and V8 does have a significant runtime component that manipulates abstract representations of language elements.
23:39 muixirt p-code sytems got extinct, but Gosling thought: what a wunderful idea, and Microsoft thought: they get a huge share in the mindset of developers, let's reinvent such a p-code system and call it dotnet
23:39 Tene "If the object's hidden class does not match the cached hidden class, execution jumps to the V8 runtime system that handles inline cache misses and patches the inline cache code. If there is a match, which is the common case, the value of the x property is simply retrieved."
23:39 Tene etc.
23:39 muixirt but it is a dead end, and all those jits and trace based compiler efforts prove that
23:40 Tene muixirt: are you quoting something?
23:40 diakopter muixirt: what? most of the JVMs and the CLRs (including .NET) use JITs and traces
23:40 Tene -- http://code.google.com/apis/v8/design.html#mach_code
23:40 diakopter muixirt: your statement is dead wrong, see what I wrote above
23:40 Tene muixirt: URL?
23:41 Tene muixirt: "p-code"?
23:41 muixirt diakopter: well V8 has no jit, it's more a load-and-go compiler (pretty classic one)
23:41 masak November now compiles on Rakudo master. \o/
23:41 flussence yay
23:42 masak Tene: p-code was introduced by Pascal, I think.
23:42 Tene muixirt: That's false.  V8 *does* have dynamically-modified code sections.  See the section I quoted.
23:42 muixirt Tene: http://en.wikipedia.org/wiki/P-code_machine
23:43 colomon masak++
23:43 masak p-code seems to mean "VM bytecode".
23:43 masak colomon: it doesn't run yet, though. more in the upcoming today's blog post.
23:44 muixirt diakopter: well the jvm and clr have to support the  bytecode legacy
23:44 diakopter muixirt: why?
23:44 muixirt diakopter: why what?
23:45 diakopter why must they always interpret every bytecode one-by-one
23:45 diakopter without any optimization/analysis
23:48 muixirt jaegermonkey is no less complex than the V8 engine.
23:50 Tene muixirt: In that case, we're using a VM because we're more-interested in a complete and correct Perl 6 soon than we are in investing a huge amount of effort to reimplement what we're already getting for free from a VM, for uncertain and unreliable benefit.
23:52 muixirt Tene: fair enough
23:52 Tene muixirt: Someday you certainly may see a V8-style compiler for Perl 6.  You certainly will if you work on one.  There's nobody involved in Perl 6 right now that believes that they can reimplement everything required better, more-accurately, and more-performantly than current VM offerings on the same time-scale as getting a more-complete Perl 6.
23:53 Tene muixirt: If we had significantly more resources, you might see that equation change, but for right now, the work that seems to be getting the most beenfit for current contributors is working on completeness and correctness.
23:54 Tene So, the alternate answer is "insufficient resources".
23:55 Tene Implementing everything we'd need for a Perl 6 runtime better than current VM offerings is a huge investment.
23:55 muixirt Tene: as always (at least in this universe)
23:55 masak for me, it makes a lot of sense to pour resources into Rakudo, because Rakudo has been the spec-driving implementation for the past two-three years.
23:55 muixirt Tene: as always (at least in this universe) --> "insufficient resources"
23:56 masak sure, we need performance, but we need to clarify and refine the spec as well.
23:56 muixirt masak: that's right, I don't argue about that
23:56 Tene muixirt: look at how much work has been put into Parrot, .Net, or the JVM.  I *may* be able to do better than that, but not in this lifetime, on my own.
23:57 Tene muixirt: The effort of the perl6-related people to implement that *is* Parrot.  I have been contributing to Parrot.  It's making slow but steady progress.
23:57 masak what diakopter and sorear are doing seems to be more geared towards performance, but I cannot write programs in their Perl 6 implementations.
23:59 muixirt too slow: I don't argue about that: "for me, it makes a lot of sense to pour resources into Rakudo, because Rakudo has been the spec-driving implementation for the past two-three years."

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

Perl 6 | Reference Documentation | Rakudo