Phobos addition formal review: std.experimental.allocator

Adam D. Ruppe via Digitalmars-d digitalmars-d at puremagic.com
Tue Jun 23 10:15:11 PDT 2015


On Tuesday, 23 June 2015 at 16:56:55 UTC, Andrei Alexandrescu 
wrote:
> But that doesn't apply to packages that do NOT originate as big 
> modules, so they have no backward compatibility issue.

My thought isn't really about backward compatibility but about 
minimizing dependencies with sibling modules.

I don't want to repeat my argument too much from the other 
thread, but imagine you're writing a minimalist library that is 
meant to interact with other minimalist libraries. To interact, 
you want a shared interface and basic types. But to be 
minimalist, you want to pull as little other standard code as 
possible.


The typical user might just import std.whatever and get it all 
available. But this minimalist user only wants 
std.whatever.basic_interface. If the basic interface is shoved 
inside package.d, she can't get get to it without inadvertently 
pulling in more modules too. This can quickly grow into a web of 
dependencies where importing just an interface definition ends up 
grabbing dozens if implementations you don't want too, bloating 
compile times and binary sizes.


More information about the Digitalmars-d mailing list