Perl5 - Perl 6 Translations Design Document

2006-06-05 Thread Sage La Torra

Hello all,

I'm the student picking up on the translation work lwall started. Since the
perl 5 parser is more or less complete, I've headed straight to the
translation work. I'm going to be taking on the translations a few at a
time, starting with the easiest translations and moving to the more complex.
I've got a design document detailing the first few translations I'll be
handling, and I'd greatly appreciate feedback and advice. Larry already took
a good crack at it, catching a few things I had stupidly thought were
simpler then they are, and now it's ready for general review.

The current version can be found at
http://infohost.nmt.edu/~slatorra/conversionstageone.txt

Any advice/comments/criticism on the document and even ideas on
implementation would be greatly appreciated.

Sage


Re: Perl5 - Perl 6 Translations Design Document

2006-06-05 Thread Ruud H.G. van Tol
Sage La Torra schreef:

 http://infohost.nmt.edu/~slatorra/conversionstageone.txt
 
 Any advice/comments/criticism on the document and even ideas on
 implementation would be greatly appreciated.

I think that 

  split('\s+') - split(/\s+/)

should be 


  split('\s+') - .split(/\s+/)

-- 
Groet, Ruud


Re: Perl5 - Perl 6 Translations Design Document

2006-06-05 Thread Jonathan Worthington

Sage La Torra [EMAIL PROTECTED] wrote:

I've got a design document detailing the first few translations I'll be
handling, and I'd greatly appreciate feedback and advice.

I may be off base here, or in the alternate pointing out a corner case 
that's of little significance, but:


-Compound statements: if($foo eq a or $foo eq b or $foo eq c) {...} - 
if $foo eq a|b|c {...}


Is there an issue if $foo is tied here, in that (unless the a or b condition 
match) $foo will be evaluated three times; for testing against a junction is 
it feasible that the compiler can say aha, I'll only evaluate $foo once and 
test it three times?  Reading $foo may have some real world visible effects 
and the semantics would change.  The P6 spec may nail this down, but I 
haven't time to go look (and I'll surely not have time before I forgot this 
thought completely...)


That's all I can pick out from the quick glance I have time for.  Have fun! 
:-)


Jonathan 



Re: Perl5 - Perl 6 Translations Design Document

2006-06-05 Thread Larry Wall
On Tue, Jun 06, 2006 at 02:06:05AM +0100, Jonathan Worthington wrote:
: Sage La Torra [EMAIL PROTECTED] wrote:
: I've got a design document detailing the first few translations I'll be
: handling, and I'd greatly appreciate feedback and advice.
: 
: I may be off base here, or in the alternate pointing out a corner case 
: that's of little significance, but:
: 
: -Compound statements: if($foo eq a or $foo eq b or $foo eq c) {...} 
: - if $foo eq a|b|c {...}
: 
: Is there an issue if $foo is tied here, in that (unless the a or b 
: condition match) $foo will be evaluated three times; for testing against a 
: junction is it feasible that the compiler can say aha, I'll only evaluate 
: $foo once and test it three times?  Reading $foo may have some real world 
: visible effects and the semantics would change.  The P6 spec may nail this 
: down, but I haven't time to go look (and I'll surely not have time before I 
: forgot this thought completely...)

Yes, but I think the translator can assume that most scalar variables
aren't tied, especially if there isn't a tie anywhere else in the file.
Could have a user option to pessimize that, and it should probably be logged
as one of the places the translator guessed.  But unlimited tying is
one of the problems with Perl 5 that Perl 6 is trying to control, so it's
sort of natural that the translator would run into this here and there.

Another minor difference is that or guarantees an ordered
short-circuit while | may short-circuit in any order the compiler
pleases.  Again, unlikely to be a problem for the variable in the
absence of ties, but if some of the value calculations that can blow
up are guarded by or conditions, then you've got a problem.

We'll definitely need to provide some knobs for the user to turn to
control how much refactoring is attempted.

Larry


Re: Perl5 - Perl 6 Translations Design Document

2006-06-05 Thread Sam Vilain
Sage La Torra wrote:

Hello all,

I'm the student picking up on the translation work lwall started. Since the
perl 5 parser is more or less complete, I've headed straight to the
translation work. I'm going to be taking on the translations a few at a
time, starting with the easiest translations and moving to the more complex.
I've got a design document detailing the first few translations I'll be
handling, and I'd greatly appreciate feedback and advice. Larry already took
a good crack at it, catching a few things I had stupidly thought were
simpler then they are, and now it's ready for general review.

The current version can be found at
http://infohost.nmt.edu/~slatorra/conversionstageone.txt

Any advice/comments/criticism on the document and even ideas on
implementation would be greatly appreciated.
  


Looks like a reasonable starting point.

I assume that the AST will include comment nodes etc?

Sam.