Don wrote:
Lars Ivar Igesund wrote:
Don wrote:
druntime should certainly not become any bigger (in scope), as that
would defeat the purpose of separating the runtime from userspace in
the first place. The topic of common userspace functionality should be
kept separate from the topic of druntime.
I think you are confusing druntime (the project) with the D runtime.
druntime includes the gc as well the runtime, though they are seperate.
I see no reason why including core modules in the druntime project would
destroy the seperation.
Really, this is entirely a question of naming.
core.XXX seems to me to be the perfect namespace, certainly for the key
math modules which I'm most concerned about (std.math/(tango.math.Math,
tango.math.IEEE), and possibly also the low-level bigint routines. These
are all functionality which is closely tied to the compiler).
Totally agree.
Although the name 'druntime' implies it'll only contain the runtime, I
think it ought to contain all the common functionality that virtually
all applications and libraries will absolutely need: the runtime itself,
gc, TypeInfo, math, containers (including ranges), algorithms, string
processing, date/time, and IO.
Without those commonalities, any "compatibility" between Phobos and
Tango will be purely illusory.
Whether the commonality is realized within druntime, or within some
other low-level common library (like "dcore"), is immaterial to me. And
actually, I don't really care whether Phobos and Tango have their own
implementations. But there should be an API (interfaces? concepts? some
new template-interface mechanism? doesn't matter.) that both Phobos and
Tango implement, so that library consumers can seamlessly pass low-level
objects between Phobos and Tango dependent libraries.
--benji