<div dir="ltr">collection-path is legacy and should generally be removed when you find it (I think I fixed two uses of it Saturday in fact).<div><br></div><div>But hopefully you could use collection-file-path in most cases instead of a collections-path function.</div>
<div><br></div><div>Robby</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Nov 4, 2013 at 11:45 AM, Vincent St-Amour <span dir="ltr"><<a href="mailto:stamourv@ccs.neu.edu" target="_blank">stamourv@ccs.neu.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
While looking at Asumu's `raco-find-collection' package, Asumu and I<br>
noticed something about the `collection-path' function that made us<br>
uncomfortable.<br>
<br>
`collection-path' returns *a* path where the given collection is<br>
located. With the package system, there can now be *multiple* such<br>
paths. `collection-path' returns the first one (in alphabetical order of<br>
package name, at first glance).<br>
<br>
This means that installing a package that extends collection `foo' can<br>
break code that uses `(collection-path "foo")'.<br>
<br>
For an example that's currently broken, what used to be an arrow in the<br>
macro stepper window is now a box with an X in it. The macro stepper<br>
looks for that arrow in the `icons' collection, which is now split<br>
between two packages. `collection-path' returns the path from the<br>
package that doesn't contain that arrow.<br>
<br>
<br>
A solution would be to provide a `collection-paths' function, that<br>
returns *all* the relevant paths, and add a big warning to the<br>
documentation of `collection-path'. A `collection-paths' function<br>
already exists in<br>
`pkgs/compiler-pkgs/compiler-lib/compiler/commands/test.rkt'.<br>
<br>
<br>
Vincent<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>