From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe30.google.com (mail-vs1-xe30.google.com [IPv6:2607:f8b0:4864:20::e30]) by sourceware.org (Postfix) with ESMTPS id AF15438582A2 for ; Mon, 4 Jul 2022 19:08:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AF15438582A2 Received: by mail-vs1-xe30.google.com with SMTP id i186so9852307vsc.9 for ; Mon, 04 Jul 2022 12:08:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=qQ0C0tbBsf+LKS72YAdFr/rvUYMwi35HXSTL0ITNRqk=; b=mizkXRLnnel60hKMmXJ+/uaoVXBn8vxQPxeQW3Zu9RBYsNa34uKB3gY+HXYO/rKTYO 98fMGjYBD3YhO0llVAzp1z91dr6llUTQRBcbI4BrwbDWKcRyA+SWJknr4tN++cO/ycU1 fLB+Xl25jmi94m0vR8RdSemMaHljPYbY4nygNeOkgBj6ZfDdC/M+jzmlDYQ9H7yDVncq nDneVcLz6nGLzzYopm4dKi6uXcKOGgzM0xRwqJC7YW8qbRdJ0yeFemsTYPVRDUZaaXs8 /UJlds7wDgbUgcu1cyhZ30dKgJiqc0My3MImBSxxDyVxBqxTgKhsdtSKlFdc5rokXhia bfYQ== X-Gm-Message-State: AJIora87djgrs/u4xak7pR7x3G2hDjjOmz2TbA4oatki6YfggcjWQAL9 r23VL9JiafFV1raNos0S8MQuxlXXTeNtrqZo X-Google-Smtp-Source: AGRyM1sVUw6+xJEfwae40ALNDCMeh6r1luj3nDFyRQg1jJGp4N5A/VbAnsw8iOIGfyA42CoP3rcj8A== X-Received: by 2002:a05:6102:10c7:b0:356:1dbe:7110 with SMTP id t7-20020a05610210c700b003561dbe7110mr18372991vsr.61.1656961728819; Mon, 04 Jul 2022 12:08:48 -0700 (PDT) Received: from smtpclient.apple ([2804:431:c7cb:fef6:fc57:dc88:c1a6:22c5]) by smtp.gmail.com with ESMTPSA id h21-20020ac5cbd5000000b003705929520fsm3474971vkn.55.2022.07.04.12.08.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Jul 2022 12:08:48 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.100.31\)) Subject: Re: [PATCH v4 0/3] C++20 P0482R6 and C2X N2653: char8_t, mbrtoc8(), and c8rtomb() From: Adhemerval Zanella In-Reply-To: <20220630125215.6052-1-tom@honermann.net> Date: Mon, 4 Jul 2022 16:08:45 -0300 Cc: libc-alpha@sourceware.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <20220630125215.6052-1-tom@honermann.net> To: Tom Honermann X-Mailer: Apple Mail (2.3696.100.31) X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Jul 2022 19:08:51 -0000 > On 30 Jun 2022, at 09:52, Tom Honermann via Libc-alpha = wrote: >=20 > This series of patches provides the following: > - A fix for BZ #25744 [1]. > - Implementations of the mbrtoc8 and c8rtomb functions adopted for > C++20 via WG21 P0482R6 [2] and for C2X via WG14 N2653 [3]. > - A char8_t typedef as adopted for C2X via WG14 N2653 [3]. >=20 > The fix for BZ #25744 [1] is included in this patch series because the = tests > for mbrtoc8 and c8rtomb depend on it for exercising the special case = where a > pair of Unicode code points is converted to/from a single double byte = sequence. > Such conversion cases exist for Big5-HKSCS.=20 >=20 > N2653 was adopted by WG14 for C2X and wording is present in the N2912 = revision > of the C2X working draft [4]. This patch series enables the new = declarations > in C2X mode and when _GNU_SOURCE is defined.=20 >=20 > This patch series addresses feedback provided in response to the prior > submission series starting at [5]. All feedback was addressed except = as noted > below: > - I removed the previously proposed wcsmbs/test-char8-type.c test as = redundant > per feedback. I prototyped extending the c++-types.data test as = suggested, > but that would have introduced a C++20 dependency. The test = demonstrated that > the char16_t and char32_t types were mapped to 'Ds' and 'Di' as = expected, but > char8_t got mapped to 'h' rather than 'Du'. It might be worth = extending this > test in the future if/when C++20 support becomes a minimal = requirement. > - I did not switch the iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c test = to use > TEST_COMPARE in favor of the existing custom error handling; the = current > error messages are customized to provide a more detailed explanation = of the > error, so removing that seemed like an arguable regression. My = changes retain > consistency with the existing code. I think it is reasonable to = switch to > TEST_COMPARE, but I think that should be done separately from this = change and > separately motivated. > - I did not change the c8rtomb() and mbrtoc8() implementations to use = thread > local storage when PS is null; the implementations continue to use = static > storage consistent with c16rtomb(), mbrtoc16(), c32rtomb(), and = mbrtoc32(). > I think it is reasonable to switch all of these functions to use = thread > local storage, but I think such a change should be done consistently = across > all of them and should be separately motivated. >=20 > Thank you to Joseph Myers, Carlos O'Donell, Adhemerval Zanella, and = Florian > Weimer for prior reviews of this patch series. >=20 > Tested on Linux x86_64. >=20 > [1]: Bug 25744 > "mbrtowc with Big5-HKSCS returns 2 instead of 1 when consuming the > second byte of certain double byte characters" > https://sourceware.org/bugzilla/show_bug.cgi?id=3D25744 >=20 > [2]: WG21 P0482R6 > "char8_t: A type for UTF-8 characters and strings (Revision 6)" > https://wg21.link/p0482r6 >=20 > [3]: WG14 N2653 > "char8_t: A type for UTF-8 characters and strings (Revision 1)" > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2653.htm >=20 > [4]: WG14 N2912 > "Programming languages =E2=80=94 C working draft =E2=80=94 June 8, = 2022" > https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf >=20 > [5]: libc-alpha mailing list > "[PATCH 0/3]: C++20 P0482R6 and C2X N2653: support for char8_t, = mbrtoc8(), and c8rtomb()." > = https://sourceware.org/pipermail/libc-alpha/2022-February/136723.html Hi Tom, Patches look good in general, just some really minor style issues I found in last review. I have fixed them and if you are ok I can install them, I have create a branch so you can check [1]. [1] = https://sourceware.org/git/?p=3Dglibc.git;a=3Dshortlog;h=3Drefs/heads/azan= ella/mbrtoc8-c8rtomb