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

Atila Neves via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Sep 16 07:07:15 PDT 2015


http://code.dlang.org/my_packages/reggae

What's new:
. API changes: main high-level rules are now called objectFiles, 
link, and scriptlike
. Optional top-level targets: aren't built by default but can be 
built on request
. Phony targets
. staticLibrary rule that does what it says
. unityBuild rule for C/C++ projects that builds a binary as one 
translation unit to speed up compilation
. Support for writing build descriptions in Python, Ruby, Lua and 
JavaScript

That last one might cause scratchy head syndrome. Why would I 
want to enable writing builds in a language other than D? Here's 
why:

1. Interpreting a build description is faster than compiling, 
linking and running it. Not a big deal since the build 
description isn't read often, but it's true
2. No confusion about when to use `enum` and when to use `alias`. 
Again, probably wasn't catching anybody unawares but also true
3. Not having to install a D compiler in order to generate builds 
- I ran into this issue at work the other day trying to use 
reggae on a weird VM with no root access
4. More importantly... to not limit reggae to only D developers

There are quite a few build systems / tools out there in which 
different languages are used. Almost all of them are only used by 
developers of their language niche: Ruby/Rake, Python/SCons/Waf, 
Groovy/Java/Gradle, Haskell/Shake, etc. This is my attempt to 
make reggae appeal to a wider audience.

I wanted to add a Lisp too but then I'd have to pick a dialect 
and an implemetation, only to annoy fans of other dialects. I 
might just do Emacs Lisp to annoy everyone equally! Also, for the 
lulz.

Atila


More information about the Digitalmars-d-announce mailing list