On Tuesday, 26 August 2014 at 19:22:22 UTC, Daniel Murphy wrote:
"eles" wrote in message news:qrfucjdbmydvoqgey...@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.

Reply via email to