std.experimental.color, request reviews
Adam D. Ruppe via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jun 24 12:59:38 PDT 2015
On Wednesday, 24 June 2015 at 05:30:50 UTC, Manu wrote:
> Right, and this was what I had in mind.
> I think the average user would want to: import std.color, and
> that's
> it. They will probably want RGB8 or RGBA8.
> Most users will never touch anything else in the API, so using
> package.d as an "import absolutely everything" doesn't seem
> useful at all to me.
Hmm, yes, that's an interesting point.
> I'm in favour of trimming package.d though. What do you suggest?
Even if it doesn't actually import everything, I'd still prefer
to keep the package.d pretty clear. Maybe move those bits out to
std.color.common or std.color.foundation and public import that
from the package?
On the other hand, if everybody is ok with the package.d itself
being a minimal import, this isn't necessary, I am just really
worried about it growing too big in the future.
> Surely the compiler won't eagerly resolve those aliases and
> instantiate all those colour types in the event they are never
> referenced?
It does:
struct Foo(T) { pragma(msg, T.stringof); }
alias foo = Foo!int;
dmd test.d
int
It printed the thing meaning the template did in fact get
instantiated when the alias mentioned it.
Templates inside the type won't be instantiated, but regular
methods will be - along with any templates *they* reference.
In the case of the color package, this is all pretty small and
probably not a big deal, but I'm just trying to set expectations
that others can follow too.
> I was very careful to limit run-away phobos dependencies.
> I really care about this, and I've tried to limit import scope
> in all locations.
Indeed, you did well.
More information about the Digitalmars-d
mailing list