On Tue, May 22, 2012 at 2:35 PM, Stefan Fuhrmann <[email protected]> wrote: >... > On a more general note: We don't use hashes as a means to > randomize our data. For us, they are simply containers with > an average O(1) insertion and lookup behavior. The APR interface > also allows for iterating that container - so it *has* an ordering > and it has been quite stable under different operations and > over many versions of APR.
I think that's the key insight here: dictionary data structures shouldn't be depended upon to have a stable ordering. Almost any generic key-value mapping type doesn't make that guarantee, and yet we've gotten into the bad habit of assuming it. When the underlying assumption became invalid, there went our code. In some ways, I guess we had it coming. In the long run, the problem is one of deciding out what output really should be canonically sorted, and then doing so. I'm not volunteering for the effort, but attempts to monkey with the underlying data structure are *not* the way to go. -Hyrum -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com/

