On Fri, 12 Aug 2011 02:17:36 -0400, kennytm <[email protected]> wrote:
"Steven Schveighoffer" <[email protected]> wrote:
On Thu, 11 Aug 2011 17:20:04 -0400, Nick Sabalausky <[email protected]> wrote:
> "Andrei Alexandrescu" <[email protected]> wrote in
> message
> news:[email protected]...
>>
>> It's difficult to get all dependencies when not all sources have
> > been >> yet
>> downloaded.
>>
>
> With DIP11, yes. With a traditional-style package manager, no.
With either style, you need to download a package in order to
determine if you need to download other packages (package a may
depend on package b even though your project does not depend on
package b). The DIP11 version does this JIT, whereas your version
does it before compilation. It's not really any different.
-Steve
In Debian's apt, there will be a central index that records all
dependencies for packages in the repository. So the client only needs to
synchronize that index file regularly. The system will know package A
depends on B which depends on C and D and download all 4 packages.
This could be done (in fact, the tool could have a url system that uses
apt). But it's beyond the scope of the DIP, which is to define a way to
hook the compiler for a downloading tool when a file is on the Internet.
That said, since you need to download the pakcgaes anyway, having a
central index doesn't reduce the bytes you need to transfer and parse if
DIP11 doesn't support updating.
All the DIP does is provide a hook so the compiler can ask an external
tool to download files/packages/whatever. It leaves open the protocol
used by the tool, except that it should be in url form.
The tool can implement the download any way it wants (individual files,
packages, full-blown metadata-based centralized-indexed kitchen-sinked
github or apt or whatever).
-Steve