Any chance to call Tango as Extended Standard Library

Sean Kelly sean at invisibleduck.org
Sat Jan 24 20:18:37 PST 2009


Benji Smith wrote:
> 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.

After the dsource project was created, someone suggested using the name 
'd-core' instead--I think it's more appropriate than 'd-runtime'.  That 
aside, I personally see the visible portion of the runtime to be roughly 
similar to java.lang.  Basically, I think it should contain the stuff 
that's required for a D app to simply load and run, but anything that's 
sufficiently intrinsic to the language or language philosophy is 
appropriate as well.  In addition to what's already there, I think an 
argument could be made for a range definition, essential math routines, 
and probably  a few other things.  But things that are simply commonly 
used belong in the standard library.

> Without those commonalities, any "compatibility" between Phobos and 
> Tango will be purely illusory.

True enough.  But attempting to include all of the stuff you mentioned 
above would require design agreement between the Phobos and Tango folks 
on quite a bit in terms of API philosophy.

> 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.

I agree that this is a fine goal.  It just isn't a task I have any 
intention of pursuing, personally.


Sean



More information about the Digitalmars-d mailing list