My two cents

drug drug2004 at bk.ru
Mon Oct 23 11:42:58 UTC 2017


23.10.2017 14:02, Martin Nowak пишет:
> On Monday, 23 October 2017 at 06:05:50 UTC, drug wrote:
>> 20.10.2017 17:46, Martin Nowak пишет:
>> My 2 cent:
>> 1. dub needs ability to work with other repository than standard ones.
> 
> You mount or clone whatever you want and use `dub add-local`.
This is workaround. Now I have bash script that does all I need, but it 
would be better if I should only specify my inhouse repos.

> 
>> 2. multicore building - entire project in D builds faster than C++ one 
>> (I have two implementation of the same), but in case of incremental 
>> building C++ faster.
> 
> I always assumed this to be the main point why people are asking for a 
> better build tool, but it's not sth. dub can do atm. It's a limitation 
> of the compiler that requires various changes and a slight redesign of 
> our build model.
> 
> In C++ incremental rebuilds are simple as you compile each file 
> individually anyhow, but that's the crux for why C++ compilations are so 
> slow in the first place.
> Compiling multiple modules at once provides lots of speedups as you do 
> not have to reparse and analyze common/mutual imports, but on the 
> downside it cannot be parallelized that well.
I just build my project and it's silly to look at `top` output where 
seven cores idles while build takes tens of seconds. While building C++ 
project loads cores fully. I have no clear and robust opinion on this, 
considering you wrote above, but nevertheless.
> 
> Dub could parallelize building individual packages/sub-packages (target 
> + dependencies) right now though.
I should try it.
> 
>> 3. dub single build mode does not caches builds so it builds entire 
>> project every time.
> 
> Could you please file an issue with a test case for that.
> Why do you use single build mode in the first place?
I have several utilities each of them is about 50 lines (including 
comment to enable single build mode) and I think this is case for single 
mode exactly. They are wrappers of rather fat library and building them 
takes about a minute what is too long for D.

I do not state that it prevents D from enterprises etc, not at all. I'm 
sure that restructuring my project can improve building time too, for 
example. Just directions where we can do more to improve tooling.



More information about the Digitalmars-d mailing list