Luke Palmer wrote:
> This patch re-implements the register backing stacks as PObjs (so > they can be garbage-collected), honors their COW flags, and adds > them to the interpreter context (where they should be, honest!). > > As a healthy side-effect, it encapsulates their behavior nicely into > register.c, when before their guts were splattered all over the > source. Hey Luke, I applied this patch, ran make realclean and rebuilt parrot. All the parrot tests pass (except the two about numbers, and I think they were failing before) but it doesn't like the code that pirate's generating. I boiled the problem down to this: ####### .sub __main__ newsub $P0, .Closure, _func newsub $P1, .Continuation, done .pcc_begin non_prototyped .pcc_call $P0, $P1 done: .local object result .result result .pcc_end print result print "\n" end .end .pcc_sub _func non_prototyped .local object res res = new PerlString res = "hello!" .pcc_begin_return .return res .pcc_end_return .end ######## When I run this, parrot says: No more I register frames to pop! I think the problem is coming from the .pcc_begin_return line. This code works fine if I change the .Continuation to a .Closure or .Coroutine... It also worked before the patch. Do I have my calling conventions screwed up or is this a bug? Sincerely, Michal J Wallace Sabren Enterprises, Inc. ------------------------------------- contact: [EMAIL PROTECTED] hosting: http://www.cornerhost.com/ my site: http://www.withoutane.com/ --------------------------------------