Dan Sugalski wrote:
> For something like:
> 
>    @foo = @bar || @baz;
> 
> I have no problem with the call sequence looking like (pseudo-codish here):
> 
>     set_context(ARRAY, ASSIGN);
>     foo->store(bar->log_or(bar, baz));

But log_or must short circuit -- I think we have to preserve that behavior
for all types or the (hypothetical future) optimizer might break things.
It might translate "if" statements into ||, or vice versa. It might do dead
code elimination. It might do liveness analysis.

IMHO syntax changes (like creating non-short circuiting logicals) need to
be done above the opcode level before the optimizer or compiler sees anything.
That allows the opcodes to have stable well-known semantics.

- Ken

Reply via email to