|
00:17
contingencyplan joined
09:20
moritz joined
12:52
Whiteknight joined
13:37
rdice joined
13:40
tewk joined
14:35
davidfetter joined
16:52
particle joined
17:14
cognominal joined
17:21
Auzon joined
17:22
DietCoke joined
17:37
Whiteknight joined
17:49
NotFound joined
18:06
jhorwitz joined
18:09
allison joined
18:14
cotto_work joined
18:23
smash joined
18:27
barney joined,
pmichaud joined
18:29
chromatic joined,
wknight8111 joined
|
|||
| DietCoke | Hello, everyone. | 18:30 | |
| jhorwitz waves | |||
| pmichaud | Hello! | ||
| allison | hi | ||
| smash | greetings | ||
| davidfetter | ahlan wa sahlan | ||
|
18:30
jonathan joined
|
|||
| moritz waves hi | 18:30 | ||
| Tene | Last #ps was on June 10? | 18:31 | |
| barney waves ho | |||
| DietCoke | there was no PS last week due to yapc::na | ||
| pmichaud | yes, last #ps was June 10. | ||
| DietCoke | speaking of yapc... | ||
| It was nice meeting a lot of you this past week (some of you for the | |||
| first time!). We've had a lot of movement behind the scenes for parrot | |||
| in that time, which I suspect others will cover in their reports. | |||
| let's go allison, particle, jhorwitz, chromatic, pmichaud and then I'll figure it out after that. | 18:32 | ||
| allison | - The hackathon was very productive, and it was great to spend time talking with Parrot hackers. | 18:33 | |
| - I added 2 new opcodes for patrick (on the pdd25 branch) that allow rapid branchs/returns within a subroutine. Currently named 'pbj' and 'pbr', but probably going to change to 'local_branch' and 'local_branch_return' (or something equally lengthy and descriptive). | |||
| - The rest of my time has been spent on debugging the pdd25 branch. The number of failing tests keeps dropping, but still a few to go. | 18:34 | ||
| EOR | |||
| particle | had a few commits over yapc, nothing to brag about | ||
| face-to-face meetings at yapc were very productive | 18:35 | ||
| mainly doing parrot foundation setup work, expect that to continue | |||
| won't have much time for parrot development work until my job situation settles down (no eta) | |||
| .end | |||
| jhorwitz | YAPC talks went well. Had lots of positive feedback. | 18:36 | |
| Not surprisingly, the concept of mod_lolcode generated a lot of excitement, so I worked on it and it's now bundled with mod_parrot. Will have live demos for OSCON. | |||
| Focus now is on expanding mod_parrot's access to apache data structures to pave the way for other volunteers to work on higher level stuff like mod_perl6. | |||
| EOR | |||
| chromatic | Applied a lot of patches and closed some bugs. | ||
| Spending some time in IMCC -- made a couple of optimizations and plugged some memory leaks. | |||
| I'm not sure it's worth anyone's time doing more fixes in IMCC; it's just wrongly designed in a lot of ways that'll take a lot of energy to tease apart. | 18:37 | ||
| I'd really like to help with pdd25cx, but it's not clear what to do or where to start, and I hate to see it slip another release. | |||
| Still working with wknight8111 on the new GC; it's getting close. | |||
| EOR | 18:38 | ||
| pmichaud | ** Rakudo spectest_regression: 66 files, 849 passing tests (+7, +144 from 06-10) | ||
| == Overall | |||
| : Very productive YAPC::NA, glad to see so many of you there | |||
| == Parrot stuff | |||
| : Fixed get_parrotclass method of P6object to avoid MMD | |||
| : Recognize CCLASS_NEWLINE and CCLASS_ANY for unicode strings on systems w/o ICU | |||
| : Spent a lot of time tracking down lexical and :outer issues | |||
| == PCT stuff | |||
| : Updated HLL compiler to automatically transcode source to a fixed-width representation when possible (for faster parsing) | |||
| == PGE stuff | |||
| : Added .chars method to Match objects | |||
| == NQP stuff | |||
|
18:38
cjfields_ joined
|
|||
| pmichaud | : No changes to NQP -- it just works | 18:38 | |
| == Rakudo stuff | |||
| : Lots of test updates | |||
| : Updated Range class | |||
| : Added implementation for Complex | 18:39 | ||
| : Added an implementation of ternary ?? !! | |||
| : Many grammar refactors to more closely align with STD.pm | |||
| : Fixed named 0-ary parsing | |||
| : Removed some obsolete rules from grammar | |||
| : Rakudo now parses utf8 characters in source (transcoding to iso-8859-1 for speed when possible) | |||
| : Created docs/spectest-progress.csv to keep track of spectest progress | |||
| : tools/test_summary.pl now also summarizes the reasons for skipped tests | |||
| Queue two items for discussion. | |||
| EOR. | |||
| Tene balances a book on DietCoke's head. | 18:40 | ||
| Tene goes now. | |||
| * Missed YAPC::NA because I needed to find a new place to live | 18:41 | ||
| * Cardinal parses more competently and about 80% faster | |||
| * Cardinal hashes can now do some rubyish magic with default values | |||
| * Start of a smalltalk implementation, under the name ChitChat | |||
| * Modified the evalbot from #perl6 to support --target={parse,past,pir} and uploading to pastebin for parrot languages | |||
| * polyglotbot is running in #parrot and supports (kind of) abc APL bf cardinal chitchat lolcode lua perl6 pheme plumhead punie pynia squaak tcl | |||
| * I don't think it's actually rebuilding the parrot tree, and it needs a couple of minor fixups I'm unlikely to get around to. It's running on feather3. | |||
| * Started working on implementing gather/take, but I'm apparently blocking on pdd25cx, I think | |||
| * KTHXBAI | |||
| allison queues questions for tene and chromatic | |||
| barney kicks in | |||
| Migrated Plumhead from TGE to NQP. | |||
| .eor | 18:42 | ||
| tewk goes now. | |||
| DietCoke | I have a $DAYJOB issue; I tag allison. | ||
| tewk | NCI GSoC | ||
| * Split CPP(pre-processing) out of c99. | |||
| * Using gcc to pre-proccess c code right now. | |||
| * moved c99 to compilers/ncigen | |||
| * Added alot of gnu extension support to c99 parsing. | |||
| * Figuring out PCT so I can generate PIR signatures | |||
| EOR | |||
| allison | DietCoke: okay | ||
| Whiteknight | I'll go then, since it's a free-for-all | 18:43 | |
| * I updated docs/memory_internals.pod to be less wrong. | |||
| * Worked on some other docs, and function-level documentation | |||
| * Did a little IMCC work, and got .macro_const working in *.PIR files | |||
| * The new GC is "code complete" and compiles, but doesnt work properly yet | |||
| EOR | |||
| jonathan goes | |||
| * On last week's Rakudo day... | |||
| ** Did some refactoring and STD.pm tracking | |||
| ** Got the does operator for roles in place | |||
| ** Support for anonymous enum constructor | |||
| ** Variety of type variable stuff - we can now write generic subs/methods | |||
| * Parrot core | |||
| ** Maybe got :instanceof sorta working | |||
| * Meta | |||
| ** Need some brain cycles to finish working out how to implement type-parameterized roles; I'm part of the way there, but have been too sick to think about anything hard for the last few days :-| | |||
| ** Doubt I'll do that on the next Rakudo day (which will hopefully be on Thursday); will maybe look at getting the Method / Sub etc stuff in place, and maybe signature objects too, since they're likely useful for MMD. | |||
| EOR | |||
| allison | have we missed anyone? | 18:44 | |
| okay, questions, pmichaud had 2 | |||
| pmichaud | from my post to the mailing list: Any thoughts about short-term fixes for :outer() handling? (RT#56274) | 18:45 | |
| also related to the discussion: I now know why RT#56184 is a problem and we may need some substantial re-thinking somewhere. | |||
| (although fixing RT#56274 may obviate the need to worry about #56184 for a while.) | 18:46 | ||
| allison | on RT#56274, is this as an alternative to md5 hashed sub names? | ||
| pmichaud | no. they are totally unrelated. | ||
| (we could potentially make use of this as an alternative to md5 hashed subnames, but 56274 is really a separate and more problematic issue) | 18:47 | ||
| for those who didn't read my mailing list post: :outer(...) doesn't give sufficient resolution. | |||
| allison | but the solution is essentially to have some unique name or id for every sub | 18:48 | |
| whether we tack on the the namespace, or generate a unique id | |||
| pmichaud | if I have .sub 'foo' :outer('bar') and there are multiple .sub 'bar' in the compilation unit, then 'foo' always attaches to the first 'bar'. | ||
| allison | by compilation unit, do you mean file? | ||
| pmichaud | yes. | ||
| (although it could be a string with PIR code.) | 18:49 | ||
| allison | and, you have multiple subs because you have, say methods and regular subs with the same sub name? | ||
| pmichaud | yes. or subs that are :multi | ||
| Tene | or multiple namespaces. | ||
| pmichaud | and that's what really makes this different from the md5 issue -- where I needed a way to locate otherwise anonymous subs. | 18:50 | |
| in this case I _have_ to use the supplied name, or do lots of name mangling. | |||
| allison | multiple namespaces is fixable by using full sub names, but the method/sub/multi problem is more complex | ||
| the first quick fix didn't work out, is there another short-term solution we could use? | 18:51 | ||
| Whiteknight | couldn't we do name-decoration for multis, like we do for similarly-named ops? | ||
| allison | yes, name decoration for type of sub could work (not ideal in the long-term) | ||
| pmichaud | at the moment it's the sub-in-separate-namespaces that is causing the most difficulty. | ||
| allison | how about a simple user-defined id token | 18:52 | |
| pmichaud | that's what I proposed in my mailing list message, yes. | ||
| Whiteknight | .sub MySub :theycallme('Ishmael'), like that? | ||
| allison | so, you set the token on the sub, and then refer to it :outer. | ||
| pmichaud | yes. I proposed :lexid or somesuch | ||
| allison | yup, that works for me, especially since the problem is local to a file | 18:53 | |
| make it so | |||
| jhorwitz | mod_parrot assumes that sub names in PIR are the same as in the HLL. as long as that assumption is still valid, then +1. | ||
| allison | yeah, it wouldn't affect the sub name | ||
| chromatic | I like :lexid | ||
| jhorwitz seconds | |||
| Tene | and :outer could fall back to sub name if it can't find a given lexid | ||
| pmichaud | actually, any sub that doesn't provide :lexid uses its name as the lexid | 18:54 | |
| allison | it would only affect the way the sub is treated for looking up :outer | ||
| pmichaud | the patch I tried would always look for the most recent version of a sub, as opposed to the first. | ||
| That "worked", except that it only worked for .pir files and not .pbc | |||
| allison | yeah, you can't count on compilation order | 18:55 | |
| pmichaud | (I don't know enough about bytecode formatting to know what is needef ro .pbc) | ||
| er, *needed for .pbc) | |||
| allison | :lexid is preferable | ||
| particle | anonymous subs can have a lexid, yes? | ||
| pmichaud | yes, please. | ||
| chromatic | Sure, why not? | ||
| particle | and, by default, what's the lexid of an anonymous sub? | ||
| allison | yes, so it solves an earlier problem we had of how to have :outer subs referring to an anoymous sub | ||
| pmichaud | default lexid of anonymous sub could be PMCNULL (i.e., doesn't have one) | 18:56 | |
| allison | particle: it has none by default | ||
| pmichaud | just like it doesn't have a name. | ||
| particle | but for named subs, lexid is the name of the sub | ||
| pmichaud | for named subs lexid defaults to name of sub | ||
| particle asks leading questions to get to the heart of the matter | |||
| allison | right, and anonymous subs have no name, so thaey have no lexid | ||
| particle | it's a bit confusing, since anon subs do have a name in the source file | 18:57 | |
| allison | you have to specify a lexid for an anonymous sub if you want to define an outer block for it | ||
| particle | but that's just syntax | ||
| and it's specced | |||
| pmichaud | if anon sub has a name in the source file, then that's its lexid | ||
| there's no real conflict there. | |||
| allison | particle: they do, but only because parrot requires some name | ||
| particle | you don't want anon subs to have a lexid by default. period. | 18:58 | |
| pmichaud | why not? | ||
| particle | even if they have a name in the pir | ||
| allison | if they have a name in pir, the :lexid can default to it, might as well since it's there | ||
| particle | .sub 'foo' :anon ; ... ; .sub 'foo' ; ... | ||
| pmichaud | any sub that expects to be an outer should provide a :lexid | 18:59 | |
| in the case you just gave, .sub 'foo' should provide a :lexid | |||
| failing to provide a :lexid is asking for trouble. :-) | |||
| allison | but if the name is something like .sub '' :anon (which may not even be valid at the moment, but should be) then it has no :lexid | ||
| pmichaud | and one could conceivably do .sub 'foo' :anon :lexid('') | ||
| particle | .sub 'foo' without :anon has a default lexid of 'foo' | ||
| .sub 'foo' :anon must specify a lexid or it has none | 19:00 | ||
| allison | particle: yes, and so does .sub 'foo' :anon | ||
| pmichaud | particle: why require .sub 'foo' :anon to specify a lexid? | ||
| allison | we'll keep it consistent for sanity | ||
| pmichaud | there's no conflict if it has one. | ||
| particle | there's no conflict if two subs have the same lexid? | 19:01 | |
| pmichaud | yes, there's a conflict if two subs have the same lexid. | ||
| but | |||
| any sub that expects to be an :outer should provide a unique lexid. | |||
| regardless of being :anon or not. | |||
| the "default lexid" is simply to keep existing code working. | |||
| particle | so, how do we check for unique lexids? | ||
| what about evaled subs? | |||
| pmichaud | we don't have to check for unique lexids -- that's the responsibility of whatever is generating the code. | ||
| evaled subs are no different. | 19:02 | ||
| Whiteknight | a lexid hash would associate a single function with a single lexid | ||
| pmichaud | keep in mind that they only need to be unique within compilation unit, at least with the current implementation of lexicals. | ||
| (since :outer doesn't cross comp unit boundaries) | 19:03 | ||
| DietCoke returns. | |||
| tewk | So you can't eval a sub that has a pre-existing :outer | ||
| pmichaud | tewk: in the current implementation, that's correct. | 19:04 | |
| even so, I'm not worried about being able to generate unique lexids. | |||
| particle | if my code generator creates an anon sub with the same name as a named sub, neither of which specify :lexid, there's a collision | ||
| pmichaud | if your code generator is generating subs w/o :lexid, it's broken. | ||
| allison | which there already is now, :lexid just gives us a way to resolve the collision when there is one | 19:05 | |
| particle | ok, so the default is just for humans with silly little code, and code generators will always specify :lexid | ||
| pmichaud | particle: yes. | ||
| particle | that works for me. | ||
| allison | yeah | ||
| particle | just needs to be documented as such | ||
| pmichaud | code generators don't have to specify :lexid if they know that a block doesn't have any lexically nested subs. | ||
| but it's easier to just always generate one. | 19:06 | ||
| DietCoke | Do we have a volunteer to implement this schemne? | ||
| pmichaud | that was my next comment -- Rakudo is blocked on a lot of tests due ot this. | ||
| chromatic | If someone writes up what needs to happen, I'm happy to poke at this. | ||
| pmichaud | essentially we're unable to handle lexically nested subs | ||
| chromatic | I've already gone negative on my SAN stat due to recent IMCC work. | ||
| pmichaud | I think jonathan also indicated he might work on it. | 19:07 | |
| DietCoke | pmichaud: can you summarize on the ticket the new :lexid() and its interaction with :outer, then c or j can claim it as a todo. | ||
| pmichaud | will do immediately following this meeting. | ||
| DietCoke | I'd even be willing to write up a doc patch if someone else writes up the code. =-) | ||
|
19:07
cognominal joined
|
|||
| pmichaud | my next question is much simpler: Any thoughts on ETA to merging the pdd25cx branch into trunk? | 19:08 | |
| allison | the last 6 failing tests are nasty | ||
| some of them I may just todo, if I can demonstrate that all the languages are working even with those tests failing | 19:09 | ||
| the biggest thing right now is a few PGE failing tests, and TCL failing to compile | |||
| pmichaud | I couldn't figure out the PGE failing tests. | ||
| chromatic | If you wrote up some information on them, I (and I can guess that NotFound too) would be happy to look at them. | ||
| DietCoke | I suspect those are related. | ||
| pmichaud | but I didn't look on it much past the hackathon, so I can look again. | ||
| DietCoke | I'll take a look and see if I can narrow down what is causing tcl to fail to build. | 19:10 | |
| allison | chromatic: okay, though I don't have much more to say than what's immediately obvious from running the failing tests | ||
| pmichaud | when I last looked at the hackathon, the failures I was getting were pretty opaque. But I need to look again. | 19:11 | |
| allison | chromatic: I'll be in Seattle Wednesday night, if you want to do some interactive debugging | ||
| DietCoke | Let's track any blockers on this ticket: rt.perl.org/rt3/Ticket/Display.html?id=54930 | ||
| allison | Portland, I mean | ||
| That was my queued question for chromatic | 19:13 | ||
| The one for tene was what he needed from the pdd25cx branch | |||
| pmichaud | allison: resumable exceptions | ||
| Tene | pmichaud++ | 19:14 | |
| allison | ah, okay, yes, that should work after the merge | ||
| pmichaud | we want resumable exceptions for gather/take | ||
| allison | (resumable at a PIR opcode, not resumable at a random C instruction) | 19:15 | |
| Tene | How should I be getting the continuation to invoke from the exception? | ||
| allison | Tene, it's passed in when you call 'throw' | ||
| jonathan | (implementing lexid) if it's not done by my Rakudo day on Thursday, I can look at it then | ||
| Tene | How should I get it in the exception handler? | 19:16 | |
| pmichaud | does pdd25 not say? or is pdd25 out of date? | ||
| Tene | Not that I could find. I'm checking again. | 19:17 | |
| pmichaud | sorry, pdd23 is exceptions. | ||
| Tene: "handled" opcode | 19:19 | ||
| exception handlers receive a continuation as a parameter, which they can then invoke. | |||
|
19:20
blah joined
|
|||
| Tene | ""Active exception handlers (if any) will be invoked with EXCEPTION as the only parameter. | 19:20 | |
| pmichaud | aha, pdd23 is internally inconsistent. | ||
| allison | yes, the return continuation is stored in the exception | ||
| pmichaud | so, how do we get the continuation from the exception? | ||
| allison | sorry, interrupted | 19:22 | |
| I'll set up a test case as an example | |||
| pmichaud | that would be awesome. | ||
| DietCoke | allison: tcl builds in pdd25cx. interactive version seems to work. 'make test' hangs on the first test. | 19:24 | |
| allison | DietCoke: okay, thanks | 19:25 | |
| pmichaud | I'll look at pge issues tonight. | ||
| any other outstanding questions or discussion points? | |||
| or did we get them all? | |||
| I'd also like to welcome moritz++ as a new committer. | 19:26 | ||
| moritz | thanks pmichaud ;) | ||
| wknight8111 | moritz++ | ||
| DietCoke | allison: I have a backtrace for you. | ||
| looks like a loop of handler invocations. | 19:28 | ||
| nopaste.snit.ch/13383 :: I just stopped cutting and pasting at #100 | 19:29 | ||
| allison | okay, I've seen that elsewhere | 19:30 | |
| generally when a different exception is thrown in the middle of handling another exception | |||
| DietCoke | I do that a bit as I often want to translate an exception from parrot-speak to tcl-speak. | 19:31 | |
| I'm not sure when "in the middle" occurs, though: once I call get_results, aren't I done handling? | |||
| allison | catch an exception and throw it differently? | ||
| DietCoke | there's no op to say "my handler is over." | ||
| s/it/or a new one/ | |||
| I can probably track down where in PIR this is happening. | 19:32 | ||
| allison | it's any time before the handler is popped | ||
| oh, I bet you're using scoped handlers | |||
| pmichaud | doesn't a handler get popped upon catching an exception...? | ||
| allison | handlers are persistent, like event handlers | 19:33 | |
| pmichaud | is this strictly for the "push_eh $P0" sort of handler, or also "push_eh label" ? | 19:34 | |
| DietCoke | ... er, how does that work? | ||
| pmichaud | because if I try to pop_eh after a push_eh label, I get an error. | ||
| DietCoke | I often do push_eh/pop_eh with labels. | ||
| seems to go off the rails in *** switching to BYTECODE_src/PCT/HLLCompiler.pir | |||
| allison | under the old implementation, yes | ||
| DietCoke | # Back in sub 'parrot;PCT::HLLCompiler;init', env 823068c | ||
| it invokes that several hundred times before, I think, running out of memory and failing an assertion. | 19:35 | ||
| pmichaud | HLLCompiler? in tcl? | ||
| Tene | I get 8 errors in 'make test' in pdd25cx | ||
| DietCoke | I'm as surprised as you are. =-) | ||
| allison | I can keep the old functionality for backward compatibility | ||
| DietCoke | if there's a new/better way to do this, I can update code in the branch, that's nt a problem. | ||
| particle points to #parrot | 19:36 | ||
| seems like the meeting's over, no? | |||
| DietCoke | I agree. | ||
| Tene | Oh, no allison there. | 19:37 | |
|
19:37
cognominal joined
|
|||
| Tene | allison: can you tell me which of the failures in here you're not also seeing: nopaste.snit.ch/13384 ? | 19:38 | |
| allison | tene: I'm seeing all of those | ||
| Tene | Hm. I thought you said 6. | 19:39 | |
| Nevermind. | |||
|
19:40
cotto_work left
|
|||
| allison | sorry, 6 root causes (I divided up the failing tests by symptoms) | 19:41 | |
| Tene | ahh, clever. | 19:42 | |
| pmichaud | (presuming that the pge failures are due to the other ones. :-) | 19:44 | |
| allison | I have to go, DietCoke, I'll think of an alternative for you. With resumable exceptions we can't just delete handlers once they've been called once, because we may resume in a loop, and throw the same exception on the next iteration after the loop | 19:45 | |
| DietCoke | Ok. if I have to add something to clear the _eh from inside my handler, I can do that. I wonder if that's the cause of some of the other issues you're seeing. | 19:46 | |
| ~~ | 19:47 | ||
| allison | yes, it likely is the cause of one, now that I think about it | ||
| Tene | doesn't rethrow do that, or does rethrow only work on the same exception object? | ||
| allison | clearing the handler from inside the handler would work | ||
| pmichaud | I don't have a problem with clearing the handler (pop_eh?) inside the handler -- it was really what I expected to be doing. But that didn't seem to work in current Parrot. | ||
| allison | tene: rethrow isn't the same as throwing a different exception expecting the same handler | 19:48 | |
|
19:48
cjfields_ left
|
|||
| DietCoke | pmichaud: yah, that doesn't work in trunk. | 19:48 | |
| it was pre-cleared. | |||
| allison | pmichaud: it doesn't work in current parrot, because current parrot does delete the handler as soon as it retrieves it | ||
| (one of many reasons exceptions weren't resumable before) | |||
| pmichaud | right, no problem. | ||
| just need to know what to switch to :-) | 19:49 | ||
| DietCoke | Want us to start adding in the pop_eh's in the branch? | ||
| (It's not just tcl using that style.) | |||
| allison | DietCoke: see if it fixes the failing test, and if so, add it | ||
| pmichaud | pge and pct have quite a few push_eh's that don't have pop_eh's | ||
| (at least, don't have them when the exception is caught) | |||
| allison | if it doesn't fix the failing test, then it's not needed | ||
| DietCoke | well, I'm going to have to add it in a LOT of places to verify that it worked. =-) | 19:50 | |
| allison | pmichaud: that could very well explain the failing PGE tests | ||
| DietCoke | let's give it a shot, we can always rollback. | ||
| allison | DietCoke: just the ones relevant to that first failing test should do the trick | 19:51 | |
| DietCoke | that will still take some time, but ok. =-) | ||
| pmichaud | I'll have to do mine a bit later -- have other tasks on my stack that need to be addressed first. | ||
| (but should get to it tonight/tomorrow morning) | |||
| DietCoke | I'll plan on putting them in right after any .get_results in the label. | ||
| allison | okay, I have a shorter way to test this... | ||
| DietCoke | (auto delete the handler!) | 19:52 | |
| allison | committing a fix that deletes the handler when it's first invoked | ||
| hold on | |||
| (we can always change it later when we need it for more complex resumable exceptions | |||
| try r28685 | 19:53 | ||
| and, I really have to go now, I have a meeting in 3 hours, in a town that's 3.5 hours drive from where I am now | 19:54 | ||
| DietCoke | gogogo | ||
| moritz | get a helicopter ;) | ||
| allison | email me the results of testing :) | ||
|
19:54
allison left
19:59
jhorwitz left
20:00
chromatic left
20:08
Auzon left
20:17
NotFound left
21:24
jonathan left
23:36
japhb joined
|
|||