DIP11: Automatic downloading of libraries
Steven Schveighoffer
schveiguy at yahoo.com
Tue Jun 14 12:25:16 PDT 2011
On Tue, 14 Jun 2011 15:14:28 -0400, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> On 6/14/11 1:58 PM, Steven Schveighoffer wrote:
>> I think it should be split as follows:
>>
>> dmd: determine *what* to download (i.e. I need to import module x.y.z)
>
> It can't (unless it does the download too) due to transitive
> dependencies.
dmd: I need module foo.awesome. Where is it?
filesystem: nope, don't have it
dmd: damn, I guess I'll need to check with the downloader, hey downloader
you have that?
downloader: hm... oh, yeah! I'll get it for you
filesystem: got it
dmd: ok, now what's in foo.awesome? Oh, hm... foo.awesome needs
bar.gnarly. Let me guess filesystem...
filesystem: yeah, I suck today, go ask downloader
...
How hard is that? I mean the actual downloading of files is pretty
straightforward, at some point the problem reduces to "download a file".
Why do we have to reinvent *that* wheel.
>
>> external tool: determine *where* and *how* to download it. (i.e. module
>> x.y.z lives on http://somerepository.org/x, go get it and save it)
>>
>> The advantages being:
>>
>> 1. there exists umpteen billion already-existing tools that fetch and
>> install data over the network
>> 2. dmd does not contain parts that have nothing to do with compiling,
>> which could potentially screw up the compiling part.
>> 3. Depending on the tool language, the barrier to development of it
>> would be significantly reduced. Most people feel quite uncomfortable
>> messing with compiler source code, but have no problems editing
>> something like a shell script, or even a simple d-based tool.
>> 4. The compiler is written in C++, and hence so would the part that does
>> this have to be... yuck!
>
> Not sure I grok 3 and 4, but as far as I can tell the crux of the matter
> is that dependencies are already embedded in .d files. That's why I
> think it's simpler to just let dmd take care of them all instead of
> maintaining dependency description files in separation from the .d files.
And it would, why wouldn't it? I think you may not be getting something
here...
> The umpteen billion tools don't know what it takes to download and build
> everything starting from one or a few root modules. They could execute
> the download, yes (and of course we'll use such a library for that), but
> we need a means to drive them.
dmd would drive them.
> I think Adam's tool is a good identification and alternative solution
> for the problem that the pragma solves.
I haven't seen it. Just thinking out loud...
-Steve
More information about the Digitalmars-d
mailing list