<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 4, 2013 at 12:05 PM, Matthew Flatt <span dir="ltr"><<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">At Thu, 4 Jul 2013 12:52:10 -0400, Sam Tobin-Hochstadt wrote:<br>
> All of these are about packages/the new repository organization.<br>
><br>
> 0. I think we should have a new `#lang info` for info.rkt files --<br>
> `setup/infotab` seems pretty arbitrary. I'll do this if no one<br>
> objects.<br>
<br>
</div>That sounds fine to me.<br>
<div class="im"><br>
> 1. Builds treat too much as core. Specifically, `raco setup`<br>
> pre-builds some things single threaded, but too many:<br>
<br>
</div>Yes. This is probably not too difficult to fix, but I haven't gotten to<br>
<div class="im">it.<br>
<div class="h5"><a href="http://lists.racket-lang.org/dev" target="_blank"></a><br>
</div></div></blockquote><div><br></div><div style>I had a quick look at this: the relevant code is these two lines (885 and 886 in setup-unit.rkt):</div><div style><br></div><div> (for/fold ([gcs 0]) ([cc (in-list (collection->ccs (list (string->path "racket"))))])</div>
<div> (compile-cc cc 0)))</div><div style><br></div><div style> I'm not sure of the right fix tho. I think we can either </div><div style><br></div><div style>a) do nothing (since it causes no harm and you won't see this problem unless you are in a slightly strange situation of running the top-level makefile but already having the pkg links setup (I think))</div>
<div style><br></div><div style>b) delete these two lines (since I think they are there only to make the parallel performance better, but that can be made better by just making 'racket' collections go first in parallel mode (I think))</div>
<div style><br></div><div style>c) try to filter our non-collection-path 'racket's, something like this:</div><div style><br></div><div style><div> (define (path-is-inside? candidate-parent candidate-child)</div>
<div> (not (equal? (find-relative-path candidate-parent candidate-child)</div><div> candidate-child)))</div><div> (for/fold ([gcs 0]) ([cc (in-list (collection->ccs (list (string->path "racket"))))])</div>
<div> (when (for/or ([cp (current-library-collections-paths)]) (path-inside? cp (cc-name)))</div><div> (compile-cc cc 0)))</div><div><br></div><div style>I guess b) is best, but I thought I'd check.</div>
<div style><br></div><div style>Robby</div></div></div></div></div>