Denis Koroskin Wrote: > I think believe we could take advantage of current state of both libraries in > D2 - they are both incomplete and being redesigned to fit D2 better. > We could revisit both Tango and Phobos, and clean them up by removing > outdated modules and modules with same functionality. This will make Phobos > really small and much easier to learn. > > On the other hand, Tango will continue providing all the extended > functionality. > > Here is a list of Phobos modules that I believe could be safely removed: > > - crc32 and std.md5 - these should be deprecated in favor of > tango.io.digest.Crc32 and tango.io.digest.Md5 > Tango is better designed and has support for other algoriths (MD2, MD4, > SHA256, SHA512, Tiger and more). > See http://www.dsource.org/projects/tango/wiki/ChapterEncodingAndCrypto for > details. > > - std.atomics - tango.core.Atomic is superior to it (std.atomics has nothing > but CAS anyway). > - std.base64 - deprecate in favor of tango.io.encode.Base64 > - std.cover - is it supposed to be visible to user? Should it be in Phobos? > - std.loader - deprecate in favor of tango.sys.SharedLib > - std.bitarray > - std.openrj > - std.process - merge with tango.sys.Process > - std.regexp - buggy, deprecate in favor of tango.text.Regex > - std.socket, std.socketstream - deprecate in favor of tango.net.* > - std.uni - deprecate in favor of tango.text.Unicode > - std.uri - deprecate in favor of tango.net.Uri > - std.xml - deprecate in favor of tango.text.xml.* > - std.zip and std.zlib - deprecate in favor of tango.io.compress.* > > In almost *all* cases Tango has cleaner, faster and less buggy implementation > of the same functionality.
That's an interesting list. Without the ability to distribute Phobos and Tango together from the digitalmars.com site, I doubt anything will get dropped from Phobos in favor of what is in Tango. For a combined distribution to ever occur requires a whole lot more coordination between Phobos and Tango that I doubt we'll see for a very long time. > Other modules - does anyone use any of these: > std.bitmanip > std.bind > std.boxer > std.outbuffer > std.stdint > std.syserror > std.system > ? std.bind is useful for binding data that will change before the delegate is called. I've used bind a lot when doing inter-thread communication with queues of pending commands. I'd also like to use a variant of bit array with fixed sizes, easier initialiation, and uses the SSE instruction set. Right now, neither Phobos nor Tango contains what I want.