Common makefile (gasp) stuff
Rikki Cattermole via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jan 14 15:14:44 PST 2015
On Wednesday, 14 January 2015 at 20:07:12 UTC, Andrei
Alexandrescu wrote:
> On 1/14/15 8:50 AM, Mathias LANG wrote:
>> IMO helpers (such as git helpers) are not part of the build
>> process, so
>> they should not be part of the build files. Few people care
>> about make
>> rebase. I'm not saying we should delete them (they obviously
>> are useful
>> to you), but moving them to tools might be a good start.
>
> This is about scaling up and passing responsibility around. I
> could write a script and then tell whoever maintains dlang.org
> "first run that script then run make" etc.
>
> With make it turns out it's dead simple to get parallel rebase
> going:
>
> REBASE = git pull upstream master --rebase
>
> rebase: rebase-dlang rebase-dmd rebase-druntime rebase-phobos
> rebase-dlang: ; $(REBASE)
> rebase-dmd: ; cd $(DMD_DIR) && $(REBASE)
> rebase-druntime: ; cd $(DRUNTIME_DIR) && $(REBASE)
> rebase-phobos: ; cd $(PHOBOS_DIR) && $(REBASE)
>
> So I'm done in 6 lines and it's parallel automatically, no code
> needed. With zsh I'd probably go (untested)...
>
> ===========================
> #/bin/zsh
> set -e
>
> function rebase() {
> ( cd $1 && git pull upstream master --rebase )
> }
>
> rebase . &&
> rebase ../dmd &&
> rebase ../druntime &&
> rebase ../phobos &&
>
> wait
> ===========================
>
> But wait, there's less. The script:
>
> * does not return nonzero if either subtask fails - and doing
> so needs e.g. temporary files and takes extra code. So I need
> to carefully look at the textual garbled output to make sure it
> all works.
>
> * does not accept setting variables DMD_DIR etc. It can be made
> to, but that's yet more code.
>
> * cannot run serially if I want to debug something, only
> parallel. It can be made do, but that's again more code!
>
> So we're looking at an ideological response "don't use make,
> make sucks" to a pragmatic matter - I want to get work done,
> and we shouldn't use inferior/more intensive technical
> solutions on an ideological basis alone. I agree make sucks!
> But that doesn't suddenly eliminate my common sense.
>
>> For druntime / phobos build... That's really a shame we don't
>> have a
>> standard D tool to build D code, cross platform.
>> If we had, not only would we promote an even saner image of
>> our tooling
>> ('hey look, dogfooding'), we won't have to solve the same
>> problems over
>> and over again, so both druntime / phobos and the tool would
>> benefit
>> from this, but ofc it will require some initial work.
>> If someone wants to get this project started, I have a
>> suggestion for
>> the name: dub
>>
>> Okay, sarcasms appart, would that be a possibility for us to
>> switch to
>> dub in the long run ? I'm not sure dub is ready for that ATM,
>> but I'm
>> confident it could be made ready without much work.
>
> I'd be glad to switch to dub but I confess at this time I can't
> invest the time. I'm already spread too thin.
>
>
> Andrei
So a dub file for phobos is needed? And maybe druntime too? I'll
see what I can do.
More information about the Digitalmars-d
mailing list