Re: Button: A fast, correct, and elegantly simple build system.

2016-06-27 Thread Jason White via Digitalmars-d-announce
On Monday, 27 June 2016 at 06:43:26 UTC, Rory McGuire wrote: FYI, I implemented this feature today (no Batch/PowerShell output yet though): http://jasonwhite.github.io/button/docs/commands/convert I think Bash should work on most Unix-like platforms. And there is this[0] for windows,

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-26 Thread Jason White via Digitalmars-d-announce
On Monday, 20 June 2016 at 08:21:29 UTC, Dicebot wrote: On Monday, 20 June 2016 at 02:46:13 UTC, Jason White wrote: This actually sounds nice. Main problem that comes to my mind is that there is no cross-platform shell script. Even if it is list of plain unconditional commands there are always

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-19 Thread Jason White via Digitalmars-d-announce
On Sunday, 19 June 2016 at 15:47:21 UTC, Dicebot wrote: Let me propose another idea where maybe we can remove the extra dependency for new codebase collaborators but still have access to a full-blown build system: Add a sub-command to Button that produces a shell script to run the build. For

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-19 Thread Jason White via Digitalmars-d-announce
On Saturday, 18 June 2016 at 23:52:00 UTC, H. S. Teoh wrote: I did a quick investigation, which found something interesting. If compiling straight to executable, the executable is identical each time with the same md5sum. However, when compiling to object files, the md5sum is sometimes the

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-18 Thread Jason White via Digitalmars-d-announce
On Saturday, 18 June 2016 at 14:23:39 UTC, H. S. Teoh wrote: Moral of the story is, if you're writing a compiler, for the sake of build systems everywhere, make the output deterministic! For consecutive invocations, without changing any source code, I want the hashes of the binaries to be

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-18 Thread Jason White via Digitalmars-d-announce
On Friday, 17 June 2016 at 20:36:53 UTC, H. S. Teoh wrote: - Assuming that a revision control system is in place, and a workspace is checked out on revision X with no further modifications, then invoking the build tool should ALWAYS, without any exceptions, produce exactly the same

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-18 Thread Jason White via Digitalmars-d-announce
On Friday, 17 June 2016 at 10:24:16 UTC, Dicebot wrote: However, I question the utility of even doing this in the first place. You miss out on the convenience of using the existing command line interface. And for what? Just so everything can be in D? Writing the same thing in Lua would be

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-18 Thread Jason White via Digitalmars-d-announce
On Friday, 17 June 2016 at 20:59:46 UTC, jmh530 wrote: I found the beginning of the tutorial very clear. I really liked that it can produce a png of the build graph. I also liked the Lua build description for DMD. Much more legible than the make file. However, once I got to the "Going Meta:

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-17 Thread Jason White via Digitalmars-d-announce
On Friday, 17 June 2016 at 06:18:28 UTC, H. S. Teoh wrote: For me, correctness is far more important than speed. Mostly because at my day job, we have a Make-based build system and because of Make's weaknesses, countless hours, sometimes even days, have been wasted running `make clean; make`

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-16 Thread Jason White via Digitalmars-d-announce
On Thursday, 16 June 2016 at 13:39:20 UTC, Atila Neves wrote: It would be a worthwhile trade-off, if those were the only two options available, but they're not. There are multiple build systems out there that do correct builds whilst being faster than make. Being faster is easy, because make

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-16 Thread Jason White via Digitalmars-d-announce
On Thursday, 16 June 2016 at 12:34:26 UTC, Kagamin wrote: On Sunday, 12 June 2016 at 23:27:07 UTC, Jason White wrote: However, I question the utility of even doing this in the first place. You miss out on the convenience of using the existing command line interface. Why the build script

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-15 Thread Jason White via Digitalmars-d-announce
On Wednesday, 15 June 2016 at 12:02:56 UTC, Andrei Alexandrescu wrote: In all likelihood. One issue with build systems is there's no clear heir to make. There are so many, including a couple (!) by our community, each with its pros and cons. Which one should we choose? You should choose

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-15 Thread Jason White via Digitalmars-d-announce
On Wednesday, 15 June 2016 at 12:00:52 UTC, Andrei Alexandrescu wrote: I'd say the gating factor is -j. If an build system doesn't implement the equivalent of make -j, that's a showstopper. Don't worry, there is a --threads option and it defaults to the number of logical cores. I just did

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-14 Thread Jason White via Digitalmars-d-announce
On Monday, 13 June 2016 at 20:12:27 UTC, Walter Bright wrote: On 6/12/2016 4:27 PM, Jason White wrote: I don't understand this dependency-phobia. It's the "first 5 minutes" thing. Every hiccup there costs us maybe half the people who just want to try it out. I suppose you're right. It is

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-14 Thread Jason White via Digitalmars-d-announce
On Tuesday, 14 June 2016 at 14:57:52 UTC, Andrei Alexandrescu wrote: On 6/12/16 8:27 PM, Walter Bright wrote: On 5/30/2016 12:16 PM, Jason White wrote: Here is an example build description for DMD: https://github.com/jasonwhite/dmd/blob/button/src/BUILD.lua I'd say that's a lot easier

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-14 Thread Jason White via Digitalmars-d-announce
On Tuesday, 14 June 2016 at 10:47:58 UTC, Fool wrote: Switching the compiler version seems to be a valid use case. You might have other means to detect this, though. If you want to depend on the compiler version, then you can add a dependency on the compiler executable. It might be a good

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-12 Thread Jason White via Digitalmars-d-announce
On Sunday, 12 June 2016 at 20:03:06 UTC, Walter Bright wrote: On 6/3/2016 1:26 AM, Dicebot wrote: From that perspective, the best build system you could possibly have would look like this: ``` #!/usr/bin/rdmd import std.build; // define your build script as D code ``` Yeah, I have often

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-11 Thread Jason White via Digitalmars-d-announce
On Saturday, 11 June 2016 at 02:48:59 UTC, H. S. Teoh wrote: Finally got around to looking at this (albeit just briefly). It looks very nice! Perhaps I'll try using it for my next project. If you do end up using it, I'd be happy to iron out any irritations in Button that you encounter.

Re: Button: A fast, correct, and elegantly simple build system.

2016-06-01 Thread Jason White via Digitalmars-d-announce
On Wednesday, 1 June 2016 at 06:41:17 UTC, Jacob Carlborg wrote: So, Lua is a build dependency? Seems that Sqlite is a build dependency as well. Actually, SQLite more of a run-time dependency because etc.c.sqlite3 comes with DMD. $ ldd button linux-vdso.so.1 (0x7ffcc474c000) -->

Re: Reddit announcements

2016-05-31 Thread Jason White via Digitalmars-d-announce
On Tuesday, 31 May 2016 at 18:57:29 UTC, o-genki-desu-ka wrote: Many nice announcements here last week. I put some on reddit. Thank you for doing this! I agree previous posts though, that this is too many at once. Also, I think posting a link directly to the project instead of the forum post

Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Jason White via Digitalmars-d-announce
On Tuesday, 31 May 2016 at 14:28:02 UTC, Dicebot wrote: Can it be built from just plain dmd/phobos install available? One of major concernc behind discussion that resulted in Atila reggae effort is that propagating additional third-party dependencies is very damaging for build systems. Right

Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Jason White via Digitalmars-d-announce
On Tuesday, 31 May 2016 at 10:15:14 UTC, Atila Neves wrote: On Monday, 30 May 2016 at 19:16:50 UTC, Jason White wrote: I am pleased to finally announce the build system I've been slowly working on for over a year in my spare time: snip In fact, there is some experimental support for automatic

Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Jason White via Digitalmars-d-announce
On Tuesday, 31 May 2016 at 03:40:32 UTC, rikki cattermole wrote: Are you on Freenode (no nick to name right now)? I would like to talk to you about a few ideas relating to lua and D. No, I'm not on IRC. I'll see if I can find the time to hop on this weekend.

Re: Button: A fast, correct, and elegantly simple build system.

2016-05-30 Thread Jason White via Digitalmars-d-announce
On Monday, 30 May 2016 at 20:58:51 UTC, poliklosio wrote: - Lua is the primary build description language. Why not D? Generating the JSON build description should entirely deterministic. With Lua, this can be guaranteed. You can create a sandbox where only certain operations are permitted.

Button: A fast, correct, and elegantly simple build system.

2016-05-30 Thread Jason White via Digitalmars-d-announce
I am pleased to finally announce the build system I've been slowly working on for over a year in my spare time: Docs: http://jasonwhite.github.io/button/ Source: https://github.com/jasonwhite/button Features: - Correct incremental builds. - Automatic dependency detection (for any

Re: Argon: an alternative parser for command-line arguments

2016-03-02 Thread Jason White via Digitalmars-d-announce
On Wednesday, 2 March 2016 at 19:50:30 UTC, Markus Laker wrote: https://github.com/markuslaker/Argon Let me know if you do something interesting with it. Markus Looks nice! Can it support sub-commands (e.g., git status)? I suppose that can be done by passing through unused arguments and

Re: reggae v0.5.0: new features in the D meta-build system

2015-09-25 Thread Jason White via Digitalmars-d-announce
I rarely visit the D forums and even more rarely make a post, but this thread caught my eye. I've been writing a build system in D too: https://github.com/jasonwhite/brilliant-build (I'm not very fond of the name. Naming is hard!) It is a general build system with an emphasis on