Thread overview | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
September 16, 2015 reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
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 |
September 16, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Atila Neves Attachments:
| This link should work for everyone: http://code.dlang.org/packages/reggae (I never tried reggae. Maybe I should, it looks good.) LMB On Wed, Sep 16, 2015 at 11:07 AM, Atila Neves via Digitalmars-d-announce < digitalmars-d-announce@puremagic.com> wrote: > 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 > |
September 16, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Atila Neves | Ruby link points to reggae-python. |
September 22, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Atila Neves | On Wednesday, 16 September 2015 at 14:07:17 UTC, Atila Neves wrote:
> http://code.dlang.org/my_packages/reggae
>
> What's new:
> Atila
If you want to build a really revolutionary *new* build system you should turn reggae into a client-server-architecture that listens to file moves/copies/notifications via inotify on Linux. I'm not sure how the develop/builder interface would look like then, however. A web-client would be one way.
SCons has a very hidden feature called interactive mode via `--interactive` that supports instantaenous incremental builds via a very primitive CLI that basically supports to commands:
- build/b TARGET
- clean/c TARGET
This however does not rebuild the dependency tree between invokations which is a serious limitation. I believe reggae could be even smarter here.
I've spent the last two years designing and implementing a SCons-based build system at work. Involving, among others, adding support for Ada and auto-detection of include-paths as you have done in reggae.
I you want any advice on this matter please contact me. I'd be glad to be of service.
Good luck!
|
September 22, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Per Nordlöw | On Tuesday, 22 September 2015 at 12:39:48 UTC, Per Nordlöw wrote: > On Wednesday, 16 September 2015 at 14:07:17 UTC, Atila Neves wrote: >> http://code.dlang.org/my_packages/reggae >> >> What's new: >> Atila > > If you want to build a really revolutionary *new* build system you should turn reggae into a client-server-architecture that listens to file moves/copies/notifications via inotify on Linux. I'm not sure how the develop/builder interface would look like then, however. A web-client would be one way. Like ekam? https://github.com/sandstorm-io/ekam We talked about it when I interviewed Atila: http://arsdnet.net/this-week-in-d/sep-06.html |
September 23, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Per Nordlöw | On 2015-09-22 14:39, Per Nordlöw wrote: > SCons has a very hidden feature called interactive mode via > `--interactive` that supports instantaenous incremental builds via a > very primitive CLI that basically supports to commands: Incremental builds in D are currently not reliable. Something about templates not being outputted to all object files it need to. -- /Jacob Carlborg |
September 23, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joakim | On Tuesday, 22 September 2015 at 13:22:25 UTC, Joakim wrote: > Like ekam? > https://github.com/sandstorm-io/ekam Sounds very promising! > We talked about it when I interviewed Atila: > http://arsdnet.net/this-week-in-d/sep-06.html Thanks! |
September 23, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Per Nordlöw | On Tuesday, 22 September 2015 at 12:39:48 UTC, Per Nordlöw wrote: > If you want to build a really revolutionary *new* build system you should turn reggae into a client-server-architecture that listens to file moves/copies/notifications via inotify on Linux. I'm not sure how the develop/builder interface would look like then, however. A web-client would be one way. > > </snip> I heard that SBT does something similar (http://www.se-radio.net/2015/07/se-radio-episode-231-joshua-suereth-and-matthew-farwell-on-sbt-and-software-builds/). From what I understand it is faster due to that you can skip the overhead of startup. I also presume it is a big win for user experience. |
September 23, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to NVolcz | On 2015-09-23 08:41, NVolcz wrote: > I heard that SBT does something similar > (http://www.se-radio.net/2015/07/se-radio-episode-231-joshua-suereth-and-matthew-farwell-on-sbt-and-software-builds/). > > > From what I understand it is faster due to that you can skip the > overhead of startup. > I also presume it is a big win for user experience. You can do both with SBT. But I though the main reason was because of the JVM startup time. -- /Jacob Carlborg |
September 24, 2015 Re: reggae v0.5.0: new features in the D meta-build system | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On Wednesday, 23 September 2015 at 06:16:08 UTC, Jacob Carlborg wrote:
> On 2015-09-22 14:39, Per Nordlöw wrote:
>
>> SCons has a very hidden feature called interactive mode via
>> `--interactive` that supports instantaenous incremental builds via a
>> very primitive CLI that basically supports to commands:
>
> Incremental builds in D are currently not reliable. Something about templates not being outputted to all object files it need to.
That's not been my experience at all using reggae. I only do incremental builds now and have never run into a problem. Can you give an example?
Atila
|
Copyright © 1999-2021 by the D Language Foundation