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