May 05, 2004
[I'm also posting to D.gnu and digitalmars.D as I want input from people who may not naturally inhabit a template library NG. ;) ]

Good day and hearty felicitations, ye folks of inestimable patience and restraint.

In light of C's question, here're my current thoughts on timing. Bearing in mind the four enumeration types to be supported - #1 foreach; #2 Iterators; #3 Ranges; #4 Interface-based - I think the following is likely:

- Within the next few days I intend to release DTL 0.1, which will include some
basic classes, providing enumeration #1 (fully), #2 (very partial: iterators, but
few algorithms)
- as soon as Walter can solve the mixins issue I can release DTL 0.2, which will
include the Ranges mixins (#3) enumeration. Obviously, once I've done it for one
container, I've done it for all, since it's a mixin. That's the point, obviously.
;)
- I confess I've forgotten the status of the interface-based enumeration (#4). It
may be that I've cracked that already, or it may be a while away. I'll have to
get my D head on and go back to it. ;). Maybe DTL 0.3 can follow a few days after
0.2 (or 0.1)

Subsequent to these fundamental aspects, the following would need to be done:
- determination and formalisation of the container/algorithm complexities, e.g.
is it 0logn, O^2, etc.
- implementation of a good spread of the fundamental containers and algorithms
that we'll all need. Note that I do not want to turn DTL into a kitchen-sink
outfit - and it does not need to be anyway, since DTL mixins and algorithms will
be usable with *any* containers (e.g. recls.Search) - but we do need a good set
of containers to take to the inaugural ball.
- lots of testing.
- d ... d ... d ... (calm, calm, calm). DOCUmentation.

If everything goes well, then we could see DTL 1.0 into Phobos in about two months time. Naturally, it'll be available as a non-Phobos thing before then. (I'm going to take the "arrogant" step of defining it in std.dtl, rather than in synsoft.dtl, because it's just too much of a PITA for people who've used the pre-std version to change over. I know this from my own experience in the registry and recls modules. If anyone has a problem with this, you may sue my fat hai.. ....... ..se! <G>)

Hope that's got you all brimming with confidence, saliva and trepidation.

Matthew