Astute readers may note two things: 1) It has been a while since I posted what should have been a followup to the previous posts, wherein I complete my discussion of the C++ DF model, and finally get this DF monkey off my back. And 2) that a previous post (DF Part 2, where I actually explain how the C++ DF model works) has been temporarily removed.
Many reasonable scenarios exist to explain these phenomena. Suprisingly, the truth has very little to do with the Bermuda Triangle. I believe the C++ DF model may be undergoing some revision - and it would be a Bad Thing to leave up a post on what could be an outdated (and incorrect) description of the model.
When the language design team (a team I must stress I am an observer of) has Finalize()d their design, I will recreate post #2 anew, and the final post on DF will also see the light of day. I can't say much about it yet (not until I've had a chance to play around with it), but from what I've seen, I'm very pleased with the new design.
So, I'm on board with the new design, if for no other reason than the fact that my final post (how the C++ DF model and the CLR Dispose pattern) was nearly impossible for me to write under the previous design. Not because I'm a poor writer :), but because the previous design left the developer with some very tough problems to handle elegantly. This new design is far more elegant, to my eyes.
While we wait on that post, I may take some time later this week to mull over some general issues that have been bothering me recently. In the meantime, here's a juicy article by Herb (who is a member of the language design team) on a subject very close to our current lines of discussion.