[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why would anyone want opacity?
Date: Wed, 01 May 1996 10:07:12 +0000
From: William D Clinger <will@ccs.neu.edu>
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.
Shouldn't compilers rename lambda-lifted procedures? If they were
renamed, then the changed arity would not conflict with the source
code arity. The original procedure names could be wrappers which
called the lambda-lifted versions.
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.
Yes. The case I have in mind is getting the arity information for PSD
(Portable Scheme Debugger). If such information is available, PSD
checks the arity of calls before making calls. PSD currently has a
large table of the arity of Scheme procedures; Implementation specific
procedures are not checked -- it would be useful if it could check
those and compiled procedures as well.