Compilation strategy
RenatoUtsch
renatoutsch at gmail.com
Sat Dec 15 10:52:15 PST 2012
On Saturday, 15 December 2012 at 18:44:35 UTC, H. S. Teoh wrote:
> On Sat, Dec 15, 2012 at 07:30:52PM +0100, RenatoUtsch wrote:
>> On Saturday, 15 December 2012 at 18:00:58 UTC, H. S. Teoh
>> wrote:
> [...]
>> >So perhaps one possible middle ground would be to link
>> >packages
>> >separately, but compile all the sources within a single
>> >package at
>> >once. Presumably, if the project is properly organized,
>> >recompiling
>> >a single package won't take too long, and has the perk of
>> >optimizing
>> >for size within packages. This will probably also map to SCons
>> >easily, since SCons builds per-directory.
> [...]
>> Well, the idea is good. Small projects usually don't have much
>> packages, so there will be just a few compiler calls. And
>> compiling
>> files concurrently will only have a meaningful efect if the
>> project
>> is large, and a large project will have a lot of packages.
>
> Yes, that's the idea behind it.
>
>
>> Maybe adding an option to choose between compiling all sources
>> at
>> once, per package, or per source. For example, in development
>> and
>> debug builds the compilation is per file or package, but in
>> release
>> builds all sources are compiled at once, or various packages
>> at once.
>>
>> This way release builds will take advantage of this behavior
>> that
>> the frontend has, but developers won't have productivity
>> issues.
>> And, of couse, the behaviour will not be fixed, the devs that
>> are
>> using the build system will choose that.
>
> I forgot to mention also, that passing too many source files to
> the
> compiler may sometimes cause memory consumption issues, as the
> compiler
> has to hold everything in memory. This may not be practical for
> very
> large project, where you can't fit everything into RAM.
>
>
> T
Well, so compiling by packages seem to be the best approach. When
I return home I will do some tests to see what I can do.
-- Renato
More information about the Digitalmars-d
mailing list