Re: What's cooking in git.git (Oct 2020, #03; Mon, 19)
From: Elijah Newren <hidden>
Date: 2020-10-23 19:17:58
On Fri, Oct 23, 2020 at 1:02 AM Jeff King [off-list ref] wrote:
On Mon, Oct 19, 2020 at 11:13:22AM -0700, Junio C Hamano wrote:quoted
* en/strmap (2020-10-13) 10 commits - strmap: enable allocations to come from a mem_pool - strmap: add a strset sub-type - strmap: add functions facilitating use as a string->int map - strmap: enable faster clearing and reusing of strmaps - strmap: add more utility functions - strmap: new utility functions - hashmap: introduce a new hashmap_partial_clear() - hashmap: allow re-use after hashmap_free() - hashmap: adjust spacing to fix argument alignment - hashmap: add usage documentation explaining hashmap_free[_entries]() A speciailization of hashmap that uses a string as key has been introduced. Hopefully it will see wider use over time. Will merge to 'next'.I haven't gotten a chance to look at this carefully yet, but note that the strset here sort-of conflicts with the one I added recently in builtin/shortlog.c (already in master). I think the compiler won't complain because they never show up in the same translation unit, but we should avoid having two almost-the-same types in the codebase.
Makes sense.
I suspect my "check_and_add" function could be folded into Elijah's implementation. The other big difference is that mine uses the FLEX_ALLOC approach, and his doesn't. I haven't digested the code and discussion around that from Elijah's series yet.
From a brief glance, it looks like the code in shortlog would probably be easy to convert over. But more important is making sure we have a strmap/strset/strintmap API that we like. You provided a lot of good feedback and pointers on the first round of the series, so if you could find some time to take a look at the second round, it'd be very appreciated. I'm also very interested in your opinion on whether the changes I made were good enough, or if you'd like me to dig further into whether going the FLEX_ALLOC route will work.