Re: ordered string-list considered harmful, was Re: [PATCH v3] Allow aliases that include other aliases
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Sep 7, 2018, 06:32 UTC
- Message-ID
- <20180907063241.GA172953@aiede.svl.corp.google.com>
- In-Reply-To
- <20180907032401.GB31728@sigill.intra.peff.net>
Jeff King wrote:
> I don't see any point in generating a sorted list and _then_ making an > auxiliary hashmap. My idea was that if you're using a sorted string-list > for lookup, then you can replace the whole thing with a hash (inserting > as you go, rather than sorting at the end).
What if I'm sorting a string list in preparation for emitting a sorted list, and I *also* want to perform lookups in that same list? In other words:
[...]
> I think Stefan pointed out a "case 4" in the other part of the thread: > ones where we really care not just about fast lookup, but actual > iteration order.
I had assumed that that was the whole point of this data structure. Anything else that is using it for lookups should indeed use a hash map instead, and I can take my share of blame for missing this kind of thing in review.
[...]
> I think I like the hashmap way, if the conversion isn't too painful.
If we don't have any callers that actually need the sort-and-lookup thing, then yay, let's get rid of it. But I don't actually think of this as the hashmap way. It's the get-rid-of-the-unneeded-feature way.
In other words, *regardless* of what else we should do, we should update any callers that want a hashmap to use a hashmap. Please go ahead, even if it doesn't let us simplify the string list API at all.
Thanks, Jonathan