% cognominal has left cognominal!~stef@cac94-1-82-67-232-89.fbx.proxad.net % cognominal has joined #parrotsketch % Coke has joined #parrotsketch % Coke has left Coke!~wcoleda@cpe-24-194-223-228.nycap.res.rr.com % Coke has joined #parrotsketch % particle has joined #parrotsketch % audreyt has joined #parrotsketch % leo has joined #parrotsketch % Nicholas has joined #parrotsketch % Coke has left Coke!~wcoleda@host-216-153-142-9.alb.choiceone.net % mdiep has joined #parrotsketch % mdiep has left mdiep!~mdiep@c-24-11-80-190.hsd1.mi.comcast.net % mdiep has joined #parrotsketch % Coke has joined #parrotsketch % allison has joined #parrotsketch greetings folks :) hi hi all howdy allison: I'm so glad you're here :) last week there's some discussions proxied via chromatic :) hello audrey: excellent it appears that neither of our moderators are here Can we run without them? yes is logging automatic? I think so I'm keeping local log too ok, cool so, who wants to start? * audreyt notes "al" sorts before "au" ok, mine's quick I started up work again last week. Worked some on using PGE's operator precedence parser in Punie. % chromatic has joined #parrotsketch Dropped Patrick a note about a snag, and went on to work on capturing string values and comma separated expressions. I'll finish that off this week. EOR which brings us to au :) and I'll hand off running the meeting to chromatic :) aye :) ok... I cloned enough of operator precedence parser and rules engine to parse grammars using rules made the new pugs runtime's minilanguage (not unlike Punie/perl1 in feature set) to use it for parsing cool also implemented p6 "repr" types in the new runtime using the PMC interfaces design posted by leo a couple weeks ago currently only Opaque, Scalar, Array and Hash PMCs ported over IO and OS coming soon this should allow a much closer mapping between PILN (roughly equivalent to POST) and PIR emission I'm looking at codegen to new lexpad code at this moment; seems straightforward (not sure if it makes sense to compile it the other way around -- from POST to PILN -- but we can talk about it later) also, porting the above stack to Perl5 in this ongoing hackathon in particular the rules engine, which should give rise to a more stable rules implementation than the now-defunct Perl6::Rules once we regain PIR codegen, Pugs 6.2.11 will be released, circa this weekend. end of report. Is anything blocking you? I'd like some understanding of POST's status. the compiler tools roadmap says POST is isomorphic to PIR but last week you said something else iirc otherwise nothing else Question noted. Are you having fun? yeah :) Good. Next up, that Chip fellow, if he exists. If not, I have nothing to report and now it's Coke's turn. Aren't I just lurking? I thought you were hacking on Tcl in Parrot, which counts. I'll defer to mdiep this week, and plan for next, then. =-) Alright. Leo? - Released 0.4.1 - A lot of late hacks for 'make install' and shared build - Enhanced design docs, incl. implementation.pod That's it - EOR Are you blocking on anything? yeah I need chip for some decisions WRT these design docs Are you having fun otherwise? yes, except currently: it has 9C here oil heating is b0rked (but plumber is already here) leo: where is this implementation.pod you speak of? Turn of ccache and you'll warm up again in no time. ~lt/dev-doc on feather k ccache in on always ;-) Next up, mdiep. Or maybe Nicholas. Leo sent me his design proposals. I read the PMC proposal. The very next task on the ponie roadmap http://svn.perl.org/ponie/trunk/Roadmap is to rearrange the structures of the Perl 5 data inside the PMCs (search for "rearrange structures") hence as Leo is proposing a PMC re-arrangement, that blocks ponie (too) but it's also blocking on finding a replacement pumpking that's mostly it. apart from we're being logged here: http://www.parrotcode.org/misc/parrotsketch-logs/irclog.parrotsketch-200601/irclog.parrotsketch.20060109 Are you having fun? EOR I'm not doing anything, so it's tricky to answer. But if I were trying to do things I would not, because I'd be blocked on something that doesn't seem to be moving well, actually I'm doing perl 5 stuff, but that's not the topic here Alright. particle? the shared build patches leo mentioned caused a lot of windows debugging, mostly provided by me. jonathan worthington stepped up with a solution, though. also, some OS.pmc changes have required rebuild/retesting on windows. all this speaks to (imo) a shared win dev box. so then people won't be blocking on me to test their changes i've made little progress on the test suite, mostly due to lack of time. ZZ Are you blocking on anything besides time? no. Are you having fun? yes. my only reason to work on parrot is to have fun. :) Good. Chip, you're up now. Hey guys. Yes, I continue to exist. :-) ! hey excellent! Real life mugged me a couple of weeks ago ... not me personally, but someobdy close to me, has a bit of an interesting situation that required a lot of my time.  I got back to Parrt about a week ago, and I'm >< this close to checking in a namespace pdd. I also have Leo's proposals to review I'm not blocking on anything, but I would be pleased at the generosity of the universe if I could find a review of the last, oh, three weeks of parrot structural changes. Not that I can't catch up on them as needed Are you having fun? well, I have a lot of fun when I hit on all cylinders. I'm beginning to think that Allison's "Parrot Day" idea is worth trying * particle must have missed that idea Allison, can you explain that after Matt reports? ok Matt? She did it for herself: On a project (might not have been Parrot) she overcame inertia by dedicating X hours (4?) on a specific day each week to Parrot oh yeah she's here. we'll see how my memory works :-) my iBook broke on Christmas day, somewhat impairing my ability to work on parrot-y things, but work continued thanks to ssh+screen. I've just got the iBook back today. but work has continued to inline commands in partcl recently, coke has been working on a templating system for said commands, significantly reducing the amount of work and code necessary. development is picking back up in speed again % PerlJam has joined #parrotsketch Are you blocking on anything? just the namespace pdd, which chip just reported about Are you having fun? yup! Good. Audrey, you had the first question. aye. my question was: comptools says POST<->PIR has isomorphism which seemed to suggest that the PIR concepts (lexpads, namespaces, invocation) maps directly to POST but last week chromatic mentioned it's now driven by HLL demands, which I don't quite comprehend so: what's the plan, and how can I help? Allison? (sorry, network is laggy) It's isomorphic in the sense that POST needs to be able to represent all the directives and instructions in PASM it's not isomorpic with PIR, in that it's a different kind of syntatic sugar not sure what chromatic meant by "driven by HLL demands" PAST is closest to the HLL POST is likely to have some things a little different, like the .sub .end pair is likely to be a node in POST, instead of two separate instructions s/instructions/directives/ I believe my point was that the current version of POST in the Parrot tree reflects only what you need for Punie so far. ah, yeah, mostly though, I expect the final form will be about equivalent to Pugs' PIR Tree (roughly) okay... so the way I could help most is to update the PIR tree to reflect new PIR concepts and make sure it does correspond to PASM (i.e. generates valid code) aye instead of trying to map with POST's alternate model okay, thanks :) i have a question Go ahead. are there plans to take audrey's work on the pugs port of PGE and backport any extensions to patrick's implementation back to PIR? or will the new port be the main target for new functionality, and PGE eventually be retired? I can maintain a list of deltas with PGE/OpTable -- currently there's list-associativity and improved null term support -- and post them to p6c and if pmichaud or other hackers can pick it up, that'd be wonderful. though I wonder if a C binding for optable/rules engine makes more sense in the long term, similar to libpcre. list of deltas would be great. other hackers could be encouraged to improve PGE then, with the pugs implementation as a reference, thanks. np :) i agree about C as the long-term solution, too. Anything else? a short Q to chip just a general stmt WRT the mentioned design docs? Chip said privately he might be in a tunnel, but he'll try to respond within a couple of minutes. ok I wanted to ask Leo if the substr pingpong example at the start of his design proposal on strings had got sent to the list at all I've found the thread on "[perl #37940] substr and memory issues" but I can't actually see how it maps to Leo's clearer code I mentioned it when it came up with shootout benchmarks it took some time to ananlyze the details that doesn't surprise me. It's the way of these things :-( so the answer is no - the detailed example isn't public yet aha. because the analysis was interesting and I wanted to ask a question about it yes? in the loop, doesn't it at most have 4 copies of the string, because when $S0 or $S1 get reassigned to the second (and subsequent) times round? hence intermediate string buffers should be reclaimable by the GC? yes but it doesn't OK, now I'm confused memory consumption ever increases back I didn't yet get that far to track the very reason that's why I'm confused. how come none of the intermediate temporary strings are available for GC I think the problem is that the COW bit never gets turned off, even after enough copies have been taken hangon, so if a string gets marked as COW it never ever ends up being reclaimed? I think there are always to refs to the string and nothing gets reclaimed at all it never ends up without the COW bit until it's unreachable. leo may be right as well s/unreachable/destroyed/ in !-2 Nicholas: no first COW bit is turned off, but if there is another ref COW is turned on again ah OK. I can't quite see how there are still refs to the strings given that there are only 4 (named) string variables in play I can accept that there are, but I can't see where they are coming from well - these are the refs the main problem I think is: a COWed string is aalways copied, or better the whole memor of it is copied, even if it refers just to one byte but that doesn't explain infinite memory growth a = b[999999] # both are strings a is one byte # for ascii if a is alive 1 meg is copied the grow comes from the GC trying to increase mem pools for more demand I don't know enough about that part of the GC to comment further, but that growth seems reasonable behaviour for the GC yes but in that case it kills it finally but ... is it infinite growth in theory, if you kep tthe test program going you'd eventually plateau, no? copying 1 meg for a 1 byte substring sounds like some sort of naïveté that could be fix (as in, undo the COW if it's looking like the ratio of the substring is tiny). Oh. Hangon. The copy happens if you change b, because b has no idea how much a is pointing to? (happens also if you change b) the copy happens if you change either part of the COW string Nicholas: the ratio is also an idea I had. But I'd first want to be sure the COW bit actually does get turned off at the right time src/resources.c:327 leo: yes, but what I meant was that when changing a, a should be able to see that it's 1 byte of 1 million and go "that's daft, I'll stop being COW now", but changing b, b has no idea that a is that small, only that "someone else is sharing my buffer" so b has no choice but to copy yep that means that substr for that case should never create COW copies * chip adds "daft" to his design vocabulary it's too late when COW bit is already on leo: yes, it's more of an issue of my understanding the whole mechanism as is before recommending a change ... well, that seemed to kill the conversation na - just started dinnering I think it's because I'm still stuck on quite how the substr example really eats memory. and don't have the copy of parrot or the knowledge to track it down and understand it when to turn on COW depends on when it gets turned off, at least in part; thus my question. if COW isn't turned off correctly, that would imply the need for a larger change -- refcounting, perhaps, or even elimination of COW as a general mechanism (not that I'd like that) Nicholas: quite. it's dangerous to make changes without understanding the bug is this String-specific? or might it occur with PMCs as well? PMCs don't have automated COW so I think they're safe from this currently STRING only good to know, thx. i haven't seen a test case. can i help? that's why I wondered if it would be better to go to the list (for starters with the test case) well, I can post all the desing docs no, not docs for what should be this is about debugging what is test case, other notes, gdb/trace suggestions, that sort of thing s/debugging/analyzing/ the infinite growth is the part that needs to be either (1) determined to be non-infinite or (2) explained ok I'll put together a testcase kthnx thanks too. If it's something subtlely very wrong, I'd like to learn how it hides, so that I don't make the same mistake myself That was a rather long conversation as a result of my questions. Oops. Fortunately that was my only question. *g* % mdiep is now known as mdiep_ :) particle: re "Parrot Day", I found I had a hard time working on Parrot an hour or two a day, because I would end up spending most of the time just getting started. So, I switched over to working on Parrot (TGE/Punie/etc) one full day a week instead. I'm much more productive that way. i see, thanks. good for you, and good for us :) I was trying to ramp up to ponie fortnights at Fotango (for much the same reason) but it didn't work out. yeah, every week is better, then I can look back and be encouraged by all the progress in the past few weeks :) I guess it depends on the amount of time it takes to switch to the task. The internals are messy, and the head-bangingly-good problems take a few days to get up to speed on Nicholas: btw some time ago, we talked about hash bucket allocation order - I've reversed that today ah right. thanks, I thought that I'd mailed perl6-internals in the end that I'd realised that a better solution to the problem was to abandon using that hash code for that particular task in ponie for now and instead make the existing hacked-around-tracking-thing talk to the mark part of parrot's GC doesn't matter - it makes a nice 'ordered hash' base now ;-) because the existing hacked-around-tracking-thing had the right sort of add/delete while iterating special properties already % mdiep has joined #parrotsketch % mdiep_ has left mdiep_!~mdiep@c-24-11-80-190.hsd1.mi.comcast.net % chromatic has left chromatic!~chromatic@sub17-30.member.dsl-only.net % mdiep_ has joined #parrotsketch well then, since our moderator has left, i assume this meeting is over. catch ya next week, all. % particle has left #parrotsketch my thoughts too ciao :) thanks all, and talk to you next week! *wave* ~~ % mdiep has left mdiep!~matt@bursley-216-65.reshall.umich.edu % mdiep_ is now known as mdiep % mdiep is now known as mdiep_ % mdiep_ is now known as mdiep Allison: glad to read that you are better thanks on the bright side, the specific cause can't happen again :-) aye, all wisdom has been removed now :) see you I guess it'll bring about more creativity instead :) leo: oh btw, have you updated String.pod etc too? all a bit more or less, yes hopefuly not on the part of the other teeth to innovate new ways of making mischeif leo: anything drastically different? (I ask because I'm going to implement Strings.pod in Pugs.) (and I overwrote the old copies :)) do you refer to the one in ~lt/dev-doc ? aye That remains unapproved FYI I've already got the interfaces.pod part done, and promoting ResizableFooArray to String is an easy step *nod* but implementing the original vtables was quite difficult, so I opted to do something easier :) (this is for Pugs's internal VM, not for parrot targetting) I know you're comfortable with churn or you'd have gotten out of the Perl 6 business long ago Just as long as there's truth in advertising churn? hm, "be agitated" according to wordnet I originally met it in terms of customer turn over at mobile phone companies "churn" was customers moving around in http://www.answers.com/churn&r=67 it's the definition of "Technology" but it's change, with the negative connotation attached to change as in "change is inevitable, progress is not" that's pretty close audreyt: String.pod is afaik almost unmodified leo: k % allison has left allison!~allison@ppp-71-139-16-206.dsl.snfc21.pacbell.net % audreyt has left #parrotsketch % obra has joined #parrotsketch to those still here, please accept my profound apologies I was giving a class today and fucked up. I failed to appoint someone to act in my stead We did fine, don't worry about it. =-) np fret not. We did reports by forwards alphabetical order so I assume next week it's reverse heh noted % Coke has left Coke!~wcoleda@host-216-153-142-9.alb.choiceone.net % Coke has joined #parrotsketch % Coke has left Coke!~wcoleda@cpe-24-194-223-228.nycap.res.rr.com % Coke has joined #parrotsketch % Coke has left Coke!~wcoleda@cpe-24-194-223-228.nycap.res.rr.com % allison has joined #parrotsketch % Coke has joined #parrotsketch % allison has left allison!~allison@adsl-69-232-223-133.dsl.pltn13.pacbell.net % Coke has left Coke!~wcoleda@cpe-24-194-223-228.nycap.res.rr.com % Coke has joined #parrotsketch % Coke has left Coke!~wcoleda@cpe-24-194-223-228.nycap.res.rr.com % Coke has joined #parrotsketch % mdiep has left mdiep!~matt@bursley-216-65.reshall.umich.edu % mdiep_ has joined #parrotsketch % Coke has left Coke!~wcoleda@cpe-24-194-223-228.nycap.res.rr.com % mdiep_ has left mdiep_!~matt@bursley-216-65.reshall.umich.edu % mdiep_ has joined #parrotsketch