On Sat, Mar 11, 2000 at 11:37:38PM -0500, [EMAIL PROTECTED] wrote:
> Ilya Zakharevich <[EMAIL PROTECTED]> writes:
> || John Macdonald writes:
> || > The first rule, though, would have to unstrike the fear from our hearts.
> || > Avoiding auto-vivification should not short-circuit subscript evaluation.
> || 
> || How could it?
> 
> If the compiler is being changed so that in an rvalue context,
> no autovivification occurs (instead of the current situation
> where the terminating auto-vivification does not occur but
> earlier ones do), then an "obvious" optimization would be to
> short-circuit evaluation of subscript index values after the
> initial undefined one was found:
> 
>     @a = ( 1 );
>     $x = $a[2][$i+$j];
> 
> As soon as the index 2 is used, the result of the right hand side
> is known to be undef and it is tempting to skip evaluating $i+$j
> since that result will have no effect.  But if it were $i++
> instead, there is a side-effect and short-circuiting the
> side-effect would be bad.  As Tom worried, it would make it
> difficult to write correct programs or understand programs, since
> you might not know until run-time just where this short-circuit
> would be applied.

Isn't this something that can be addressed in Topaz?

-- 
"May the best description of competition prevail."
          via, but not speaking for Deutsche Bank

Reply via email to