Perl5 - Perl 6 Translations Design Document
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
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
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
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
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.