September 27, 2013 Re: Incremental builds? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | On Thursday, 26 September 2013 at 23:47:34 UTC, Jonathan M Davis wrote:
> On Thursday, September 26, 2013 23:29:56 John Colvin wrote:
>> On Thursday, 26 September 2013 at 14:02:53 UTC, ProgrammingGhost
>>
>> wrote:
>> > I assume D can do incremental builds? How fast is the compile
>> > time compared to C++? Is it slower? C++ only has to read its
>> > header files and D would need to look at the entire project
>> > source code (or obj files?).
>>
>> dmd compile times are very fast compared to c++ compilers.
>
> Fast enough that you'd have to have a very large project for incremental
> builds to gain you anything. Maybe you could gain time if the incremental
> builds were done in parallel, but even then, the build time is going to be
> dwarfed by the link time in a lot of programs. Most projects aren't going to
> be big enough to really gain much from incremental builds. I'd only worry
> about that if I were doing a large application and building it was
> demonstratively slow.
>
> - Jonathan M Davis
Unless you are doing optimised builds, which are still painfully slow.
| |||
September 27, 2013 Re: Incremental builds? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On Friday, 27 September 2013 at 06:40:22 UTC, Jacob Carlborg wrote:
> I don't know how others think about incremental compilation. But I'm don't think about compiling each file separately. I'm thinking about compiling only what's changed and compile all those files in one go.
>
> That would mean the first time you compile a project it would compile all files at once, just as most people do today. Then when some files are changed it will only compile those, in one go.
>
> This should at least in theory speed up the compilation. But perhaps most projects are too small to actually make a difference in practice.
With recent change of verbose dmd output for template dependencies it should kind of work (worked for me in simple tests). Problem is that it does not work when all changed dependencies are compiled at once, only one by one - thus it is not worth it until really big projects.
| |||
September 27, 2013 Re: Incremental builds? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On Friday, 27 September 2013 at 06:40:22 UTC, Jacob Carlborg wrote:
> On 2013-09-27 01:47, Jonathan M Davis wrote:
>
>> Fast enough that you'd have to have a very large project for incremental
>> builds to gain you anything. Maybe you could gain time if the incremental
>> builds were done in parallel, but even then, the build time is going to be
>> dwarfed by the link time in a lot of programs. Most projects aren't going to
>> be big enough to really gain much from incremental builds. I'd only worry
>> about that if I were doing a large application and building it was
>> demonstratively slow.
>
> I don't know how others think about incremental compilation. But I'm don't think about compiling each file separately. I'm thinking about compiling only what's changed and compile all those files in one go.
>
> That would mean the first time you compile a project it would compile all files at once, just as most people do today. Then when some files are changed it will only compile those, in one go.
>
> This should at least in theory speed up the compilation. But perhaps most projects are too small to actually make a difference in practice.
From my enterprise seat, I tend to favor compilation against binary modules.
It is not as if you have always source code available and D has modules, so I expect eventually to make use of binary modules like in most languages that have module support.
--
Paulo
| |||
September 27, 2013 Re: Incremental builds? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Peter Alexander | On Friday, 27 September 2013 at 07:12:50 UTC, Peter Alexander wrote:
> On Thursday, 26 September 2013 at 23:47:34 UTC, Jonathan M Davis wrote:
>> On Thursday, September 26, 2013 23:29:56 John Colvin wrote:
>>> On Thursday, 26 September 2013 at 14:02:53 UTC, ProgrammingGhost
>>>
>>> wrote:
>>> > I assume D can do incremental builds? How fast is the compile
>>> > time compared to C++? Is it slower? C++ only has to read its
>>> > header files and D would need to look at the entire project
>>> > source code (or obj files?).
>>>
>>> dmd compile times are very fast compared to c++ compilers.
>>
>> Fast enough that you'd have to have a very large project for incremental
>> builds to gain you anything. Maybe you could gain time if the incremental
>> builds were done in parallel, but even then, the build time is going to be
>> dwarfed by the link time in a lot of programs. Most projects aren't going to
>> be big enough to really gain much from incremental builds. I'd only worry
>> about that if I were doing a large application and building it was
>> demonstratively slow.
>>
>> - Jonathan M Davis
>
> Unless you are doing optimised builds, which are still painfully slow.
In my experience, they are still faster than I was used to in c++
| |||
September 27, 2013 Re: Incremental builds? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to John Colvin | On Friday, 27 September 2013 at 10:01:13 UTC, John Colvin wrote:
> On Friday, 27 September 2013 at 07:12:50 UTC, Peter Alexander wrote:
>> On Thursday, 26 September 2013 at 23:47:34 UTC, Jonathan M Davis wrote:
>>> On Thursday, September 26, 2013 23:29:56 John Colvin wrote:
>>>> On Thursday, 26 September 2013 at 14:02:53 UTC, ProgrammingGhost
>>>>
>>>> wrote:
>>>> > I assume D can do incremental builds? How fast is the compile
>>>> > time compared to C++? Is it slower? C++ only has to read its
>>>> > header files and D would need to look at the entire project
>>>> > source code (or obj files?).
>>>>
>>>> dmd compile times are very fast compared to c++ compilers.
>>>
>>> Fast enough that you'd have to have a very large project for incremental
>>> builds to gain you anything. Maybe you could gain time if the incremental
>>> builds were done in parallel, but even then, the build time is going to be
>>> dwarfed by the link time in a lot of programs. Most projects aren't going to
>>> be big enough to really gain much from incremental builds. I'd only worry
>>> about that if I were doing a large application and building it was
>>> demonstratively slow.
>>>
>>> - Jonathan M Davis
>>
>> Unless you are doing optimised builds, which are still painfully slow.
>
> In my experience, they are still faster than I was used to in c++
Any language with proper modules should be faster than C and C++.
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply