Camelia, the Perl 6 bug

IRC log for #parrot, 2010-10-30

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 integral joined #parrot
00:02 dalek parrot: r49729 | jkeenan++ | branches/gcc_defines/config/auto/gcc.pm:
00:02 dalek parrot: If C compiler is gcc, capture the 'defines' and make them available to Parrot
00:02 dalek parrot: as 'gccdefines*' in %PConfig.
00:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49729/
00:03 * cotto is confused by the triple baceks
00:04 bacek_mobile Cotto, perfectly.
00:05 bacek_mobile Cotto, i'm in rta trying to register my bike. Loooong queue...
00:05 cotto bacek_mobile, that's good.  That'll mean we don't need to care about any migrating existing pasm code.
00:06 bacek_mobile Cotto, actually, i think pirate can parse whole pasm already.
00:06 bacek_mobile Indeed
00:06 bacek_mobile Pir is just pasm with a lot of sugar
00:06 bacek_mobile Pirate desugarize it during parsing
00:07 cotto aloha, msg mikehh There's no need to convert any PASM tests to PIR.  PIRATE will handle PASM just fine.
00:07 aloha cotto: OK. I'll deliver the message.
00:07 cotto I have memories of working with some of the desugaring code.  I'm looking forward to hacking on that again.
00:07 bacek_mobile Go for it :)
00:08 cotto The Packfile PMCs need some love first, and apparently pcc hates me.
00:08 cotto That'll be good for tomorrow.
00:09 cotto opmap_aware_pmcs branch, if you want to give it an eyeball
00:10 cotto something causes Parrot_pcc_invoke_method_from_c_args to explode from within get_pointer
00:11 cotto in PackfileBytecodeSegment
00:12 silug joined #parrot
00:12 bacek_mobile left #parrot
00:15 kid51 msg dukeleto dukeleto wrote: "kid51: why are you not in #rtems?"   Because I have a $dayjob and responsibilities and can't sit on IRC all day like all you 'consultants'!
00:15 aloha OK. I'll deliver the message.
00:16 dukeleto kid51: i have a day job too. It is called "time management"
00:16 sorear so uh how are we going to get CLAs for the GCI?
00:16 dukeleto sorear: those aren't needed
00:17 dukeleto sorear: at least not for all tasks
00:17 dukeleto sorear: someone who has a CLA can commit it, citing the student who worked on it outside of core
00:17 dukeleto sorear: they can just commit to a mirror on github or whatever
00:17 dukeleto sorear: i will verify that that is ok, but i think it is.
00:18 * cotto is interviewing for a job on Tuesday where they're apparently cool with me idling on irc.
00:19 dukeleto cotto: i can't wait :)
00:20 sorear cotto_at_work eh?
00:21 cotto Yeah.  That guy might be back
00:26 Limbic_Region joined #parrot
00:26 Limbic_Region Does the roadmap exist anywhere in regular english prose?  I could only find http://trac.parrot.org/parrot/roadmap
00:27 Limbic_Region oh, and according to trac - several milestones are late
00:27 cotto Limbic_Region, which roadmap?
00:27 sorear that's not a roadmap.
00:27 sorear there is no roadmap except #parrotsketch
00:27 cotto There's one for Lorito.
00:28 cotto sorear, if you're bored, you can take a look at PIRATE.
00:28 cotto If you're from the Rakudo world, you might feel at home.  It's mostly nqp.
00:28 Limbic_Region sorear - I distinctly remember reading that there was a meeting of the minds and a road map was drawn up
00:28 Limbic_Region and if you look at the trac road map - some of the major milestones are listed
00:29 kid51 And we *ought* to be updating our roadmap at our online developer summit on Sunday November 7!
00:29 Limbic_Region Parrot 2.6 portability
00:29 Limbic_Region Parrot 3.0 Independence
00:29 Limbic_Region with the goal of removing p5 dependency
00:29 cotto http://github.com/parrot/pir <-PIRATE
00:29 cotto Limbic_Region, those goals are in need of revisiting.
00:30 kid51 Limbic_Region:  What are your specific concerns?
00:30 Limbic_Region kid51 - two concerns
00:30 cotto please share
00:31 cotto I'd say "your concerns are important to us", but you might think I'm a bot. ;)
00:31 sorear Limbic_Region: We draw up roadmaps at the weekly #parrotsketch meeting, but they aren't formalized
00:31 Limbic_Region sorear - I am talking history here - probably when parrot started releasing monthly in fact
00:32 kid51 ... which we continue to do
00:32 Limbic_Region right
00:32 kid51 ... and which was evidence used to support Perl 5's move to monthly releases
00:32 sorear cotto: I have no coding tuits this week; anything in particular you want me to think about, or what?
00:32 Limbic_Region the first concern is about perception - when someone says when is parrot going to have X and we can point to the plan and say - it is planned on X though that is always subject to change
00:33 Limbic_Region the second concern is - it looks like the big plan isn't being updated in a way the casual observer can pay attention
00:33 cotto sorear, no.  I was just suggesting that it'd be good to get familiar with it.  It'll eventually become our default PIR compiler, so we'd do well to have lots of people familiar with it.
00:33 cotto It's also quite well designed.
00:34 kid51 Limbic_Region:  As mentioned, we have an online developer summit in 9 days.
00:34 kid51 the previous roadmap, for better or worse, was drawn up at the corresponding summit a year ago.
00:34 sorear cotto: is PIR still intended to be the default wire format for offline compilers?
00:34 Limbic_Region kid51 - 1 recommendation then for this year
00:35 sorear has it been a whole year?
00:35 sorear ISTR being present at that one, and I didn't join the Rakudo/Parrot community until shortly after the ng merge
00:35 cotto sorear, no.  That'll be Lorito bytecode.
00:35 kid51 sorear:  11 months since the one at which we last touched the roadmap intensively
00:35 Limbic_Region make the resulting road map for the next year readable to the casual observer - reading trac tickets to figure out what is planned when is not something I would expect someone who is only willing to invest 10 minutes to do
00:35 kid51 I believe we had another online summit in April
00:35 cotto . o O (so many concurrent threads)
00:36 Limbic_Region See http://www.parrot.org/news/vision-for-1_0 for an example of what I mean
00:36 sorear cotto: can lorito bytecode be sanely generated from Perl 5?
00:36 kid51 Limbic_Region: We've certainly had a lot of discussion about the state of Parrot recently.
00:36 cotto When Lorito and a Perl 5 compiler exist, sure.
00:37 kid51 Cf blogs on planet.parrotcode.org from Sept 1 onwards.
00:37 cotto Right now, no.
00:37 sorear I have an existing compiler (~12,000 lines of Perl 5, using ~70,000 more lines of gneerated) code
00:37 sorear I'd like to try and make it target Parrot
00:37 kid51 So we're well aware of the need to discuss our future plans
00:37 Limbic_Region kid51 - well, I have lost touch and haven't contributed in years but when someone was asking something I was sure I could go point to and say - right there, that's when it is planned and couldn't find it - I was thinking perhaps it had gotten lost
00:37 kid51 Limbic_Region Is there some way in which you can contribute to Parrot?
00:37 cotto sorear, PIR would be best for now.  Our long-term plan is to keep compatibility so that existing PIR will run as now, but be compiled down to Lorito.
00:37 Limbic_Region kid51 - the website is great by the way - just the one thing I was looking for I couldn't find
00:37 sorear PONIE is dead.  Should I write Parrot::LoritoPBC and upload it to CPAN?
00:38 Limbic_Region kid51 - I used to be THE cygwin guinea pig, bug finder, etc
00:38 sorear ok.
00:38 kid51 Limbic_Region Well, I'm sure we have many cygwin Trac tickets open :-)
00:38 Limbic_Region kid51 - I also contributed some benchmarking code that is probably still part of the trunk
00:38 cotto If you target PIR, we'll try hard to make sure we don't break your code.  At the very least, we'll provide a well-defined upgrade path.
00:38 Limbic_Region kid51 - but no, I no longer have time to contribute in any meaningful way
00:38 Limbic_Region I don't even lurk anymore
00:39 kid51 Limbic_Region Yes, I recall seeing you here 2-3 years back, but not recently.
00:39 kid51 Time:  major impediment to all-volunteer open-source projects
00:39 sorear he has a slavorg bit, that counts for something
00:40 Limbic_Region Elian (Dan) handed that to me a long long time ago in a galaxy far far away
00:40 * kid51 never knew Dan as Elian ... only as Dan
00:41 * kid51 is trying to reach Dan to go out for dinner
00:41 * cotto never knew Dan, other than reading his blog posts
00:41 cotto They're what convinced me that it's a good idea for Parrot hackers to blog about what they're doing.
00:41 Limbic_Region kid51 - he still live in Connecticut?
00:41 sorear Dan Sugalski, the guy whose parrot design we've been throwing out one piece at a time?
00:41 cotto sorear, yes.  That one.
00:41 kid51 sorear Careful, he's a friend of mine ;-)
00:42 kid51 Limbic_Region: I believe so
00:42 cotto You don't know what you want until you've implemented something isn't it.
00:42 Limbic_Region kid51 - I didn't know he went by anything other than Elian in #parrot
00:43 kid51 Limbic_Region But I wasn't in Parrot project when he was.  Knew him mainly from YAPCs and Perl Seminar NY
00:43 Limbic_Region anyway - I am just making a suggesting regarding road map planning - even if it is only for 6 months in the future - make it easy for the very casual observer to read about
00:44 Limbic_Region sorear - did you ever read Dan's Post Mortem?
00:44 tadzik g'night parrots
00:45 cotto g'night tadzik
00:45 tadzik left #parrot
00:45 kid51 Limbic_Region We'll try that.  For the first time, we are trying to have a Product Manager and team, and they will be very concerned with shaping perceptions of Parrot
00:46 Limbic_Region well, the biggest obstacles in my mind (right or wrong) are two fold
00:46 Limbic_Region explaining why after 10 years it isn't production ready
00:46 Limbic_Region and why there isn't a single language I can write in that targets the VM that runs as fast as it does natively
00:47 Limbic_Region I don't need you to address them, I understand that many of the issues that were around years ago are still being worked through
00:47 Limbic_Region I am just talking about public perception - I do still lurk in other venues and those are the things I hear being said
00:47 Limbic_Region sorear - the post mortem if you are intersted - http://www.sidhe.org/~dan/​blog/archives/000435.html
00:56 kid51 Limbic_Region Your concerns are shared.  See those planet blogs mentioned earlier.
00:58 atrodo fascinating...
00:58 dukeleto Limbic_Region: what does "production" mean?
00:59 kid51 If we could capture all the person-years spent bloviating on "why after 10 years ...", we'd be a year farther ahead ;-)
00:59 dukeleto kid51: exactly.
01:00 dukeleto Complaining accomplishes nothing.
01:00 kid51 IIRC, chromatic had a good blog post several months back on why it's a waste of time to pay attention to such people.
01:00 kid51 It's a distraction from doing the work.
01:01 atrodo it's good to listen to some complaining, but there's certainly a point when it becomes counter productive
01:01 atrodo and that point is sooner rather than later
01:01 kid51 On my day job a few weeks back, someone (who may or may not have known I was associated with Parrot) said on the internal Tech chat, "Well it may have been a good idea back in 2001 ..."
01:02 kid51 And what has that guy done to contribute since 2001?  Nada
01:02 atrodo kid51> it's an even better idea in 2010
01:03 kid51 And, speaking of getting back to the work ...
01:03 * kid51 goes to buy beer.
01:04 cotto Limbic_Region, thanks for the thoughts.  If you have a blog, feel free to expand on them there and post a link on parrot-dev.
01:06 atrodo I've read through some of Dan's stuff.  I've always wondered what he though of parrot today
01:26 estrabd left #parrot
01:26 sorear Limbic_Region: yes, the post mortem is what i use when people make the "10 years" remark
01:26 sorear I just tell them that 8 of the 10 were wasted on politicking by people who are no longer involve
01:26 sorear d
01:39 dngor left #parrot
01:43 patspam left #parrot
02:08 dngor joined #parrot
02:29 kid51 left #parrot
03:11 tcurtis joined #parrot
03:49 lucian left #parrot
05:07 Limbic_Region left #parrot
06:14 dalek parrot: r49730 | plobsing++ | branches/gsoc_nci (4 files):
06:14 dalek parrot: switch ffi nci.pmc over to standard signature parser
06:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49730/
06:29 dalek parrot: r49731 | plobsing++ | branches/gsoc_nci (2 files):
06:30 dalek parrot: remove old libffi signature parser
06:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49731/
06:30 dalek parrot: r49732 | plobsing++ | branches/gsoc_nci/src/pmc/nci.pmc:
06:30 dalek parrot: eliminate some unnecessary attributes
06:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49732/
06:30 dalek parrot: r49733 | plobsing++ | branches/gsoc_nci (2 files):
06:30 dalek parrot: clean up coda a little
06:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49733/
06:35 fperrad joined #parrot
06:43 fperrad_ joined #parrot
06:45 fperrad left #parrot
06:45 fperrad_ is now known as fperrad
07:26 contingencyplan left #parrot
07:27 contingencyplan joined #parrot
07:29 contingencyplan left #parrot
07:32 contingencyplan joined #parrot
07:59 tadzik joined #parrot
07:59 tadzik hello
08:02 plobsing left #parrot
08:36 dalek left #parrot
08:37 dalek joined #parrot
09:22 jsut_ joined #parrot
09:27 jsut left #parrot
10:04 tadzik left #parrot
11:01 tadzik joined #parrot
11:38 dngor_ joined #parrot
11:38 dngor left #parrot
11:43 dngor joined #parrot
11:44 dngor_ left #parrot
12:04 lucian joined #parrot
12:06 dngor_ joined #parrot
12:07 dngor left #parrot
12:11 fperrad left #parrot
12:23 dngor joined #parrot
12:28 dngor_ left #parrot
12:35 dngor left #parrot
12:35 dngor joined #parrot
12:44 kid51 joined #parrot
12:48 whiteknight joined #parrot
12:52 kid51 Good morning, whiteknight
12:55 whiteknight Hello kid51
12:56 kid51 whiteknight Did you backscroll thru Tuesday's #parrotsketch and see what happened team-wise?
12:56 whiteknight I think so
12:57 kid51 Because I think one of the team/task forces 'formed' falls into the product management area.
13:04 whiteknight ok
13:29 kid51 tadzik ping
13:39 kj joined #parrot
13:41 fperrad joined #parrot
13:50 tadzik kid51: pong
13:56 kid51 tadzik:  I just sent to list a reply to your post
13:56 tadzik kid51: I'm just replying to whiteknight++
13:57 kid51 whiteknight:  Check your mail and recruit tadzik to your team!
13:57 tadzik I'll read your mail first
13:57 kid51 Ah, he beat me to it by one minute!
13:58 kid51 whiteknight focuses more on preparing for a GSOC project; my post focuses more on where parrot can use you right now
13:58 kid51 mix and match
13:59 tadzik kid51: Lorito sounds tempting to me
14:00 kid51 Well, it's not like you have to choose one area over the other.
14:00 tadzik well, I can't learn everything at once :)
14:00 kid51 But given that most people have time constraints, it's helpful to choose
14:01 kid51 I'm sure whiteknight will give you a good pitch about the areas he's working on :-)
14:02 tadzik just replied
14:03 tadzik bah, accidentally sent it to whiteknight only
14:04 lucian_ joined #parrot
14:04 tadzik fixed my mistake
14:07 lucian left #parrot
14:10 kid51 Got it
14:11 kid51 tadzik You are correct in identifying all those areas as "Big Things" in need of attention ...
14:12 kid51 ... but right now we're trying out a concept of working on teams and having "task forces" focusing on certain issues.
14:12 tadzik yeah, I remember reading about it somewhere
14:13 kid51 My hunch is that if you worked with cotto on Lorito, the two of you (plus chromatic, sorear and others who are interested in Lorito) could accomplish more than if you were, say, the only person currently working on non-blocking I/O.
14:14 kid51 You'd be working more closely with skilled programmers who can point you in the right direction with respect to learning the internals.
14:14 whiteknight tadzik: what kinds of areas are you personally interested?
14:15 tadzik great :)
14:15 tadzik whiteknight: Lorito sounds like fun
14:15 whiteknight Parrot is a big system and has lots of interesting subsystems
14:15 whiteknight tadzik: non-blocking and async IO would be a great addition
14:16 tadzik whiteknight: the problem is I have very little experience with things like implementing a virtual machine, so I'm looking for a field that won't be too mysterious to me
14:16 patspam joined #parrot
14:17 whiteknight tadzik: very little in Parrot is specific to "virtual machine" software. Most things in Parrot will be similar to the same subsystems in other projects
14:18 tadzik I see. Well, when I was writing stuff for Rakudo it wasn't compiler-specific stuff too
14:19 mikehh left #parrot
14:23 fperrad left #parrot
14:44 contingencyplan left #parrot
14:49 muixirt joined #parrot
15:09 fperrad joined #parrot
15:29 kj left #parrot
15:33 tadzik left #parrot
15:36 kid51 msg tadzik Also see this recent blogpost from cotto:  http://reparrot.blogspot.com/2010/1​0/parrots-teams-five-scenarios.html
15:36 aloha OK. I'll deliver the message.
15:40 muixirt big tasks, kid51
15:48 kid51 muixirt Well, tadzik *did* say he was looking for something to do, so ...
15:48 kid51 muixirt: Can we interest you in any of our teams or tasks?
15:50 muixirt kid51: is there any team or task for someone with a complete lack of skills?
15:50 kid51 Let me ask, what interests you about the Parrot project?
15:52 muixirt I have some interest in programming languages and I'm interested in low level things
15:53 muixirt but I am mostly a clueless lurker
16:02 kid51 msg dukeleto I'd love to comment on your blog post, but you're using Movable Type ... which requires me to have a password to sign in ... and requires me to remember a password recovery phrase if I've forgotten the password.  But what if I've also forgotten the password recovery phrase?  I'm screwed
16:02 aloha OK. I'll deliver the message.
16:04 kid51 msg dukeleto In any case, on Dynamic Languages Interoperability:  I know allison knows a lot about current state of this problem.  Could you put together with her a post about this issue?  Thanks.
16:04 aloha OK. I'll deliver the message.
16:04 kid51 left #parrot
16:33 jsut joined #parrot
16:37 jsut_ left #parrot
16:50 cotto ~~
16:57 mikehh joined #parrot
17:06 dukeleto whiteknight: ping
17:06 whiteknight pong
17:07 dukeleto whiteknight: please use the task template on http://trac.parrot.org/parro​t/wiki/GoogleCodeIn2010Tasks
17:08 dukeleto whiteknight: i see more tasks from you, but not following the template. we need waaaaay more details in those tasks, which is why there is a task template
17:08 whiteknight okay
17:08 dukeleto kid51: if you want to comment on my blog, there is openid, otherwise i don't allow commenting
17:09 dukeleto kid51: i don't do login/pass stuff for comments. So if you forgot your passwords, that really isn't my problem.
17:11 dukeleto whiteknight: thanks!
17:11 dukeleto whiteknight: even if you need to leave some stuff blank, that is OK
17:17 dukeleto whiteknight: and thank you again for adding tasks and getting stuff done. I really appreciate it.
17:19 contingencyplan joined #parrot
17:21 dalek parrot: r49734 | chromatic++ | branches/gc_ms2_sf:
17:21 dalek parrot: Experimenting with sweep-free GC MS2
17:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49734/
17:33 dukeleto Please announce if you are editing the code-in wiki page in here.
17:33 dukeleto Yes, we have devolved to this, because our wiki doesn't announce stuff in here, and I keep getting conflicts.
17:34 * dukeleto complains some more about our current wiki
17:40 whiteknight I thought our wiki did announce things in here?
17:41 dukeleto whiteknight: not for a long while. it broke
17:41 dukeleto whiteknight: i have been editing the wiki dozens of times since yesterday
17:41 dukeleto whiteknight: it no longer announces wiki changes in here
17:41 whiteknight damnit
17:42 cotto That'd be really nice to get back.
17:43 whiteknight I do agree about the shittacularness of the Trac wiki
17:43 nopaste "cotto" at 192.168.1.3 pasted "list of PMCs sorted by test coverage" (85 lines) at http://nopaste.snit.ch/25050
17:43 whiteknight as a frequent MediaWiki user and developer, the Trac wiki leaves a lot to be desired
17:44 cotto It's nice to see that list of PMCs at the bottom with 100% coverage.
18:08 dukeleto indeed it is.
18:12 cotto I'm trying to get coverage on the one line of FIA that's not covered and I think I'm running into a bug.
18:12 Tene dukeleto: you should add that request to the wiki page.
18:12 Tene ;)
18:12 dukeleto Tene: you so funny :P
18:38 radu_ joined #parrot
18:38 dukeleto perlfoundation.org says "Carries the legal responsibility for Perl 5, Perl 6 and Parrot"
18:38 dukeleto is that true?
18:38 dukeleto what does Parrot Foundation do, then? Eat chopped liver?
18:40 radu_ left #parrot
18:43 szbalint with pickles.
18:46 cotto Parrot/Pickle Foundation
18:48 * dukeleto just created #gci on irc.perl.org
18:48 dukeleto join that if you want to talk about gci-related things
18:49 dukeleto i will only post announcements in here, I don't want to flood the channel with GCI-related stuff
18:49 x3nU left #parrot
18:50 dukeleto Our task list need to be sorted by difficulty level.
18:50 Andy joined #parrot
18:50 x3nU joined #parrot
19:04 cotto seen chromatic
19:04 aloha chromatic was last seen in #parrot 2 days 12 hours ago saying "Now clap your hands to bring Tinkerbell back to life.".
19:15 dukeleto cotto: howdy
19:15 dukeleto cotto: what goes?
19:16 * dukeleto is pushing magic buttons and finishing the Google Code-In application
19:16 dukeleto cotto: you have any ideas for Code-In ?
19:17 dngor left #parrot
19:20 cotto dukeleto, none other than increasing PMC test coverage.
19:20 cotto I have a partially completed list of which PMCs I think will be suitable for gci.
19:27 dukeleto cotto: awesome!
19:27 * dukeleto just submitting the GCI application
19:27 dukeleto submitted, even
19:36 cotto I put the task on the wiki and will add the list of PMCs once I get the inappropriate ones weeded out
19:37 dukeleto cotto: thanks for working on that.
19:37 muixirt GCI task: provide a better example for embedding Parrot?
19:38 dukeleto muixirt: too ambiguous
19:38 dukeleto muixirt: we need very very very specific tasks that take a few weeks for a 13-18 yr old student
19:38 dukeleto come join #gci if you want to help
19:42 chromatic joined #parrot
19:50 chromatic left #parrot
19:50 chromatic joined #parrot
19:53 patspam left #parrot
19:54 cotto atrodo, ping
19:54 patspam joined #parrot
19:55 cotto whiteknight, ping
19:55 whiteknight pong
19:56 cotto does your blog post on Lorito (http://wknight8111.blogspot.co​m/2010/07/lorito-design.html) do a good job of covering your unanswered questions on its design?
19:57 whiteknight I have to re-read it
19:58 cotto ok
20:06 dukeleto i want to create projects to translate parrot.org into many languages
20:06 dukeleto do we have internationalization support on parrot.org ?
20:07 dukeleto can our current infrastructure even handle it?
20:07 cotto there's probably a drupal plugin for it'
20:07 dukeleto s/projects/tasks/g
20:07 dukeleto cotto: who do we bug about it?
20:08 cotto we probably need to find a plugin for whatever version of drupal parrot.org runs and get osuosl to install it
20:35 fperrad left #parrot
20:45 theory left #parrot
20:46 theory joined #parrot
20:49 cotto sorear, ping
20:50 sorear cotto: pong
20:51 cotto sorear, see privmsg
21:06 dngor joined #parrot
21:07 Andy left #parrot
21:11 atrodo cotto> pong
21:12 cotto atrodo, in your gist you said "I'm not entirely convinced that I need the vtable pointer."  What do you mean by that?
21:12 cotto http://gist.github.com/raw/650578/c844c296b3​63a3f67b727220eeeca91da564ab07/gistfile1.txt
21:13 whiteknight left #parrot
21:13 atrodo in the back of my mind, i think we might be able get away with having the lookup callable bind the vtable via closure or something similar
21:13 atrodo not sure it's a good idea, but it was the idea
21:14 cotto sounds like it's not a fundamental design question as much as an optimization
21:15 cotto or something we can work on once we have an object model that nobody objects to
21:15 jnthn_ One of the things I've realized from working on 6model is that if you do representation polymorphism in a deep way, you can expose everything as a first class object while still having freedom to use memory within the object in ways that specifically suit the VMs internal data structures.
21:17 atrodo cotto> exactly
21:18 atrodo jnthn_> that sounds fascinating, and I'm sure I don't know what you said
21:18 cotto jnthn_, were you among the people who had reservations about using the P&W object model for PMCs?
21:18 * cotto isn't sure either
21:19 cotto I'd like to know what alternatives, changes or shortcomings you see in it if so.
21:21 sorear P&W?
21:21 jnthn_ cotto: If you didn't see them yet, I explained quite a few things in this area in http://6guts.wordpress.com/2010/10/15/slides-a​nd-a-few-words-on-representation-polymorphism/ and the slides that are linked from there.
21:21 TimToady Pratt & Whitney
21:21 cotto aloha, P&W?
21:21 aloha cotto: I have no idea.
21:22 cotto TimToady, that
21:22 cotto 'd be a very fast parrot
21:22 cotto jnthn_, thanks
21:22 cotto I hadn't seen that.
21:22 jnthn_ cotto: There's certainly P&W-ish aspects in that every object has an initial pointer off to something that implements a common interface.
21:23 atrodo aloha p&w is http://tinyurl.com/23dfwut
21:23 aloha atrodo: Okay.
21:23 cotto atrodo++
21:24 jnthn_ IIUp&wC, it gives the same kind of benefits in that you can lay out an object as you want and then the thing pointed to implements some common API.
21:24 atrodo simple, i asked purl for it and told aloha :D
21:25 jnthn_ But in 6model, the representation API and HOW API are made distinct.
21:27 jnthn_ In the 6model on .Net implementation, most things (captures, code objects at the level Parrot has Sub PMCs, lists, hashes) are first class objects, but also each use a specialized underlying representation.
21:27 stilgar joined #parrot
21:27 jnthn_ There's quite a few bits to go yet. But I've been quite happy how things have gone with this model so far.
21:31 cotto So you'd like to see something that separates those concerns better than p&w does?
21:33 jnthn_ As a Perl 6 implementer, yes. If it's not provided at Parrot level, NQP and Rakudo will have to invent it, which is what I'm on with in the nom branch of nqp-rx.
21:35 jnthn_ But from working on the .Net runtime layer for NQP, I'm also starting to feel that it's useful to have such a thing fairly deep.
21:35 atrodo in my lorito prototype, i took p&W a step father and basically said that it's your (the pmc/object creator) responsibility to do the method lookup.  it is completly hands off on the layout and operation of objects
21:36 jnthn_ Oh, those certainly should be handed off rather than "innate"
21:36 jnthn_ What 6model then adds to that is "and we split the API into two parts"
21:37 jnthn_ The object's memory layout is no concern when it comes to method dispatch, for example.
21:37 jnthn_ Well, OK, it may be if you're implementing prototype OO, but presumably the meta-object then demands that all types use a specific representation.
21:38 jnthn_ But generally the methods don't live in the object, but rather in the meta-object.
21:39 atrodo Sounds interesting
21:40 jnthn_ http://github.com/perl6/nqp-rx/blob/​nom/src/metamodel/how/NQPClassHOW.pm is an example of such a meta-object.
21:40 stilgar left #parrot
21:40 jnthn_ That one implements the semantics of classes.
21:40 atrodo sounds interesting, and sounds like i'd need some time to digest
21:41 jnthn_ As an example of "the other piece", see http://github.com/perl6/nqp-rx/blob​/nom/src/metamodel/reprs/P6opaque.c which is an example of a representation.
21:41 cotto Mmmmm.  Meta.
21:43 jnthn_ atrodo: Yes, there's...quite a bit of stuff.
21:44 cotto Having some basic idea of what P6opaque is makes it much easier (i.e. possible) to understand.
21:46 jnthn_ cotto: Aye. It's just the name of one thing that implements the REPR API.
21:46 jnthn_ And happens to be the default layout that Perl 6 objects use.
21:47 jnthn_ The implementation I just linked to will get more complex later on since it needs to also learn to support "inlining" native types too.
21:47 stilgar joined #parrot
22:05 cotto jnthn_, are there any other systems that do a good job of separating representation from the other bits?
22:07 jnthn_ A comment left on my blog said Ada did this. There's some stuff in at least one meta-model paper out there - I think the one that is an extract from "The Art of the Meta-object Protocol".
22:07 jnthn_ And then there's Perl 5. :-)
22:07 jnthn_ (To a lesser degree.)
22:07 jnthn_ (Though it does, after all, let you bless various data structures into the same package.)
22:08 cotto So it's been done before, but it's not at all common?
22:09 jnthn_ I think it's fair to say that most languages don't need/expose it.
22:09 jnthn_ As I mentioned though, I think there are VM implementation benefits as well as enabling it for langauges.
22:10 cotto I get the feeling I'll be spending a lot of time reading your blog in the near future.
22:10 jnthn_ ;-)
22:11 cotto It'll be fun.
22:11 jnthn_ Yes, I'm enjoying working on this stuff.
22:12 jnthn_ Been hacking madly on getting NQP running on .Net of late, plus prototyping various things. Did the first prototype of the latest Perl 6 multi-dispatch spec today.
22:12 jnthn_ Need to fathom what that'll look like on Parrot at some point soonish.
22:15 chromatic My model looked pretty similar in separating REPR and HOW.
22:15 cotto Your model?
22:15 chromatic The one on the notepad on my bedside table two floors away.
22:16 cotto scans or it doesn't exist
22:16 chromatic It composes metaclasses from roles such as HasAttribute and HasMethod.
22:16 chromatic I didn't go so far as to make those roles polymorphic, but there's no reason it couldn't do something similar.
22:17 chromatic That separate the responsibility from mapping a named attribute (or method) from the other classlike responsibilities.
22:17 chromatic It also allows polymorphism for those responsibilities on a fine-grained level.
22:18 chromatic I stopped before I figured out if or how to break the metacircularity and make *something* instantiable with parametric roles as the fundamental unit of the MOP.
22:19 chromatic That may all hinge on whether you want to build the whole system from metaroles or whether you're comfortable with the Null Role as the foundation of the type and metaobject system.
22:20 jnthn_ chromatic: While I like the idea of composing metaclasses out of roles and may well end up factoring the Perl 6 implementation of the MOP that way, I'm less convinced about roles as the core primitive, because - as you mention - you then need to get from there to something instantiable, and that probably ends up needing composition to be in the meta-model core too.
22:20 chromatic One interesting distinction is that the Null Role *can't* be anonymous, but everything else in the system can.
22:21 jnthn_ Or at least, it needs the concept of going from role to instance.
22:21 chromatic jnthn_, I had a role called Instantiable.  The entry point into the system from the POV of doing something useful always starts with something which does Instantiable.
22:23 jnthn_ chromatic: That still seems to imply that you need to form that something from the Instantiable role and perhaps some others though.
22:24 chromatic Class does Instantiable.
22:24 chromatic Or MetaClass does Instantiable.
22:27 chromatic It gets a little deep there, where Instantiable is basically a convention that says "This can allocate memory (if necessary) and return something associated with the appropriate metaobject." but it's a nice place to customize metaclasses for factories or delegates or laziness of building, for example.
22:31 jnthn_ Anywhere there's a method in a meta-object that can be overridden is really a hook for customization though, I guess. In Perl 6 you'd achieve the above style of thing probably by overriding .^CREATE or so.
22:32 jnthn_ And the default form of that method could indeed come from an Instantiable role.
22:33 sorear .CREATE actually
22:33 sorear (IMO this is wrong)
22:33 jnthn_ sorear: SMOP had it so .CREATE delegates to .^CREATE, iirc.
22:34 jnthn_ I don't really like the delegation on a hot-path though, and do wonder if .CREATE should exist or should just move into the HOW always.
22:53 chromatic That's one benefit of roles: you always compose in this behavior, so no hot path worries.
22:54 chromatic Also you get composition-time safety.
22:54 chromatic ... whether it's the core developers who write a metaclass or someone else.
23:01 kid51 joined #parrot
23:01 tadzik joined #parrot
23:01 tadzik hello parrots!
23:01 kid51 tadzik hello
23:02 sorear Hello kid51 and tadzik
23:02 sorear opbots trust tadzik
23:02 slavorgn Ok
23:02 slavorg Ok
23:03 tadzik1 joined #parrot
23:05 tadzik1 sorear: opbots trust tadzik?
23:07 sorear You'd know if you hadn't changed to tadzik1
23:07 tadzik1 I accidentally my internet connection
23:07 chromatic msg bacek The GC's Linked_List is suboptimal for searching and removal; we may need to consider something with better than O(n/2) performance for both.
23:07 aloha OK. I'll deliver the message.
23:07 tadzik1 I'm waiting for the other tadzik to time out
23:07 tadzik left #parrot
23:08 tadzik1 is now known as tadzik
23:08 kid51 Glad to have you back, tadzik
23:08 sorear slavorg is a bit flaky with nickname changes and sometimes needs a good kick
23:08 sorear opbots names
23:08 tadzik oh
23:08 tadzik I'm moved :)
23:09 * sorear is annoyed by the "verbs are for lamers" memo
23:09 sorear meme
23:11 jnthn_ I accidentally the whole sentence without out occasionally.
23:11 jnthn_ *one
23:11 tadzik is anyone named tadzik automagically oped now?
23:14 sorear yes
23:18 chromatic left #parrot
23:18 dalek parrot: r49735 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
23:19 dalek parrot: [GC] Tidied and headerized; no functional changes.
23:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49735/
23:19 dalek parrot: r49736 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
23:19 dalek parrot: [GC] Added GC list for constant PMCs.
23:19 dalek parrot: Because constant PMCs only get swept away during global destruction, they don't
23:19 dalek parrot: need to be swept at all--on creation, they get stored in a constant-specific
23:19 dalek parrot: list for safekeeping.
23:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49736/
23:19 dalek parrot: r49737 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
23:19 dalek parrot: [GC] Added GC list for constant STRINGs.
23:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49737/
23:19 dalek parrot: r49738 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
23:19 dalek parrot: [GC] Removed constant PMCs from memory statistics.
23:19 dalek parrot: Because constant PMC memory is unreclaimable, there's little point in running
23:19 dalek parrot: the GC to attempt to free this memory.  This should improve GC throughput
23:19 dalek parrot: somewhat.
23:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49738/
23:19 dalek parrot: r49739 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
23:19 dalek parrot: [GC] Removed constant STRINGs from memory stats.
23:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49739/
23:19 dalek parrot: r49740 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
23:19 dalek parrot: [GC] Skip system stack tracing of constant GCables.
23:19 dalek parrot: As they're already on the right list, they don't need marking from the
23:19 dalek parrot: imprecise marker.
23:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49740/
23:28 tadzik gosh, it's late. G'night parrots :)
23:29 tadzik left #parrot
23:41 davidfetter joined #parrot
23:43 muixirt left #parrot
23:52 dalek parrot: r49741 | jkeenan++ | trunk/DEPRECATED.pod:
23:52 dalek parrot: Correct spelling error only.
23:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49741/
23:53 dukeleto aloha, languages?
23:53 aloha dukeleto: I give up.
23:53 dukeleto useless.

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

Parrot | source cross referenced