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