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