From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 104764 invoked by alias); 18 Nov 2019 22:10:23 -0000 Mailing-List: contact libstdc++-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libstdc++-owner@gcc.gnu.org Received: (qmail 104750 invoked by uid 89); 18 Nov 2019 22:10:22 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1084, H*i:sk:492dcd9, H*f:sk:492dcd9, our X-HELO: mail-qk1-f171.google.com Received: from mail-qk1-f171.google.com (HELO mail-qk1-f171.google.com) (209.85.222.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 18 Nov 2019 22:10:21 +0000 Received: by mail-qk1-f171.google.com with SMTP id z23so15940925qkj.10; Mon, 18 Nov 2019 14:10:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=kCAD2XgMLo0jvGjCm8ZOIVe7Sw5Txg3e5NBPaUOk3qQ=; b=k6AlajQ1JOgcAIWsDv0h3Czq5vBLrqPQAmTv6TYBqdQV/zyCoNpK70a2QASUz9zOeq jjis6Q6pjqf5J4nmZHn97tMDuixB4FCBE7C/ezjePK9n57zLNLZnawvFM2wPv/9q26zE FVWMJ36+wpKR7Z+gQyrpftT6HR5gGXqeL+KDpzCX3N3Z5IZtUghYy4t0NiVZlTH5qNF7 G/ZMI/TSvjRGWi6bDkUzjHnDW2J8QQcHP1Mol/JtrPhvD2yMQWRu6OmfCgXnFHryqH3/ Gdp9NMtdr6I4igEXVt4MxWsDVemTUZ634lhOISHunbbl3HdjDQqxhSxtThqE0XZdBqow p+wQ== MIME-Version: 1.0 References: <93d1a4b7-bbea-2766-9a71-6ba1a789d0da@gmail.com> <492dcd94-dbc7-49b4-e3d1-6edb0e812106@gmail.com> In-Reply-To: <492dcd94-dbc7-49b4-e3d1-6edb0e812106@gmail.com> From: Ville Voutilainen Date: Mon, 18 Nov 2019 22:10:00 -0000 Message-ID: Subject: Re: [PATCH][Hashtable 5/6] Remove H1/H2 template parameters To: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= Cc: "libstdc++@gcc.gnu.org" , gcc-patches Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg00076.txt.bz2 On Mon, 18 Nov 2019 at 23:41, Fran=C3=A7ois Dumont w= rote: > > Also, is > > this ABI-compatible > > for our unordered containers? > > > IMHO, yes it is. > > In hashtable_policy.h _H1 was the user hash which I renamed in _Hash, > the same template name that for unordered containers. > > _H2 was always _Mod_range_hashing and previous _Hash always > _Default_ranged_hash, both stateless types. Only _H1 and _H2 were stored > in _Hash_code_base for instance. _H1 is still as _Hash and _H2 was just > empty and moreover stored last so removing it has no impact. Right, and as I understood the code, it's all empty base objects anyway, so it boils down to whether a set of empty bases can change without causing an ABI break, and I don't think there's an ABI problem here because the actual _Hashtable is stored as a member of various containers, and its size doesn't change, and based on what you wrote, with which my code-reading agrees, the behaviour doesn't change either. So the patch seems okay to me.