http://d.puremagic.com/issues/show_bug.cgi?id=9673
--- Comment #8 from Andrei Alexandrescu <[email protected]> 2013-03-11 10:19:42 PDT --- (In reply to comment #2) > (In reply to comment #0) > > 4. Invoke dmd once per .d file, producing object files (only for object > > files > > that are out of date). Invocations should be runnable in parallel, but this > > may > > be left as a future enhancement. > > > It should cluster the source files by common dependencies so to avoid the > parsing and semantic analysis overhead of the blunt parallel approach. I think > a simple k-means clustering would suffice for this, k would be the number of > parallel jobs. Great idea, although we'd need to amend things. First, the graph is directed (not sure whether k-means clustering is directly applicable to directed graphs, a cursory search suggests it doesn't). Second, for each node we don't have the edges, but instead all paths (that's what dmd -v generates). So we can take advantage of that information. A simple thought is to cluster based on the maximum symmetric difference between module dependency sets, i.e. separately compile modules that have the most mutually disjoint dependency sets. Anyhow I wouldn't want to get too bogged down into details at this point - first we need to get the appropriate infrastructure off the ground. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
