[racket-dev] Blame and re-provided bindings

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Mon Jan 17 10:10:41 EST 2011

On Mon, Jan 17, 2011 at 8:55 AM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
> On Mon, Jan 17, 2011 at 9:41 AM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> So far as I understand it, we have: Stevie opposed, Matthias neutral,
>> Robby and Casey for, with everyone agreeing that we should try to
>> preserve the "Carl constraints" of 'single contract wrapper' and 'same
>> identifier-ness'.
>> Note that in the current world we are *forced* to break the first of
>> the Carl constraints. So I consider this a bonus if we achieve it (and
>> so if we don't in some cases, I don't think we should care).
>> Is that a correct summary of the status?
> Given the performance impacts of rewrapping, it seems like solving
> that problem should be a prerequisite for changing the semantics of
> `provide' to automatically add non-trivial contracts.  I think it
> would be pretty problematic to suddenly add repeated list traversals
> to any code that reprovides identifiers.

At the moment, we're force to rewrap to get the right semantics.

That is, show me a (real) module that re-exports contracts with any/c
and I'll show you a way to blame that module and the solution will
have to be a rewrapping (or a moving of the contracts). And I'm
talking about real code, not made up examples, of course.


Posted on the dev mailing list.