April 01, 2011
Hi,

My name is Ian Bishop and I'm a 4th year BCS student at the University of New Brunswick. I'm interested in the GSOC Project of working on containers for D. This sort of project is right up my alley, my major is Theory and Computation and I have taken related courses such as data structures, algorithms, compiler construction and programming language theory.

I realize there's already another student interested in working on this stuff. Is the project taken or is there room for one more?

Either way, I have a few questions about the project itself:

What kind of data structures are most wanted (or needed)? There seems to be a lot of discussion in the previous threads about the need for a doubly-linked list and deque. Is the associative array implementation supposed to be a permanent replacement for a proper map or is this also required in practice?

For more abstract types, such as stacks, are these intended to be implemented as concretely or using container adapters as they are in the STL?

What about the stuff over at <http://www.dsource.org/projects/dcollections>? It's licensed under Boost, I haven't looked at it too hard but it seems like some of this stuff would be a good fit for the std.container. Is there any reason (other than lack of time/resources) that this hasn't been done?

Thanks for your time,

Ian
April 01, 2011
On Fri, 01 Apr 2011 00:39:42 -0400, Ian Bishop <bishop14@gmail.com> wrote:

> What about the stuff over at <http://www.dsource.org/projects/dcollections>? It's licensed under Boost,
> I haven't looked at it too hard but it seems like some of this stuff would be a good fit for the
> std.container. Is there any reason (other than lack of time/resources) that this hasn't been done?

dcollections when released for d2 (prior to the existance of std.container) was proposed as the standard container library for D/Phobos.  Through discussion, Andrei and I could not agree on the design of a collections package, so std.container was born with Andrei's design, and dcollections remains as-is.  The major sticking points right now are the notion of cursors and the interface hierarchy, both of which Andrei does not want.  I have said in the past I'm willing to remove the interfaces for Phobos, but the cursors must stay, they are essential IMO to a collection package.

That being said, the license is boost, I have already ported my red black tree implementation to std.container so my name is in the std.container authors, there should be no barrier to porting any dcollections code to std.container as long as Andrei approves of the design.  I am willing to have any code from dcollections used in std.container.

I am also quite willing to help answer any questions you have about containers and dcollections.  You probably are more trained than me academically with containers, so I might not be able to answer (or maybe even understand) all your questions ;)

-Steve