<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 25, 2013 at 3:49 PM, Matthew Flatt <span dir="ltr">&lt;<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Caveat 1: In case you don&#39;t use the top-level default `make&#39; target<br>
when building from the repo, this change means that you need to run<br>
`make pkg-links&#39; when you next update.<br>
<br></blockquote><div><br></div><div style>You may also find old, wrong version .zo files hanging around confusing things after this update (I did, anyways). Probably easiest to just delete them all; since the version number changed they all have to be rebuilt regardless.</div>
<div style><br></div><div style>Robby</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Caveat 2: Feel free to skip the rest. This message is on the far end of<br>
what most of us care about in the package system. I think the changes<br>
are unavoidable, though, and I think the mostly get us to a complete<br>
and consistent design point for multi-user installations (likely<br>
common) and &quot;/usr&quot; versus &quot;/usr/lib&quot; conventions (not so much, but I<br>
think there is demand for that).<br>
<br>
<br>
When single-collection packages become the default, I don&#39;t see much<br>
use for `raco link&#39;, and instead it will be better for most of us to<br>
use `raco pkg install --link&#39;. But I see `raco link&#39; sticking around as<br>
an layer that some may want to use or look inside.<br>
<br>
To bring `raco link&#39; and `raco pkg&#39; more in line with each other, and<br>
to generally clean up a mistake (IMO) in `raco link&#39;, I&#39;ve changed the<br>
behavior of `raco link -u&#39; to be like `raco pkg ... -u&#39;: it installs a<br>
link in a user- and version-specific way, instead of in a user-specific<br>
but all-version way.<br>
<br>
Naturally, the `raco link&#39; command now supports `-s&#39;/`--shared&#39;, just<br>
like `raco pkg&#39;.<br>
<br>
Links installed with `-u&#39; now go into a &quot;links.rktd&quot; file that&#39;s in the<br>
version-labeled directory in the user&#39;s add-on directory, instead of in<br>
&quot;links.rktd&quot; (with a version regexp) outside the version-labeled<br>
directory.<br>
<br>
<br>
The &quot;config.rktd&quot; file in &quot;etc&quot; can now specify a location for the<br>
installation-wide &quot;links.rktd&quot; file and &quot;pkgs&quot; installed-package<br>
directory (with its &quot;pkgs.rktd&quot;). Furthermore, &quot;config.rktd&quot; can<br>
provide a list of additional files/directories to search. This allows<br>
the main &quot;links.rktd&quot; and &quot;pkgs&quot; to act like &quot;/usr/lib&quot; things, while<br>
additional directories can act like &quot;/lib&quot; things.<br>
<br>
The `-C&#39;/`--links&#39; command-line flag to `racket&#39; has been removed.<br>
<br>
<br>
The default location for the installation-wide &quot;links.rtkd&quot; and<br>
&quot;pkgs.rktd&quot; files have moved from &quot;etc&quot; back into &quot;lib&quot;. Either<br>
location seems sensible to me, but with the generalization to support a<br>
installation-wide search list, it works better to keep &quot;pkgs.rktd&quot;<br>
together with the installed package implementations, and it seems best<br>
to keep &quot;pkgs&quot; and &quot;links.rktd&quot; together.<br>
<br>
<br>
Note that the search path for collections goes through user-specific,<br>
version-specific links first (i.e., &quot;user&quot; scope), then user-specific,<br>
all-version links (i.e.,&quot;shared&quot; scope), and then installation-wide<br>
links (i.e., &quot;installation&quot; scope). The package system should similarly<br>
work sensibly if you, say, install a package at &quot;user&quot; scope that<br>
shadows collections for a package (possibility using the same package<br>
name) at &quot;installation&quot; scope. For now, you have to use `raco pkg<br>
install --force&#39; to make that happen; longer term, I think we want an<br>
option that is like `--force&#39; but limited to sensible shadowings.<br>
<br>
_________________________<br>
  Racket Developers list:<br>
  <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
</blockquote></div><br></div></div>