[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why would anyone want opacity?

Aubrey Jaffer wrote:
> If we make opacity a first-class datatype, then it can be applied when
> desired, rather than thrust upon every closure, even when unwanted.

If opacity can be conferred on a procedure only by explicit
use of some source-language construct, then roughly half of
all compiler optimizations become illegal.

Rozas, speaking for Sussman, has claimed that what is needed
is not transparency of the procedure according to any precise
and portable model, but rather transparency of the procedure
as it happens to be implemented.  I have no problem with that,
because the exposure of random implementation-dependent
information is not an obstacle to optimization.

If you are opposed to optimizations such as lambda lifting
that may, for example, change the arity of a procedure in ways
that would not be perceptible in the absence of non-R4RS
abstraction-breaking facilities, then you should say so.

Otherwise I will assume that you are not opposed to legitimate
optimizations, and that you are content to obtain
implementation-dependent information when you break the
abstraction barrier of a procedure.