[racket-dev] Removing Xexpr preference from Web Server

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Dec 7 00:26:59 EST 2010

10 minutes ago, Jay McCarthy wrote:
> The only response struct that will be left is what response/port
> was.

Ah, whew.

10 minutes ago, Jay McCarthy wrote:
> On Mon, Dec 6, 2010 at 9:32 PM, Eli Barzilay <eli at barzilay.org> wrote:
>     From a bypasser POV, I see something that involves three
>     contracts combined somehow, where one contract is coming from a
>     parameter that is itself contracted... and my first thought is
>     that I sure hope I won't need to deal with all of that when I
>     want to just use the thing.
> You'll just touch the parameter.

Whew^2.  (I'll still have some uncomfortable-ness wrt "something heavy
happenning to make all of this work", but I'll just tell myself that
the extra cost is negligible compared to the network overhead

>     What's unclear to me is why is all of this necessary in contrast
>     to a (contracted) parameter that holds a coercion function?
> The nice thing about the contract is that it is a centralized place
> for me to use the coercion from. Otherwise, I have to track down all
> the places that get contracted as response/c (some are inputs and
> some are outputs) and run the coercion on them. Then all those
> places will get any/c contracts and some note about being coerced,
> which I find inelegant.

So it sounds like the issue is not abusing the contract system in
itself, but rather abuse the fact that it touches the points where
you'd want to do the conversion, right?  If so, I think that I see
Robby's original point in not calling the new thing a "contract",
since it's something that is wired through the contract system but not

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.