[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.