<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 9, 2012 at 6:14 AM, Sam Tobin-Hochstadt <span dir="ltr">&lt;<a href="mailto:samth@ccs.neu.edu" target="_blank">samth@ccs.neu.edu</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="HOEnZb"><div class="h5">On Sat, Dec 8, 2012 at 11:54 PM, Jay McCarthy &lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt; wrote:<br>

&gt; On Sat, Dec 8, 2012 at 9:27 PM, Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 30 minutes ago, Jay McCarthy wrote:<br>
&gt;&gt; &gt; On Sat, Dec 8, 2012 at 8:29 PM, Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     &gt; One other thing that I think is important in a migration path is<br>
&gt;&gt; &gt;     &gt; keeping any modification made to the source of the packages that<br>
&gt;&gt; &gt; are<br>
&gt;&gt; &gt;     &gt; already installed.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;     Yeah -- and IIUC, the difference between the two installations is<br>
&gt;&gt; &gt;     where the packages get installed is where the compiled files are, so<br>
&gt;&gt; &gt;     the sources are the same.  At least I *hope* that that&#39;s how it is,<br>
&gt;&gt; &gt;     otherwise it&#39;s back to the whole planet &quot;cache&quot; things, which IMO<br>
&gt;&gt; &gt; was<br>
&gt;&gt; &gt;     a major mistake.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; They are in the same place. However, I thought the whole premise of<br>
&gt;&gt; &gt; this proposed behavior is that the package won&#39;t work in the new<br>
&gt;&gt; &gt; version of Racket, so certainly the package system can&#39;t be<br>
&gt;&gt; &gt; responsible for doing a merge your local changes and whatever the<br>
&gt;&gt; &gt; updated version of the package needs.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m not following that -- the compiled files and the sources are in<br>
&gt;&gt; the same place?  If so then it makes the whole migration thing kind of<br>
&gt;&gt; impossible with local changes, no?  (And I wasn&#39;t thinking about<br>
&gt;&gt; merging, just reusing the same sources.)<br>
&gt;<br>
&gt;<br>
&gt; :) Now I&#39;m not following you.<br>
&gt;<br>
&gt; If you have a package named P that has a module A/B/C.rkt then on your disk<br>
&gt; is in:<br>
&gt;<br>
&gt; ~/.racket/$version/pkgs/P/A/B/C.rkt<br>
&gt;<br>
&gt; with its compiled code in:<br>
&gt;<br>
&gt; ~/.racket/$version/pkgs/P/A/B/compiled/C_rkt.zo<br>
&gt;<br>
&gt; My idea of &quot;raco pkg migrate&quot; is just to get a list of the packages that you<br>
&gt; have installed and re-install them. I think if we assume that Racket<br>
&gt; versions will break package P then those same problems will prevent you from<br>
&gt; keeping local changes; especially if the package system isn&#39;t responsible<br>
&gt; for running merge, which it clearly shouldn&#39;t be. (Now, I don&#39;t think that&#39;s<br>
&gt; a reasonable assumption, i.e. I think version-less should be the default,<br>
&gt; but I&#39;ve clearly been out-voted.)<br>
<br>
</div></div>First, I still agree with you about version-less being the default.<br>
<br>
Second, I think an upgradeable installation, replacing the `bin` and<br>
`collects` directories, so that migration of packages isn&#39;t needed<br>
would work better -- that&#39;s more like how those of us who use git<br>
work, and I think we&#39;re mostly happy with that.<br>
<br>
But even with `migrate`, I think the behavior *needs* to be be &#39;copy<br>
the files, call `setup`&#39;.  Otherwise it won&#39;t work on a system without<br>
the internet, for example. My impression about the reasons for<br>
version-specific packages and &#39;migrate&#39; are that when upgrading, just<br>
keeping the same code will potentially error, and so users shouldn&#39;t<br>
*automatically* keep the same code.  But I thought of `migrate` as<br>
&#39;make it seem like those packages were installed for this new<br>
installation&#39;.</blockquote><div><br></div><div>I don&#39;t see any difference between what you&#39;re proposing and version-less being default where you type &quot;raco setup&quot; (or something does it for you) after install. I think that Matthew believes that this won&#39;t work because a user may need to get new source code for a package when the Racket version changes, but maybe I&#39;ve misunderstood his worry.</div>
<div><br></div><div>Jay</div></div><br clear="all"><div><br></div>-- <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>