On Wed, Jun 20, 2012 at 11:23 PM, Sean Silva <[email protected]> wrote:
> Wow that got incredibly mangled somehow. it was meant to say: > > "Thank you Jakob for patiently walking me through my first non-trivial > patch set! I'll see what I can do to ensure deterministic iteration order. > " > > I'm still looking for a way to ensure deterministic iteration order > without making a mess of the code, such as just blindly adding a special > comparator to each of containers keyed on pointers; that would just make > the code more muddled (even in cases where the container isn't being > iterated over). There are also a couple hash tables that are keyed on > Record*'s, which I think can be changed but I'm not familiar enough with > the hash traits that they use. Any ideas for a good way to migrate to > stable iteration interfaces? Thankfully, each Record has a field `unsigned > ID;` which uniquely identifies it, so redirecting any hash/compare to that > should be safe. > I think introducing similar ID fields which are stable is the best strategy. In particular, I like to dump the hashtable to a vector, and then sort on the stable key. If you're lacking one of them, a common easy way to synthesize such an ID is to track order-of-allocation in the ID variable using a global atomic counter of some form.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
