Parrot 2.9.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | remove deprecations | volunteer for embedding or Lorito teams |
Set by moderator on 26 October 2010.
00:00 integral joined
dalek rrot: r49729 | jkeenan++ | branches/gcc_defines/config/auto/gcc.pm:
If C compiler is gcc, capture the 'defines' and make them available to Parrot
00:02
cotto is confused by the triple baceks 00:03
bacek_mobile Cotto, perfectly. 00:04
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.
bacek_mobile Cotto, actually, i think pirate can parse whole pasm already. 00:06
Indeed
Pir is just pasm with a lot of sugar
Pirate desugarize it during parsing
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.
cotto I have memories of working with some of the desugaring code. I'm looking forward to hacking on that again.
bacek_mobile Go for it :)
cotto The Packfile PMCs need some love first, and apparently pcc hates me. 00:08
That'll be good for tomorrow.
opmap_aware_pmcs branch, if you want to give it an eyeball 00:09
something causes Parrot_pcc_invoke_method_from_c_args to explode from within get_pointer 00:10
in PackfileBytecodeSegment 00:11
00:12 silug joined, bacek_mobile left
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.
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?
dukeleto sorear: those aren't needed
sorear: at least not for all tasks 00:17
sorear: someone who has a CLA can commit it, citing the student who worked on it outside of core
sorear: they can just commit to a mirror on github or whatever
sorear: i will verify that that is ok, but i think it is.
cotto is interviewing for a job on Tuesday where they're apparently cool with me idling on irc. 00:18
dukeleto cotto: i can't wait :) 00:19
sorear cotto_at_work eh? 00:20
cotto Yeah. That guy might be back 00:21
00:26 Limbic_Region joined
Limbic_Region Does the roadmap exist anywhere in regular english prose? I could only find trac.parrot.org/parrot/roadmap 00:26
oh, and according to trac - several milestones are late 00:27
cotto Limbic_Region, which roadmap?
sorear that's not a roadmap.
there is no roadmap except #parrotsketch
cotto There's one for Lorito.
sorear, if you're bored, you can take a look at PIRATE. 00:28
If you're from the Rakudo world, you might feel at home. It's mostly nqp.
Limbic_Region sorear - I distinctly remember reading that there was a meeting of the minds and a road map was drawn up
and if you look at the trac road map - some of the major milestones are listed
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
Parrot 3.0 Independence
with the goal of removing p5 dependency
cotto github.com/parrot/pir <-PIRATE
Limbic_Region, those goals are in need of revisiting.
kid51 Limbic_Region: What are your specific concerns? 00:30
Limbic_Region kid51 - two concerns
cotto please share
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
Limbic_Region sorear - I am talking history here - probably when parrot started releasing monthly in fact
kid51 ... which we continue to do 00:32
Limbic_Region right
kid51 ... and which was evidence used to support Perl 5's move to monthly releases
sorear cotto: I have no coding tuits this week; anything in particular you want me to think about, or what?
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
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.
It's also quite well designed.
kid51 Limbic_Region: As mentioned, we have an online developer summit in 9 days. 00:34
the previous roadmap, for better or worse, was drawn up at the corresponding summit a year ago.
sorear cotto: is PIR still intended to be the default wire format for offline compilers?
Limbic_Region kid51 - 1 recommendation then for this year
sorear has it been a whole year? 00:35
ISTR being present at that one, and I didn't join the Rakudo/Parrot community until shortly after the ng merge
cotto sorear, no. That'll be Lorito bytecode.
kid51 sorear: 11 months since the one at which we last touched the roadmap intensively
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
kid51 I believe we had another online summit in April
cotto . o O (so many concurrent threads)
Limbic_Region See 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?
kid51 Limbic_Region: We've certainly had a lot of discussion about the state of Parrot recently.
cotto When Lorito and a Perl 5 compiler exist, sure.
kid51 Cf blogs on planet.parrotcode.org from Sept 1 onwards. 00:37
cotto Right now, no.
sorear I have an existing compiler (~12,000 lines of Perl 5, using ~70,000 more lines of gneerated) code
I'd like to try and make it target Parrot
kid51 So we're well aware of the need to discuss our future plans
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
kid51 Limbic_Region Is there some way in which you can contribute to Parrot?
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.
Limbic_Region kid51 - the website is great by the way - just the one thing I was looking for I couldn't find
sorear PONIE is dead. Should I write Parrot::LoritoPBC and upload it to CPAN?
Limbic_Region kid51 - I used to be THE cygwin guinea pig, bug finder, etc 00:38
sorear ok.
kid51 Limbic_Region Well, I'm sure we have many cygwin Trac tickets open :-)
Limbic_Region kid51 - I also contributed some benchmarking code that is probably still part of the trunk
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.
Limbic_Region kid51 - but no, I no longer have time to contribute in any meaningful way
I don't even lurk anymore
kid51 Limbic_Region Yes, I recall seeing you here 2-3 years back, but not recently. 00:39
Time: major impediment to all-volunteer open-source projects
sorear he has a slavorg bit, that counts for something
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
kid51 is trying to reach Dan to go out for dinner 00:41
cotto never knew Dan, other than reading his blog posts
They're what convinced me that it's a good idea for Parrot hackers to blog about what they're doing.
Limbic_Region kid51 - he still live in Connecticut?
sorear Dan Sugalski, the guy whose parrot design we've been throwing out one piece at a time?
cotto sorear, yes. That one.
kid51 sorear Careful, he's a friend of mine ;-)
Limbic_Region: I believe so 00:42
cotto You don't know what you want until you've implemented something isn't it.
Limbic_Region kid51 - I didn't know he went by anything other than Elian in #parrot
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
sorear - did you ever read Dan's Post Mortem? 00:44
tadzik g'night parrots
cotto g'night tadzik 00:45
00:45 tadzik left
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:45
Limbic_Region well, the biggest obstacles in my mind (right or wrong) are two fold 00:46
explaining why after 10 years it isn't production ready
and why there isn't a single language I can write in that targets the VM that runs as fast as it does natively
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
I am just talking about public perception - I do still lurk in other venues and those are the things I hear being said
sorear - the post mortem if you are intersted - www.sidhe.org/~dan/blog/archives/000435.html
kid51 Limbic_Region Your concerns are shared. See those planet blogs mentioned earlier. 00:56
atrodo fascinating... 00:58
dukeleto Limbic_Region: what does "production" mean?
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.
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.
It's a distraction from doing the work.
atrodo it's good to listen to some complaining, but there's certainly a point when it becomes counter productive 01:01
and that point is sooner rather than later
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 ..."
And what has that guy done to contribute since 2001? Nada 01:02
atrodo kid51> it's an even better idea in 2010
kid51 And, speaking of getting back to the work ... 01:03
kid51 goes to buy beer.
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:04
atrodo I've read through some of Dan's stuff. I've always wondered what he though of parrot today 01:06
01:26 estrabd left
sorear Limbic_Region: yes, the post mortem is what i use when people make the "10 years" remark 01:26
I just tell them that 8 of the 10 were wasted on politicking by people who are no longer involve
d
01:39 dngor left 01:43 patspam left 02:08 dngor joined 02:29 kid51 left 03:11 tcurtis joined 03:49 lucian left 05:07 Limbic_Region left
dalek rrot: r49730 | plobsing++ | branches/gsoc_nci (4 files):
switch ffi nci.pmc over to standard signature parser
06:14
rrot: r49731 | plobsing++ | branches/gsoc_nci (2 files):
remove old libffi signature parser
06:29
rrot: r49732 | plobsing++ | branches/gsoc_nci/src/pmc/nci.pmc:
eliminate some unnecessary attributes
rrot: r49733 | plobsing++ | branches/gsoc_nci (2 files):
clean up coda a little
06:35 fperrad joined 06:43 fperrad_ joined 06:45 fperrad left, fperrad_ is now known as fperrad 07:26 contingencyplan left 07:27 contingencyplan joined 07:29 contingencyplan left 07:32 contingencyplan joined 07:59 tadzik joined
tadzik hello 07:59
08:02 plobsing left 08:36 dalek left 08:37 dalek joined 09:22 jsut_ joined 09:27 jsut left 10:04 tadzik left 11:01 tadzik joined 11:38 dngor_ joined, dngor left 11:43 dngor joined 11:44 dngor_ left 12:04 lucian joined 12:06 dngor_ joined 12:07 dngor left 12:11 fperrad left 12:23 dngor joined 12:28 dngor_ left 12:35 dngor left, dngor joined 12:44 kid51 joined 12:48 whiteknight joined
kid51 Good morning, whiteknight 12:52
whiteknight Hello kid51 12:55
kid51 whiteknight Did you backscroll thru Tuesday's #parrotsketch and see what happened team-wise? 12:56
whiteknight I think so
kid51 Because I think one of the team/task forces 'formed' falls into the product management area. 12:57
whiteknight ok 13:04
kid51 tadzik ping 13:29
13:39 kj joined 13:41 fperrad joined
tadzik kid51: pong 13:50
kid51 tadzik: I just sent to list a reply to your post 13:56
tadzik kid51: I'm just replying to whiteknight++
kid51 whiteknight: Check your mail and recruit tadzik to your team! 13:57
tadzik I'll read your mail first
kid51 Ah, he beat me to it by one minute!
whiteknight focuses more on preparing for a GSOC project; my post focuses more on where parrot can use you right now 13:58
mix and match
tadzik kid51: Lorito sounds tempting to me 13:59
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 :)
kid51 But given that most people have time constraints, it's helpful to choose
I'm sure whiteknight will give you a good pitch about the areas he's working on :-) 14:01
tadzik just replied 14:02
bah, accidentally sent it to whiteknight only 14:03
14:04 lucian_ joined
tadzik fixed my mistake 14:04
14:07 lucian left
kid51 Got it 14:10
tadzik You are correct in identifying all those areas as "Big Things" in need of attention ... 14:11
... 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
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:13
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?
tadzik great :) 14:15
whiteknight: Lorito sounds like fun
whiteknight Parrot is a big system and has lots of interesting subsystems
tadzik: non-blocking and async IO would be a great addition
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
14:16 patspam joined
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:17
tadzik I see. Well, when I was writing stuff for Rakudo it wasn't compiler-specific stuff too 14:18
14:19 mikehh left 14:23 fperrad left 14:44 contingencyplan left 14:49 muixirt joined 15:09 fperrad joined 15:29 kj left 15:33 tadzik left
kid51 msg tadzik Also see this recent blogpost from cotto: reparrot.blogspot.com/2010/10/parro...arios.html 15:36
aloha OK. I'll deliver the message.
muixirt big tasks, kid51 15:40
kid51 muixirt Well, tadzik *did* say he was looking for something to do, so ... 15:48
muixirt: Can we interest you in any of our teams or tasks?
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?
muixirt I have some interest in programming languages and I'm interested in low level things 15:52
but I am mostly a clueless lurker 15:53
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.
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 16:33 jsut joined 16:37 jsut_ left
cotto ~~ 16:50
16:57 mikehh joined
dukeleto whiteknight: ping 17:06
whiteknight pong
dukeleto whiteknight: please use the task template on trac.parrot.org/parrot/wiki/GoogleC...n2010Tasks 17:07
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
dukeleto kid51: if you want to comment on my blog, there is openid, otherwise i don't allow commenting
kid51: i don't do login/pass stuff for comments. So if you forgot your passwords, that really isn't my problem. 17:09
whiteknight: thanks! 17:11
whiteknight: even if you need to leave some stuff blank, that is OK
whiteknight: and thank you again for adding tasks and getting stuff done. I really appreciate it. 17:17
17:19 contingencyplan joined
dalek rrot: r49734 | chromatic++ | branches/gc_ms2_sf:
Experimenting with sweep-free GC MS2
17:21
dukeleto Please announce if you are editing the code-in wiki page in here. 17:33
Yes, we have devolved to this, because our wiki doesn't announce stuff in here, and I keep getting conflicts.
dukeleto complains some more about our current wiki 17:34
whiteknight I thought our wiki did announce things in here? 17:40
dukeleto whiteknight: not for a long while. it broke 17:41
whiteknight: i have been editing the wiki dozens of times since yesterday
whiteknight: it no longer announces wiki changes in here
whiteknight damnit
cotto That'd be really nice to get back. 17:42
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 nopaste.snit.ch/25050
whiteknight as a frequent MediaWiki user and developer, the Trac wiki leaves a lot to be desired
cotto It's nice to see that list of PMCs at the bottom with 100% coverage. 17:44
dukeleto indeed it is. 18:08
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.
;)
dukeleto Tene: you so funny :P
18:38 radu_ joined
dukeleto perlfoundation.org says "Carries the legal responsibility for Perl 5, Perl 6 and Parrot" 18:38
is that true?
what does Parrot Foundation do, then? Eat chopped liver?
18:40 radu_ left
szbalint with pickles. 18:43
cotto Parrot/Pickle Foundation 18:46
dukeleto just created #gci on irc.perl.org 18:48
join that if you want to talk about gci-related things
i will only post announcements in here, I don't want to flood the channel with GCI-related stuff 18:49
18:49 x3nU left
dukeleto Our task list need to be sorted by difficulty level. 18:50
18:50 Andy joined, x3nU joined
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.".
dukeleto cotto: howdy 19:15
cotto: what goes?
dukeleto is pushing magic buttons and finishing the Google Code-In application 19:16
cotto: you have any ideas for Code-In ?
19:17 dngor left
cotto dukeleto, none other than increasing PMC test coverage. 19:20
I have a partially completed list of which PMCs I think will be suitable for gci.
dukeleto cotto: awesome! 19:27
dukeleto just submitting the GCI application
submitted, even
cotto I put the task on the wiki and will add the list of PMCs once I get the inappropriate ones weeded out 19:36
dukeleto cotto: thanks for working on that. 19:37
muixirt GCI task: provide a better example for embedding Parrot?
dukeleto muixirt: too ambiguous 19:38
muixirt: we need very very very specific tasks that take a few weeks for a 13-18 yr old student
come join #gci if you want to help
19:42 chromatic joined 19:50 chromatic left, chromatic joined 19:53 patspam left
cotto atrodo, ping 19:54
19:54 patspam joined
cotto whiteknight, ping 19:55
whiteknight pong
cotto does your blog post on Lorito (wknight8111.blogspot.com/2010/07/lo...sign.html) do a good job of covering your unanswered questions on its design? 19:56
whiteknight I have to re-read it 19:57
cotto ok 19:58
dukeleto i want to create projects to translate parrot.org into many languages 20:06
do we have internationalization support on parrot.org ?
can our current infrastructure even handle it? 20:07
cotto there's probably a drupal plugin for it'
dukeleto s/projects/tasks/g
cotto: who do we bug about it?
cotto we probably need to find a plugin for whatever version of drupal parrot.org runs and get osuosl to install it 20:08
20:35 fperrad left 20:45 theory left 20:46 theory joined
cotto sorear, ping 20:49
sorear cotto: pong 20:50
cotto sorear, see privmsg 20:51
21:06 dngor joined 21:07 Andy left
atrodo cotto> pong 21:11
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
gist.github.com/raw/650578/c844c296...tfile1.txt
21:13 whiteknight left
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
not sure it's a good idea, but it was the idea
cotto sounds like it's not a fundamental design question as much as an optimization 21:14
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.
atrodo cotto> exactly 21:17
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?
cotto isn't sure either
I'd like to know what alternatives, changes or shortcomings you see in it if so. 21:19
sorear P&W? 21:21
jnthn_ cotto: If you didn't see them yet, I explained quite a few things in this area in 6guts.wordpress.com/2010/10/15/slid...ymorphism/ and the slides that are linked from there.
TimToady Pratt & Whitney
cotto aloha, P&W?
aloha cotto: I have no idea.
cotto TimToady, that 21:22
'd be a very fast parrot
jnthn_, thanks
I hadn't seen that.
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.
atrodo aloha p&w is tinyurl.com/23dfwut 21:23
aloha atrodo: Okay.
cotto atrodo++
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
jnthn_ But in 6model, the representation API and HOW API are made distinct. 21:25
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
21:27 stilgar joined
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:27
cotto So you'd like to see something that separates those concerns better than p&w does? 21:31
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:33
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
jnthn_ Oh, those certainly should be handed off rather than "innate" 21:36
What 6model then adds to that is "and we split the API into two parts"
The object's memory layout is no concern when it comes to method dispatch, for example. 21:37
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.
But generally the methods don't live in the object, but rather in the meta-object. 21:38
atrodo Sounds interesting 21:39
jnthn_ github.com/perl6/nqp-rx/blob/nom/sr...lassHOW.pm is an example of such a meta-object. 21:40
21:40 stilgar left
jnthn_ That one implements the semantics of classes. 21:40
atrodo sounds interesting, and sounds like i'd need some time to digest
jnthn_ As an example of "the other piece", see github.com/perl6/nqp-rx/blob/nom/sr...P6opaque.c which is an example of a representation. 21:41
cotto Mmmmm. Meta.
jnthn_ atrodo: Yes, there's...quite a bit of stuff. 21:43
cotto Having some basic idea of what P6opaque is makes it much easier (i.e. possible) to understand. 21:44
jnthn_ cotto: Aye. It's just the name of one thing that implements the REPR API. 21:46
And happens to be the default layout that Perl 6 objects use.
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
21:47 stilgar joined
cotto jnthn_, are there any other systems that do a good job of separating representation from the other bits? 22:05
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
And then there's Perl 5. :-)
(To a lesser degree.)
(Though it does, after all, let you bless various data structures into the same package.)
cotto So it's been done before, but it's not at all common? 22:08
jnthn_ I think it's fair to say that most languages don't need/expose it. 22:09
As I mentioned though, I think there are VM implementation benefits as well as enabling it for langauges.
cotto I get the feeling I'll be spending a lot of time reading your blog in the near future. 22:10
jnthn_ ;-)
cotto It'll be fun. 22:11
jnthn_ Yes, I'm enjoying working on this stuff.
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
Need to fathom what that'll look like on Parrot at some point soonish.
chromatic My model looked pretty similar in separating REPR and HOW. 22:15
cotto Your model?
chromatic The one on the notepad on my bedside table two floors away.
cotto scans or it doesn't exist 22:16
chromatic It composes metaclasses from roles such as HasAttribute and HasMethod.
I didn't go so far as to make those roles polymorphic, but there's no reason it couldn't do something similar.
That separate the responsibility from mapping a named attribute (or method) from the other classlike responsibilities. 22:17
It also allows polymorphism for those responsibilities on a fine-grained level.
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:18
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:19
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.
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.
jnthn_ chromatic: That still seems to imply that you need to form that something from the Instantiable role and perhaps some others though. 22:23
chromatic Class does Instantiable. 22:24
Or MetaClass does Instantiable.
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:27
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:31
And the default form of that method could indeed come from an Instantiable role. 22:32
sorear .CREATE actually 22:33
(IMO this is wrong)
jnthn_ sorear: SMOP had it so .CREATE delegates to .^CREATE, iirc.
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:34
chromatic That's one benefit of roles: you always compose in this behavior, so no hot path worries. 22:53
Also you get composition-time safety. 22:54
... whether it's the core developers who write a metaclass or someone else.
23:01 kid51 joined, tadzik joined
tadzik hello parrots! 23:01
kid51 tadzik hello
sorear Hello kid51 and tadzik 23:02
opbots trust tadzik
slavorgn Ok
slavorg Ok
23:03 tadzik1 joined
tadzik1 sorear: opbots trust tadzik? 23:05
sorear You'd know if you hadn't changed to tadzik1 23:07
tadzik1 I accidentally my internet connection
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.
aloha OK. I'll deliver the message.
tadzik1 I'm waiting for the other tadzik to time out
23:07 tadzik left 23:08 tadzik1 is now known as tadzik
kid51 Glad to have you back, tadzik 23:08
sorear slavorg is a bit flaky with nickname changes and sometimes needs a good kick
opbots names
tadzik oh
I'm moved :)
sorear is annoyed by the "verbs are for lamers" memo 23:09
meme
jnthn_ I accidentally the whole sentence without out occasionally. 23:11
*one
tadzik is anyone named tadzik automagically oped now?
sorear yes 23:14
23:18 chromatic left
dalek rrot: r49735 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
[GC] Tidied and headerized; no functional changes.
23:18
rrot: r49736 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
[GC] Added GC list for constant PMCs.

need to be swept at all--on creation, they get stored in a constant-specific list for safekeeping.
rrot: r49737 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
[GC] Added GC list for constant STRINGs.
rrot: r49738 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
[GC] Removed constant PMCs from memory statistics.

the GC to attempt to free this memory. This should improve GC throughput somewhat.
rrot: r49739 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
[GC] Removed constant STRINGs from memory stats.
rrot: r49740 | chromatic++ | branches/gc_ms2_sf/src/gc/gc_ms2.c:
[GC] Skip system stack tracing of constant GCables.

imprecise marker.
tadzik gosh, it's late. G'night parrots :) 23:28
23:29 tadzik left 23:41 davidfetter joined 23:43 muixirt left
dalek rrot: r49741 | jkeenan++ | trunk/DEPRECATED.pod:
Correct spelling error only.
23:52
dukeleto aloha, languages? 23:53
aloha dukeleto: I give up.
dukeleto useless.