"Jacob Carlborg" <[email protected]> wrote in message news:[email protected]... > On 2011-06-19 20:31, Nick Sabalausky wrote: >> "Jacob Carlborg"<[email protected]> wrote in message >> news:[email protected]... >>> On 2011-06-19 02:10, Adam D. Ruppe wrote: >>>> http://arsdnet.net/dcode/build2.d >>>> >>>> * Be fast. It loops dmd like my old build.d. (I can't find a better >>>> way to do it. Even rdmd always runs dmd at least twice - check >>>> its source!) >>> >>> That shouldn't be necessary. >>> >>> First run: >>> >>> * Run the compiler once with the -deps flag to collect the dependencies >>> * Run the compiler again to compile everything >>> * Cache dependencies >>> >>> Later runs: >>> >>> * Run the compiler once with the -deps flag and compile everything >> >> Using the -deps flag to *just* get the deps is very fast. Much faster >> than a >> full compile. > > I understand that that would be faster when the dependencies have changed > but if they haven't then you just have to run the compiler once. Don't > know what would be best to do though. > > BTW, to just get the dependencies, would that be with the -deps and -c > flags? Is the a better way? I mean if you just specify the -deps flag it > will do a full compilation. Seems to me that skipping linking (-c flag) is > a little too much as well for what's actually necessary. Would be good to > have a flag that does only what's absolutely necessary for tracking > dependencies. >
What I meant was that doing a deps-only run is fast enough that doing it every time shouldn't be a problem. However, I am starting to wonder if RDMD's functionality should built into DMD (ideally in a way that LDC/GDC wouldn't have to re-implement it themselves). DDMD does take about a minute or so to compile, and while the deps-only run is the faster part, it's not insignificant. But then, maybe that's just due to some fixable inefficiency in DMD? There's very little templates/ctfe involved.
