build system

Marco Leise Marco.Leise at gmx.de
Sat Nov 5 06:55:37 PDT 2011


Am 26.10.2011, 20:43 Uhr, schrieb Gor Gyolchanyan  
<gor.f.gyolchanyan at gmail.com>:

> I agree.
>
> On Wed, Oct 26, 2011 at 10:35 PM, Jacob Carlborg <doob at me.com> wrote:
>> On 2011-10-26 15:39, Martin Nowak wrote:
>>>
>>> On Wed, 26 Oct 2011 12:26:56 +0200, Gor Gyolchanyan
>>> <gor.f.gyolchanyan at gmail.com> 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
>>

I disagree. Maven is an example of a tool that does all-in-one (even a lot  
more than package management and compiling) and it doesn't hurt. I don't  
want to find, download and install a compiler, a package manager and a  
build tool for the majority of build tasks. From what I've read this is  
also the tendency with other languages. If build tool and package manager  
end up in one download (or project) and you only need to invoke the build  
tool, that's a different story.


More information about the Digitalmars-d mailing list