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

Re: CORRECTION: Re: A (Low-Level) Opaque Object Proposal for R5RS

> ziggy:
> 1. Dybvig's claim that this is necessarily too expensive an implementation
>    technique for optimizing Scheme compilers to handle is unfounded.

But I make no such claim!  I apologize if I somehow implied such a
thing.  I agree that we can do everything that you say we can do, and
that it's not too expensive to do so.  My concerns come beyond this.
For our program analyses, we want to be able to find all places where a
given field accessor or mutator is used.  We can't do so if equivalent
accessors and mutators can be created on the fly from instances of a
record type, as in the original record proposal, except in the limited
case where we never lose track of any instance of the record type.
This is true as well with records implemented as you described, as long
as passkeys are matched by anything as general as, say, string=?.

> ziggy, in a later note:
> I was looking at the textual
> appearance of the LAMBDA expressions and arguing about how they could be
> flattened to avoid the STRING=? tests on passkeys (which was the complaint
> that Kent Dybvig raised that I was trying to defend against). 

I was not claiming that it's difficult to flatten the string=? tests in
the code you gave, but that it's impossible to prove (except in trivial
programs) that no other strings created by the program are string=? to
the passkey.  I would need some variation of the latter to prove that
field accessors cannot be created on the fly from records that I lose
track of.