[racket-dev] Removing Xexpr preference from Web Server

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Sat Dec 4 08:25:12 EST 2010

On Sat, Dec 4, 2010 at 2:19 AM, YC <yinso.chen at gmail.com> wrote:

> After reading through the README, my vote is for a new "web-server2"
> collection and keep web-server frozen as is except to fix bugs.
> The compatibility issues simply appear to be much more than an explicit
> make-xexpr-response call and will most likely cause breakage.  This is the
> type of change that two parallel versions should be kept until it's clear
> everyone has a chance to migrate (and that can take a long while).

I think you misunderstand. Every place where there is incompatibility listed
in the README is solved by putting a call to response/xexpr rather than
returning an Xexpr. The file just lays out all the places where you may need
to put those calls. Almost all of those places are internal plumbing places
that I don't observe people using in practice [especially the ones which I
haven't provided compatible bindings for [except for web-server/insta]]

> I like the migration path from mzscheme to scheme to racket that all are
> still available and maintained.  Except for the mutable pair issue that
> broke a few libraries, it was quite well managed.

I'm not convinced that a parallel version will be any different than a user
staying with an old version or taking the directory from the old version and
putting it in the new version.

I think the difference is that those are languages where you want
interoperability between ported programs and yet-to-be ported. In contrast,
even though you can split a Web app into many servlets and many modules per
servlet, I don't observe people using multiple servlets [which would be able
to be ported separately]; and if you tried to just port some modules of a
many-module servlet, it simply wouldn't work with parallel version because
there would be, for example, two incompatible request data structures
because they are generative.


> Cheers,
> yc
> On Fri, Dec 3, 2010 at 10:54 PM, Jay McCarthy <jay.mccarthy at gmail.com>wrote:
>> Here is my current plan:
>> Add web-server/compat/0 directory with, e.g.,
>> web-server/compat/0/http/response-structs to hold compatibility bindings to
>> bridge the old http/response-structs and the new http/response-structs
>> In that directory is the attached README.
>> What do you think?
>> Jay

Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University

"The glory of God is Intelligence" - D&C 93
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20101204/28083047/attachment.html>

Posted on the dev mailing list.