On 6/14/11 1:22 PM, Robert Clipsham wrote:
On 14/06/2011 14:53, Andrei Alexandrescu wrote:
http://www.wikiservice.at/d/wiki.cgi?LanguageDevel/DIPs/DIP11

Destroy.


Andrei

This doesn't seem like the right solution to the problem - the correct
solution, in my opinion, is to have a build tool/package manager handle
this, not the compiler.

Problems I see:
* Remote server gets hacked, everyone using the library now
executes malicious code

This liability is not different from a traditional setup.

* Remote source changes how it is built, your code suddenly breaks and
has to be updated, rather than being handled automatically

This is a deployment issue affecting this approach and any other relying on downloading stuff.

* Adds a lot of unnecessary bloat and/or dependency on external modules
+ Want to compress source code? dmd now depends on decompression libs

Indeed, I think compression will indeed be commonly requested. The same has happened about Java - initially it relied on downloading .class files, but then jar files were soon to follow.

It's been a feature asked in this forum, independently of downloads. A poster implemented a complete rdmd-like program that deals with .zip files.

+ Want to use git? dmd now depends on git

Not if the server can serve files, or if you use a different tool.

+ Remote code uses new compression method that an older dmd doesn't
support

If compression handling is needed, dmd can standardize on it just like jar files do.

* Remote server is down - build takes forever while waiting

So does downloading or building with another tool.

+ Make dmd time out after a couple of seconds - build fails

So would build directed with any other tool.

* Makes the assumption that the build machine is has internet
connectivity, if it doesn't building suddenly gets a lot more
complicated

Fair point.

* Source code changes location, build breaks unless a redirect is
possible - if it changes protocol it's useless

See my answer with a central repo.

My understanding is that you find automated download during the first build untenable, but manual download prior to the first build acceptable. I don't see such a large fracture between the two cases as you do.


Andrei

Reply via email to