Phobos for Review: std.buffer.scopebuffer

Meta jared771 at gmail.com
Mon Feb 10 15:05:28 PST 2014


On Monday, 10 February 2014 at 22:42:30 UTC, Jonathan M Davis 
wrote:
> And on top of that, as has come a number of times previously 
> when this sort of
> thing has been discussed, Phobos was not designed with the idea 
> that you would
> import entire packages at once, and it could cause some 
> entertaining symbol
> conflicts, which people would then complain about if we tried 
> to support
> importing Phobos packages in general. Also, even if there 
> weren't any
> conflicts now, we'd have to worry about additional conflicts 
> every time that
> we added a symbol to Phobos. At the extreme, if std had a 
> package.d file that
> imported _everything_ so that you could just import std; and 
> have all of
> Phobos, then adding any symbol to any module in all of Phobos 
> where there was
> another symbol with that same name in another, unrelated module 
> would then
> break existing code.

I absolutely hate getting symbol conflicts when importing 
multiple Phobos modules, but I don't think importing an entire 
package as a module is all that unreasonable. That's basically 
what we're doing right now, as Phobos is so flat. Your example of 
importing all of std is a bit extreme, but if we can't even 
support reasonable cases, then either D's module system, its 
design, or both have failed in this regard. One of the worst 
things about the module system currently is the private symbol 
conflicts, and fixing that would go a long way to allowing some 
real modularity in Phobos, as well as splitting up the different 
packages and factoring out any common functionality into 
privately-imported modules.


More information about the Digitalmars-d mailing list