June 30, 2015
On Tuesday, 30 June 2015 at 14:28:12 UTC, anonymous wrote:
> On Tuesday, 30 June 2015 at 14:18:20 UTC, rsw0x wrote:
>> you're skipping the part where they can be ran in parallel, dmd sees no benefit from this.
>
> Could you elaborate? Surely, one can run multiple instances of dmd in parallel, no?
>
> In my (possibly flawed) understanding, to get the quickest compile one would then:
> * Determine the optimal number of parallel processes.
> * Split the source files into that many chunks.
> * Run parallel instances of the compiler, one on each of those chunks.

I would try to do that but the reason I am going to write a build system is that my project (which contains too many imported HTML templates) requires too much memory to compile. So, I need also to think how not to make chunks require too much memory.
June 30, 2015
On Tuesday, 30 June 2015 at 13:21:18 UTC, anonymous wrote:
> On Tuesday, 30 June 2015 at 04:02:00 UTC, Maaaks wrote:
>> I want to make a simple build utility that will rebuild only those files which changed since last build and those files that depend on them.
>>
>> Which is the easiest and yet reliable way to parse a D source and find all imports in it (and file import()s as well)?
>
> Here's a pull request to make rdmd do that:
> https://github.com/D-Programming-Language/tools/pull/170
>
> It uses regex over `dmd -deps`.
>
> Be aware of the challenges:
> Compiling source files separately is slower than passing them all at once to the compiler. This is why for rdmd the idea is run dmd once on all source files that need updating. Alas, dmd behaves a little quirky then with regards to where template instantiations go [1]. This is currently blocking the PR.
>
> [1] https://github.com/D-Programming-Language/tools/pull/170#issuecomment-112526734

rdmd doesn't run on files that need updating; it always compiles everything, it has no concept of needs updating. What it _does_ do is figure out what "everything" means.

Atila
June 30, 2015
On Tuesday, 30 June 2015 at 14:49:11 UTC, Atila Neves wrote:
> On Tuesday, 30 June 2015 at 13:21:18 UTC, anonymous wrote:
[...]
>> Here's a pull request to make rdmd do that:
>> https://github.com/D-Programming-Language/tools/pull/170
[...]
> rdmd doesn't run on files that need updating; it always compiles everything, it has no concept of needs updating. What it _does_ do is figure out what "everything" means.

The PR would change that.
June 30, 2015
On Tuesday, 30 June 2015 at 14:31:26 UTC, Maaaks wrote:
> On Tuesday, 30 June 2015 at 14:28:12 UTC, anonymous wrote:
>> On Tuesday, 30 June 2015 at 14:18:20 UTC, rsw0x wrote:
>>> [...]
>>
>> Could you elaborate? Surely, one can run multiple instances of dmd in parallel, no?
>>
>> In my (possibly flawed) understanding, to get the quickest compile one would then:
>> * Determine the optimal number of parallel processes.
>> * Split the source files into that many chunks.
>> * Run parallel instances of the compiler, one on each of those chunks.
>
> I would try to do that but the reason I am going to write a build system is that my project (which contains too many imported HTML templates) requires too much memory to compile. So, I need also to think how not to make chunks require too much memory.

Build system you say?

https://github.com/atilaneves/reggae

Atila
1 2
Next ›   Last »