DIP11: Automatic downloading of libraries

Bernard Helyer b.helyer at gmail.com
Tue Jun 14 08:20:03 PDT 2011


We just had a discussion with Andrei on IRC. Logs follow:

<andralex> bernardh: destroy
<andralex> so I can cry
<bernardh> This could be handled by an external tool, which would not 
increase the burden on the language and implementation. 
<bernardh> Because suddenly you've added networking to the compiler, 
which is fine, but it better be worth it. 
<bernardh> And really what you add to the language isn't worth it.
<bernardh> A pragma that says you can fetch it from that?
<bernardh> A build tool could do that. 
<bernardh> No need for that to be encoded in the source.
<bernardh> andralex, tl;dr - you don't add enough semantics to justify 
adding this to the compiler
<andralex> bernardh: well
<andralex> the advantage is that the barrier of entry for sharing code 
and using shared code is lowered
<andralex> just paste one line and you're ready to go
<bernardh> Yeah, but most projects use a build tool.
<bernardh> So that _still_ has to be set up.
<bernardh> That's non-zero.
<bernardh> If you add the capability to that tool.
<bernardh> The increase is identical to that if you added it the compiler.
<bernardh> Besides which, URLs to libraries seems better in build scripts 
than the source itself.
<bernardh> andralex, _and_ that cuts down on modifications to the 
compiler (you're proposing a change to the link behaviour in that case). 
<bernardh> So my point remains. 
<bernardh> You add burden to the language and the implementation for no 
gain.
<andralex> hm
<andralex> well I mentioned to walter that rdmd could take care of that
<andralex> he wanted it to be in dmd
<andralex> his point is this:
<andralex> say I'm John Smith and I wrote some cool D code
<andralex> how do you try it?
<andralex> well it depends on some libs
<andralex> so you need to download John's code and those libs
<andralex> put them somewhere
<andralex> then build accordingly
<andralex> this proposal cuts through all that red tape
<bernardh> You didn't respond to me at all. 
<andralex> ?
<andralex> You mentioned no gain
<bernardh> The build tool could refer to scripts and then the 
dependencies would be automatically set up just the same.
<andralex> I just told you where the gain is
<bernardh> ^ 
<andralex> who writes the scripts?
<bernardh> Library writers. 
<Suprano> ME
* wilsonkk has quit (Remote host closed the connection)
<andralex> exactly
* Joseph_ has quit (Ping timeout: 276 seconds)
<bernardh> What's your point?
<andralex> so everyone will choose their own paths, their own 
conventions, their own dependency setup
<bernardh> The simplest form for John
<bernardh> No, because the conventions would be set by the tool.
<mleise> I can understand both your points of view well. This feature 
fits with dmds other built-in capabilities: ddoc, profiler, code 
coverage, ... . Then again it is something you expect to be done once by 
built tools (like Maven) and it adds some non-determinism to the compiler.
<Nekuromento_work> I think it complicates things more than it helps
<Nekuromento_work> where dmd will fetch the code?
<Nekuromento_work> how can dmd interact with code that needs custom build 
sctips
<Nekuromento_work> what happens if several of my projects use one 
library? will dmd keep one copy for each?
<Nekuromento_work> what happens if I use different versions?
<Nekuromento_work> etc.
<bernardh> The end result for the user would be the same .
<bernardh> Paste url in file.
<bernardh> Use code. 
<bernardh> Happy. 
<Nekuromento_work> the point is, It's not compiler's responsibility 
<andralex> Nekuromento_work: why not?
<andralex> I mean I don't see a strong reason why not
<bernardh> andralex, because the compiler does no other build work
<andralex> hm
<bernardh> andralex, the build tool WOULD STILL BE REQUIRED, unless DMD 
does a whole lot more
<andralex> well I need to go; at best we should discuss in the newsgroup 
so there's an archive
<bernardh> So adding it to the compiler would only move it.
<bernardh> Unless the DIP is improved, I for one won't implement it. 
<andralex> bernardh: the problem with having a build tool is that it 
requires additional files
<bernardh> Waste of time in its current form.
<andralex> config, etc.
* wilsonkk (~kvirc at S0106001b11030a92.cg.shawcable.net) has joined #d
<andralex> with this it's all included in the source
<andralex> where it belongs
<bernardh> Yes but it's STILL REQUIRED
<bernardh> You haven't removed the build tool
<bernardh> only one aspect
<andralex> right
<andralex> agreed
<bernardh> So without more support, it's a useless addition. 
<bernardh> That's my opinion, in the end.


More information about the Digitalmars-d mailing list