This commit is contained in:
Jay McCarthy 2010-12-03 23:36:03 -07:00
parent eaf5d02013
commit 102d09a4e5
11 changed files with 21 additions and 6 deletions

View File

@ -1,7 +1,9 @@
In Racket 5.0.99.4 and before, the Web Server supported implicit conversion of X-expressions and lists with the format (cons/c bytes? (listof (or/c string? bytes?))) into response data
structures for output.
In Racket 5.0.99.4 and before, the Web Server supported implicit
conversion of X-expressions and lists with the format (cons/c bytes?
(listof (or/c string? bytes?))) into response data structures for output.
The compatibility binding for normalize-response is a coercion from the OLD responses to the NEW response structure.
The compatibility binding for normalize-response is a coercion from
the OLD responses to the NEW response structure.
Other incompatibilities introduced:
@ -29,7 +31,8 @@ serlet/servlet-structs --- response-generator/c, expiration-handler/c
servlet/setup --- make*servlet
servlet/web --- with-errors-to-browser
The following places are where old responses were accepted and no longer are, but compatible bindings are provided:
The following places are where old responses were accepted and no
longer are, but compatible bindings are provided:
dispatch/serve --- serve/dispatch
dispatchers/dispatch-lift --- make
@ -41,10 +44,15 @@ servlet/web --- send/*
Here are some ideas that could be use to ease backwards compatibility:
* A new servlet version for module servlets that puts an old contract on the return from start.
* A new servlet version for module servlets that puts an old contract
on the return from start.
Footnotes:
1. response/port was present for about a week, so no compatibility is provided.
2. If anyone can suggest a good way to provide a compatibility layer without duplicating code, I'm interested. The problem is that web-server/insta walks the module source to find the "start" function, and we'd presumably want to overwrite that. Plus, web-server/insta will import other bindings that now have imcompatibilities.
2. If anyone can suggest a good way to provide a compatibility layer
without duplicating code, I'm interested. The problem is that
web-server/insta walks the module source to find the "start" function,
and we'd presumably want to overwrite that. Plus, web-server/insta
will import other bindings that now have imcompatibilities.

View File

@ -0,0 +1,7 @@
Each directory contains a mirror of the Web Server top-level as it was before a backwards incompatible change.
For example, to get the version of web-server/servlet/web before backwards incompatible change 0, require web-server/compat/0/servlet/web.
Each directory also contains a README describing the changes and the compatibility interface.
These are not documented in the manual to discourage new programs written to the old interface.