get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2233433/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2233433,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2233433/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260506123827.395657-1-tkaminsk@redhat.com/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/17/?format=api",
        "name": "GNU Compiler Collection",
        "link_name": "gcc",
        "list_id": "gcc-patches.gcc.gnu.org",
        "list_email": "gcc-patches@gcc.gnu.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null
    },
    "msgid": "<20260506123827.395657-1-tkaminsk@redhat.com>",
    "date": "2026-05-06T12:38:13",
    "name": "libstdc++: Format all contiguous ranges usign spoan.",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "a001cbb4fa7c031592a3a00dbef98c43b349a151",
    "submitter": {
        "id": 90409,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/90409/?format=api",
        "name": "Tomasz Kamiński",
        "email": "tkaminsk@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260506123827.395657-1-tkaminsk@redhat.com/mbox/",
    "series": [
        {
            "id": 502980,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/502980/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=502980",
            "date": "2026-05-06T12:38:13",
            "name": "libstdc++: Format all contiguous ranges usign spoan.",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502980/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2233433/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2233433/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=YVhBnaLe;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=YVhBnaLe",
            "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com",
            "sourceware.org; spf=pass smtp.mailfrom=redhat.com",
            "sourceware.org; arc=none smtp.remote-ip=170.10.133.124"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9Zj251JBz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 22:40:06 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [IPv6:::1])\n\tby sourceware.org (Postfix) with ESMTP id 6CF874BA79AA\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  6 May 2026 12:40:04 +0000 (GMT)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id B0EBD4BA23EB\n for <gcc-patches@gcc.gnu.org>; Wed,  6 May 2026 12:38:31 +0000 (GMT)",
            "from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-410-JLDDWWLVMIiurO9qI9gtkw-1; Wed,\n 06 May 2026 08:38:30 -0400",
            "from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 2D03F180056E; Wed,  6 May 2026 12:38:29 +0000 (UTC)",
            "from localhost (unknown [10.44.34.53])\n by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id C987519560A3; Wed,  6 May 2026 12:38:28 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 6CF874BA79AA",
            "OpenDKIM Filter v2.11.0 sourceware.org B0EBD4BA23EB"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org B0EBD4BA23EB",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org B0EBD4BA23EB",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778071111; cv=none;\n b=cuSZXsLpy8S0guNNF9Zd14W4KMV+mBlPnAM9xTpplk2fLSmghmanpkeI76CadwDSK81ZVjjfqydX4S+GkwiPcZToDTMC0AtfULycx2cdnJLKOqkGDhR378M09L7ld8L3zBHl/ISf32Qf3H71cmezTrHmdOfMP0md+YKjPo+ce04=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778071111; c=relaxed/simple;\n bh=+rMndkQyUmCivSfIh/iUmWx5VvBV64iOL/nZnZ9xlTI=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=ZQDzxnxVjLAqAIKf3esnMlsS0wricpYH7s0WmMywnlJOAtupN4OYlv5SigZRrFYQ5QWKiE/monCcaYD1dZB9YDvDkiQiwfjjDMjATq8ylatZagMA4AB+yxPP+WQL6xzwU78xBUMOBlKYgtYbTcNITddLp5lJpMagxUEbBRf4BEc=",
        "ARC-Authentication-Results": "i=1; sourceware.org;\n dkim=pass (1024-bit key, unprotected)\n header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=YVhBnaLe",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1778071111;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=8RU4zu9yNPYe3G7Z07bkUxtWmuoHY9HcTZb2meYpm6U=;\n b=YVhBnaLeoXFCoyeuGBtvOdJ1CZV6AjMghce/r9nXg1NhmBwkTK12T1XnK9PI9rzzvzhqnB\n WPD5guCcEkdH6pV8jp5RnNUbGdWbl6vMXvcBtGfh4oG+SkWUPhM0PfsKVLCeD5VuB2Qtkv\n 57EHHvDXE6QacLGgLpd6Taw3UdSWOP0=",
        "X-MC-Unique": "JLDDWWLVMIiurO9qI9gtkw-1",
        "X-Mimecast-MFC-AGG-ID": "JLDDWWLVMIiurO9qI9gtkw_1778071109",
        "From": "=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>",
        "To": "libstdc++@gcc.gnu.org,\n\tgcc-patches@gcc.gnu.org",
        "Subject": "[PATCH] libstdc++: Format all contiguous ranges usign spoan.",
        "Date": "Wed,  6 May 2026 14:38:13 +0200",
        "Message-ID": "<20260506123827.395657-1-tkaminsk@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.12",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-MFC-PROC-ID": "wDS1zmPl_X_t5crHie5eo6QDc4t4Qy5ONwo_HJKWdEs_1778071109",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "content-type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "X-BeenThere": "gcc-patches@gcc.gnu.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>",
        "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>",
        "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>",
        "List-Post": "<mailto:gcc-patches@gcc.gnu.org>",
        "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>",
        "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "We convert all contiguous ranges into span of the possibly-const qualified\n_Tp (__format::__maybe_const<_Tp, _CharT>). The span object is const qualifed,\nto trigger _M_format<const span<T>> specialization, that is already used by\nformatter specialization for ranges.\n\nThis conversion is applied regardless if range is sized, and ranges::distance\nto compute the size. Even for user-defined iterators, they will observe range\nbeing iterated only once.\n\nFinally, using raw pointers to iterate range during formatting guarantees,\nthat no stdio lock will be taken. In consequence it would be now possible\nto enable_nonlocking_formatter_optimization for all contiguous ranges.\n\nlibstdc++-v3/ChangeLog:\n\n\t* include/std/format (range_formatter::format): Format all\n\tcontiguous ranges as span<__format::__maybe_const<_Tp, _CharT>>.\n---\n libstdc++-v3/include/std/format | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format\nindex 4627381fa9e..60adca93b5d 100644\n--- a/libstdc++-v3/include/std/format\n+++ b/libstdc++-v3/include/std/format\n@@ -6175,7 +6175,13 @@ namespace __format\n \tformat(_Rg&& __rg, basic_format_context<_Out, _CharT>& __fc) const\n \t{\n \t  using _Range = remove_reference_t<_Rg>;\n-\t  if constexpr (__format::__simply_formattable_range<_Range, _CharT>)\n+\t  if constexpr (ranges::contiguous_range<_Rg>)\n+\t    {\n+\t      const span<__format::__maybe_const<_Tp, _CharT>>\n+\t\t__spn(ranges::data(__rg), size_t(ranges::distance(__rg)));\n+\t      return _M_format(__spn, __fc);\n+\t    }\n+\t  else if constexpr (__format::__simply_formattable_range<_Range, _CharT>)\n \t    return _M_format<const _Range>(__rg, __fc);\n \t  else\n \t    return _M_format(__rg, __fc);\n",
    "prefixes": []
}