Here is my current plan:<div><br></div><div>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</div>
<div><br></div><div>In that directory is the attached README.</div><div><br></div><div>What do you think?</div><div><br></div><div>Jay<br><br><div class="gmail_quote">On Tue, Nov 30, 2010 at 11:14 AM, Eli Barzilay <span dir="ltr">&lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">Three hours ago, Robby Findler wrote:<br>
&gt; On Tue, Nov 30, 2010 at 8:04 AM, Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt; wrote:<br>
&gt; &gt; Two hours ago, Robby Findler wrote:<br>
&gt; &gt;&gt; On Tue, Nov 30, 2010 at 5:18 AM, Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt; wrote:<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; The problem here is that there is no name to change -- it&#39;s the<br>
&gt; &gt;&gt; &gt; implicit &quot;coercion&quot; of xexpr values to a response.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Why can&#39;t there be two libraries, one that coerces and one that<br>
&gt; &gt;&gt; doesn&#39;t? More generally, one that acts the same as the current<br>
&gt; &gt;&gt; library and one that is intended for new code?<br>
&gt; &gt;<br>
&gt; &gt; That would require a new `web-server&#39; module, as well as a whole<br>
&gt; &gt; bunch of other modules.<br>
&gt;<br>
&gt; I know.<br>
&gt;<br>
&gt; &gt; Even worse, writing a module using one web server library, and<br>
&gt; &gt; using it in the other won&#39;t work, since it&#39;s a dynamic property of<br>
&gt; &gt; how the result is getting used.<br>
&gt;<br>
&gt; (I think it may be possible to be creative to avoid these things being<br>
&gt; errors when you mix; but maybe it is better to have an error when you<br>
&gt; mix; I don&#39;t have a strong opinion here but I&#39;d try to make mixing<br>
&gt; work so people can migrate piecemeal.)<br>
<br>
</div>[I don&#39;t see a way to do that.]<br>
<div class="im"><br>
<br>
&gt; As I said before, we have done this with the class system many<br>
&gt; times.  We have done this with other parts of the system as well<br>
&gt; (not as many times tho). It is not a simple thing.<br>
&gt;<br>
&gt; That said, massive backwards incompatibility as Jay is proposing<br>
&gt; seems wrong.<br>
<br>
</div>I&#39;ll leave this Jay, but I think that there are some important points:<br>
<br>
* Doing the same for the web server will be much more problematic<br>
  since there are many interface modules that do the implicit<br>
  coercion.  It looks to me like the only way to do that will be a new<br>
  toplevel `web-server&#39; collection.<br>
<br>
* Even in the case of the class system, one of the transitions was<br>
  going the other way -- renaming the old one (still available as<br>
  `mzlib/class100&#39;) instead of having the new one under a new name.<br>
<br>
* The fact that this is much more problematic in the web server&#39;s<br>
  case, combined with the fact that the change itself is much more<br>
  minor (compared to the class system changes), is -- IMO -- a strong<br>
  indication that a backward-compatible change via a parameter is the<br>
  right way to go (defaulting to the same as it does now).<br>
<div><div></div><div class="h5"><br>
--<br>
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:<br>
                    <a href="http://barzilay.org/" target="_blank">http://barzilay.org/</a>                   Maze is Life!<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu" target="_blank">jay@cs.byu.edu</a>&gt;<br>Assistant Professor / Brigham Young University<br><a href="http://faculty.cs.byu.edu/~jay" target="_blank">http://faculty.cs.byu.edu/~jay</a><br>
<br>&quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>
</div>