% rafl has left rafl!~rafl@armitage.dreker.org % rafl has joined #parrotsketch % particle_ has joined #parrotsketch % particle has left particle!~particle@144.81.84.209 % particle has joined #parrotsketch % particle_ has left particle_!~particle@144.81.84.209 % ptc has left ptc!~cochrane@130.75.117.210 % particle has left particle!~particle@144.81.84.209 % particle has joined #parrotsketch % particle_ has joined #parrotsketch % particle has left particle!~particle@144.81.84.209 % particle_ has left particle_!~particle@c-24-19-12-148.hsd1.wa.comcast.net well, i've convinced myself i should go ahead. This is the log of the #parrotsketch meeting of November 7 (times are in GMT-0500): 13:02:04 < obra> hi gang 13:02:04 < obra> hi gang 13:02:04 < obra> hi gang 13:02:04 < obra> hi gang 13:02:13 < allison> hi obra 13:02:21 < leo_> hi obra 13:02:32 < chromatic> Hello. 13:03:57 < obra> how are folks? 13:04:21 * leo_ is hungry - came just home ;) 13:04:46 < obra> go grab a snack. I'll let you go last ;) 13:05:25 < leo_> na - I'll "cook" something 13:05:34 < obra> we're birdless today. so I'll repost logs later. 13:05:46 < chip> 13:05:54 < leo_> hi cheep 13:07:23 < particle> hey all 13:07:25 < obra> so. chip. 13:07:29 < obra> what's new and exciting? 13:07:56 < particle> btw i have patrick's report as well as mine 13:08:04 < chip> hi 13:08:36 < chip> Done: No change, unfortunately. 13:08:56 < chip> Coming before the hackathon: Release. 13:09:31 < chip> ^D # *sigh* 13:10:00 < obra> What are you hoping to hack on at the hackathon? 13:10:14 < chip> HLL-specific class names tops the list 13:10:54 < obra> Cool 13:11:06 < chip> that's th eonly thing off the top of my head. My TODO lists are a bottomles swell of ideas, of course 13:11:10 < obra> *nod* 13:11:22 * tewk suggests variable sized PMCS and a rewrite of ParrotObjects. 13:11:38 * obra points to allison as next. 13:11:49 < allison> I'm at the Ubuntu Developer Summit again today. I don't know what they're smoking, but I want some. :) (Some c ool ideas for automatic mirror selection in their CPAN equivalent, BTW.) 13:11:52 -!- ptc [~cochrane@130.75.117.210] has joined #parrotsketch 13:12:11 < allison> I'm nearly through reviewing the Bytecode PDD and will move it out of clip later today. Let me know of any out standing questions when we get to questions. (I have one.) 13:12:59 < allison> I've tasked particle with some delegated design work for the hackathon. 13:13:05 -!- pmichaud [pmichaud@feather.perl6.nl] has joined #parrotsketch 13:13:17 < allison> Which he may talk about. 13:13:20 < allison> EOR 13:14:22 < obra> particle: what'cha up to? 13:14:35 < particle> ~ i'm happy to report paul got his commit bit, and has been cleaning up code ever since :) ptc++ 13:14:44 < particle> ~ lots of discussion this week with core committers and design team, on topics including pmc design, oo, and io 13:14:53 < particle> ~ i have a concrete list of goals for chicago hackathon, including: 13:14:53 < particle> ~ list of problems and proposed solutions for pmcs (from allison) 13:14:53 < particle> ~ discuss and write spec for IPC::Run-like control of parrot interp (from allison) 13:14:53 < particle> ~ review pcc argument processing 13:14:53 < particle> ~ debug Parrot::Embed on win32 with chromatic 13:14:53 < particle> ~ finalize design of smartlinks object model 13:15:03 < particle> ~ haven't gotten the time to classify test failures yet, this is getting annoying -- i'd really like to reset my ENOTIME flag 13:15:13 < particle> ~ speaking of release prep, i entered some tickets in rt hoping somebody would grab them and help out with simple tasks like NEWS and CREDITS updates 13:15:20 < particle> ~ the usual bugfixes and code cleanups 13:15:22 < particle> .end 13:15:37 < obra> pmichaud: how goes prep for the texas branch of the hackathon? 13:15:59 < pmichaud> it goes fine, although some Parrot core features are starting to slow me up a bit 13:16:02 < pmichaud> report: 13:16:10 < pmichaud> * Added <-alpha>, , etc. regexes to PGE. 13:16:10 < pmichaud> * Updated the tcl grammar for changes in enumerated character class syntax 13:16:10 < pmichaud> (spaces in <[...]> must now be escaped). 13:16:10 < pmichaud> * Fixed many cases in perl6 and APL where hashes now return NULL 13:16:10 < pmichaud> instead of None. 13:16:13 < pmichaud> * Helped debug c89/const conflicts in Tcl. 13:16:15 < pmichaud> * Added a capture PMC to the core. 13:16:18 < pmichaud> ** Capture exposes a lot of issues with Parrot objects and inheritance. 13:16:20 < pmichaud> * Worked on new implementation of PAST 13:16:23 < pmichaud> ** I think PAST nodes really should be based on Captures, but the 13:16:25 < pmichaud> PMC/object issues above are a bit of a block for that. 13:16:28 < pmichaud> ** I'm planning to implement Capture in PIR (instead of a PMC) in 13:16:30 < pmichaud> order to keep from blocking on this for now. 13:16:33 < pmichaud> * Still awaiting resolution on HLL classnames and namespaces. 13:16:35 < pmichaud> * Long discussion yesterday with particle and tewk about implementing 13:16:38 < pmichaud> CodeString in C (potentially significant performance gain there) and 13:16:40 < pmichaud> handling slurpy/named parameters in PMC methods. 13:16:43 < pmichaud> * Worked on switching perl6 to use new :init pragma (tewk++), 13:16:45 < pmichaud> as of 16:38 UTC :init wasn't working for subs in .pbc files. 13:16:48 < pmichaud> * Worked on switching PGE to use new :vtable pragma (jonathan++), 13:16:50 < pmichaud> but it also doesn't work for .pbc files. Example to be posted 13:16:53 < pmichaud> to RT #40626. 13:16:55 < pmichaud> * Plan for this week: new PAST, adapt perl6 to new PAST implementation, 13:16:58 < pmichaud> have notes and tasks for hackathon attendees this weekend. 13:17:00 < pmichaud> EOR 13:18:45 < obra> chromatic: you're up 13:18:55 < chromatic> I'm writing notes on various concurrency models right now. 13:19:05 < chromatic> I made a list of three hackathon goals and sent that to various people. 13:19:30 < chromatic> I agree with the "Wow, the object model just isn't quite there" comments; I have various tickets about that, especially with regard to PBC. 13:19:33 < chromatic> That's all. 13:20:44 < obra> mdiep: you around? 13:21:01 < obra> 13:22:11 < obra> leo_: ? 13:22:14 < leo_> * tried to fix inerhitance problem, when a PMC is subclassed 13:22:15 < leo_> - managed to cure just one level, the default implementation hurts badly 13:22:15 < leo_> - removing the default redirection is probably the way to go (e.g. get_integer_keyed_int => get_integer_keyed) 13:22:18 < leo_> ^D 13:24:02 -!- obra is now known as jonathan_ 13:24:05 < jonathan_> I'm on my way to the Chicago Hackathon via Cambridge to see friends from my uni days, so can't make the meeting. 13:24:25 < leo_> *g* 13:24:27 < jonathan_> * Frustrating week of not really solving anything despite plenty of time trying to. 13:24:30 < jonathan_> * Attempted a fix to the PMC subclass problem. Learned plenty about how subclassing of PMCs works. Concluded that it sucks. Leo stuck in a workaround, but we need a real solution. Hope the objects PDD will give that. 13:24:34 < jonathan_> * Added an experimental op to run an invokable in another interpreter, to help particle with porting tests to PIR (it'd be nice to run the tests in a clean interpreter). Kinda works, but not completely. And not sure why exactly, yet. 13:24:39 < jonathan_> * Poked Allison for approval to work on bytecode PDD implementation at the Hackathon, if that's what appears to be the right thing to work on when I'm there. But, I'll work on whatever's useful. 13:24:43 < jonathan_> EOR 13:24:44 < jonathan_> (jonathan mailed me his report) 13:24:46 -!- jonathan_ is now known as obra 13:24:52 < obra> who'd I miss? 13:25:00 * tewk 13:25:22 < obra> hey tewk. sorry :) 13:25:23 < obra> how are things? 13:25:31 < tewk> Checked in working :init code. 13:25:31 < tewk> Checked in broken CodeString PMC. I have a patch which makes PGE::CodeString, a PIR class, inherit from CodeString PMC which inherits from String PMC. 13:25:35 < tewk> The STRING* of String PMC doesn't seem to be getting initialized and core dumps when the CodeString PMC's emit function is call. 13:25:38 < tewk> I'm looking into it. 13:25:40 < tewk> Cardinal needs attributes that can be added to class after objects have been instanciated. ( Hash based storage of attributes ). 13:25:43 < tewk> Does support for that exist anywhere or should I just code up my own RubyClass and RubyObject. 13:26:10 < tewk> I'm trying to get smokes running for Test::TAP::Model::VERSION > 0.50 13:27:00 < tewk> Looking forward to helping to get objects working. 13:27:02 < tewk> EOR 13:27:19 < obra> ok. question time. 13:27:26 < obra> I think allison is first 13:27:30 -!- coke [~coke@cpe-72-228-52-192.nycap.res.rr.com] has joined #parrotsketch 13:27:38 < obra> or first. actually. 13:27:42 < obra> coke! how are things? 13:28:12 < coke> er... 13:28:18 * particle has a comment and two questions 13:28:23 < coke> busy. nothing else to report. =-) 13:28:37 < obra> okie 13:28:46 * chromatic idly wonders if the lack of super() hurts CodeString. 13:28:52 < obra> allison: your question. then particle. then chromatic 13:29:01 * mdiep arrives, belatedly 13:29:25 < allison> Bytecode PDD question: What version number is this new version of Parrot bytecode? Scan through PBC_COMPAT and increment to a number that roughly matches the criteria in the PDD? 13:30:04 < allison> We've never kept bytecode version numbers before. 13:30:44 < particle> why not make it the version number of parrot at time of release? 13:30:48 < allison> But I think it's the right way to go, to allow for external bytecode interepreters (e.g. embedded in a cell phone, etc.) 13:31:18 < allison> I was typing the answer as you typed the question. 13:31:38 < allison> Not every bytecode interpreter will be part of Parrot. 13:31:44 < chip> Debian kernels ahve an interesting approach 13:32:00 < leo_> we now have the parrot (major,minor) in the pbc, but that doesn't cover changes of PBC_COMPAT - i.e. all such changes shall change the PBC version 13:32:12 < allison> It also gives us a way of marking major and minor changes to the bytecode format. (Which don't happen on the same cycle as the major and minor changes of Parrot) 13:32:18 < chip> They version their kernel module packages with the kernel version that breaks binary compatibility with previous versions 13:32:19 < particle> allison: i understand, but the builtin could match parrot. that is, unless we offer multiple bytecode interpreters in core 13:32:45 < allison> particle, that is one possibility 13:33:28 < allison> we do guarantee that after the 1.0 release we will always provide a way to read older versions. 13:33:35 < leo_> and of course: are we speaking of past 1.0 parrot or for todays .pbc compat? 13:34:24 < allison> from 1.0 onward 13:34:57 < allison> hence the question of whether we should retroactively number them 13:35:33 < allison> I'm in favor of it for historical sanity 13:35:54 < particle> me too. versioning is *important* 13:36:20 < allison> Can I read the quiet as a resounding "don't care", in which case we'll go with retroactive numbering. 13:36:30 < chromatic> Retroactively number bytecode versions for all of the people who haven't targeted Parrot yet? 13:36:33 < chromatic> Is that really a problem? 13:37:00 < tewk> So the bytecode PDD should support something like rails's db schema migrations except bytecode migrations? 13:37:20 < tewk> POST 1.0 that is. 13:37:51 < allison> The question is really: we've just added separate bytecode numbering, do we call the new version 0.1, or do we call it 42.5, or whatever the version would be going by the current numbering scheme? 13:38:12 < chromatic> Ah. Sign me up for "don't care" then. 13:38:45 < allison> tewk: yes, that's the idea 13:38:53 < obra> Sounds like the architect needs to just make a call ;) 13:39:03 < allison> done 13:39:24 < allison> I have 2 comments, but can wait til after questions 13:39:31 < obra> ok. particle? 13:39:47 < particle> i'll be happy to give the floor to mdiep if he has a report 13:39:55 < obra> okie 13:40:03 < mdiep> * talked PMCs with jonathan, pmichaud, and particle on IRC 13:40:04 < mdiep> * trying to figure out how variables work in Forth and how to implement them 13:40:04 < mdiep> * really busy with school until this weekend at the hackathon 13:40:11 < mdiep> ^D 13:40:19 < obra> back to particle 13:40:52 < particle> i forgot to say i've been planning a parrot intro at the hackathon. ENOTIME still applies. 13:41:07 < particle> leo: will you be available during the weekend? it'd be nice to have you online 13:41:21 < leo_> yep, I'll be on IRC 13:41:26 < particle> fantastic 13:41:30 < particle> pmichaud: are you still targeting perl6-only for the initial PAST impl? 13:42:06 < pmichaud> particle: no. I'm writing a past impl within the perl6/ tree, but I'm thinking that other languages could start porting to it very soon 13:42:16 < particle> ok, great! 13:42:27 < pmichaud> i.e., the past is going to be in languages/perl6/past/ to begin with, but will eventually move to compilers/past/ once we have the dependencies worked out 13:42:55 < pmichaud> but it will be mostly a standalone library, so that a compiler can just do load_bytecode 'PAST.pbc' and everything is loaded 13:43:04 < pmichaud> although it may be part of a more generic load_bytecode 'Compiler.pbc' 13:43:51 < particle> oh, i've been thinking about a seperate svn repo for the hackathon, so we can get an integration environment. then core committers can sync with the parrot repo after review. sound good? 13:43:51 < pmichaud> EOA 13:44:18 < pmichaud> I don't understand the need for a separate svn repo 13:44:26 < particle> this will allow newbies to commit and share amongst each other during the hackathon 13:44:32 < pmichaud> ohhhh 13:44:33 < particle> (along with us) 13:44:41 < chromatic> Bidirectional sync may be tricky. 13:44:47 < allison> we might as well get them used to creating and applying patches, no? 13:44:58 < obra> having a place that everyone at the hackathon can commit to will greatly speed up activity _at_ the hackathon. 13:45:03 < particle> will they get commit bits in situ? 13:45:34 < particle> chromatic, i'm okay with one-way sync against a parrot branch, i think 13:45:34 < allison> how about just making it a branch? 13:45:48 < allison> we can give separate commit permissions on branches 13:45:56 < obra> whether or not it's syncced directly back to the master repository is up to chip+allison. but having one available there for everyone in attendance to commit to is a huge boon to devlopment 13:45:57 < particle> fabulous. 13:46:03 < coke> branch++ 13:46:24 < pmichaud> I agree, the branch idea works best 13:46:35 < pmichaud> make it easy for us off-site hackathoners to stay synced 13:46:39 < particle> ok, great. we'll do the branch post-release (or pre-hackathon, whichever comes first) 13:47:41 < leo_> just a comment: 13:47:42 < leo_> tewk: The Plan for Perl6 is: add another "internal" attribute slot, which isa Hash, and stuff runtime attrs there. 13:47:45 < leo_> This would be done in subclasses of Parrot{Class,Object}, which deal with {get,set}attribute. 13:47:58 < obra> (I think chromatic is up next) 13:48:01 < coke> I might almost suggest having a pugs-style branch that's a free for all. 13:48:26 < chromatic> Would fixing super() fix the problems in the CompileString PMC? 13:48:55 < allison> ah, this brings me to my comment 13:49:10 < allison> May I interject? 13:49:22 < chromatic> That's a separate question. obra? 13:49:33 < obra> sure 13:49:40 < allison> So, the biggest thing I asked particle to do at the hackathon is get people together for a 1 hour discussion on objects. Collect the biggest problems, and the top proposed solutions. Keep the meeting short, this is a fast iteration. It will help keep things short and to the point if everyone who knows of object issues makes a quick list ahead of time. 13:49:56 < allison> This looks like a question for the hackathon discussion. 13:50:08 < allison> proceed, chromatic 13:50:12 < chromatic> Fun related question: Perl 5 objects. Ouch. 13:50:49 < chromatic> Should I list their requirements in the Objects PDD clip? 13:50:59 < allison> sounds good, go for it 13:51:56 < obra> what's next? 13:52:03 < tewk> pugs style branch ++ 13:52:18 < pmichaud> when is the objects discussion likely to take place? 13:52:34 < chromatic> Saturday, 10 am, cage-match style! 13:52:40 < particle> it'd be great to schedule it when everyone's available 13:52:52 < particle> i'll make sure it happens that way 13:53:18 < particle> or, i'll have seperate conversations with those who can't make it 13:53:21 < pmichaud> I'm unavailable Saturday 9:30am - 8:30pm 13:53:33 < obra> (same timezone?) 13:53:34 < particle> you'll all get the doc to review, also 13:53:40 < pmichaud> however, I'll have my observations typed up for you before then 13:53:43 < pmichaud> I have a lot of them 13:53:50 < leo_> hackathon is at which TZ? 13:53:52 < particle> pmichaud++ # perfect 13:53:53 < obra> 13:53:53 < allison> pmichaud: excellent :) 13:54:05 * pmichaud is CST, same as Chicago 13:54:10 < leo_> k 13:54:13 < particle> leo CST = GMT - 6 13:55:10 < allison> One final comment: There are a few TODOs left in the Bytecode PDD, that need to be cleared up (filled in and/or deleted). This is a good hackathon task (* allison looks at particle for list keeping). 13:55:30 * particle updates his hiveminder todo 13:55:49 < pmichaud> I have a comment/question also 13:56:06 < obra> go ahead 13:56:45 < pmichaud> during the week particle pointed out that obra's status matrix was to be commented upon by all of us -- i.e., to have several people independently check each box of the matrix (even those that have already been checked). Is that still the case? 13:56:53 < pmichaud> and I think we need an x86_64 row in the matrix 13:57:02 < obra> pmichaud: it's still the case. 13:57:06 < obra> I'm still collecting 13:57:22 < pmichaud> okay, I hadn't realized that we would have multiple checks for each box 13:57:34 < obra> Is x86_64 one of [BWhere's the canonical list of 1.0 target platforms? 13:57:53 < leo_> sure - I'm using it ;) 13:58:10 < obra> part of the point is to make sure that we don't get into the situation of one person saying something is done without any sort of cross-check 13:58:13 < particle> hrmm, could we say smoke.parrotcode.org/smoke contains canonical list? 13:58:33 * obra points to allison and chip 13:59:03 < allison> of platforms we are currently targeting, or platforms we plan to target? 13:59:03 < pmichaud> given that we've had enough errors pop up that are unique to x86_64, and that it's becoming a more popular platform, I think it deserves special mention 13:59:20 < obra> platforms that 1.0 should work on 13:59:30 < pmichaud> for much of the early part of this year I would run into errors on x86_64 that nobody else would encounter 14:00:07 < allison> er, I'd say it should work on quite a few more than are currently listed in smoke.parrotcode.org/smoke 14:00:16 < particle> yes, indeed. 14:00:23 < pmichaud> allison: I think we need an updated list then :-) 14:00:40 < allison> Pull it from Perl 5 14:00:41 < obra> I want a list staked in the ground. 14:00:49 < obra> allison: do you want to run on Dynix and Eunice? 14:00:51 < allison> we can then decide if some should be knocked off 14:00:52 < particle> there's been mention of working with the PITA folks to smoke parrot, but nothing's happened there yet. 14:01:47 < leo_> $ cat PLATFORMS # in parrot repo is stripped down to recent reports 14:01:48 < allison> obra: I'm okay with knocking Dynix and Eunice off (but we should give users a chance to object, if any are still living :) 14:01:49 < obra> pmichaud: I'm happy to ammend the matrix, though if we get to more than 6-7 platforms, I think that the test matrix needs to get broken out 14:02:21 < particle> i think the matrix should stick (now) to dev platforms, which number ~5 14:02:33 < allison> chromatic: I've seen him, but haven't talked to him 14:02:44 < particle> the list can grow as platform support extends 14:02:54 < obra> allison: can you canonize "parrot 1.0 should run everywhere perl5 does, modulo specific removals" into spec? 14:03:05 < allison> particle: yes, that's fine, we can add others later 14:03:12 < chromatic> "No porters for the platform, no porting to that platform." 14:03:20 < allison> obra: it's not in there yet? I'll look. 14:03:32 < allison> It's certainly been the goal from the beginning. 14:03:35 < particle> try the overview pdd, or maybe readme. 14:03:41 < allison> ok 14:03:43 < obra> I'd been led to believe that Parrot 1.0 had a much more limited target than "everywhere perl5 runs" 14:03:52 < allison> by whom? 14:03:59 < allison> nevermind :) 14:04:04 < particle> how about "everywhere perl 6 runs" :) 14:04:07 < obra> It was before your tenure ;) 14:04:17 < obra> particle: cool! haskell backend! 14:04:29 < allison> particle: isn't that a bit of a self-referential list? 14:04:32 < particle> parrot on javascript 14:04:39 < particle> yes, that's the idea. 14:04:42 < allison> lol :) 14:04:59 < obra> ok. what else? 14:05:37 < allison> and chromatic: yes, we will be limited by where we can beg/borrow/steal porters 14:05:55 < chromatic> I prefer a preemptive threat. 14:06:07 < obra> allison: if we can't get a porter for a given platform, does that remove it from the 1.0 list or delay 1.0? 14:06:08 < allison> may go 1.0 with fewer, and rely on release enthusiasm for porting boost 14:06:09 < particle> speaking of which... are we ready to beg/borrow/steal porters from p5p or anywhere else? 14:06:10 < chromatic> "If you care about your platform, you'd better run a smoke once in a while." 14:06:41 < obra> And if so, what is the minimal list that we CAN NOT ship 1.0 without? 14:06:52 < allison> particle: anytime, but may need more done before they get enthusiastic 14:07:21 < chromatic> Minimal list: at least one more platform than GHC 6.6. 14:08:01 < allison> obra: versions of Linux, Windows, and MacOSX released within the past 2 years 14:08:14 < allison> absolute requirement 14:08:25 < obra> cool. 14:08:35 < obra> That's what I'm looking for. 14:08:37 < allison> (which includes testing multiple distros of linux, etc) 14:08:47 < coke> *bsd? 14:08:53 < allison> yes 14:08:57 < particle> solaris? aix? 14:09:00 < allison> and solaris 14:09:10 < obra> 2 years before now or 2 years before 1.0? 14:09:11 < allison> don't care about aix, but if someone does we add it :) 14:09:18 < allison> before 1.0 14:09:19 < obra> (if the latter, it means we could, in fact be only x86 porta.ble..ok) 14:09:20 < pmichaud> so, essentially pc-based and mac-based platforms 14:09:36 < allison> that's the core list 14:09:37 < obra> allison: ok. now that's the list I want canonized. ;) 14:09:43 < chromatic> Throw in a BE platform there too, just for giggles. 14:09:50 < allison> but if we ship with only that, it'll be pretty pathetic :) 14:10:06 < obra> allison: sure. But there's release goal and there's showstopper. 14:10:10 < allison> yup 14:10:15 < chromatic> Alternately, get it into Debian and let their porters struggle for a bit. 14:10:34 < obra> I'd at least rather have a good parrot on those platforms than hold up the release 9 months to add System34 ;) 14:10:38 < particle> well, we're debian already 14:10:41 < allison> the others are nice to have, desirable, but we'll take whatever porters we can get 14:10:46 < allison> obra: agreed 14:10:48 < obra> allison++ 14:11:16 < leo_> rafl (debian porter of parrot) has some funny error report BTW on e.g. ia64 14:11:21 < pmichaud> I think that as we get nearer to 1.0 release we'll have more interest and porters 14:11:40 * particle looks forward to release 0.5 14:11:43 < allison> pmichaud: exactly 14:11:51 < particle> *halfway there* :) 14:12:35 < rafl> leo_: And I'm not able to debug it because of a gdb bug. 14:12:46 < leo_> indeed 14:13:20 < obra> ok. what's next? 14:13:42 < pmichaud> EOQ 14:13:56 < obra> have a great hackathon, everybody! 14:14:05 < pmichaud> yes, looking forward to the hackathon 14:14:17 < obra> when tweety is back, I'll replay the logs 14:14:39 < pmichaud> please do, I missed the first part of #parrotsketch 14:15:48 < allison> thanks jesse! 14:17:17 < leo_> thanks obra (sorry for the stutter at the start) spinclad: thanks