Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Nicholas Clark
On Sun, Jun 12, 2005 at 03:03:24PM -0400, Matt Fowles wrote: 3) Chip is right, Piers is right. The two of you have are working from a different base set of definitions/axioms or misunderstood each other in some other way. Historically, (pre Perl 6 actually) I think that this scenario was the

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Chip Salzenberg
On Sun, Jun 12, 2005 at 09:41:05PM -0700, Bill Coffman wrote: Continuations can be taken from within any sub, and possibly even when appending to a list, if you're using lazy list eval. Oh no ... it's even worse than you think. Almost *any* opcode that operates on a PMC can trigger a

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Brent 'Dax' Royal-Gordon
On 6/13/05, Chip Salzenberg [EMAIL PROTECTED] wrote: Oh no ... it's even worse than you think. Almost *any* opcode that operates on a PMC can trigger a continuation. And I only need two words to prove it: Tied variables. Isn't this *exactly* why Perl 6 is requiring you to mark tied

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Autrijus Tang
On Mon, Jun 13, 2005 at 09:21:00AM -0700, Brent 'Dax' Royal-Gordon wrote: On 6/13/05, Chip Salzenberg [EMAIL PROTECTED] wrote: Oh no ... it's even worse than you think. Almost *any* opcode that operates on a PMC can trigger a continuation. And I only need two words to prove it: Tied

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Chip Salzenberg
On Mon, Jun 13, 2005 at 09:21:00AM -0700, Brent 'Dax' Royal-Gordon wrote: On 6/13/05, Chip Salzenberg [EMAIL PROTECTED] wrote: Oh no ... it's even worse than you think. Almost *any* opcode that operates on a PMC can trigger a continuation. And I only need two words to prove it: Tied

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Chip Salzenberg
On Tue, Jun 14, 2005 at 12:37:52AM +0800, Autrijus Tang wrote: On Mon, Jun 13, 2005 at 09:21:00AM -0700, Brent 'Dax' Royal-Gordon wrote: On 6/13/05, Chip Salzenberg [EMAIL PROTECTED] wrote: Oh no ... it's even worse than you think. Almost *any* opcode that operates on a PMC can trigger a

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-13 Thread Autrijus Tang
On Mon, Jun 13, 2005 at 06:52:35PM +0200, Chip Salzenberg wrote: Isn't this *exactly* why Perl 6 is requiring you to mark tied variables when they're declared? Yes. Um: my $x is tied; tied $x, SomePackage; unsuspecting_victim(\$x); # ??? Hmm, you can't say is tied;

Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Chip Salzenberg
On Wed, Jun 08, 2005 at 10:26:59PM +0100, The Perl 6 Summarizer wrote: Loop Improvements Oh no! It's the register allocator problems again. One of these days I swear I'm going to swot up on this stuff properly, work out whether it's really the case that full continuations break

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Piers Cawley
Chip Salzenberg [EMAIL PROTECTED] writes: On Wed, Jun 08, 2005 at 10:26:59PM +0100, The Perl 6 Summarizer wrote: Loop Improvements Oh no! It's the register allocator problems again. One of these days I swear I'm going to swot up on this stuff properly, work out whether it's

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Chip Salzenberg
On Sun, Jun 12, 2005 at 03:15:22PM +0100, Piers Cawley wrote: But if you fallow the calling conventions that looks like: sub foo { $a = 1. $c = 10; print $c save_dollar_a_and_only_dollar_a_because_im_going_to_use_it_after_this_function_call foo()

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread MrJoltCola
At 07:15 AM 6/12/2005, Chip Salzenberg wrote: Therefore, register allocation must allow for implicit flow of control from *every* function call to *every* function return ... or, more precisely, to where *every* continuation is taken, including function return continuations. Yes. But for

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread MrJoltCola
At 01:16 PM 6/12/2005, MrJoltCola wrote: At 07:15 AM 6/12/2005, Chip Salzenberg wrote: 1) As far as variable lifetime, the brute-force method would assume lifetime windows (du-chains) from the first definition of each variable to the last function call in a basic block. Horrible for

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Matt Fowles
Chip~ On 6/12/05, Chip Salzenberg [EMAIL PROTECTED] wrote: I'd like like to note for other readers and the p6i archives that Piers has failed to grasp the problem, so the solution seems pointless to him. I'm sorry that's the case, but I've already explained enough. This response worries me

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Piers Cawley
Matt Fowles [EMAIL PROTECTED] writes: Chip~ On 6/12/05, Chip Salzenberg [EMAIL PROTECTED] wrote: I'd like like to note for other readers and the p6i archives that Piers has failed to grasp the problem, so the solution seems pointless to him. I'm sorry that's the case, but I've already

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Curtis Rawls
On 6/12/05, Piers Cawley [EMAIL PROTECTED] wrote: Chip Salzenberg [EMAIL PROTECTED] writes: On Sun, Jun 12, 2005 at 03:15:22PM +0100, Piers Cawley wrote: But if you fallow the calling conventions that looks like: sub foo { $a = 1. $c = 10; print $c

Re: Attack of the fifty foot register allocator vs. the undead continuation monster

2005-06-12 Thread Bill Coffman
On 6/12/05, Curtis Rawls [EMAIL PROTECTED] wrote: [snip] It might also be helpful to take a look at other systems that also implement continuations: -Stackless Python (http://www.stackless.com/spcpaper.htm) -Standard ML (http://www.smlnj.org/doc/features.html) -Formalizing Implementation