(Thanks for cc!) +1
Since V8's copy of base in some areas (not all) is a detached copy of Chromium's base switching to something that's wider used makes a lot of sense. One caveat: Presumably, this will stay in an internal dependency, so API types will have to go through std equivalents which sometimes means that some internal types would not move to absl to avoid conversion. (I still think this all makes a lot of sense.) On Fri, Oct 16, 2020 at 8:46 PM Leszek Swirski <[email protected]> wrote: > Thanks for the cc's, checking the temperature and buy-in from other team > members was indeed one of the reasons I sent out this email. > > On Fri, 16 Oct 2020, 20:36 Adam Klein, <[email protected]> wrote: > >> Making this a cleanup project makes sense (no, I don't have headcount to >> allot here), but thanks for making that explicit. Ideally this could be >> documented somewhere too. >> >> This plan sounds reasonable to me (and your base::Optional alias CL >> <https://chromium-review.googlesource.com/c/v8/v8/+/2476318> is a nice >> proof-of-concept). The other thing implicit in my question was: is there >> buy-in for this approach across the various areas in V8? I don't ask that >> everyone sign off, but I would like to offer the opportunity for folks to >> weigh-in if they have opinions (especially since I suspect not everyone >> follows v8-dev@ closely). I've CCed the relevant folks on this thread. >> >> - Adam >> >> >> On Fri, Oct 16, 2020 at 10:56 AM Leszek Swirski <[email protected]> >> wrote: >> >>> I saw this effectively as a cleanup project, with as much >>> staffing/prioritisation as, say, TNodification. If you have spare headcount >>> to offer for this I'll gladly take it :) >>> >>> The end state I would suggest, is to replace all uses of std::*map with >>> absl, and try to replace our base::TemplateHashMap with it too, turning the >>> former into a thin wrapper over the other. Also, replace any other relevant >>> base implementations with equivalent absl ones where applicable, with >>> transitional aliases in the base namespace. An example here would be >>> base::Optional and a couple of the template traits, like, say, conjunction >>> and disjunction. Using aliases and turning existing containers into thin >>> wrappers should reduce the binary size impact, and then inlining those >>> aliases can be done reasonably ad hoc, or in cleanup Fridays. >>> >>> How does that sound? >>> >>> - Leszek >>> >>> On Fri, 16 Oct 2020, 19:18 Adam Klein, <[email protected]> wrote: >>> >>>> What's the full transition plan here? We've done several adhoc >>>> transitions between different containers in the past, leaving us >>>> currently with a mix of hand-rolled and STL containers. While Abseil seems >>>> like it has some definite advantages, it seems like it'd be ideal, both for >>>> code size reasons and for uniformity across CL authors & reviewers if there >>>> was some agreed-upon end state, at least. Ideally there'd even be a >>>> staffed, prioritized effort to get us from the current state to some future >>>> state. >>>> >>>> - Adam >>>> >>>> On Tue, Oct 13, 2020 at 11:46 PM Leszek Swirski <[email protected]> >>>> wrote: >>>> >>>>> Hi all, >>>>> >>>>> I'm planning on adding Abseil as a dependency in V8, to get rid of >>>>> some of our hand-rolled base classes and (hopefully) reap the advantages >>>>> of >>>>> those engineers' work. An example use would be changing our hand-rolled >>>>> hashmap to a thin wrapper over absl::flat_hash_map/set: >>>>> https://chromium-review.googlesource.com/c/v8/v8/+/2464941 >>>>> >>>>> This plan is unofficially lgtm'ed by Chromium C++ folks - any >>>>> objections from our side? >>>>> >>>>> Cheers, >>>>> Leszek >>>>> >>>>> -- >>>>> -- >>>>> v8-dev mailing list >>>>> [email protected] >>>>> http://groups.google.com/group/v8-dev >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "v8-dev" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/v8-dev/CAGRskv_mgj%2BnH5SHa6m%2Bgsq9U3ZLRwZphzY8zhd_y67jxfbBdg%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/v8-dev/CAGRskv_mgj%2BnH5SHa6m%2Bgsq9U3ZLRwZphzY8zhd_y67jxfbBdg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>>> -- >>>> v8-dev mailing list >>>> [email protected] >>>> http://groups.google.com/group/v8-dev >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "v8-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/v8-dev/CAEvLGcKVpUsVH2ifAUzX0wAN2dgYaPDNoVixVW-%2B%2BYZkOT3o7w%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/v8-dev/CAEvLGcKVpUsVH2ifAUzX0wAN2dgYaPDNoVixVW-%2B%2BYZkOT3o7w%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> -- >>> v8-dev mailing list >>> [email protected] >>> http://groups.google.com/group/v8-dev >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/v8-dev/CAGRskv_0835CMHLEfOs_jzgRjHtfj08SCq6JjLWXx0LubKSZfQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/v8-dev/CAGRskv_0835CMHLEfOs_jzgRjHtfj08SCq6JjLWXx0LubKSZfQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> -- >> v8-dev mailing list >> [email protected] >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/v8-dev/CAEvLGc%2BqyeTE21GT-a2qUP5T02Gd8VX%3D92wOc_pC85FaSDLUHQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/v8-dev/CAEvLGc%2BqyeTE21GT-a2qUP5T02Gd8VX%3D92wOc_pC85FaSDLUHQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAH%2BmL5Co0AJnjxCPhb-L0spyu3DfRCwkDZdYj%2BEu5f%3Di3f1u4g%40mail.gmail.com.
