> On Fri, 9 Mar 2007, Paul Schlie wrote:
> 
>>> bear wrote:
>>> ...
>>> I think we come down to this point, and my final recommendation
>>> on the matter - which is more broadly applicable than just talking
>>> about nontermination itself.  The standard needs to say explicitly
>>> that if an implementation can prove that there is only one possible
>>> return value from an error-free execution of some code, then
>>> it may elide the execution of the code and return that value.
>>> ...
>> 
>> (let wait-for-x () (if (not (eqv? (read-char) #\x)) (wait-for-x)))
>> 
>> for example, can never be justifiably optimized away regardless of
>> it's resulting value (if any).
> 
> Right.  Good catch.  Does
> s/error-free/error-and-side-effect-free/
> fix the problem?

As it's not clear to me that non-error-free code may be optimized away
unless it is provably known to never be reachable, as the error/exception
should be observable if reached; it seems that the only expression whose
code evaluation that may be optimized away are:

- unconditionally-non-observable/reachable

- or known-substituted-value-fully-side-effect-free




_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to