> > > > >> Uhm, can you show some examples? > > > > > >Recently there were 2 new implementations of BBlockCache written, > > > to > > > replace > > >the one that existed in the tree. Also, private APIs have gone > > > > The one which existed in the tree was simply not working correctly. > > Since there was no tests written for it, we couldn't say if it was > > correct or not. After Jeremy Rand tested it accurately, a correct > > implementation was committed. > > Fair enough. Jeremy wrote an implentation himself that worked, and > Marcus wrote another IIRC. Yes, there was a tiny bit of duplication of effort there. I was asked to write some tests for BBlockCache because the initial implementation was a bit suspect. As I wrote those tests, I did in fact find issues with the implementation. Rather than come back to the team with a list of defects, I took it upon myself to also try to repair the initial implementation. Concurrently, Marcus indicated through email to the list that he had an idea for an alternate implementation. I wasn't sure from the exchange whether or not he was going to implement his idea so that is how we ended up with two implementations. We kept Marcus' and it really only cost me about 1-2 hours of effort (BBlockCache is pretty simple). So there was a tiny bit of duplication of effort but nothing too significant and we ended up with an excellent implementation and I hope some good tests for it. In the end, the decision to change BBlockCache was simple because it was defective compared to R5. Everyone could agree that it needed to change because there were bugs and performance issues. -- Jeremy Rand jrand@xxxxxxxx