Re: A brief survey of build tools, focused on D

2018-12-17 Thread Olivier FAURE via Digitalmars-d-announce
On Sunday, 16 December 2018 at 00:17:55 UTC, Paul Backus wrote: There's something important you're glossing over here, which is that, in the general case, there's no single obvious or natural way to compose two DAGs together. For example: suppose project A's DAG has two "output" vertices

Re: A brief survey of build tools, focused on D

2018-12-15 Thread Neia Neutuladh via Digitalmars-d-announce
On Sun, 16 Dec 2018 00:17:55 +, Paul Backus wrote: > On Wednesday, 12 December 2018 at 22:41:50 UTC, H. S. Teoh wrote: >> It's time we came back to the essentials. Current monolithic build >> systems ought to be split into two parts: [...] > You're missing (0) the package manager, which is

Re: A brief survey of build tools, focused on D

2018-12-15 Thread Paul Backus via Digitalmars-d-announce
On Wednesday, 12 December 2018 at 22:41:50 UTC, H. S. Teoh wrote: It's time we came back to the essentials. Current monolithic build systems ought to be split into two parts: (1) Dependency detector / DAG generator. Do whatever you need to do here: dub-style scanning of .d imports, scan

Re: A brief survey of build tools, focused on D

2018-12-12 Thread Neia Neutuladh via Digitalmars-d-announce
On Wednesday, 12 December 2018 at 22:41:50 UTC, H. S. Teoh wrote: And here is the crux of my rant about build systems (earlier in this thread). There is no *technical reason* why build systems should be constricted in this way. Today's landscape of specific projects being inextricably tied to

Re: A brief survey of build tools, focused on D

2018-12-12 Thread H. S. Teoh via Digitalmars-d-announce
On Wed, Dec 12, 2018 at 02:52:09PM -0700, Jonathan M Davis via Digitalmars-d-announce wrote: [...] > I would think that to be fully flexible, dub would need to abstract > things a bit more, maybe effectively using a plugin system for builds > so that it's possible to have a dub project that uses

Re: A brief survey of build tools, focused on D

2018-12-12 Thread Jonathan M Davis via Digitalmars-d-announce
On Wednesday, December 12, 2018 1:33:39 PM MST H. S. Teoh via Digitalmars-d- announce wrote: > On Wed, Dec 12, 2018 at 10:38:55AM +0100, Sönke Ludwig via Digitalmars-d- announce wrote: > > Am 11.12.2018 um 20:46 schrieb H. S. Teoh: > > > Does dub support the following scenario? > > [...] > > >

Re: A brief survey of build tools, focused on D

2018-12-12 Thread H. S. Teoh via Digitalmars-d-announce
On Wed, Dec 12, 2018 at 10:38:55AM +0100, Sönke Ludwig via Digitalmars-d-announce wrote: > Am 11.12.2018 um 20:46 schrieb H. S. Teoh: > > [...] > > Wait, what does --parallel do if it doesn't compile multiple files > > at once? > > It currently only works when building with

Re: A brief survey of build tools, focused on D

2018-12-12 Thread Andre Pany via Digitalmars-d-announce
On Wednesday, 12 December 2018 at 09:38:55 UTC, Sönke Ludwig wrote: Most notably, there is a directive missing to specify arbitrary files as build dependencies. I am working on a pull request: https://github.com/andre2007/dub/commit/97161fb352dc1237411e2e7010447f8a9e817d48 Productive

Re: A brief survey of build tools, focused on D

2018-12-12 Thread Sönke Ludwig via Digitalmars-d-announce
Am 12.12.2018 um 15:53 schrieb Atila Neves: On Wednesday, 12 December 2018 at 09:38:55 UTC, Sönke Ludwig wrote: Am 11.12.2018 um 20:46 schrieb H. S. Teoh: On Tue, Dec 11, 2018 at 11:26:45AM +0100, Sönke Ludwig via Digitalmars-d-announce wrote: [...] The main open point right now AFAICS is

Re: A brief survey of build tools, focused on D

2018-12-12 Thread Atila Neves via Digitalmars-d-announce
On Wednesday, 12 December 2018 at 09:38:55 UTC, Sönke Ludwig wrote: Am 11.12.2018 um 20:46 schrieb H. S. Teoh: On Tue, Dec 11, 2018 at 11:26:45AM +0100, Sönke Ludwig via Digitalmars-d-announce wrote: [...] The main open point right now AFAICS is to make --parallel work with the

Re: A brief survey of build tools, focused on D

2018-12-12 Thread Sönke Ludwig via Digitalmars-d-announce
Am 11.12.2018 um 20:46 schrieb H. S. Teoh: On Tue, Dec 11, 2018 at 11:26:45AM +0100, Sönke Ludwig via Digitalmars-d-announce wrote: [...] The main open point right now AFAICS is to make --parallel work with the multiple-files-at-once build modes for machines that have enough RAM. This is

Re: A brief survey of build tools, focused on D

2018-12-11 Thread H. S. Teoh via Digitalmars-d-announce
On Tue, Dec 11, 2018 at 11:26:45AM +0100, Sönke Ludwig via Digitalmars-d-announce wrote: [...] > The upgrade check has been disabled in one of the latest releases, so > unless the dependencies haven't been resolved before, it will not > access the network anymore. A notable exception are

Re: A brief survey of build tools, focused on D

2018-12-11 Thread H. S. Teoh via Digitalmars-d-announce
On Tue, Dec 11, 2018 at 01:56:24PM -0500, Steven Schveighoffer via Digitalmars-d-announce wrote: [...] > 1. When unittests are enabled, -allinst is enabled as well. > 2. This means that all templates instantiated are included as if they > were part of the local module. > 3. This means that they

Re: A brief survey of build tools, focused on D

2018-12-11 Thread Steven Schveighoffer via Digitalmars-d-announce
On 12/11/18 12:39 PM, H. S. Teoh wrote: On Tue, Dec 11, 2018 at 09:58:39AM +, Atila Neves via Digitalmars-d-announce wrote: On Monday, 10 December 2018 at 22:18:28 UTC, Neia Neutuladh wrote: [...] In typical D code, it's usually faster to compile per package than either all-at-once or

Re: A brief survey of build tools, focused on D

2018-12-11 Thread H. S. Teoh via Digitalmars-d-announce
On Tue, Dec 11, 2018 at 09:54:06AM +, Atila Neves via Digitalmars-d-announce wrote: [...] > No reggae? https://github.com/atilaneves/reggae/ I recently finally sat down and took a look at Button, posted here a few years ago. It looked pretty good. One of these days I really need to sit

Re: A brief survey of build tools, focused on D

2018-12-11 Thread H. S. Teoh via Digitalmars-d-announce
On Tue, Dec 11, 2018 at 09:58:39AM +, Atila Neves via Digitalmars-d-announce wrote: > On Monday, 10 December 2018 at 22:18:28 UTC, Neia Neutuladh wrote: [...] > In typical D code, it's usually faster to compile per package than > either all-at-once or per module. Which is why it's the default

Re: A brief survey of build tools, focused on D

2018-12-11 Thread Sönke Ludwig via Digitalmars-d-announce
Am 10.12.2018 um 22:01 schrieb H. S. Teoh: (...) Convenience and simplicity, sure. But speed? I'm sorry to say, I tried dub for 2 days and gave up in frustration because it was making my builds *several times longer* than a custom SCons script. I find that completely unacceptable. It also

Re: A brief survey of build tools, focused on D

2018-12-11 Thread Atila Neves via Digitalmars-d-announce
On Monday, 10 December 2018 at 22:18:28 UTC, Neia Neutuladh wrote: On Mon, 10 Dec 2018 21:53:40 +, GoaLitiuM wrote: The results for touching second file seems like an anomaly to me, The generated ninja file had one rule per source file. If your modules tend to import each other a lot, or

Re: A brief survey of build tools, focused on D

2018-12-11 Thread Atila Neves via Digitalmars-d-announce
On Monday, 10 December 2018 at 18:27:48 UTC, Neia Neutuladh wrote: I wrote a post about language-agnostic (or, more accurately, cross- language) build tools, primarily using D as an example and Dub as a benchmark. Spoiler: dub wins in speed, simplicity, dependency management, and actually

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Russel Winder via Digitalmars-d-announce
On Mon, 2018-12-10 at 13:01 -0800, H. S. Teoh via Digitalmars-d-announce wrote: > […] > Wow. Thanks for the writeup that convinces me that I don't need to > waste time looking at Meson/Ninja. […] The article is a personal opinion and that is fine. For me it is wrong. No mention of SCons, nor

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Manu via Digitalmars-d-announce
On Mon, Dec 10, 2018 at 10:30 AM Neia Neutuladh via Digitalmars-d-announce wrote: > > I wrote a post about language-agnostic (or, more accurately, cross- > language) build tools, primarily using D as an example and Dub as a > benchmark. > > Spoiler: dub wins in speed, simplicity, dependency

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Neia Neutuladh via Digitalmars-d-announce
On Mon, 10 Dec 2018 13:01:08 -0800, H. S. Teoh wrote: > It also requires network access. On *every* invocation, unless > explicitly turned off. And even then, it performs time-consuming > dependency resolutions on every invocation, which doubles or triples > incremental build times. Again,

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Neia Neutuladh via Digitalmars-d-announce
On Tue, 11 Dec 2018 02:54:15 +, Mike Franklin wrote: > Why not just write your build/tooling scripts in D? That's what I > prefer to do, and there's been a recent effort to do just that for the > DMD compiler as well: > https://github.com/dlang/dmd/blob/master/src/build.d It still resembles

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Mike Franklin via Digitalmars-d-announce
On Monday, 10 December 2018 at 18:27:48 UTC, Neia Neutuladh wrote: I wrote a post about language-agnostic (or, more accurately, cross- language) build tools, primarily using D as an example and Dub as a benchmark. Spoiler: dub wins in speed, simplicity, dependency management, and actually

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Neia Neutuladh via Digitalmars-d-announce
On Mon, 10 Dec 2018 21:53:40 +, GoaLitiuM wrote: > The results for touching second file seems like an anomaly to me, The generated ninja file had one rule per source file. If your modules tend to import each other a lot, or if they transitively import the code that's doing expensive stuff,

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Dennis via Digitalmars-d-announce
On Monday, 10 December 2018 at 21:01:08 UTC, H. S. Teoh wrote: [SNIP] Great rant! Do you think dub's current architecture is a lost cause or are there some leverage points where it can greatly improve? Also, do you have any recommendations? Currently I'm using dub because it's the standard,

Re: A brief survey of build tools, focused on D

2018-12-10 Thread GoaLitiuM via Digitalmars-d-announce
I switched away from dub to meson for my small game engine project, and the biggest benefit of this switch was the improved build times while doing small iterations to some files: dub build --arch=x86_64 --build=debug --compiler=dmd - full rebuild: 3960ms - touch file1 and build: 2780ms -

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Paolo Invernizzi via Digitalmars-d-announce
On Monday, 10 December 2018 at 21:01:08 UTC, H. S. Teoh wrote: And almost no build system handles reliable builds correctly when the build description is changed -- Button does, but it's in the extreme minority, and is still a pretty young project that's not widely known). Tup [1] does, and

Re: A brief survey of build tools, focused on D

2018-12-10 Thread H. S. Teoh via Digitalmars-d-announce
On Mon, Dec 10, 2018 at 06:27:48PM +, Neia Neutuladh via Digitalmars-d-announce wrote: > I wrote a post about language-agnostic (or, more accurately, cross- > language) build tools, primarily using D as an example and Dub as a > benchmark. > > Spoiler: dub wins in speed, simplicity,

Re: A brief survey of build tools, focused on D

2018-12-10 Thread Andre Pany via Digitalmars-d-announce
On Monday, 10 December 2018 at 18:27:48 UTC, Neia Neutuladh wrote: I wrote a post about language-agnostic (or, more accurately, cross- language) build tools, primarily using D as an example and Dub as a benchmark. Spoiler: dub wins in speed, simplicity, dependency management, and actually

A brief survey of build tools, focused on D

2018-12-10 Thread Neia Neutuladh via Digitalmars-d-announce
I wrote a post about language-agnostic (or, more accurately, cross- language) build tools, primarily using D as an example and Dub as a benchmark. Spoiler: dub wins in speed, simplicity, dependency management, and actually working without modifying the tool's source code.