core.stdcpp
eles via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Tue Aug 26 14:30:59 PDT 2014
On Tuesday, 26 August 2014 at 19:22:22 UTC, Daniel Murphy wrote:
> "eles" wrote in message
> news:qrfucjdbmydvoqgeyybp at forum.dlang.org...
> Apart from the fact that it's too late to change of course.
Well, that separation is just a detail of the implementation, not
of the specification. You could simply say that phobos has
several namespaces: std, etc, core.
> Druntime and phobos both had c/OS bindings at some point
> (core.stdc + std.c) but duplication is bad, so they were/are
> being moved into druntime.
The question of dupplication may be addressed now better, since
the newly fixed bug about hierarchical packaging.
> In druntime you have the true, hidden runtime code (startup,
> profiler, coverage, unittesting, AAs), plus core language stuff
> (GC, Thread (+core.time)).
_only that_ should be the runtime. And the sole part that one
needs to port in order to claim having a full port of the D
language (that is, the compiler). These are the tires of the
cars, the things that touch the ground. Everything else is
optional. (Pirelli had a nice advertisemnt with this line)
And, to go further, only c/OS bindings required for this are to
be embedded at this level.
> Phobos is supposed to be 100% optional, although it isn't,
> quite. If you don't want to use phobos, for example if you are
> automatically porting a large C++ application, it's nice to
> simply ban phobos and have that clear distinction.
Phobos shall be 100% optional, otherwise you don't have a
language, but a framework. This is the separation line: the
runtime is a must for the language, the standard library is not.
If in doubt wether one piece belongs, cut here.
More information about the Digitalmars-d-announce
mailing list