% Nicholas has joined #parrotsketch thanks tweety, I already know that it's logged I'm going to have to vanish for a few minutes at some point to deal with a housing inspector OK If I'm not here by 5 past, ask chromatic to start without me? we're at T-15 right? oh, and Good Day I have a meatspace meating that'll take me the first few minutes. I expect I'll arrive at T+10 hi. yes. see you in 5 or whatever your local offset ends upo being ;) % leo_ has joined #parrotsketch % chromatic has joined #parrotsketch % autrijus has joined #parrotsketch greetings from during larry's state of onion. hello leo, autrijus, chromatic I bet we're short an allison today. allison is sitting on the left of me but with laptop closed right. I figured as much. the damian deadlang talk will be on shortly at which time you'll lose me perhaps... nod (6% on battery) ok. let's get going , then autrijus: you first. Waht's new? (I have a report from mdiep in the can) pairs demagicalized parrot officiallydoesn't need to worry about magical pairs the new PGE internal change segfaults here for PGE::Hs not yet debugged fully helps welcome otherwise, still slide hacking and pair poetry hacking, so nothing much else Blocking on anything? chip has a question for you before you lose battery. go ahead chip not blocking on anything. autrijus: how demagicalized are these pairs? Are all naemd parameters now syntactically identifiable? chip: there is the remaining question of *$pair where it needs runtime binding which is still not very settled otherwise it's purely static. autrijus: let me rephrase % pmichaud has joined #parrotsketch greetings pmichaud autrijus: the places where the named params come from in the param list are statically identifiable, if not the specific param names involved? chip: yes. PRAISE "BOB" hello, autrijus (and everyone else)! hey pmichaud from this 2% battery ok my q answered tx np hth hand chip ok. who's next? chip? OK no battery... over and out, bbl & cya lexical document in works I'm blocking on possible misunderstanding of the word 'lexical' though. Tcl code examples confound. (no relation) Sketch will be ready tomorrow though. Excellent. What can be done to clean up the misunderstanding of 'lexical'? Approved Leo's plan, with small change, for var reg Well, I thought it included some requirement of static scope. I don't know any language lawyers here at $dayjob. let me rephrase. don't want to monopolize meeting though. I thought a lexical had to be in principle knowable at compile time. Tcl vars are not such. To support Tcl vars as I understand them requires the dynamic lexical scratchpad in the original design, but that's rejected as too slow for p5/p6/python. Anyway, that's the open issue. Once that's clear the requirements will fall out. ok. anything else new and exciting, fearless leader? Just one thing you might want to know ... I intend PIR to translate the lexical names to numbers, if that has to happen, so it shouldn't be necessary for compilers to track e.g. '$a' is pad element 4 chip: yay! I figured you'd like that :-) Leo thinks the lexicals should always map to registers. I'm not entirely sure but it seems like a good plan It also means maximal efficiency in using lexicals in same scope I agree, I like that plan OK then ok that's all Patrick, what else do you like? ;) more hours in the day would be nice, but I'm happy with what I've got now :) * chip seconds that this week I re-did the calling internals for PGE PGE rules now act even more like subs -- they're all callable directly from PIR or as a subrule I also redid the internal representation of Match objects, so that they no longer need some funny indirection to handle the differences between arrays of captured Matches versus a single captured Match I have a version of Text::Balanced::bracketed that I'm about to ci to the repository -- it's callable as either a subrule or as a PIR function (I just need to steal test cases from p5's Test::Balanced t/ directory for that) I'm still working on the shift/reduce parser, it needed the internal changes mentioned above to work well the first thing that the shift/reduce parser will be used on is parsing of rule expressions, should be much faster than the existing recdescent version it will also provide a very nice case study or real-world example for the kinds of tree transformations we'll want to do in the compiler thazzit for me You blocking on anything? pmichaud: did you go with :multi for the rules? oh, and I'm likely to have lookahead ( ) implemented by next week chip: no, I didn't pmichaud: .isa or .can on first param then? chip: yes, .isa . A rule sub looks at its first parameter, if it isa match object already then it clones it, if it's anything else then it stringifies it and creates a new match object from that. pmichaud: cool (where the newly created match object will contain the result of the match) Anything you need to make progress, besides brains and large sacks of cash? there are also optional parameters whereby a rulesub can specify the anchoring desired (anchor at current position or scan from current position), and to explicitly specify the class of the returned match object Oh. is it time to do another pass through the PGE milestones and cross off things that are done? obra: it's probably time to do another pass, yes -- I'll put that on my todo list right now ok :) anything else, or shall I pick on nick? nothing else, and to answer your question -- afaik I'm not blocked on anything at the moment Excellent to hear. Nick! What's new? Back at work after 2 weeks off. (Fun fun fun, was getting up before 8am wall clock time every day of my so called "holiday" until this Friday) The work work is blocking on systems again, so the most logical thing to do is work on ponie until they're back I built it today and it failed tests. Pesky bitrot, I thought. It turns out that the bugs are at least partly due to the last bust of changes I made, to use the address registration PMC. Because I'm now using that to hold reference counts, when the core perl code manages to drop the reference count to 0, it means that SV (is a PMC) is not registered. Upshot is (of course) that it can be garbage collected. And perl 5 relies on things not quite going away, and not going away immediately that their reference cou In particular it happens that there is code down in sv_clear that makes a new temporary reference when destroying an object, and that was triggering the GC of a particular piece of memory higher up the stack. Yes, stack tracing is off, quite deliberately, because I want to find all the reference counting issues to make sure that destruction *is* timely under reference counting, before attempting the switch to true mark and sweep with a stack walke I've not solved it yet, but on the way home I think that the best solution is simply to bodge it and keep the reference count up by 1 from the true value, up to the point in perl5_cargocult.pmc where it currently does the ownership swap fr om "reference counted" to "nearly dead": if (!PL_in_clean_all) { FREE_SV_DEBUG_FILE(p); Parrot_PMC_push_pmc(INTERP, PL_sv_pining, SELF); Parrot_PMC_delete_pmckey(INTERP, PL_Refcounts, SELF); } (PL_sv_pining, the nearly dead being cleared at FREETMPS time) End of report [that was a cut&paste job] you're all stunned. :-) or pining for the fjords no, I'm thinking of quotes from "Young Frankenstein" and "Monty Python and the Holy Grail" "I'm not dead yet!" Nicholas++ # Perl_sv_pining Seriously it's a Good Thing not to lie to the GC system, and since Perl 5 tries, you have to adapt I fear that there's going to a be a lot more discovery of lies, and reference-count-free-pointers IIRC the optree references GVs there's the EGV slot in a GV and those are the two I can remember off the top of my head Nicholas++ #stunning us into silence heh nick: blocking on anything {else}? well, pesky day job (the other stuff) still gets in the way of not-so-pesky-dayjob (ponie) *nod* also, I'm hoping that the events API (or whatever was needed) as discussed some meetings ago, gets sufficiently written that parrot can be changed so as not to be hardcoded to grab (IIRC) SIGHUP because I'd like to heal the fork in the perl regression tests before I integrate the next version of 5.9 also, I'd like a newer 5.9 release to integrate. but that's offtopic for this channel Nicholas: I can fix that, I think, without having to rearchitect anything finally ah cool. it would be good to do so ok. chromatic? also, I'm not sure where things got to on chromatic's autogeneration stuff for extend.c Nicholas: just patch parrot and disable it for now I just sent p6i a proposed patch for that. but then Warnock ate it? :-( I *think* it does everything the current system does now, except for preserving documentation, but I'm not sure. Six minutes ago. I've not needed any more vtable calls exposed *yet*, but I the need to have one usually hits suddently OK. I think I am done now althigh I have a question for later That's my report too. chromatic: I bet you're working on the book, too. You bet correctly. Ok. and from matt: 11:48 I don't know that I'll be able to make the meeting today. but Tcl is blocking on one issue: the unimplemented functions in charset/unicode.src. we'd like someone to volunteer to work on that, but if no one does, coke said he'll take a whack at it. urk. poort paste job. looks fine here :-) Which unimplemented functions? (all of them?) grep for UNIMP, and I've submitted some TODOs recently on p6i the TODOs are rather self-contained like cclass for unicode Ok. I know patrick has questions. well, just one Then nick but unfortunately my question swapped out for a moment, so while I'm remembering it let nick go first :) OK. This is one for chip (ish) On the perl whirl mjd wanted to talk to me about how perl does lexicals for closures, and how lisp does it, and I think how perl could learn from lisp. We didn't get time mjd is hoping that we can find time at the London Perl Workshop however, it strikes me that (apart from not being the best person he should talk to about perl 5, so I'll try to summon Dave), that this chat might also be useful for Parrot given that you're thinking about them right now I've not mentioned this parrot stuff to mjd, so the first time he learns of it might be reading the logs of this Does this thought make sense? chip: would it be useful, mjd willing, or have you already got a good grasp of how lisp does it? * leo_ could report a few lines, like ongoing var-reg changes and removing deprecated stuff, or fixing ugly number formatting bug with PerlNums (detected on ARM only, due to obviously different double format) - but that's all ;-) back leo_: ARM has mixed endian doubles. some ARMS - seems so yep totally legal IEEE. Catches out anything that thinks it can cheat Yes, I think whatever else may be bad about Lisp, they've got conceptual clarity yes, the old soft float is mixed endian. new standard will be consistent, IIRC Nicholas: I'll ask mjd for pointers to the bits of Lisp lexicals he finds praiseworthy cool. that's my "question" done, I think. Thanks my question is what happens if load_bytecode is executed twice on the same file -- does it actually reload the file (and re-run any @LOAD subs)? patrick - there's nowhere to hide i.e., is this something that parrot will handle or that something higher up needs to handle? pmichaud: this is unspecced, but I think it should be handled in core that's what I would prefer to see :) a test case always helps I agree that a redundant load should be detected ... this gets back to the UUID idea I figured it'd be a Good Thing for each pbc to have a UUID that uniquely identifies the pbc in the universe of pbcs. Each recompilation generates a new one. That way we can detect redundant loads even when it's a separate copy, or on an MS-DOS filesystem, etc. it's not at all vitally important for me at the moment, I just have a module now that depends on PGE.pbc being loaded, and it'd be nice if it could simply do load_bytecode and have Parrot do the right thing the uuid idea sounds really good I'll see about writing up a test case and marking it TODO pmichaud: thanks as PBC headers are under reconstruction currently, please just add this idea to it ok. anything else up before we all part ways? one thing er, no, cancel I'm done I got one to Nicholas My patch could use some review, as it eventually helps to remove something that blocks Nicholas sometimes. leo_: go for it the mixed endian bit layout of ARM doubles - do you have an URL er, I can't think of one offhand but it's for ARM running little endian, the (soft) floating point format was defined with the two 32 bit words laid out big endian. is ARM like MIPS, where endianness is controlled by a pin on the chip and there are of course some more permutations I presume - but that helps already IIRC the rest is laid out "logically" (or at least as you would expect) for a 32 bit chip running in little endian mode chip: I don't know. It's only ARM6 and later that are switchable, and I have no idea about the actual hardware k IIRC ARM6 is 1994 or thereabouts Unfortunately, I need to run. I'll catch you folks later. Have fun Nicholas: please have a look at chromatic's patch - you are the major user of extend OK. Will do thanks * leo_ is moving to #parrot - see you % chromatic has left chromatic!~chromatic@sub17-30.member.dsl-only.net % leo_ has left #parrotsketch % pmichaud has left pmichaud!~chatzilla@c-24-1-26-255.hsd1.tx.comcast.net % Nicholas has left #parrotsketch % leo_ has joined #parrotsketch % leo_ has left #parrotsketch