|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 23 December 2008. |
|||
| pmichaud | so, why not have meta_trait look up the protoobject? | 00:00 | |
| jonathan | pmichaud: I did. | ||
| pmichaud | not sure why I didn't do that in the first place. | ||
| jonathan | But that's only _one_ of the problems. | 00:01 | |
| If you run the spectests, you'll also find cases where we get failures in !meta_create. | |||
| t\\spec\\S12-role\\namespaced.t for example triggers this | 00:02 | ||
| pmichaud | so, our working theory is that adding the UnconstructedProto is blocking creation of the namespace | 00:04 | |
| let's try... | |||
| jonathan | pmichaud: I used to think that, but then I realized - we should have a .namespace [ 'Foo' ] in the PIR. | 00:05 | |
| Which menas it should exist from all the way back then. | |||
| pmichaud | Yes. | ||
| while I'm still thinking about this, let me add a couple of other items to consider | 00:07 | ||
| I've since figured out that we can't completely use the namespaces to hold our unconstructedprotos, because of lexical classes. | |||
| so placing an entry in the namespace at the time we do add_type is probably wrong. | 00:08 | ||
| because it's not lexical (and whatever we're declaring might be lexical) | |||
| jonathan | Yes. :-( | ||
|
00:08
AndyA joined
|
|||
| jonathan | STD.pm gets around this by having an array of pads, from what I can see. | 00:08 | |
| pmichaud | right | 00:09 | |
| jonathan | And each of those is a hash of symbols | ||
| Or something like that. | |||
| pmichaud | in our case I think that our pads actually should be @?BLOCK | ||
| jonathan | Can we put package names in that too? | ||
| pmichaud | so adding a type X should do @?BLOCK[0].symbol( 'X', ...attr...) | ||
| sure, since package names are lexical. | |||
| jonathan | That could work. | ||
| We can of course check the namespace to see what's there. | 00:10 | ||
| pmichaud | then, checking to see if we have a valid type first looks through the outer blocks, and then in the real namespaces | ||
| jonathan | For already compiled stuff, e.g. from used modules, or prelude. | ||
| Yes. | |||
| pmichaud | yes, you have the idea. | ||
| maybe that's simpler overall. | |||
| jonathan | That makes sense, yes. | ||
| pmichaud | In fact, we already do checking for lexical types because of the ::T declarations. | ||
| jonathan | Yes. | ||
| OK, great. | |||
| pmichaud | it's certainly okay to have @?BLOCK[0].symbol( 'X', :scope('package') ) | 00:11 | |
| jonathan | That will let us do away with this under construction proto thingy. | ||
| pmichaud | yes. | ||
| also. | |||
| (more) | |||
| jonathan | True, but we also need to put something with its symbol saying it is a type. | ||
| kid51 | I have a question about #include statements in a C-file. In src/jit/i386/jit_defs.c, #include "parrot/oplib/ops.h occurs twice within 4 lines of each other. Is it safe to eliminate one or the other of those statements? | ||
| chromatic | Yes. | ||
| pmichaud | jonathan: oh, you're ahead of me a bit. If you don't want to pre-declare :scope, just use any other attribute to force creation of a type entry. | 00:12 | |
| and yes, :type(1) is fine. | |||
| I know that we put entries in the symbol table for subs that get created -- I'm not sure how they're marked. | |||
| jonathan | OK. | ||
| pmichaud | anyway, I'd go with the block symbol table approach for now. | ||
| jonathan | Ah, interesting. | ||
| dalek | r35324 | jkeenan++ | trunk/src/jit/i386: | 00:13 | |
| : Eliminate duplicate '#include' statement. | |||
| jonathan | Yes. | ||
| dalek | review: www.parrotvm.org/svn/parrot/revision?rev=35324 | ||
| pmichaud | it also makes me feel better to not have unconstructedproto (yet) | ||
| jonathan | I'll want to do some stuff with subs in the symbol table at some point. | ||
| Plus it saves us now working out The Problem. | |||
| ;-) | |||
| pmichaud | well, I think it's actually the right solution overall anyway. I wasn't thinking about lexical types when I suggested the unconstructed proto approach. Sorry about that. | 00:14 | |
| however, I'm glad we're doing it _after_ the variable refactor and not before :-) | |||
| jonathan | Well, I thought it was fine too, because at that point I expected we'd be registering the types in the actions. | ||
| And we coulda known if it was lexical. | |||
| pmichaud | yeah, I already knew that the grammar registers the types. | 00:15 | |
| jonathan | But then I wanted to try and match STD.pm more closely. | ||
| Since that tends to work out better. :-) | |||
| pmichaud | okay, I think we have a plan -- let me know how it works out. I'll let you back out the unregisterproto stuff as appropriate. | ||
| er, unconstructedproto | 00:16 | ||
| jonathan | Will likely do it tomorrow now. | ||
| It's latish here. | |||
| pmichaud | okay, I might do it then, just to keep things clean. | ||
| I've got some other stuff to hack in tonight -- shouldn't affect this stuff, though. | |||
| jonathan | I *think* easiest is just to revert my entire last commit. | ||
| pmichaud | yeah, I'm thinking that too. | 00:17 | |
| jonathan | I don't think there was anything else in there. | ||
| pmichaud | I'll revert your commit and you can pick up again from there. | ||
| jonathan | Yes, do that. | ||
| pmichaud | btw, I really really really appreciate your help on the rvar branch. Overall it came out much better than I was expecting. | ||
| jonathan | It's a nice refactor. | ||
| pmichaud | I'm finding it much easier to see how new things will fit. | 00:18 | |
| jonathan | And I'm largely to blame for the state things had got into. | ||
| pmichaud | well, we needed quite a few other things in place. And your stuff made it easier also. | ||
| so, I don't at all see what you had written as a negative -- far from it. | |||
| jonathan | Well, I made quite a lot of stuff essentially work. | ||
| pmichaud | exactly. | 00:19 | |
| and pointed out where the pieces needed to go. | |||
| If starting from scratch, it would've taken a long time. | |||
| and we wouldn't have had the tests. | |||
| jonathan | I'm just not so good at the big-picture architecture, or what needs to push down into PCT, etc. | ||
| pmichaud | yeah, I just seem to have a good intuition for it. | ||
| jonathan | You've also got N years more experience than me. ;-) | 00:20 | |
| pmichaud | PerlJam once asked me how I figured stuff like that out, and for me it's kinetic | ||
| I literally physically feel designs that aren't "right" :-) | |||
| jonathan | I think that's something you get when architecting something. | ||
| A sense of what's just wrong, what's really right, and what'll have to change at some point but is OK for now. | 00:21 | ||
| I know I find it a lot easier to know those things when I've grown and designed a codebase from day 1 over when I've dug into an existing one. | |||
| pmichaud | indeed. | 00:22 | |
| there is that also. And I've been thinking about this stuff for a l-o-n-g time. | |||
| (too long. I should think faster.) | |||
| jonathan | Well, it's not like you've always had the same spec to be thinking about. ;-) | ||
| pmichaud | there is that also :-) | ||
| jonathan | Anyway, I'm very happy with the state of Rakudo, and very happy to be involved. :-) | 00:23 | |
| dalek | r35325 | pmichaud++ | trunk/languages/perl6 (3 files): | 00:24 | |
| : [rakudo]: Revert r35323 -- we're going to take a different approach. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35325 | |||
| pmichaud | me too. I'm really looking forward to the next few months. | ||
| jonathan | ...and all because I drunk a load of beer at an OSCON party and said I'd implement junctions. | ||
| pmichaud | heh. | ||
| which I'm _still_ amazed at. | |||
| I'm being asked to a basketball game, so I'll bbl. | |||
| jonathan | Aye, I'm going to go relax for a bit. :-) | ||
| Later | |||
| GeJ | Good morning again | 00:26 | |
| Infinoid | happy weekend, GeJ | 00:32 | |
| nopaste | "kid51" at 70.107.6.139 pasted "Add some ifdefs to src/jit/ppc/jit_emit.h" (44 lines) at nopaste.snit.ch/15273 | 00:41 | |
| kid51 | Does that paste look plausible? | 00:42 | |
| kid51 is trying 'perl Configure.pl --jitcapable=1 --execcapble=1' for the first time. | |||
| Trying to silence some warnings. | |||
| chromatic | kid51, it makes more sense to me to ensure that JIT_EMIT always has a value, even if that's 0. | 00:46 | |
| kid51 | chromatic: I was trying to follow example of: line 1786 src/jit/i386/jit_emit.h | 00:51 | |
| ... which tests for definedness before testing for value (in 2 locations). | 00:52 | ||
| Whiteknight | Eventually we can get rid of JIT_EMIT when we get all the executable code out of those .h files | 00:55 | |
| Whiteknight dreams about the day | |||
| GeJ | Infinoid: likewise (in a few hours I believe) | 00:56 | |
| chromatic | kid51, there's nothing functionally wrong with your approach. I just think it's simpler to ensure that we always define that symbol. | 00:58 | |
| nopaste | "kid51" at 70.107.6.139 pasted "'Bad plan test failures in t/pmc/exceptionhandler.t" (17 lines) at nopaste.snit.ch/15274 | 00:59 | |
| kid51 | I think the test plan count gets confused in this file, perhaps under jit circumstances. I don't get any real explanation as to why file terminates after 6 tests. But there is a 'goto more_tests' in there. | 01:00 | |
| Even weirder: When I uploaded that test run to Smolder: the file t/pmc/exceptionhandler.t is shown as passing 100% -- even though the plan (8) and the number of tests reported (6) are clearly not equal: smolder.plusthree.com/app/public_pr.../13241/224 | 01:04 | ||
| shorten | kid51's url is at xrl.us/beb4eh | ||
| nopaste | "kid51" at 70.85.31.226 pasted "goto more_tests" (13 lines) at nopaste.snit.ch/15275 | 01:07 | |
| kid51 | Could a goto throw off the plan? | 01:08 | |
| GeJ: Are you cooking something up re JIT_EMIT ? | 01:09 | ||
| Whiteknight: The reason I was looking at that file in the first place was because I was poking at trac.parrot.org/parrot/ticket/144 ... | 01:13 | ||
| ... which turned out to be way above my C-fu, but I did notice notice some warnings which I figured were low hanging fruit. | 01:14 | ||
| Whiteknight | nice, at least people are looking at it | 01:15 | |
| kid51 | As I believed I msg-ed you, there have actually been RT tickets about this for a long time. | 01:18 | |
| In fact, I think you took one of those once :-) | |||
| Whiteknight | yeah, this has been part of my process migrating the old RT tickets to trac | ||
| I took that stupid ticket thinking it would be easy to finish, and it ended up requiring a branch and almost two weeks | 01:19 | ||
| kid51 | Unfortunately, my C stops well short of handling that PPC file, which is the only OS other than i386 I have access to. | 01:21 | |
| kid51 to dinner; bbl | |||
| GeJ | message kid51 nothing that I could think of, why? | 01:50 | |
| purl | Message for kid51 stored. | ||
|
01:51
jimmy joined
|
|||
| GeJ | I opened TT #146 to convert perl tests to PIR in t/oo/, if there's anyone to review the patch. | 01:51 | |
| jimmy | GeJ: someone will review it at spare time | 01:52 | |
| GeJ | I have no doubt about that. It was just a FYI-notice. | 01:55 | |
| cotto | GeJ, I'm a few minutes from committing that. | 01:56 | |
| just a little more time for review | |||
| jimmy | there is a maiillist, anyone in the mailist will received emails when TT was changed. Am I right? | 01:58 | |
| GeJ | cotto: there's no rush at all. thanks for reviewing it. | ||
| cotto | I'm not sure I feel good about "METH_CONFLICT". | ||
| It sounds ominous. | |||
| GeJ, thanks for submitting it. | 01:59 | ||
| GeJ | cotto: new.t has changed a lot in the process, mostly because I got bored to always c'n'p the same lines over and over in all the sub-tests. | ||
| dalek | r35326 | cotto++ | trunk/t/oo (3 files): | 02:02 | |
| : [t] convert perl OO tests to pure pir | |||
| : patch courtesy of GeJ++ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35326 | |||
| GeJ | cotto++ | 02:05 | |
| cotto | have you asked for a commit bit? | 02:06 | |
| GeJ | Nope. Should I? | 02:13 | |
| I mean, do you think it's safe for the project? ;) | 02:14 | ||
| cotto | I'd say +1. I'll ask at the next #ps if you'd like. | 02:15 | |
| (it involves signing and sending in a CLA) | 02:16 | ||
| cla? | |||
| purl | cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement or www.parrot.org/foundation/legal | ||
| GeJ | Thanks, I'd be happy to sign in. | 02:22 | |
| jimmy | it needs a mail. | 02:23 | |
| dalek | r35327 | cotto++ | trunk (2 files): | 02:29 | |
| : [pmc] add push, pop, shift and unshift methods (plus tests) to ResizableStringArray | |||
| : patch courtesy of GeJ++ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35327 | |||
| jimmy | pmichaud: Will perl6 support documentation i18n officially? | 02:30 | |
|
02:35
kid51 joined
|
|||
| jimmy | msg pmichaud Will perl6 support documentation i18n officially? | 02:39 | |
| purl | Message for pmichaud stored. | ||
| nopaste | "GeJ" at 202.22.229.231 pasted "Update MANIFEST (forgotten from r35325), fix init::manifest step of Configure.pl" (12 lines) at nopaste.snit.ch/15276 | 02:50 | |
| kid51 | GeJ: Thanks. I'll get to it in a couple minutes. | 02:52 | |
| GeJ | There's no rush. thank you. | 02:54 | |
| dalek | r35328 | jkeenan++ | trunk: | 02:56 | |
| : Correct earlier failure to update MANIFEST. Error reported by GeJ++. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35328 | |||
| Coke_away skips review. | 02:59 | ||
| jimmy | karma purl | ||
| purl | purl has karma of 8369 | ||
| Coke | . | ||
| cotto | jimmy, purl cheats | 03:00 | |
| purl-- | |||
| purl | cotto: excuse me? | ||
| cotto | karma purl | ||
| purl | purl has karma of 8369 | ||
|
03:03
MariachiElf joined
|
|||
| cotto | but it works if you say purl-- | 03:04 | |
| karma purl | |||
| purl | purl has karma of 8368 | ||
| jimmy | wow | 03:06 | |
| karma parrot | |||
| purl | parrot has karma of 25 | ||
| jimmy | parrot ++ | ||
| karma parrot | |||
| purl | parrot has karma of 25 | ||
| jimmy | parrot++ | ||
| karma parrot | |||
| purl | parrot has karma of 26 | ||
| jimmy | karam åęäŗ® | 03:07 | |
| karma åęäŗ® | |||
| purl | åęäŗ® has karma of 1 | ||
| cotto | wait, what? | ||
| purl | wait, is that counting penguins? | ||
| jimmy | cotto: what's what? | 03:08 | |
| cotto | I'm confused that purl responded to that the second time, but not the first | ||
| jimmy | because of blank space | 03:09 | |
| parrot++ | 03:10 | ||
| karma parrot | |||
| purl | parrot has karma of 27 | ||
| kid51 just opened TT for problem reported earlier with t/pmc/exceptionhandler.t | 03:13 | ||
| GeJ: Just closed your TT#135. Thanks. | 03:17 | ||
| GeJ | for curiosity's sake | 03:51 | |
| karma GeJ | |||
| purl | gej has karma of 21 | ||
|
04:01
elmex_ joined
|
|||
| dalek | r35329 | tewk++ | trunk/languages/ecmascript (7 files): | 04:09 | |
| : [js] Objects and Arrays starting to construct | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35329 | |||
|
04:17
ChrisDavaz joined
04:37
japhb joined
04:56
polyglotbot joined
|
|||
| Infinoid | befunge: "test whether ulimit -t 30 kills infinite loops" | 04:57 | |
| polyglotbot | No output (you need to produce output to STDOUT) | ||
| Infinoid | awesome. | 04:58 | |
| I'm off to race sailboats in san fran this weekend, bye all | 04:59 | ||
| jimmy | bye Infinoid | 05:00 | |
| GeJ | have fun. | 05:11 | |
| purl | Don't do anything I wouldn't do!!! | ||
| GeJ | yep, like purl said. | ||
| dalek | r35330 | pmichaud++ | trunk/languages/perl6/src/classes: | 06:00 | |
| : [rakudo]: Update .PARROT method. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35330 | |||
| r35331 | pmichaud++ | trunk (2 files): | 06:01 | ||
| : [rakudo]: Remove obsolete src/classes/Scalar.pir . | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35331 | |||
|
06:21
Ademan joined,
Hinrik joined
|
|||
| dalek | r35332 | pmichaud++ | trunk/languages/perl6/src (2 files): | 06:22 | |
| : [rakudo]: Remove a couple of outdated Perl6Scalar items. | |||
| : Now we can start using it again. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35332 | |||
|
06:25
DietCoke joined
|
|||
| Coke | chromatic: hio | 06:25 | |
| Coke runs {{{make TEST_JOBS=3 fulltest}}} to see if it's safe to remove PIC. | 06:31 | ||
| Coke wonders if fulltest is now smart enough to stop if one core fails. | 06:33 | ||
| rant. 'make fulltest' runs the jit core on my osx/86 box and fails everything. | 06:53 | ||
|
07:09
mberends joined
07:26
japhb joined
07:54
hudnix joined
|
|||
| jimmy wonders whether pir support static vars. | 08:07 | ||
| Tene | jimmy: static vars? | 08:58 | |
| jimmy | yes | 09:05 | |
| static variable. | 09:06 | ||
| purl | it has been said that static variable is sky's $foo if 0 | ||
| jimmy | mesages | 09:32 | |
|
09:33
jimmy joined
|
|||
| cotto | Does anyone think it'd be a bad idea to change EXCEPTION_ROLE_COMPOSITION_METH_CONFLICT to EXCEPTION_ROLE_COMPOSITION_METHOD_CONFLICT? | 09:36 | |
| chromatic | +1 | 09:39 | |
| purl | 1 | ||
|
09:50
iblechbot joined
|
|||
| dalek | r35333 | fperrad++ | trunk/languages/lua/src (2 files): | 09:53 | |
| : [Lua] traceback | |||
| : - only with function name (step 1) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35333 | |||
|
10:07
AndyA joined
|
|||
| dalek | r35334 | cotto++ | trunk/docs/pdds/draft: | 10:17 | |
| : [pdd] readability changes | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35334 | |||
|
10:22
jimmy joined
|
|||
| dalek | r35335 | fperrad++ | trunk/languages/lua/src (2 files): | 10:47 | |
| : [Lua] | |||
| : - implement caller() in pure PIR | |||
| : - remove previous implementation in PMC Lua | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35335 | |||
| r35336 | cotto++ | trunk (10 files): | 10:50 | ||
| : [cage] change METH to METHOD in a few places | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35336 | |||
|
11:01
masak joined
|
|||
| masak | why does Parrot segfault so often on 'double free'? | 11:17 | |
| cotto | do you have a repeatable bug? | 11:22 | |
| masak | cotto: aye. | 11:23 | |
| cotto | can you nopaste (or file a TT)? | 11:24 | |
| masak | check out November. do 'git checkout d21edba2'. from p6w, do 'perl6 t/html-template/09-loop-control.t'. that generates a segfault. | ||
| I can file a TT as well. do I need to nopaste it? | 11:25 | ||
| (oh, and this isn't a 'double free' segfault; those usually aren't repeatable. this is just a segfault.) | |||
| cotto | it's better to have a minimal example if possible | ||
| "November" doesn't really count as minimal. | 11:26 | ||
| ;) | |||
| I'll be glad to play with it. | |||
| masak | cotto: ok. you can remove anything from that file except the first 19 lines, and the problem remains. | ||
| November really isn't needed. just that file and Test.pm. | |||
| cotto | november? | ||
| purl | i think november is at www.november-wiki.org/ or use.perl.org/~masak/journal/37212 or github.com/viklund/november/ | ||
| masak | december? | 11:45 | |
| purl | december is majik. $work will cross the big red line, $500k in revenue, $10k in profits | ||
| masak | purl: no, December is a sekkrit wiki written in Perl 7 | ||
| purl | okay, masak. | ||
| nopaste | "cotto" at 96.26.202.243 pasted "results of trying to repro" (10 lines) at nopaste.snit.ch/15277 | 11:50 | |
| cotto | I feel like I'm missing something. | 11:51 | |
| masak | ok, I'm not getting that error. | 11:53 | |
| checking again. | |||
| cotto | (with latest svn Parrot/rakudo) | 11:54 | |
| masak | yes, of course. | 11:55 | |
| purl | Indubitably. | ||
| masak | cotto: ok, you're running with the parrot executable, I'm running with the perl6 fakecutable. | 11:56 | |
| that's the first difference. | |||
| if I run with parrot, as you do, the test file passes here, while you get an error on feather. | |||
| that's the second difference. | 11:57 | ||
| I need to check out November on feather myself and try it there. | |||
| cotto | by coincidence, feather is also the name of my laptop | ||
| which is where I'm running it | 11:58 | ||
| masak | oh. | ||
| still a good idea to try running the tests on feather. :) | |||
| cotto | sure, except I don't have an account | ||
| masak | I'll do it. | 11:59 | |
|
12:00
riffraff joined
12:01
TiMBuS joined
|
|||
| dalek | r35337 | fperrad++ | trunk/languages/lua/src (3 files): | 12:09 | |
| : [Lua] | |||
| : - implement traceback() in pure PIR | |||
| : - remove previous implementation in PMC Lua | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35337 | |||
| r35338 | masak++ | trunk/languages/perl6/src/builtins: | 12:20 | ||
| : [rakudo] added :d and :f filetest operators | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35338 | |||
| jonathan | hi all | 12:50 | |
| masak: ping | 12:55 | ||
|
12:55
iblechbot joined
|
|||
| jonathan | masak: oh, don't worry, I mis-read your patch. :-) | 12:55 | |
| masak | jonathan: hokay. | 12:59 | |
|
13:07
kj joined
|
|||
| jonathan should coffee before code review | 13:07 | ||
| sjn reminds people about NPW talk submissions deadline tomorrow | 13:12 | ||
| masak | sjn: I'm on it. you'll have mine today. | 13:13 | |
| sjn | yay! \\o/ | 13:16 | |
|
13:18
riffraff joined
|
|||
| szabgab | sjn: oh I should also submit one I guess | 13:18 | |
|
13:19
kid51 joined
|
|||
| sjn | yay! \\o/ | 13:20 | |
|
13:24
mberends joined
|
|||
| szabgab | sjn: done | 13:25 | |
| masak | wow, that was fast. | ||
| szabgab | anyone from legal@parrot here? | ||
| masak: I just wanna talk about Padre | 13:26 | ||
| masak | szabgab: and I just wanna talk about November :) | ||
| jonathan | sjn: It's *what*?! | ||
| szabgab | we'll see if they have a spare slot for that | ||
| masak | yeah. | ||
| szabgab | meaning Padre of course, as November can be way more interesting as talk | 13:27 | |
| I used to give these stand-up commedies about Padre | |||
| I mean I gave 3 in the local pm groups around here, all of them like 2 hours of talking :-) | 13:28 | ||
| masak | heh | 13:29 | |
| szabgab | pmichaud: (or anyone for that matter) I am looking for docs of function lists for pir/pasm? sg like S29 for Perl 6 or perlfunc.pod | 13:31 | |
|
13:36
cognominal joined
|
|||
| cotto | szabgab, look at src/ops/*.ops and docs/pdds/pdd19_pir.pod | 13:45 | |
| cotto notices that it's turned from late to early | 13:46 | ||
| sjn | jonathan: what is what? | 13:49 | |
| szabgab | cotto: thanks | ||
| masak | sjn: submitted. | 13:53 | |
| jonathan | sjn: The deadline. :-) | 13:55 | |
| sjn | jonathan: oh, you knew that, I'm sure ;) | ||
| jonathan | Of course. ;-) | ||
| masak | jonathan: it's just an abstract, don't worry. :) | 13:56 | |
| jonathan | Submitted talks: 6 # people, submit more! | ||
| jonathan wonders if pmichaud is coming/has submitted. | |||
| sjn | btw, in which other irc channels should I remind people about the deadline? | ||
| pmichaud hasn't submitted anything, no :-( | 13:57 | ||
| szabgab | sjn: qa | 13:58 | |
| masak | sjn: #perl6 | 14:01 | |
| (on freenode) | |||
| sjn | ah | ||
|
14:09
alvar joined
|
|||
| cotto | subclassed ExceptionHandler> I want the exception. | 14:12 | |
| segfault> You can't handle the exception! | |||
|
14:34
Whiteknight joined
|
|||
| lu_zero | cotto ? | 14:38 | |
| masak | jonathan: irclog.perlgeek.de/parrot/2008-12-17#i_770418 | ||
| jonathan: don't remember if that was ever solved, or if it got an RT ticket. | 14:39 | ||
| jonathan: but I'm suddenly suffering from it again. November's tests are acting up because of something identical or very similar to this. | |||
|
14:40
rob joined
|
|||
| riffraff | I get a warning cmpiling dynext.c shall I report it somewhere? | 14:41 | |
|
14:41
rob joined
|
|||
| riffraff | another seems a possible problem: compilers/imcc/imcparser.c:4994: warning: logical ā&&ā with non-zero constant will always evaluate as true | 14:48 | |
| pmichaud | yes, I'm planning to submit to npw. | ||
| The rvar branch really took my attention away from lots of other stuff. But I've kept in mind the Jan 11 deadline :-) | |||
| masak | riffraff: say again? shouldn't that either be '||' or 'zero constant'/'false'? | 14:49 | |
| riffraff | masak, admittedly seems strange to me :) | ||
| masak | riffraff: that's two of us. | ||
| riffraff | but I guess it means that we have foo && true | 14:50 | |
| where the && true is useless | |||
| jonathan | masak: I expect it relates to "use" changes. Are you using pre-compiled modules? | ||
|
14:51
kj joined
|
|||
| pmichaud | fwiw, we didn't directly change anything about 'use' itself in the rvar branch. (We did perhaps change the BEGIN semantics of classes, though.) | 14:51 | |
| masak | jonathan: no. | 14:52 | |
| I think that's the new part of the problem. | 14:53 | ||
| oh, so rvar has merged now? | |||
| pmichaud | yes. | ||
| jonathan | masak: Yes | ||
| masak | ok, then we know where to start. :) | 14:54 | |
| jonathan | pmichaud: Aye, I was more referring to use changes before rvar. | ||
| masak submits rakudobug | |||
| pmichaud | when is the hackathon at npw? | 14:57 | |
| pmichaud starts to figure out travel arrangements. | |||
|
14:58
jimmy joined
|
|||
| jonathan | For the two days after I think | 14:58 | |
| That's what my calendar says... | |||
| masak | aye, it's during the weekend. | ||
| jonathan | NPW2009 will be held in Oslo, Norway on April 16th to 17th, 2009. | ||
| and | |||
| We're arranging a Perl 6 Hackathon in Oslo on April 18-19, 2009, right after the Workshop. | |||
| Ooh, isn't that in the same places as the Oslo hackathon last year? | 14:59 | ||
| 'twas good there. | |||
| jonathan should make some travel plans too. | 15:00 | ||
| Though it's not all that far for me. | |||
| pmichaud | so, I'm looking at arriving on the 15th (tax day in the US) and departing on the 20th then. | ||
| maybe an extra day one way or another for sightseeing. | |||
| jonathan | pmichaud: Oslo, and Norway generally, is beautiful. | ||
| pmichaud | timing means it's unlikely Paula would be able to join me :-| | 15:01 | |
| jonathan | Ah, that's a shame. :-( | ||
| pmichaud | someone has to stay and take care of the kids | ||
| jonathan | Ah, yes. It's during term time. | ||
| So they can't be hauled along either. ;-) | 15:02 | ||
| OK, well, a day if you can spare it is IMO worthwhile. :-) | |||
| I'm not sure exactly what I'll do yet. | |||
| pmichaud | airfares are reasonable -- roundtrip right now is around $1k | 15:04 | |
| jonathan | Wow, there aren't direct VIE-OSL flights?! | 15:05 | |
| That's not so bad. | |||
| pmichaud | not bad at all, considering the distance. | ||
| jonathan | I guess it's a connection somewhere? | ||
| pmichaud | yes, doesn't look like any direct flights dfw<->osl | ||
| looks like one stop in amsterdam. | 15:06 | ||
| (if flying klm) | |||
| or frankfurt (lufthansa) | |||
| jonathan | Ah, that's essentially on route. | ||
| (amsterdam more so) | |||
| pmichaud | or heathrow (if BA). | ||
| jonathan | Eww! | ||
| pmichaud | Looks like all the airlines go through the standard hubs :-) | 15:07 | |
| so far amsterdam looks like my favorite choice :-) | |||
| jonathan | Some standards are nicer than others. ;-) | ||
| Yeah, it's what I'd probably choose. | |||
| masak | rt.perl.org/rt3//Ticket/Display.html?id=62162 | ||
| jonathan | Amusignly, my cheapest options go...through Admsterdam and Frankfurt. :-| | ||
| lathos | Frankfurt airport is hell. | 15:08 | |
| Whiteknight | when we subclass a PMC, does the subclass have the same methods as the PMC does? | ||
| jonathan | With horrible times. | ||
| Whiteknight: Should do. | |||
| lathos came back through there on Wednesday. | |||
| jimmy | good night, everybody | ||
| masak | jimmy: good night. | 15:09 | |
| jonathan | lathos: Nowhere much to sit, and the distances you had to hike to get to a gate, were my main memories of Frankfurt. | ||
| jimmy | masak: ęäøå„½ļ¼åµåµ | ||
| masak | jimmy: ęäøå„½ | 15:10 | |
| lathos | Huge hike and lots of security checks. | ||
|
15:10
Limbic_Region joined
|
|||
| jonathan | Ah yes. That was the airport that wouldn't let me go through the scanner thing until I'd removed the *tissues* from my pockets. | 15:10 | |
| Meh. The only direct flight Vienna - Oslo is with Austrian airlines. Whom I hate. | 15:11 | ||
| lathos | There's a check each side of the shops, and you have to go through the shopping bit to get between transfer hubs. | ||
| pmichaud | KLM - good flight, through amsterdam, round-trip $1036 | ||
| jonathan | pmichaud: Sounds good! | ||
| jonathan checks if he can go by train. | 15:12 | ||
| pmichaud checks if he can go by train. | |||
| jonathan | pmichaud: Not until a few more lines are built and there's a tunnel under the Berring. ;-) | ||
| masak | seems there are more problems introduced by rvar. :/ | 15:13 | |
|
15:14
gp5st joined
|
|||
| pmichaud | masak: wouldn't surprise me. We might also have inadvertenly eliminated some previously-working-workarounds | 15:14 | |
| masak | interesting times ahead for November. | 15:15 | |
| pmichaud | masak: I'll help clean up whatever we broke. | ||
| jonathan | There's also the possibility that some things before worked by accident, or weren't quite correct. | ||
| masak | pmichaud: first thing is RT#62162, as posted above. | ||
| jonathan: that's hardly a consolation. :/ | 15:16 | ||
| pmichaud | masak: use braces. | ||
| masak just did | |||
| I'm used to working around stuff. | |||
| pmichaud | I think (but haven't confirmed) that "use v6; class Foo;" isn't legal. | ||
| masak | oh. | ||
| pmichaud | because S11 says that any "class Foo;" statement has to be the first statement in the file. | 15:17 | |
| masak | so it's one or the other? | ||
| gp5st | hello, in the opcode section of the docs, what are the (well there aren't any listed, but why the section) of python opcodes? | ||
| jonathan | pmichaud: I spotted the bit in STD.pm that looks like it enforces that... | ||
| pmichaud | (it might not work if you remove the "use v6;" yet, but I'm thinking that it's not valid Perl 6) | ||
| jonathan: yes, I'm going to work on enforcing that as soon as I get the array parameter semantics adjusted. | |||
| masak | pmichaud: I see. either of us should add that to the ticket, methinks. | 15:18 | |
| pmichaud | masak: soon (today) Rakudo will complain about it. | ||
| jonathan | Train to Oslo = not really practical. :-( | ||
| dalek | r35339 | pmichaud++ | trunk/languages/perl6/src (5 files): | ||
| : [rakudo]: Migrate to use Perl6Scalar instead of ObjectRef for true scalars. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35339 | |||
| masak | pmichaud: goodie. | ||
| masak investigates the next problem | |||
| turned out to be more of the same. phew. | 15:22 | ||
| gp5st | also, what are the "Dot GNU" opcodes, too (along with the python ones?) | 15:23 | |
| jonathan | gp5st: I think the Dot GNU ones were there as part of an early effort to run .Net on Parrot. I think they are now removed (so must be left over doc reference - would be good to know where.) | 15:25 | |
| gp5st | www.parrotcode.org/docs/ops/ they are just sections, i didn't know if they were legacy or planned | 15:26 | |
| also, in math (www.parrotcode.org/docs/ops/math.html) cmod seems to be defined multiple times with the same parameter list? | 15:27 | ||
| nm, i'm just being dumb, sorry | |||
| jonathan | gp5st: They're legacy. | 15:28 | |
| gp5st | ok:) | 15:29 | |
|
15:29
DietCoke joined
|
|||
| gp5st | i am wonder how possible it would be to build a limited VM that could run on a microcontroller | 15:31 | |
| so, i'm just begining my study of the real/full VM | |||
| pmichaud | gp5st: you might take a look at sm0p -- iiuc, at its core it has a very small number of basic opcodes | 15:32 | |
| er, smop | |||
| www.perlfoundation.org/perl6/index.cgi?smop | 15:33 | ||
| gp5st | thanks | ||
| pmichaud | s/opcodes/operations | 15:34 | |
| gp5st | hmm, i was hoping to take advantage of pre-existing compilers for parrot, though | 15:35 | |
| pmichaud | then you want to start with parrot. But making parrot "small" might be a challenge. | ||
| gp5st | so i'm told/finding | 15:36 | |
| I knew from the start I'd most likely have to drop things like IO and threading as they really aren't needed | 15:37 | ||
| lathos | Those are not the problems. | ||
| Getting PMCs working will be the first challenge. | 15:38 | ||
| gp5st | i know, i'm just trying to think of base level cuts | ||
| lathos | Doesn't work like that. | ||
| gp5st | debug might help save space so i was thinking of making it a modual that i could put on larger uC's | ||
| DietCoke stares at the remaining global opcodes on the cutting board. | |||
| gp5st | i thought that PMC were references to objects? | ||
| DietCoke doesn't bother renaming back to Coke since he is on a diet again. | 15:39 | ||
| pmichaud | PMC are objects. | ||
| PMC registers are references to PMCs. | |||
| gp5st | oook, that would make sense | ||
| are objects that hefty? | |||
| lathos | You have to implement them. | 15:40 | |
| That's the bulk of Parrot. | |||
| jonathan | gp5st: One of the things against you, is that one of the design principles of Parrot is that RAM is, on the whole, a fairly cheap resource. | ||
| gp5st | i know; i mean i havn't looked into the details of them, but do they have to be that hefty; there is no lighweight way to represenet them? | 15:41 | |
| lathos | If there was, we'd use it. | ||
| gp5st | unless you have 512B of it:) | ||
| lathos | We don't just throw code in there for the hell of it, you know. | ||
| gp5st | i meant one at the expense of some of the ability to do fancy things... | ||
| I guess maybe i should just do p-code and use pascal? | |||
| pmichaud | many of the languages that you want to take advantage of rely on the "fancy things" | ||
| dalek | r35340 | pmichaud++ | trunk/languages/perl6/src/classes (5 files): | 15:42 | |
| : [rakudo]: More converting of ObjectRef to Perl6Scalar. | |||
| gp5st | I'm trying to cut quite a bit and i was hoping it wouldn't matter to much for small programs | ||
| dalek | review: www.parrotvm.org/svn/parrot/revision?rev=35340 | ||
| jonathan | gp5st: Right, but even if you look at say a smartphone today or something, it's got _vastly_ mroe than that. | ||
| gp5st | but... | ||
| i know, i'm not critising the design:) | |||
| lathos | You seem to be approaching this as though Parrot is full of unnecessary bits that you can just throw away. If that were true, we'd have done it. The code's there because we need it to be. | 15:43 | |
| gp5st | not so much unnessecary, but unneeded for me | ||
| lathos | OK. I'm going to stop now. | ||
| gp5st | i don't need advanced IO and threading on a uC | ||
| ok | |||
| lathos | THOSE ARE NOT THE... argh, you've got me doing it again. | ||
|
15:44
lathos left
|
|||
| gp5st | sorry, i typed and send before i read what you said... | 15:44 | |
| pmichaud | I think that advanced IO and threading aren't significant portions of Parrot's size. | ||
| gp5st | i'm learning that as i go threw this | ||
| jonathan | gp5st: If I only had 8K of memory to play with, I'd not pick Parrot as a starting point. | ||
| pmichaud | I wonder if our garbage collector even fits in 8k :-) | ||
| gp5st | i'm also figuring that point out as i go:) | ||
| jonathan | Because it'd take me a heck of a lot less time to write a VM from scratch that fits in 8k (hey, that's not a lot of space for compiled output...give me a day... ;-)) than to try and work out the beginnings of a _plan_ to whittle Parrot down to that much. | 15:45 | |
| gp5st | i might just do p-code | ||
| jonathan | Parrot would seem to be the wrong tool for the job you're wanting to do here, yes. | 15:46 | |
| gp5st | it's more of a toy than something i'd exepcted to be able to use in production | ||
| pmichaud | let's put it a different way. Suppose you're wanting to run a small language like lolcode on parrot in 8k. | 15:47 | |
| -rw-r--r-- 1 pmichaud pmichaud 325184 2009-01-10 09:47 lolcode.pbc | |||
| :-( | |||
| gp5st | yeah | 15:48 | |
| pmichaud | sometimes no matter how hard you try, you just can't get the elephant to fit in the mailbox. Or if you do, what you have left doesn't look much like an elephant. | 15:49 | |
| jonathan | LOL!! | ||
.oO( So weird mental image... ) |
|||
| gp5st | that is, of course, if you don't know wayne zalinsky(sp?) | ||
| pmichaud | (mental image) yeah, I have no idea where that came from. | 15:50 | |
| gp5st | lol | ||
| pmichaud | I shouldn't make analogies before having a Dr Pepper. | ||
| gp5st | yeah, i guess i was under the impression that a lot of the hef was from a full set of features, not basic implmentation, sorry | ||
| lol | |||
| jonathan hides pmichaud's Dr Pepper, for more amusing analogies | 15:51 | ||
| pmichaud | taking short break -- bbiab | 15:52 | |
| gp5st | sorry, i didn't mean to sound insulting towards anyone | 15:57 | |
| masak | gp5st: I think that optimizing for size hasn't been a concern so far. | 16:10 | |
| gp5st | well, it prob hasn't been needed; but i just didn't think that the support of objects was larger than the IO and threading libraries (even if threading used fork or pthreads) | 16:12 | |
| i havn't studied the source very much yet | |||
| do people routinly call it bloated or thinging (I'm not) but I've gotten quite a few people upset anytime i bring up the idea of writng and implmentation for (small) embedded enviroments | 16:14 | ||
| i also havn't been following parrot's history very much | 16:15 | ||
| i'm sorry if i brough up bad blood inadvertantly | 16:17 | ||
| jonathan | gp5st: It's more that those of us who *do* know Parrot guts know exactly low far trying to squeeze a Parrot interpreter into 8k will get. Which is, not that much further than "hello world" | ||
| s/low/how/ | |||
| Parrot provides support for a _lot_ of HLL features out of the box. | 16:19 | ||
| And even what looks like a simple language will use a fair few of them. | |||
| gp5st | yeah, i just didn't think object support was as large as it is, that's all; not saying it's wrong, but that i was misguided at first | 16:20 | |
| <joke>I could alwasy move to a large uC and quadrupal the space avaliable</joke> | 16:21 | ||
| dalek | r35341 | pmichaud++ | trunk/languages/perl6/src/parser: | 16:22 | |
| : [rakudo]: Module declarator statements carp if not first in compunit. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35341 | |||
| r35342 | kjs++ | trunk (2 files): | 16:40 | ||
| : [core] add PARROT_EXPORT to some of the new PackFile_Annotations functions. PIRC needs them, and being an external component (not in libparrot), they need to be exported. | |||
| : I edited the header file manually, instead of regenerating using the headerizer. Not sure how to do this, and nmake headerizer failed for some weird reason. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35342 | |||
|
16:41
kj joined
|
|||
| dalek | r35343 | pmichaud++ | trunk/languages/perl6/src/parser: | 16:58 | |
| : [rakudo]: Adjust mainline execution for compunit-scoped modules. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35343 | |||
| r35344 | kjs++ | trunk/compilers/pirc/src (2 files): | 17:02 | ||
| : [pirc] some work on annotations stuff. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35344 | |||
| r35345 | pmichaud++ | trunk/languages/perl6/src/builtins: | 17:11 | ||
| : [rakudo]: Eliminate unused !COPYPARAM function. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35345 | |||
| szabgab | who is running www.parrotcode.org ?, On www.parrotcode.org/docs/ there is a link to A "Roadmap" for Parrot leading to an empty page | 18:01 | |
| Roles & Reponsibilities also leads to empty page | 18:02 | ||
| dalek | r35346 | jquelin++ | trunk/languages/befunge: | ||
| : instruction ` is greater than, not greater than or equal | |||
| : this fixes the "bad: sgml spaces" report from mycology | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35346 | |||
|
18:02
kj joined
18:04
geof joined
|
|||
| dalek | r35347 | pmichaud++ | trunk/languages/perl6/src/builtins (2 files): | 18:17 | |
| : [rakudo]: More places where we s/ObjectRef/Perl6Scalar/ . | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35347 | |||
|
18:20
Theory joined
|
|||
| jonathan is such a fail | 18:35 | ||
| I got bread for sandwiches. And forgot to buy anything to put *in* the sandwiches... :-S | |||
|
18:35
lathos joined
|
|||
| hudnix | jonathan: just preparing yourself for the tight economy, eh? | 18:36 | |
| lathos | OK, I'm going to start a strings branch. Anything I need to do other than issue the appropriate svn command? | 18:37 | |
| jonathan | lathos: OH HAI please can you help me make a Parrot whose binary fits into 64KB? | ||
| ;-) | |||
| lathos: On the branch - nope, just go for it, IMO. | |||
| lathos | % du -sh parrot | ||
| 36k\tparrot | |||
| Job done. | |||
| OK, will do that. | 18:38 | ||
| jonathan shoulda said something about static linking too ;-) | |||
| lathos | Branches live in /parrot/branches? | ||
| jonathan | Aye. | 18:39 | |
| lathos | Right then. | ||
| jonathan | lathos++ | ||
| lathos | Time to get hacky. | ||
| dalek | r35348 | simon++ | branches: | ||
| : Creating a branch to implement strings PDD | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35348 | |||
| jonathan awaits the yelps of horror as lathos uncovers nasty stuff. | 18:45 | ||
| lathos | I'm going to be mainly gutting rather than uncovering. | 18:47 | |
|
18:49
ruoso joined
18:59
gp5st joined
|
|||
| dalek | r35349 | simon++ | branches/strings (16 files): | 19:07 | |
| : Remove deprecated (and mainly unused) "representation" concept. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35349 | |||
| lathos | OK, I take it back, and I am yelping in horror. | 19:22 | |
| jonathan doesn't dare ask what at | 19:42 | ||
| lathos | strstart. | ||
| dalek | r35350 | simon++ | branches/strings/src: | 19:45 | |
| : Basic DRY refactoring on bitops macro | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35350 | |||
| r35351 | simon++ | branches/strings/src: | 20:01 | ||
| : More DRY refactoring of bitwise operators | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35351 | |||
| lathos | I think whoever wrote this was getting paid per line. | ||
| jonathan | Never suspect malice when... ;-) | 20:16 | |
|
20:17
ask_ joined
|
|||
| Whiteknight | is anybody else seeing test failures in some of the TGE tests? | 20:18 | |
| I'm doing a fresh checkout now, but I was seeing a few of the tests in t/compilers/tge/* fail after a realclean | 20:19 | ||
| And for that matter, is there any reason why we still have TGE? Do any of the languages use it? | 20:21 | ||
| Whiteknight DEMANDS ANSWERS! | 20:24 | ||
| Okay, I'm not seeing the test failures anymore, must have been due to a local change on my machine | 20:26 | ||
| stupid local changes | |||
|
20:37
kid51 joined
|
|||
| DietCoke | (tge) - tcl and pheme use it. | 20:46 | |
| and when asked in the past, allison sez it's not getting removed. | |||
| Whiteknight | dayum sonz | 20:54 | |
|
20:54
dmknopp joined
|
|||
| DietCoke | you can ask her again. | 20:56 | |
| we seem to be in a "rip things out" mood. | |||
| question: if I have a key of ['foo'] and use get_keyed , is that identical to having a string literal of 'foo' and using get_keyed_str ? | 20:57 | ||
| or do those key-ify differently? | 20:58 | ||
| Whiteknight | If languages are legitimately using TGE then it shouldn't get ripped out | ||
| although it certainly seems that PCT is the more powerful and more popular compiler-building toolset | |||
| DietCoke | (trying to cleanup the remaining find/store global bits; this is a difference.) | ||
| Whiteknight: patches to convert tcl welcome! | |||
| Whiteknight | I don't know enough TGE to even read it reliably, much less interpret it and convert to something better | 20:59 | |
| jonathan | DietCoke: They will invoke different vtable methods on the PMC. | ||
| DietCoke: So it's dependent on that PMC's behaviour. | |||
| DietCoke | well, this is for the find_globals, so it's presumably the namespace bit. | ||
| jonathan | In which case I'd guess they'd be equivalent. | 21:00 | |
| Whiteknight | I've got an IMCC patch ready now that fixes the $P0 = new ['type'] syntax and doesn't ruin any tests | ||
| DietCoke | k. that /should/ make this last removal of opcodes straightforward. | ||
| Whiteknight: ship it. | |||
| Whiteknight | but it's not the nicest patch yet, and I think there are a few things left to do before I ship it | 21:01 | |
|
21:02
chromatic joined
|
|||
| DietCoke | "cheeze it, it's chromatic." | 21:03 | |
| dalek | r35352 | chromatic++ | branches/pdd09gc_part2/src/pmc: | 21:04 | |
| : [PMC] Made instantiate vtable entry for Integer PMC use the new_pmc() wrapper, | |||
| : instead of manipulating a PMC header directly. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35352 | |||
| pmichaud | Whiteknight: I don't understand what's wrong with the $P0 = new ['type'] syntax in the first place. | 21:13 | |
| It works for me in Rakudo. | |||
| and Rakudo uses it at least 10 or so times | |||
| Whiteknight | I'm not sure either, but there was a test case that wasn't working | 21:14 | |
| pmichaud | then I suspect the test case, not the syntax. | ||
| but the syntax itself appears to work. | |||
| Whiteknight | the syntax "new $P0, ['Integer']" was't working | 21:16 | |
| $P0 = new ['Integer'] did work | |||
| and the two should be equivalent, but they weren't | |||
| pmichaud | oh, okay. So it's a fix for new $P0, ['type'] | 21:17 | |
| chromatic | Lovely. | 21:19 | |
| Returns a bufferlike header pool for objects of a given size. Does not check to | |||
| see if the pool already exists, so if the pool does not exist, this will return | |||
| an invalid pointer. | |||
| Whiteknight | chromatic, which function is that? | ||
| chromatic | get_bufferlike_pool | ||
| Whiteknight | (sounds like some documentation I wrote a while back) | ||
| chromatic | PARROT_WARN_UNUSED_RESULT | 21:20 | |
| PARROT_CANNOT_RETURN_NULL | |||
| Whiteknight | it's got my cadence and my habitual abuse of comments | ||
| abuse of commas* | |||
| chromatic | Tonight that function dines in hell. | ||
|
21:20
leto joined
|
|||
| Whiteknight | chromatic++ # I actually laughed outloud at that | 21:20 | |
| DietCoke | CAAAAAAAKKKKEEEEEEEEEETOWN | ||
| Whiteknight | my wife thinks I'm retarded | ||
| chromatic | You haven't been married that long. Hopefully she finds it charming. | 21:21 | |
| DietCoke | mine seems to. | ||
| Whiteknight | she's under the weather, so most of my "charming" aspects are making her annoyed | ||
| that and the idiots on the food network | |||
| chromatic | Mmm, cake. | 21:22 | |
| Whiteknight | It's actually a little bit depressing to me, in hindsight, that I documented the bad behavior of that function and didn't fix it | 21:23 | |
| chromatic | That was my question. | 21:24 | |
| It took me as long to fix it as it would have to document it. | |||
| I replaced all (one) uses of the function with calls to make_bufferlike_pool, which does the right thing. | 21:25 | ||
| dalek | r35353 | Whiteknight++ | trunk/compilers/imcc (4 files): | ||
| : [IMCC] remove some special cases for the 'new' keyword and let the normal operator handling sugar do it's job to cover extra cases | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35353 | |||
| Whiteknight | I think it was one of those things where I was trying to do all the documentation at once, and I left myself notes to go back and fix things | ||
| but I never went back | |||
| ..at least we have documentation to tell us where the problems are! | |||
| chromatic | I'm sending src/headers.c into src/gc/ now anyway. | 21:26 | |
| dalek | r35354 | coke++ | trunk (13 files): | 21:27 | |
| : Remove last [DEPRECATED] find_global opcode. | |||
| : "make test" passes, but it seems that many things that use this (in library, e.g.) might not even be compiled. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35354 | |||
| DietCoke | I swear I tried to remove that opcode 3 times, and got errors before. wierd. | 21:31 | |
| Whiteknight | urg, so many broken things! | 21:33 | |
| I still can't figure out TT#133 and why tailcallmethod wouldn't be working | 21:34 | ||
| or TT#154, which is so weird I don't even know where to start | |||
| I was looking at it in GDB, but the line numbers must be wrong somewhere because it was like tracing through some perl files instead of the C code | 21:36 | ||
| chromatic | You get that from PCCMETHODs in PMCs. | ||
| jonathan | Whiteknight: I suspect it...yeah, what c said. | ||
| chromatic | Sometimes I edit the .c files directly and remove all #line directives and rebuild. | 21:37 | |
| Whiteknight | oh great, what a wonderful non-hassle | ||
| is there a reason why PCCMETHODS have that endearing quality, or is that something I can/should fix? | 21:38 | ||
| jonathan | Well, the thing is that it's generated code, and the Perl file it refers to is where the code is generated... | 21:39 | |
| chromatic | <rub item="it" position="in">I believe you're thinking of the calling_conventions branch.</rub> | ||
| We should use more binary trees in the GC. | 21:40 | ||
| jonathan | chromatic: For faster lookups or stuff? | 21:41 | |
| *of | 21:42 | ||
| chromatic | I'm looking at how we store sized header pools. | ||
| We use the size as an index into an array. | |||
| I doubt that our distribution of sizes will be linear. | 21:43 | ||
| My initial impression is that something more sparse would be more useful. | |||
| But that gets into GC tuning, which is a different sort of problem. | 21:44 | ||
| dalek | r35355 | coke++ | trunk (9 files): | ||
| : Remove last variant of [DEPRECATED] store_global opcode; make test passes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35355 | |||
| jonathan | OTOH, an index into an array is *fast*. | ||
| Do we hit the sized header pools per pmc creation, though? | 21:45 | ||
| dalek | r35356 | chromatic++ | branches/pdd09gc_part2/src: | ||
| : [src] Fixed some typos. Improved some documentation. Tidied some code. | |||
| : Switched the one use of get_bufferlike_pool() over to make_bufferlike_pool(), | |||
| : as the former makes it too easy to corrupt memory even in the normal case. | |||
| chromatic | No, it's for STRINGs and buffers and such. | ||
| dalek | review: www.parrotvm.org/svn/parrot/revision?rev=35356 | ||
| chromatic | Besides that, we already keep pointers to the appropriately sized pools from which we allocate a lot of headers, so we avoid the lookup. | 21:46 | |
| jonathan | Ah. | ||
| chromatic | I'm just thinking of the space/time/realloc overhead for using a non-sparse array. | ||
| jonathan | In that case it's probably not a performance issue, and possibly a memory usage win. | ||
| chromatic | Did I ever tell you I wrote a proof of concept self-hosting garbage collector? | 21:47 | |
| Not for Parrot. | |||
| jonathan | No. | ||
| Self-hosting GC?! | |||
| jonathan is curious. | |||
| chromatic | It manages its own memory. | ||
| jonathan | Aha. | 21:48 | |
| Self-hosting in that sense. | |||
| chromatic | That was a brain-twisty afternoon. | ||
| jonathan | :-) | ||
| They happen now and then. | |||
| chromatic | It has (naively to start) a hash of sized pools. | 21:49 | |
| Each pool is some multiple of the size of its elements and a memory page. | |||
| For one-byte elements, you get one page of 4096 elements. | |||
| jonathan | Page boundary sensitivity is good. | 21:50 | |
| chromatic | Anyway, it allocates an appropriately sized pool for a Hash structure. | ||
| Then it allocates an appropriately sized pool for a HashBucket structure. | |||
| Then it allocates an appropriately sized pool for a MemoryPool structure. | 21:51 | ||
| Then it assigns all of the pointers correctly so that it refers to those pools as anchored roots, and then it goes on merrily. | |||
| jonathan | Whee. :-) | ||
| You make it all sound so simple. | |||
| chromatic | It's not too complicated. | 21:52 | |
| jonathan didn't ever find Parrot's GC code that simple. | |||
| chromatic | I wanted to see if I could avoid malloc/free for everything but pool management. | ||
| It would be easy to switch over to mmap/munmap if I wanted to be completely awesome. | |||
| sbrk is for weirdoes. | |||
| Whiteknight | that's what my GC tries to do: avoid all extraneous malloc/realloc calls | 21:53 | |
| DietCoke | chromatic: you do want to be completely awesome. | ||
| Whiteknight | unfortunately, my proof-of-concept is completely b0rked | ||
| chromatic | s/want to// | ||
| Whiteknight | chromatic you do be completely awesome | ||
| jonathan | you grammar do be completley awesome | 21:54 | |
| chromatic | After that point, I decided that I needed dinner, and when I came back, I wasn't sure if I wanted to do copying or mark/sweep or try the traincar algorithm or what. | ||
| Whiteknight | I keep thinking about doing a traincar GC instead | 21:55 | |
| or even a semi-space algorithm, until I hear numbers like 1.3 million PMCs | |||
| DietCoke | that is very likely not my fault. =-) | 21:56 | |
| chromatic | I just can't see how to do an incremental non-m/s GC. | ||
| I wish I could figure out how to force GDB to attach to a process which aborts. | 21:58 | ||
| Or I could change the ASSERT to force a segfault.... | |||
| Whiteknight | chromatic: that would probably be the easiest. We could have some kind of a flag that changes PARROT_ASSERT to do "*(0) = 0x1" and force a segfault | 21:59 | |
| I usually just set a breakpoint on Parrot_confess, but that has it's downside | 22:00 | ||
| dalek | r35357 | chromatic++ | branches/pdd09gc_part2 (2 files): | ||
| : [src] Removed doomed get_bufferlike_pool() function, which could cause memory | |||
| : corruption from innocent-looking use. What replaces it? Oh, you'll see.... | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35357 | |||
| chromatic | I run the parallel tests, and once in a while I see the PARROT_ASSERT(obj) in pobject_lives abort, but I can't reproduce it except when running parallel tests. | ||
| It's tough to attach GDB there. | 22:01 | ||
| jonathan | bbiab | ||
| dalek | r35358 | Whiteknight++ | branches/pdd09gc_part1 (4 files): | ||
| : [pdd09gc_part1] remove real_self from this branch, since we've removed it from trunk and it was being marked by the GC | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35358 | |||
| r35359 | coke++ | trunk/languages/pheme/lib (4 files): | 22:03 | ||
| : Update pheme past recent opcode removal. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35359 | |||
| r35360 | coke++ | trunk/languages/regex: | 22:04 | ||
| : fix [regex] language to avoid removed opcodes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35360 | |||
| r35361 | chromatic++ | branches/pdd09gc_part2 (5 files): | 22:06 | ||
| : [src] Renamed make_bufferlike_pool() to get_bufferlike_pool(), so that it's | |||
| : obvious which function is safer to use. (Hint: it's the only one which exists | |||
| : anymore.) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35361 | |||
| r35362 | Whiteknight++ | branches/pdd09gc_part1/src/gc: | 22:08 | ||
| : [pdd09gc_part1] move a directive to include more random tests in the DEBUG mode only | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35362 | |||
| Whiteknight | what type of PMC is normally stored in ctx->handlers, ResizablePMCArray? | 22:13 | |
| chromatic | I think so. | ||
|
22:15
TiMBuS joined
|
|||
| DietCoke | hurm. most conversions to keys is from literal strings, so I can just do 'foo' => ['foo'] | 22:16 | |
| but if foo is in $S1, how can I key that? {{ new $P1, 'Key'\\n $P1 = $S1 }} ? | 22:17 | ||
| Whiteknight | my current GC-related segfault comes from the premature collection of a handler PMC | ||
| tewk | \\ | 22:19 | |
| dalek | r35363 | pmichaud++ | trunk/languages/perl6/src/builtins: | 22:27 | |
| : [rakudo]: Make assignment smarter about ObjectRef vs. Perl6Scalar. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35363 | |||
| Whiteknight | The time may not be too too far off when I have to just admin defeat and toss this GC onto the trash pile | 22:28 | |
| for my blood pressure, that might just be the most attractive option | |||
| chromatic | If we had a better set of abstractions for working with the GC, that might make life easier. | 22:30 | |
|
22:30
Theory joined
|
|||
| chromatic | I'm trying to move files and functions around so we have a hope of cleaning things up. | 22:30 | |
| Whiteknight | I may just have to wait for that cleanup work to materialize, because I'm up against the wall here with my current methods | 22:31 | |
| on that note, you need an extra pair of hands/eyes on your branch? | |||
| tewk | chromatic: have you tried SIGABRT? | 22:33 | |
| chromatic | How do I catch that from parallel prove? | 22:34 | |
| tewk | I often write a signal handler that prints "run gdb on getpid()" and then do a read on stdint. | ||
| you would have to add a signal handler to parrot recompile and then run parallell prove. | |||
| it essentially tells you to what pid to attach to and then suspends that process by blocking on stdin. | 22:35 | ||
| chromatic | Clever. | ||
| Whiteknight, I'm thinking we should figure out what kind of public API we need for the GC (get_new_*_header(), pobject_lives(), collect(), etc), and stuff that in src/gc/api.c. | 22:37 | ||
| Then figure out how to make the backend somewhat pluggable. | |||
| tewk | Very essential for SIGSEGV faults in GC code when you are using mprotect as memory barrier | ||
| I've seen a code base that successfully auto launches gdb in an xterm and attaches to the offending process on SIGSEGV or SIGABORT. | 22:39 | ||
| chromatic | Let me make two more commits. | 22:40 | |
| dalek | r35364 | chromatic++ | branches/pdd09gc_part2 (9 files): | ||
| : [GC] Moved several GC public functions from src/headers.c into src/gc/api.c. | |||
| : Re-ran headerizer. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35364 | |||
| chromatic | Then I could use some help on this (especially as I have to run an errand or two). | ||
| Whiteknight | I would love to help improve the API | 22:45 | |
| I've had so many complaints about the API since I started this work | |||
| just let me know what and when | |||
| dalek | r35365 | pmichaud++ | trunk/languages/perl6/src/classes: | 22:47 | |
| : [rakudo]: Adjust flattening to understand ObjectRef vs. Scalar . | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35365 | |||
| cotto | DietCoke, where are you converting strings to keys? | 22:50 | |
| chromatic | tewk, Whiteknight, this checkin on the svn.perl.org/parrot/branches/pdd09gc_part2 is probably my last for today. | 23:01 | |
| dalek | r35366 | chromatic++ | branches/pdd09gc_part2 (9 files): | ||
| : [GC] Moved src/headers.c to src/gc/pools.c and include/parrot/headers.h to | |||
| : include/parrot/gc_pools.h. | |||
| : Re-ran headerizer. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35366 | |||
| chromatic | tewk, t/pmc/multidispatch_47.pir and t/pmc/filehandle_2.pir are the ones which show weird aborts under parallel testing sometimes. | ||
|
23:10
ask_ joined
|
|||
| GeJ | Good morning everyone | 23:19 | |
| jonathan | morning GeJ | 23:22 | |
|
23:35
tetragon joined
|
|||
| Whiteknight | okay chromatic, anything in particular I could tackle next? | 23:43 | |
| or, is there a checklist somewhere? | |||
| chromatic | No real checklist. | 23:53 | |
| Maybe what we need to do is figure out all of the functions gc_api.c needs to expose, normalize their names, and figure out how to hide differences between GCs between them. | 23:54 | ||
| Whiteknight | I like that idea | ||
| chromatic | We might need to create a GC struct which abstracts GC details. | ||
| That could move some stuff out of the Interpreter struct. | 23:55 | ||
| s1n | what's the maximum allowable recursion depth? around 1000? | ||
| chromatic | yes | 23:56 | |
| by default | |||
| s1n | chromatic: why the limit? | ||
| chromatic | Debugging. | 23:57 | |
| purl | i heard debugging was for wimps! or working | ||
| s1n | chromatic: is it easy to extend to an arbitrary limit? | ||
| chromatic | Yes, I believe so. | ||
| You have to set a value on the current interpreter, but you can do that from within PIR. | |||
| s1n | err is there any documentation somewhere about this? | 23:58 | |
| chromatic | There might be. | ||
| Whiteknight | chromatic, I agree. There are 3 GC-related function pointers in the Arenas struct. We could separate them out into a separate structure and add more pointers for other tasks | 23:59 | |