Closed snosov1 closed 9 years ago
Option to skip repositories updates. As I understand, it can be easily implemented, you just have to pass false to DManager.initialize function.
An --offline
switch exists, although I don't think it's currently documented anywhere.
Option to perform incremental build. Right now make rebuilds everything and it takes much longer than it should to rebuild after a small change. I don't see a simple solution for this at the moment.
Yes. The problem is compounded by that the DMD Makefile does not support incremental builds either (it only works for simple modifications, such as function body edits in .c files).
Is it something you can consider implementing? If you don't feel like implementing these yourself, but, generally, you agree that it would be nice to have them, I can help with a PR. I just need a pointer regarding the second (incremental build) feature: what would be a good approach to implementing this?
Not sure. I think it would be quite difficult, actually. Currently, Digger goes to great lengths to ensure that the builds are as close to bit-identical as possible regardless of the environment. This includes downloading and using specific versions of the tools used to build D, spawning processes with a clean, minimal enviroment, and eradicating all unversioned, ignored and edited files in the git repositories between rebuilds. Incremental builds go in the opposite direction, and although there is the opportunity for reusing code, it would probably need to use a different approach.
Not sure. I think it would be quite difficult, actually.
That's too bad. It could really lower the entry barrier for contributing to dmd.
Do you know of any other (half-)automatic solution for setting up dmd build environment?
I think DVM can do it:
http://wiki.dlang.org/Building_DMD#Existing_tools
People have posted scripts to do it a few times in the forums, but I don't think there is a list of those somewhere.
It seems like it does, but I guess it's not that straightforward. You still have to clone the repos manually.
Thanks, anyway!
Not sure. I think it would be quite difficult, actually.
I've thought some more about this. I think it would be feasible as a separate Digger command which does an incremental build - you'd run this after making a clean build and changed some files. This means it would take a very different code path, and won't go through all the requirements / dependency / cleanliness checks, and could reuse the existing code to build D.
The relevant code is in ae, specifically ae.sys.d.builder
.
Hi!
I find that Digger does a great job automating the build process of dmd, which is quite bothersome on its own - setting up three (or more) repos, setting up environment variables for testing and etc.
However, it lacks few features to be more usable in that regard. Namely,
false
to DManager.initialize function.make
rebuilds everything and it takes much longer than it should to rebuild after a small change. I don't see a simple solution for this at the moment.Is it something you can consider implementing? If you don't feel like implementing these yourself, but, generally, you agree that it would be nice to have them, I can help with a PR. I just need a pointer regarding the second (incremental build) feature: what would be a good approach to implementing this?