June 19, 2017
On Sun, 2017-06-18 at 02:31 -0700, Walter Bright via Digitalmars-d wrote:
> […]
> 
> The biggest issue with understanding the makefiles is a near total
> lack of any
> helpful comments. I stepped up a bit with this:

Wrong diagnosis. The biggest issue with the makefiles is that they are hand constructed. There is also the problem that they are makefiles.

CMake → Ninja
Meson → Ninja
Raggae → Ninja

is the 2010s state of the art for build.

> […]
> 
> We must try and do better with this. We can start by refusing to
> accept makefile
> PRs that add new constructions without documentation, just like we
> don't accept
> new functions without Ddoc comments.

Wrong solution to the problem.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

June 19, 2017
On Friday, 16 June 2017 at 06:30:01 UTC, Russel Winder wrote:
> A direct question to Walter and Andrei really.
>
> If someone, let us say Russel Winder, create a CMake/Ninja and/or Meson/Ninja build for DMD, is there any chance of it being allowed to replace the Make system?
>
> If the answer is no, then Russel will obviously not waste his time doing something that will not be accepted.

Why?

Why replacing a rock-stable Make with build-system-X that most likely adds another dependency. I am with Walter on this one. - We should continue using Make unless there is a real need for something else. DMD's makefiles are really simple!

June 19, 2017
On 2017-06-19 11:19, Dejan Lekic wrote:

> Why replacing a rock-stable Make with build-system-X that most likely adds another dependency.

Where did you get the rock-stable part from?

http://forum.dlang.org/post/euslavyxzcaclrpiaumd@forum.dlang.org

-- 
/Jacob Carlborg
June 19, 2017
On Monday, 19 June 2017 at 08:06:54 UTC, Russel Winder wrote:
> On Sat, 2017-06-17 at 12:20 -0700, Walter Bright via Digitalmars-d wrote:
>> 
> […]
>> It's highly unlikely it would be accepted:
>
> So it is highly unlikely I am going to offer to do any work on it then.

If you can present a replacement build infrastructure for D which satisfies our needs and shows dramatic, measurable improvements, I (and other contributors, I don't doubt) will help push it through.

I'm writing this post just as I'm running a bisection to find out what broke DMD's win64.mak makefile again.

June 19, 2017
On Sunday, 18 June 2017 at 01:20:21 UTC, Vladimir Panteleev wrote:
> On Saturday, 17 June 2017 at 21:49:29 UTC, Walter Bright wrote:
>> [...]
>
> Martin and Sebastian can correct me if I'm wrong, but unless I am, Martin, Sebastian, and myself spend a scary amount of time wrestling with makefiles. We have had bad production issues due to makefiles, such as missing dependencies causing inconsistent or broken builds (notably observable when something works only without -j), typos or undefined variables resulting in bugs being silently ignored (hey, I filed a PR to fix one of those not half an hour ago - dmd#6916), CI checks being accidentally completely switched off (which happened more than once!), the win32.mak / win64.mak / posix.mak mess, super-ugly hacks due to limitations of Make that slow down the build unconditionally and/or make everything much more fragile and complicated... and I could go on.
>
> [...]

reggae has a binary backend: i.e. it produces an executable that when run does the build. There are no dependencies on any external tools at that point, you only need a D compiler and you're in business. Which you already need to build dmd, druntime and phobos anyway.

Atila
June 19, 2017
On Mon, 2017-06-19 at 09:53 +0000, Vladimir Panteleev via Digitalmars-d wrote:
> 
> […]

> If you can present a replacement build infrastructure for D which satisfies our needs and shows dramatic, measurable improvements, I (and other contributors, I don't doubt) will help push it through.
[…]

So if I do a Reggae and/or Meson build for DMD, is there the possibility that it will be added to the repository against Walters express wishes?

-- 
Russel.
=============================================================================
Dr Russel Winder     t:+44 20 7585 2200   voip:sip:
russel.winder@ekiga.net
41 Buckmaster Road   m:+44 7770 465 077   xmpp:russel@winder.org.uk
London SW11 1EN, UK  w: www.russel.org.uk skype:russel_winder

June 19, 2017
On Monday, 19 June 2017 at 13:38:52 UTC, Russel Winder wrote:
> On Mon, 2017-06-19 at 09:53 +0000, Vladimir Panteleev via Digitalmars-d wrote:
>> 
>> […]
>
>> If you can present a replacement build infrastructure for D which satisfies our needs and shows dramatic, measurable improvements, I (and other contributors, I don't doubt) will help push it through.
> […]
>
> So if I do a Reggae and/or Meson build for DMD, is there the possibility that it will be added to the repository against Walters express wishes?

I replicated the _entirety_ [1] of Phobos's posix.mak (that Makefile does a _lot_) with reggae and that never happened, so I guess the answer is "vanishingly small".


Atila


[1] https://github.com/dlang/phobos/pull/4194
June 19, 2017
On Monday, 19 June 2017 at 13:38:52 UTC, Russel Winder wrote:
> On Mon, 2017-06-19 at 09:53 +0000, Vladimir Panteleev via Digitalmars-d wrote:
>> 
>> […]
>
>> If you can present a replacement build infrastructure for D which satisfies our needs and shows dramatic, measurable improvements, I (and other contributors, I don't doubt) will help push it through.
> […]
>
> So if I do a Reggae and/or Meson build for DMD, is there the possibility that it will be added to the repository against Walters express wishes?

DMD is insufficient, and is not the hardest makefile to port. Any serious proposal would need to cover all core repositories - dmd, druntime, phobos, tools, and dlang.org. We would need to evaluate any proposals thoroughly, and it will likely involve a trial period during which both will be maintained in parallel before any switch-over occurs.

If we can draw strong conclusions of considerable benefits for the replacement, then I think we should be able to reach an agreement.

However, be warned: our makefiles are pretty darn tangled. This is very likely more than a weekend project.

June 19, 2017
On Monday, 19 June 2017 at 09:19:32 UTC, Dejan Lekic wrote:
> On Friday, 16 June 2017 at 06:30:01 UTC, Russel Winder wrote:
>> A direct question to Walter and Andrei really.
>>
>> If someone, let us say Russel Winder, create a CMake/Ninja and/or Meson/Ninja build for DMD, is there any chance of it being allowed to replace the Make system?
>>
>> If the answer is no, then Russel will obviously not waste his time doing something that will not be accepted.
>
> Why?
>
> Why replacing a rock-stable Make with build-system-X that most likely adds another dependency. I am with Walter on this one. - We should continue using Make unless there is a real need for something else. DMD's makefiles are really simple!

is there a point in disallowing several alternate build systems residing in the dmd repository?
If it is just allowed to upload README-files and make-files of alternate build systems etc, it would not be necessary to waste time with this discussion here.
June 19, 2017
On Mon, 2017-06-19 at 13:44 +0000, Vladimir Panteleev via Digitalmars-d wrote:
> […]
> 
> DMD is insufficient, and is not the hardest makefile to port. Any serious proposal would need to cover all core repositories - dmd, druntime, phobos, tools, and dlang.org. We would need to evaluate any proposals thoroughly, and it will likely involve a trial period during which both will be maintained in parallel before any switch-over occurs.

One doesn't port Makefiles, one writes a new build that achieves the same final outcomes.

If those 5 are so interconnected why are they in separate repositories? It should be entirely feasible to replace, and evaluate the replacement of, the builds of each of the repositories independently.

To demand it is an all or nothing, is to set a bar to high for volunteer labour.

Interestingly I bet the Make-based build didn't have to undergo such review. ;-)

> If we can draw strong conclusions of considerable benefits for the replacement, then I think we should be able to reach an agreement.
> 
> However, be warned: our makefiles are pretty darn tangled. This is very likely more than a weekend project.

That the Makefiles are tangled does not imply a proper build should be.

-- 
Russel.
=============================================================================
Dr Russel Winder     t:+44 20 7585 2200   voip:sip:
russel.winder@ekiga.net
41 Buckmaster Road   m:+44 7770 465 077   xmpp:russel@winder.org.uk
London SW11 1EN, UK  w: www.russel.org.uk skype:russel_winder