On 2011-10-26 15:39, Martin Nowak wrote:
On Wed, 26 Oct 2011 12:26:56 +0200, Gor Gyolchanyan
<[email protected]> wrote:

I had a few thoughts about integrating build awareness into DMD.
It would be really cool to add a flag to DMD to make it compile and
link in all import-referenced modules.
Also, it would be awesome to store basic build information in modules
themselves in the form of special comments (much like documentation
comments), where one could specify external build dependencies, output
type, etc.
There would be no need for makefiles and extra build systems. You'd
just feed an arbitrary module to the compiler and the compiler would
build the target, to which that module belongs (bu parsing build
comments and package hierarchies).
Wouldn't this be a good thing to have?

Some work in this direction has been done.
This proposal works by communicating url paths sources to an external
tool which is a flexible and good proposal.
It allows things as 'http://path/to/repo' for simple source file from
web fetching as well as 'pkg://experimental' for more sophisticated package
manager interaction.
http://www.prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP11

I've written a prototype implementation some weeks ago.

This still needs a way to communicated modules to build or link.
For now I've simply added a pragma(build, <package>) which builds
every import from this package (globally, it's a prototype).

Al together it can be used like this.
https://github.com/dawgfoto/graphics/blob/master/src/graphics/_.d

There are some issues though that would benefit from good ideas.
Especially a better solution for import path and build declarations
would be great.

DIP14 was not so well received.
http://www.prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP14.

martin

BTW, I don't think a build tool and a package manager should be mixed together in one tool. Instead they should be very well integrated with each other.

--
/Jacob Carlborg

Reply via email to