Show a cover letter.

GET /api/1.2/covers/2226292/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2226292,
    "url": "http://patchwork.ozlabs.org/api/1.2/covers/2226292/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/cover/bmm.hhubpmz4v8.gcc.gcc-TEST.fdumont.30.1.0@forge-stage.sourceware.org/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/1.2/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,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<bmm.hhubpmz4v8.gcc.gcc-TEST.fdumont.30.1.0@forge-stage.sourceware.org>",
    "list_archive_url": null,
    "date": "2026-04-22T10:42:28",
    "name": "[v1,0/1] libstdc++: Reimplement __gnu_cxx::__ops functors",
    "submitter": {
        "id": 93220,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/93220/?format=api",
        "name": "François Dumont via Sourceware Forge",
        "email": "forge-bot+fdumont@forge-stage.sourceware.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/gcc/cover/bmm.hhubpmz4v8.gcc.gcc-TEST.fdumont.30.1.0@forge-stage.sourceware.org/mbox/",
    "series": [
        {
            "id": 500989,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/500989/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=500989",
            "date": "2026-04-22T10:42:28",
            "name": "libstdc++: Reimplement __gnu_cxx::__ops functors",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/500989/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2226292/comments/",
    "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 spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::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; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org",
            "sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::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 4g0xV074sYz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:15:36 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 13F86409EB5F\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 11:15:35 +0000 (GMT)",
            "from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id 2403F4B920C9\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:43:19 +0000 (GMT)",
            "from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id F108542B83\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 10:43:18 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 13F86409EB5F",
            "OpenDKIM Filter v2.11.0 sourceware.org 2403F4B920C9"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 2403F4B920C9",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 2403F4B920C9",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776854599; cv=none;\n b=GrmC6lZuFC33/FqOEqmSARLtT1YsajIjXw3Z3yr4C57YndqkZzfsOmln0TF/S9Mdd9WBdv6bJUN/oHPHIju3Nk9U/Iq/+iK0yAcOOOMnvaJgYn61XhNiIu6ybNY2vplFtTkHZqI228SBEDjvK3CDHa4aCb39sSsXMcy4kO3MlWc=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776854599; c=relaxed/simple;\n bh=+7UViandiaQSpOtKHzeDIQ6jNI5edOrubgSDjxVZTyQ=;\n h=From:Date:Subject:MIME-Version:To:Message-ID;\n b=QKFMFOHJhMy5+6fCC3cw/4I85mudcfSK/h/ea6aK0XWG65Se/xssjW3h3XdiFG4eIvaT4oI4BrsWl2tB1Iqn23zCgWteHYzJscREAzKd0+VzuPGEvAATmqoKVwUCKZJVNiBl0p0V24O3vcswX/zf/iagxvg8H1OBIdImw15lPCc=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "From": "=?utf-8?b?PT91dGYtOD9xP0ZyYW49QzM9QTdvaXNfRHVtb250X3ZpYV9Tb3VyY2V3YXJl?=\n\t=?utf-8?b?X0ZvcmdlPz0=?= <forge-bot+fdumont@forge-stage.sourceware.org>",
        "Date": "Wed, 22 Apr 2026 10:42:28 +0000",
        "Subject": "[PATCH v1 0/1] libstdc++: Reimplement __gnu_cxx::__ops functors",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "To": "gcc-patches mailing list <gcc-patches@gcc.gnu.org>",
        "Message-ID": "\n <bmm.hhubpmz4v8.gcc.gcc-TEST.fdumont.30.1.0@forge-stage.sourceware.org>",
        "X-Mailer": "batrachomyomachia",
        "X-Pull-Request-Organization": "gcc",
        "X-Pull-Request-Repository": "gcc-TEST",
        "X-Pull-Request": "https://forge.sourceware.org/gcc/gcc-TEST/pulls/30",
        "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>",
        "Reply-To": "gcc-patches mailing list <gcc-patches@gcc.gnu.org>,\n fdumont@gcc.gnu.org",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "Hi gcc-patches mailing list,\n=?utf-8?q?Fran=C3=A7ois_Dumont_via_Sourceware_Forge?= <forge-bot+fdumont@forge-stage.sourceware.org> has requested that the following forgejo pull request\nbe published on the mailing list.\n\nCreated on: 2024-12-29 21:16:51+00:00\nLatest update: 2025-09-15 04:50:50+00:00\nChanges: 0 changed files, 0 additions, 0 deletions\nHead revision: fdumont/gcc-TEST ref refs/pull/30/head commit 7f4c93adf8d0f3b08e642b14b01df7fb87d93e96\nBase revision: gcc/gcc-TEST ref trunk commit 052c1d8284b1eb16474473b341fd83f99e8664c8 r16-3601-g052c1d8284b1eb\nMerge base: 052c1d8284b1eb16474473b341fd83f99e8664c8\nFull diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/30.diff\nDiscussion:  https://forge.sourceware.org/gcc/gcc-TEST/pulls/30\nRequested Reviewers:\n\n    Replace functors using iterators as input to adopt functors that are\n    matching the same Standard expectations as the ones imposed on functor-aware\n    algos. It forces to have iterators dereferenced at algo level and not in the\n    predefined functors anymore. This way the functor used by functor-aware algos\n    do not need to be wrap anymore. Only the different flavour of '<', '==' and\n    '!' operators needed to be wrapped.\n\n    Also make sure that in algos implementation helpers, functors are passed using\n    perfect forwarding rather than by copy. This way we can remove usage of std::refwrap\n    in std::erase_if implementations and instead use std::move.\n\n    Additionnally improve __lower_bound/__upper_bound signatures. Those internal\n    functions have been introduced as implementation details of respectively\n    std::lower_bound/std::upper_bound. For this reason they are taking\n    the value argument as a const reference. The problem is that it's now being used\n    in algos like std::inplace_merge and std::stable_sort and so forces functor used\n    in those algos to take their arguments as const references. Using a rvalue references\n    __lower_bound/__upper_bound will automatically adapt to the usage context. The\n    limitation still exists in C++98.\n\n    libstdc++-v3/ChangeLog:\n\n            * include/bits/move.h\n            (_GLIBCXX_CP_FWDREF): New macro, substituted by a copy in pre-c++11 mode.\n            * include/std/functional: Include predefined_ops.h.\n            (_Not_fn): Move to...\n            * include/bits/predefined_ops.h: ...here, and expose a version\n            in pre-C++14 mode.\n            (__not_fn): New, use latter.\n            Include bits/stl_iterator_base_types.h.\n            Include bits/invoke.h.\n            (_Iter_less_iter, _Iter_less_val, _Val_less_iter, _Iter_equal_to_iter)\n            (_Iter_equal_to_val, _Iter_comp_iter, _Iter_comp_val, _Val_comp_iter)\n            (_Iter_equals_val, _Iter_equals_iter, _Iter_pred, _Iter_comp_val)\n            (_Iter_comp_to_val, _Iter_comp_to_iter, _Iter_negate): Remove.\n            (__iter_less_iter, __iter_less_val, __iter_comp_val, __val_less_iter)\n            (__val_comp_iter, __iter_equal_to_iter, __iter_equal_to_val, __iter_comp_iter)\n            (__val_comp_iter, __iter_equals_val, __iter_comp_iter, __pred_iter): Remove.\n            (_Less, _LessRefs<>, _LessCRef<>, _LessVal<>)\n            (_EqualTo, _EqualToRefs<>, _EqualToVal<>, _EqualVal<>, _EqualValRef<>)\n            (_CompVal): New.\n            (__less, __less_val, __equal_to, __comp_val, __equal_ite): New.\n            * include/bits/stl_algo.h: Adapt all algos to use new __gnu_cxx::__ops operators.\n            When possible use std::move to pass predicates to helpers and std::forward between\n            helpers.\n            * include/bits/stl_algobase.h: Likewise.\n            * include/bits/stl_heap.h: Likewise.\n            * include/std/deque: Cleanup usage of __gnu_cxx::__ops operators. Replace usage of\n            std::ref by std::move to pass predicate to std::__remove_if.\n            * include/std/inplace_vector: Likewise.\n            * include/std/string: Likewise.\n            * include/std/vector: Likewise.\n            * src/c++17/memory_resource.cc: Include <functional>.\n            * testsuite/25_algorithms/inplace_merge/1.cc (test5): New test case.\n            * testsuite/25_algorithms/stable_sort/1.cc (test4): New test case.\n\n\nChanged files:\n- M: libstdc++-v3/include/bits/move.h\n- M: libstdc++-v3/include/bits/predefined_ops.h\n- M: libstdc++-v3/include/bits/stl_algo.h\n- M: libstdc++-v3/include/bits/stl_algobase.h\n- M: libstdc++-v3/include/bits/stl_heap.h\n- M: libstdc++-v3/include/std/deque\n- M: libstdc++-v3/include/std/functional\n- M: libstdc++-v3/include/std/inplace_vector\n- M: libstdc++-v3/include/std/string\n- M: libstdc++-v3/include/std/vector\n- M: libstdc++-v3/src/c++17/memory_resource.cc\n- M: libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc\n- M: libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc\n\n\nFrançois Dumont (1):\n  libstdc++: Reimplement __gnu_cxx::__ops operators\n\n libstdc++-v3/include/bits/move.h              |   2 +\n libstdc++-v3/include/bits/predefined_ops.h    | 727 +++++++++++-------\n libstdc++-v3/include/bits/stl_algo.h          | 579 +++++++-------\n libstdc++-v3/include/bits/stl_algobase.h      |  88 ++-\n libstdc++-v3/include/bits/stl_heap.h          | 103 ++-\n libstdc++-v3/include/std/deque                |   7 +-\n libstdc++-v3/include/std/functional           |  54 +-\n libstdc++-v3/include/std/inplace_vector       |   6 +-\n libstdc++-v3/include/std/string               |   7 +-\n libstdc++-v3/include/std/vector               |   7 +-\n libstdc++-v3/src/c++17/memory_resource.cc     |   1 +\n .../25_algorithms/inplace_merge/1.cc          |  15 +\n .../testsuite/25_algorithms/stable_sort/1.cc  |  24 +\n 13 files changed, 911 insertions(+), 709 deletions(-)"
}