opApply not called for foeach(container)

Jonathan M Davis jmdavisProg at gmx.com
Wed Jul 11 10:11:05 PDT 2012


On Wednesday, July 11, 2012 15:43:13 Christophe Travert wrote:
> "monarch_dodra" , dans le message (digitalmars.D:171902), a écrit :
> > I just re-read the docs you linked to, and if that was my only
> > source, I'd reach the same conclusion as you.
> 
> I think the reference spec for D should be the community driven and
> widely available website, not a commercial book. But that's not the
> issue here.

The problem is that it's essentially spread out across 3 places: the online 
spec, TDPL, and the compiler. The online spec is _supposed_ to have all of the 
information and be correct, but sometimes behavior and/or planned behavior has 
been changed without properly updating the online spec, and sometimes the 
online spec just doesn't include enough information. TDPL includes intended 
behavior, which in most cases is correct and matches what the compiler 
currently does, but in some cases it includes features which just haven't been 
fully implemented yet (e.g. having multiple alias thises). The compiler is of 
course the current behavior.

So, when they don't match, we have to figure out what the intended behavior is 
and, in some cases, what we now want the behavior to be (regardless of what we 
intended before).

The source for the website is freely available ( https://github.com/D-
Programming-Language/d-programming-language.org ) - including the spec - and 
anyone can create a pull request for it. The main problem is probably a 
combination of the fact that the people who know enough to fix it are very busy 
with other things (like fixing compiler bugs) and the fact that they aren't 
always aware of what needs fixing. They're also much more likely to interpret 
what's there as was intended rather than what a newbie would take it to mean 
and not realize that it needs improvement. And I suspect that most of the 
people who know what they're doing around here don't actually look at the spec 
much. Raising specific issues when you find them and putting them in bugzilla 
will help.

So, yes, the online spec should have everything needed to specify D in it, but 
making it so requires time and manpower, and for the most part, that has been 
spent on other stuff (much of which is also critical - and often more 
critical).

- Jonathan M Davis


More information about the Digitalmars-d mailing list