[Issue 20338] dmd, phobos, and druntime build systems should be updated
https://issues.dlang.org/show_bug.cgi?id=20338 Iain Buclaw changed: What|Removed |Added Priority|P1 |P4 --
[Issue 20338] dmd, phobos, and druntime build systems should be updated
https://issues.dlang.org/show_bug.cgi?id=20338 --- Comment #2 from alan.w.irwin1...@gmail.com --- I forgot to mention another issue with your present build and test system is the dmd test target cannot be built with the GNU make parallel build (-jN) option. So my script drops that possibility for dmd and phobos on the assumption that the phobos build/test system has the same issue. CMake provides a powerful environment (for example, dependencies between tests) to solve such parallel build issues. Also, to expand on my remarks about different build systems for Posix (where you currently use a Makefile approach) and Windows (where you currently appear to have a build system that works for Visual Studio), CMake has different generators which allow it, for example, to configure Posix Makefiles, a Visual Studio project, and many other possibilities (such as nmake Makefiles). However, I don't want to over-advocate CMake so I also want to emphasize this parallel test issue, and all the other Posix build-system issues I have mentioned could be addressed at the Makefile level and assuming the same or similar issues exist for your Visual Studio build could also be addressed for that build system. Or maybe [Digger](https://github.com/CyberShadow/Digger) (which I have not tried) is the answer. But the fundamental point is all these current build-system issues I have mentioned need to be addressed whatever build system you decide to adopt. --
[Issue 20338] dmd, phobos, and druntime build systems should be updated
https://issues.dlang.org/show_bug.cgi?id=20338 alan.w.irwin1...@gmail.com changed: What|Removed |Added Summary|dmd, phobos, and druntime |dmd, phobos, and druntime |build systems should be |build systems should be |modernized |updated --- Comment #1 from alan.w.irwin1...@gmail.com --- I have recently cleaned, rebuilt, reinstalled, and tested dmd, phobos, and the druntime components needed by phobos with success for the Posix case. However, I believe the following issues in these interdependent build systems need attention: * The local repositories get contaminated with build files. (This issue can be addressed by implementing separate build trees for such file to receive such files.) * There are obscure interactions between the phobos build and druntime build, clean, and install targets that violate the principle of least surprise. For example, the phobos build indirectly builds druntime, but the phobos clean and install do not clean and install druntime. * There appears to be a separate build procedure for Windows and Posix systems. * The install tree has a hard-coded location which makes it difficult to package dmd, phobos, and druntime for free software distributions. All of these issues can be straightforwardly addressed by a "super-build" set of modern CMake-based build systems for dmd, phobos, and druntime that would coexist peacefully with your present build systems. If some dmd/phobos/druntime developer is keen on such an update I would be happy to lend my decade+ experience with CMake to help get them started. --
[Issue 20338] New: dmd, phobos, and druntime build systems should be modernized
https://issues.dlang.org/show_bug.cgi?id=20338 Issue ID: 20338 Summary: dmd, phobos, and druntime build systems should be modernized Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dlang.org Assignee: nob...@puremagic.com Reporter: alan.w.irwin1...@gmail.com --
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 23:59:07 UTC, Yuxuan Shui wrote: On Friday, 31 July 2015 at 22:40:25 UTC, Trent Forkert wrote: On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: [...] Oh hey, that's me! [...] I've got a handful of work-in-progress changes I've yet to push publicly, and even more I've yet to commit. (Yes, I have weird work habits.) [...] Hi, I just want to let you know I've tried to build my project with your cmake fork, and it worked like a charm :) Good to hear it's still alive. Let's hope the situation about shared libraries can improve and you can move on. [...] I use CMake on mixed C/D projects and dub for D-only projects. On one project I'm using CMake to invoke dub to keep the D libs up to date and no another I invoke CMake from dub to build the C cruft. I find both work extremely well and are much better than shell scripts or plain Makefile bashing. bye, lobo
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: Hi, I'm working on a project that mixes both C and D code, and does code generation as well. [...] I'll get that bug fixed soon. I planned on doing it today but ran out of time. Atila
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: I have come across cmake-d and a modified version of cmake (https://github.com/trentforkert/cmake). I haven't tested them yet, because neither of them is updated recently, and I don't know if I should invest time in them. I'm not sure about cmake-d. I think dcarp stated somewhere that he wasn't actively using D any more, or something to that effect. The fork of CMake is still active. Trentforkert said he is just waiting for things to progress in the D ecosystem before continuing work. (Mostly related to shared libraries.) If you're willing to build and use the fork (it's actually really easy,) then you can use the CMake generator I wrote for dub a few months back. Simply run `dub generate cmake` and it will spit out build scripts for your project and all of its dependencies.
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: I have come across cmake-d and a modified version of cmake (https://github.com/trentforkert/cmake). Oh hey, that's me! I haven't tested them yet, because neither of them is updated recently, and I don't know if I should invest time in them. I've got a handful of work-in-progress changes I've yet to push publicly, and even more I've yet to commit. (Yes, I have weird work habits.) So I want to know what is the current status of those build systems? I'm still around, and I fix bugs when they get in my way or someone else complains. Are they abandoned No. Neglected, but not abandoned. or still actively developed? If I can find the time (and the files, which hopefully survived a recent Linux distro-switch), I'll see about cleaning up and publishing the additional changes I have soon, and getting things on to a more recent version of CMake. As Steven Dwy said, I put the project on a bit of a hiatus while waiting for shared lib support to be ironed out (specifically, the behavior of `export`). Part of my unpublished changes includes a change that renders my previous concerns on that front solved regardless of what becomes of `export`. I would still like to be able to run tests for building shared libraries, and I won't even consider upstreaming until I can. Like I said though, I'll deal with bug reports if you file them. - Trent Forkert
Re: What is the current status of D build systems?
On 31 July 2015 at 13:20, Yuxuan Shui via Digitalmars-d digitalmars-d@puremagic.com wrote: On Friday, 31 July 2015 at 02:00:41 UTC, Mike Parker wrote: On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: are there any other build systems I should look into? Premake [1] supports mixing languages in the same build script. It's not a build tool itself, but can generate makefiles and IDE projects. Manu [2] maintains extensions for D support. [1] https://premake.github.io/ [2] https://github.com/premake/premake-dlang It seems premake-dlang is not capable of fetch dub packages, is that correct? In that it doesn't have a special command to fetch dub packages, that is true. Premake projects are expressed with a scripting language though (Lua), so it's very easy to execute dub commands to fetch packages as part of your script if that's what you want to do. I haven't received any interest in built-in dub integration, but it's theoretically possible to make a built-in solution for fetching dub packages as part of the process quite easily. Using dub as a build system though is off the table though if you mix languages. It may be useful as a package manager, but generating standard makefiles for the multi-language build is necessary.
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 22:40:25 UTC, Trent Forkert wrote: On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: [...] Oh hey, that's me! [...] I've got a handful of work-in-progress changes I've yet to push publicly, and even more I've yet to commit. (Yes, I have weird work habits.) [...] Hi, I just want to let you know I've tried to build my project with your cmake fork, and it worked like a charm :) Good to hear it's still alive. Let's hope the situation about shared libraries can improve and you can move on. [...]
What is the current status of D build systems?
Hi, I'm working on a project that mixes both C and D code, and does code generation as well. I've been using a shell script to hack this together, since I can't figure out how to do this with dub. Now I'm looking for a proper build system for building this project. reggae (https://github.com/atilaneves/reggae) seems to be promising, but it has bugs with indirect dependencies and failed to build my project. I have come across cmake-d and a modified version of cmake (https://github.com/trentforkert/cmake). I haven't tested them yet, because neither of them is updated recently, and I don't know if I should invest time in them. So I want to know what is the current status of those build systems? Are they abandoned or still actively developed? And are there any other build systems I should look into? Thanks. --- Regards, Yuxuan Shui
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 02:00:41 UTC, Mike Parker wrote: On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: are there any other build systems I should look into? Premake [1] supports mixing languages in the same build script. It's not a build tool itself, but can generate makefiles and IDE projects. Manu [2] maintains extensions for D support. [1] https://premake.github.io/ [2] https://github.com/premake/premake-dlang It seems premake-dlang is not capable of fetch dub packages, is that correct?
Re: What is the current status of D build systems?
On Friday, 31 July 2015 at 00:13:42 UTC, Yuxuan Shui wrote: are there any other build systems I should look into? Premake [1] supports mixing languages in the same build script. It's not a build tool itself, but can generate makefiles and IDE projects. Manu [2] maintains extensions for D support. [1] https://premake.github.io/ [2] https://github.com/premake/premake-dlang
Re: Build Systems
I had a look at different build systems, recently. Tup certainly has some progressive ideas. What I don't like is that it patronizes its users. I don't believe that tracking all file reads and writes is always a good choice. It might be a good default, though. Some other interesting build systems I came accross (in alphabetical order): - http://www.fastbuild.org - http://jpakkane.github.io/meson/ - http://shakebuild.com
Build systems and D
I wonder if we should get a small number of projects and do CMake, premake, SCons, Waf, and other builds for them so that direct comparisons can be made and people can comment on comparing apples with apples? (Even though there may be oranges in there as well ;-) -- Russel. = Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Roadm: +44 7770 465 077 xmpp: rus...@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder signature.asc Description: This is a digitally signed message part
Re: Build systems with D support [was: Response files]
Leandro Lucarella llu...@gmail.com wrote in message news:20090323192000.ga23...@burns.springfield.home... Leandro Lucarella, el 23 de marzo a las 13:31 me escribiste: And guess what? It even support D =) http://waf.googlecode.com/svn/trunk/demos/d/ It looks like AAP support D too =) http://www.a-a-p.org/exec/ref-modules.html#id2686506 It's nice new build system support D. It seems that the lack-of-tools situation is finally getting better =) FWIW, AAP has had D support for a long time.
Build systems with D support [was: Response files]
Leandro Lucarella, el 23 de marzo a las 13:31 me escribiste: And guess what? It even support D =) http://waf.googlecode.com/svn/trunk/demos/d/ It looks like AAP support D too =) http://www.a-a-p.org/exec/ref-modules.html#id2686506 It's nice new build system support D. It seems that the lack-of-tools situation is finally getting better =) It should be nice to have a listing of tools that work well with D in the official website. -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05)
Re: Build systems with D support [was: Response files]
Leandro Lucarella wrote: Leandro Lucarella, el 23 de marzo a las 13:31 me escribiste: And guess what? It even support D =) http://waf.googlecode.com/svn/trunk/demos/d/ It looks like AAP support D too =) http://www.a-a-p.org/exec/ref-modules.html#id2686506 It's nice new build system support D. It seems that the lack-of-tools situation is finally getting better =) Cool! It should be nice to have a listing of tools that work well with D in the official website. This kind of thing is better done through the D wiki, as experience shows that such things in the D pages get rapidly out of date, and people have to wait for me to fix them.
Re: Build systems with D support [was: Response files]
On Mon, Mar 23, 2009 at 6:15 PM, Walter Bright newshou...@digitalmars.com wrote: Leandro Lucarella wrote: Leandro Lucarella, el 23 de marzo a las 13:31 me escribiste: And guess what? It even support D =) http://waf.googlecode.com/svn/trunk/demos/d/ It looks like AAP support D too =) http://www.a-a-p.org/exec/ref-modules.html#id2686506 It's nice new build system support D. It seems that the lack-of-tools situation is finally getting better =) Cool! It should be nice to have a listing of tools that work well with D in the official website. This kind of thing is better done through the D wiki, as experience shows that such things in the D pages get rapidly out of date, and people have to wait for me to fix them. For what it's worth, most of the D wiki is incredibly out-of-date too. I just don't think there's enough manpower to go around to maintain it.
Re: Build systems with D support [was: Response files]
Jarrett Billingsley wrote: For what it's worth, most of the D wiki is incredibly out-of-date too. I just don't think there's enough manpower to go around to maintain it. Anyone can update it!
Re: Build systems with D support [was: Response files]
On Mon, Mar 23, 2009 at 6:53 PM, Walter Bright newshou...@digitalmars.com wrote: Jarrett Billingsley wrote: For what it's worth, most of the D wiki is incredibly out-of-date too. I just don't think there's enough manpower to go around to maintain it. Anyone can update it! You noticed my comment about not enough manpower, I hope!
Re: Build systems with D support [was: Response files]
Jarrett Billingsley wrote: On Mon, Mar 23, 2009 at 6:53 PM, Walter Bright newshou...@digitalmars.com wrote: Jarrett Billingsley wrote: For what it's worth, most of the D wiki is incredibly out-of-date too. I just don't think there's enough manpower to go around to maintain it. Anyone can update it! You noticed my comment about not enough manpower, I hope! Sure, but it's amazing what a single person can do if they just keep picking at something that interests them.