Wish list

From D Wiki
Revision as of 20:24, 6 June 2013 by Abscissa (talk | contribs) (std.database: Link to DDBC)
Jump to: navigation, search


No one is working on this. It's tough to get started because, despite lots of discussion at various times on this forum, no one seems to really know what they want. Since the containers in question are well-known, it's much more a design problem than an implementation problem.


dsimcha has writen a segmented stack/region based allocator. He has also tried to define a generic allocator API, mostly following Andrei's suggestions. Andrei has suggested that allocators should have real-world testing on containers before being included in Phobos. Therefore, containers block allocators and if the same person doesn't write both, there will be a lot of communication overhead to make sure the designs are in sync.


Opening standard compressed/archived file formats needs to just work. This includes at least zip, gzip, tar and bzip2. Of course, zip already is available and gzip is supported by the zlib module but with a crufty C API. At least gzip and bzip2, which are stream-based as opposed to file-based, should be handled via streams, which means that streams block compression/archiving. Also, since tar and zip are both file based, they should probably be handled by the same API, which might mean deprecating std.zip and rewriting it.

Encryption and hashing

This is more an implementation problem than a design problem. No one is working on it. Some work has been done here but it's unfinished. One of the ideas is to wrap OpenSSL? at first and then implement the most useful crypto primitives in D to avoid library dependency and to make them usable with CTFE.

An improved std.xml

Maybe Thomas Sowinski is working on a replacement, but haven't seen any updates in a long time.

Matrices and linear algebra

Cristi Cobzarenco's GSoC? project is a good starting point but it needs polish. He has indicated that he wants to get back to working on it but doesn't have time.


This is a large, complicated project because we're trying to define a common API for a variety of RDBMSs. Again, it's more a design problem than an implementation problem. There is at least one current attempt at a unified interface: DDBC

Parallel algorithms

dsimcha has implemented a decent amount of these in his std.parallel_algorithm Github project, but has become somewhat frustrated and unmotivated to finish this project because so many of the relevant algorithms seem memory bandwidth bound and aren't substantially faster when parallelized than when run serially.