Reggae binary backend: build your project with a D compiled executable

Atila Neves via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Jun 7 00:00:16 PDT 2015


On Sunday, 7 June 2015 at 02:04:33 UTC, Mike wrote:
> On Saturday, 6 June 2015 at 20:07:22 UTC, Atila Neves wrote:
>> Original discussion:
>>
>> http://forum.dlang.org/post/ranqlmrjornlvopsuris@forum.dlang.org
>>
>> Now, with the `-b binary` option, reggae creates an executable 
>> called "build" in the build directory (i.e. wherever the CWD 
>> was when calling the tool) that knows how to build the 
>> project. If needed, there is no longer a dependency on make or 
>> ninja. I haven't tested it extensively, but it does pass all 
>> the other tests I wrote for make and ninja, so it looks good.
>>
>
> I like what you're doing with reggae, and I salute the work.
>
> I will reiterate my suggestion to consider making Reggae a 
> simple package import so this build functionality can be used 
> in anyone's D program, including the Reggae tool.
>
> We already have the ability to generate a binary with the 
> compiler, so the binary backend seems a little redundant.  You 
> have all the great features one would need:  Targets, 
> dependencies, flags, build driver, etc...  so it seems 
> plausible to move some of your driver code to the 
> payload/reggae package to make one's task of building a custom 
> driver trivial.
>
> I don't suggest making a libreggae library as a separate 
> repository from the Reggae tool, but rather simply do the 
> refactoring to make payload/reggae folder importable from any D 
> program, including the Reggae tool itself.

I'll think about it. I don't think it's that easy, but I might be 
wrong. I had to solve all sorts of interesting problems to get a 
build description in D to work at all, but who knows, it might be 
simpler than I"m making it out to be.

I'm currently considering (because of dmd, druntime and phobos) 
how to strip it down to its bare essentials and have a core set 
of source files that only knows how to build D code, i.e. no 
C/C++, no dub, no make/ninja. That way just the small core can be 
distributed which can bootstrap itself and then build D code. I'm 
still figuring it out.

Atila


More information about the Digitalmars-d-announce mailing list