Tango - shallower hierarchy (was: Phango - questions)

Christopher Wright dhasenan at gmail.com
Tue Nov 27 05:47:16 PST 2007


Sean Kelly wrote:
> Marcin Kuszczak wrote:
>>
>> Some more thoughts:
>>
>> tango.core
>> - it seems to be another general aggregate type for different things like
>> tango.util. But I would expect modules should be very low level, commonly
>> used stuff (not complex as opposite to util). That said I wonder why 
>> there
>> is whole threading package in core? In what sense is threading 'core'? I
>> think that even on multicore machines it still be a lot of applications
>> which will be single threaded. What's more I found it counterintuitive:
>> when I want in my application threading support I would rather look for
>> tango.concurrency or tango.threading or tango.threads. In this package
>> should be also 'sync' package.
> 
> tango.core is roughly akin to java.lang in Java.  It is intended to 
> contain essential type definitions, utilities, and expose runtime 
> features.  Threading is actually a runtime feature, which is why it is 
> in core.  tango.core.sync exists because I feel that simple threading 
> primitives are an essential language feature.  Any additional threading 
> utilities will likely go in tango.util.concurrent or the equivalent.

Can you give me a brief, 95% accurate guide to where to find the modules 
I want? Currently, I'm confused by the layout of Tango -- by why all the 
metaprogramming stuff, array manipulation functions, and Variant are in 
tango.core, for instance, and not tango.util; by why there are a bunch 
of stream iterators in tango.text; why tango.io contains hash streams 
and compression streams and all filesystem stuff except for a couple of 
path utility methods that are in tango.util.

> Sean



More information about the Digitalmars-d mailing list