September 18, 2013
On 9/18/13 6:54 AM, Wyatt wrote:
> On Wednesday, 18 September 2013 at 11:45:55 UTC, Manu wrote:
> ?
>> The problem I've always had with make-based build systems is rebuild
>> dependencies... how do any of those build systems go performing a
>> minimal rebuild,
>
> As in "only rebuild the files that changed"?  In my experience, that
> comes with using make.  Even really ancient versions.

Plus rdmd --make-depend, yum.

Andrei

September 18, 2013
On 18 September 2013 23:54, Wyatt <wyatt.epp@gmail.com> wrote:

> On Wednesday, 18 September 2013 at 11:45:55 UTC, Manu wrote: ?
>
>> The problem I've always had with make-based build systems is rebuild dependencies... how do any of those build systems go performing a minimal rebuild,
>>
>
> As in "only rebuild the files that changed"?  In my experience, that comes with using make.  Even really ancient versions.


I've had lots of problems in the past where a header included by another
header doesn't prompt the dependent code to be rebuilt, and I ended up in a
conservative state of rebuild-all-ing every time... :/
Maybe I should try working with that environment more...


>  or incremental linking?
>>
>
> This is a bit harder.  If you're using the Gold linker, -Wl,--incremental sounds like your medicine, though I'm not sure if Gold is ready for primetime, yet.


How does that work? Can you re-link while paused in the debugger, and then continue with the new code?


September 18, 2013
On 19 September 2013 01:04, Andrei Alexandrescu < SeeWebsiteForEmail@erdani.org> wrote:

> On 9/18/13 6:54 AM, Wyatt wrote:
>
>> On Wednesday, 18 September 2013 at 11:45:55 UTC, Manu wrote: ?
>>
>>> The problem I've always had with make-based build systems is rebuild dependencies... how do any of those build systems go performing a minimal rebuild,
>>>
>>
>> As in "only rebuild the files that changed"?  In my experience, that comes with using make.  Even really ancient versions.
>>
>
> Plus rdmd --make-depend, yum.


I actually only just realised how cool rdmd was last weekend. Never occurred to me really to use it before. Very handy!

Problem is, 80% of the code I write is C code still... :(


September 18, 2013
On 9/18/13 8:44 AM, Manu wrote:
> On 19 September 2013 01:04, Andrei Alexandrescu
> <SeeWebsiteForEmail@erdani.org <mailto:SeeWebsiteForEmail@erdani.org>>
> wrote:
>
>     On 9/18/13 6:54 AM, Wyatt wrote:
>
>         On Wednesday, 18 September 2013 at 11:45:55 UTC, Manu wrote:
>         ?
>
>             The problem I've always had with make-based build systems is
>             rebuild
>             dependencies... how do any of those build systems go
>             performing a
>             minimal rebuild,
>
>
>         As in "only rebuild the files that changed"?  In my experience, that
>         comes with using make.  Even really ancient versions.
>
>
>     Plus rdmd --make-depend, yum.
>
>
> I actually only just realised how cool rdmd was last weekend.
> Never occurred to me really to use it before. Very handy!

yay 2 dat

> Problem is, 80% of the code I write is C code still... :(

join me


Andrei

September 18, 2013
On 9/18/13, Andrei Alexandrescu <SeeWebsiteForEmail@erdani.org> wrote:
>> Problem is, 80% of the code I write is C code still... :(
>
> join me

I don't suppose GCC and other compilers have some kind of verbose output that exports include declarations? Or maybe just modify an RDMD fork to run the preprocessor over a C/C++ file. What I'm saying is, I think a tool like RDMD could be used for C/C++ (with some trickery).
September 18, 2013
On 19 September 2013 01:46, Andrei Alexandrescu < SeeWebsiteForEmail@erdani.org> wrote:

> On 9/18/13 8:44 AM, Manu wrote:
>
>> On 19 September 2013 01:04, Andrei Alexandrescu
>> <SeeWebsiteForEmail@erdani.org <mailto:SeeWebsiteForEmail@**erdani.org<SeeWebsiteForEmail@erdani.org>
>> >>
>>
>> wrote:
>>
>>     On 9/18/13 6:54 AM, Wyatt wrote:
>>
>>         On Wednesday, 18 September 2013 at 11:45:55 UTC, Manu wrote:
>>         ?
>>
>>             The problem I've always had with make-based build systems is
>>             rebuild
>>             dependencies... how do any of those build systems go
>>             performing a
>>             minimal rebuild,
>>
>>
>>         As in "only rebuild the files that changed"?  In my experience,
>> that
>>         comes with using make.  Even really ancient versions.
>>
>>
>>     Plus rdmd --make-depend, yum.
>>
>>
>> I actually only just realised how cool rdmd was last weekend. Never occurred to me really to use it before. Very handy!
>>
>
> yay 2 dat
>
>
>  Problem is, 80% of the code I write is C code still... :(
>>
>
> join me


You never know... it could happen.


September 18, 2013
On 19 September 2013 02:05, Andrej Mitrovic <andrej.mitrovich@gmail.com>wrote:

> On 9/18/13, Andrei Alexandrescu <SeeWebsiteForEmail@erdani.org> wrote:
> >> Problem is, 80% of the code I write is C code still... :(
> >
> > join me
>
> I don't suppose GCC and other compilers have some kind of verbose output that exports include declarations? Or maybe just modify an RDMD fork to run the preprocessor over a C/C++ file. What I'm saying is, I think a tool like RDMD could be used for C/C++ (with some trickery).
>

rdmd implies rebuild-all every time. It doesn't really scale.
If you have a few hundred thousand LOC, its probably not the man for the
job.


September 18, 2013
On Wednesday, 18 September 2013 at 16:09:46 UTC, Manu wrote:
> rdmd implies rebuild-all every time. It doesn't really scale.

Have you actually tried it? My biggest D program is coming up on 100,000 lines of code, plus phobos, and I still compile it all at once, every time. The compile time is ~15 seconds, slower than I'd like (due to ctfe more than anything else) but not bad.

Compiling all of phobos at once, > 100,000 lines of D, takes about 2 seconds on my computer, excluding linking.
September 18, 2013
On 18 September 2013 17:15, Adam D. Ruppe <destructionator@gmail.com> wrote:
> On Wednesday, 18 September 2013 at 16:09:46 UTC, Manu wrote:
>>
>> rdmd implies rebuild-all every time. It doesn't really scale.
>
>
> Have you actually tried it? My biggest D program is coming up on 100,000 lines of code, plus phobos, and I still compile it all at once, every time. The compile time is ~15 seconds, slower than I'd like (due to ctfe more than anything else) but not bad.
>
> Compiling all of phobos at once, > 100,000 lines of D, takes about 2 seconds on my computer, excluding linking.

Takes about 30-40 seconds with gdc. ;-)

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
September 18, 2013
On Wednesday, 18 September 2013 at 16:22:27 UTC, Iain Buclaw wrote:
> Takes about 30-40 seconds with gdc. ;-)

Yikes.

Though that reminds me of something, I don't use dmd -O very often, which is horribly slow too. I guess in game dev, even when debugging/toying around, you'd probably want to optimize so maybe that is a problem.