#1174: Disallow .local declarations in long-style call statement
--------------------+-------------------------------------------------------
 Reporter:  kjs     |       Owner:     
     Type:  RFC     |      Status:  new
 Priority:  normal  |   Milestone:     
Component:  none    |     Version:     
 Severity:  medium  |    Keywords:     
     Lang:          |       Patch:     
 Platform:          |  
--------------------+-------------------------------------------------------
 the current implementation for PIR allows one to declare .locals in a
 .begin_call/.end_call sequence, after the .call directive, like so:

 .begin_call
 .arg 1
 .arg 2
 .call $P0
 .local int a, b, c
 .result a
 .result b
 .result c
 .end_call

 (this is short for (a, b, c) = $P0(1, 2) )

 IMHO, the whole sequence of directives from .begin_call to .end_call
 should
 be considered 1 statement; having .local declarations intermixed with
 .result directives is a bit strange, because the .local directive itself
 is
 not part of the sequence of directives to make the call.

 Furthermore, the locals stay in scope after the .end_call directive.

 I propose to disallow this language 'feature', and force the programmer to
 write the above example as follows:

 .local int a, b, c
 .begin_call
 .arg 1
 .arg 2
 .call $P0
 .result a
 .result b
 .result c
 .end_call

 comments welcome.

 kjs

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1174>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to