)]}'
{
  "log": [
    {
      "commit": "50649178f4f18b3dc151be7bd80a6d5c4c640495",
      "tree": "a2b130ab5e5960ef0d2eee3cbe96cc1c679b3572",
      "parents": [
        "f2792c56b75b219fd69aac4a31c69749ad7c3d8a"
      ],
      "author": {
        "name": "Hristo Hristov",
        "email": "hghristov.rmm@gmail.com",
        "time": "Sat Nov 14 08:19:28 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Nov 13 22:24:18 2026 -0800"
      },
      "message": "Reapply \"[libc++][FTM] Added FTMs from Sofia Meeting 202506 (#239614)\" (#242088) (#242210)\n\nThis reverts commit 034b938cbbaa78957e1a94b8ef56bfeb6c3a2021.\n\nRemoved the offending `\u003cmeta\u003e` bits for now to resolve the reported\nissue:\nhttps://github.com/llvm/llvm-project/pull/239614#issuecomment-6837663036\n\n---------\n\nCo-authored-by: Hristo Hristov \u003czingam@outlook.com\u003e\nGitOrigin-RevId: 12226ef225791e618f8affd26fa4634f7ceae410\n"
    },
    {
      "commit": "f2792c56b75b219fd69aac4a31c69749ad7c3d8a",
      "tree": "e4734c61fd4ce21515564b842639eb1eee058eab",
      "parents": [
        "1b8f7038322d6ca4cdde2c89909b011107c74322"
      ],
      "author": {
        "name": "anant",
        "email": "anant1234466@gmail.com",
        "time": "Fri Nov 13 12:04:22 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 12 22:38:11 2026 -0800"
      },
      "message": "[libc++] Mark LWG4299 and LWG4304 as Complete (#241193)\n\nBoth LWG4299 and LWG4304 relate to optional\u003cT\u0026\u003e, which libc++ has\nconformed to since optional\u003cT\u0026\u003e was implemented in LLVM 22 (#155202).\n\nLWG4304 constrains optional\u003cT\u0026\u003e::value_or so that optional\u003cT\u0026\u003e is\nwell-formed when T is a function or array type (already tested in\nvalue_or.compile.pass.cpp). LWG4299 adds a Mandates that the result type\nU of optional\u003cT\u0026\u003e::transform is a valid contained type for optional,\nwhich libc++ enforces via static_assert.\n\nThis adds a test covering the Mandates for optional\u003cT\u0026\u003e::transform and\nmarks both LWG4299 and LWG4304 as complete in Cxx26Issues.csv.\n\nFixes #171339\nFixes #171343\n\n---------\n\nSigned-off-by: anant \u003canant1234466@gmail.com\u003e\nGitOrigin-RevId: a3e16b700a7ee2395aba32368d92d0dab51a4554\n"
    },
    {
      "commit": "1b8f7038322d6ca4cdde2c89909b011107c74322",
      "tree": "e01683309ea8b527ff50eb5e5930b1fc107d3c8a",
      "parents": [
        "73b495fc11d24f724ccc1037ad81333606162e4d"
      ],
      "author": {
        "name": "Sharjeel Khan",
        "email": "sharjeelkhan@google.com",
        "time": "Thu Nov 12 17:54:44 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 12 14:57:50 2026 -0800"
      },
      "message": "Revert \"[libc++][FTM] Added FTMs from Sofia Meeting 202506 (#239614)\" (#242088)\n\nReverts https://github.com/llvm/llvm-project/pull/239614\n\nBroke premerge CI and blocking other PRs.\n\nGitOrigin-RevId: 034b938cbbaa78957e1a94b8ef56bfeb6c3a2021\n"
    },
    {
      "commit": "73b495fc11d24f724ccc1037ad81333606162e4d",
      "tree": "4302081bbab43a6d658b7e503e9ab12b5d6a681a",
      "parents": [
        "476dbf891854035a4c30acd8ed7879a4f0f3ef0c"
      ],
      "author": {
        "name": "Hristo Hristov",
        "email": "hghristov.rmm@gmail.com",
        "time": "Thu Nov 12 21:33:44 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 12 11:38:04 2026 -0800"
      },
      "message": "[libc++][FTM] Added FTMs from Sofia Meeting 202506 (#239614)\n\nAdded:\n- Missing FTMs from Sofia Meeting 202506\n\nReferences:\n- https://wg21.link/version.syn\n- https://github.com/orgs/llvm/projects/31/views/11\n\n---------\n\nCo-authored-by: Hristo Hristov \u003czingam@outlook.com\u003e\nGitOrigin-RevId: 2bc4d2030bbf79e3241baedf3895a8a6beb0524c\n"
    },
    {
      "commit": "476dbf891854035a4c30acd8ed7879a4f0f3ef0c",
      "tree": "e01683309ea8b527ff50eb5e5930b1fc107d3c8a",
      "parents": [
        "dbf9f8af473136cc9686d62fabdc874b3945135b"
      ],
      "author": {
        "name": "Vitaly Goldshteyn",
        "email": "goldvitaly@google.com",
        "time": "Thu Nov 12 17:01:19 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 12 08:07:29 2026 -0800"
      },
      "message": "[libc++] Apply __assume_separate_storage to vector\u0027s __end_ptr() (#240627)\n\nThis allows the compiler to figure out that `this-\u003e__end_` and `this`\ndon\u0027t alias, allowing better code gen.\n\nSee also #225325.\n\nGitOrigin-RevId: c248339b74ac75e7a2874edcc3d42b157d1f9f20\n"
    },
    {
      "commit": "dbf9f8af473136cc9686d62fabdc874b3945135b",
      "tree": "0a75065492a725a81d9195c65b3268ae1b98743e",
      "parents": [
        "f1f50b6fdee18505206ed7263275ed5de272b10b"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Thu Nov 12 10:02:38 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 12 01:08:28 2026 -0800"
      },
      "message": "[libc++][NFC] Remove \u003ctuple\u003e include from \u003c__functional/function.h\u003e (#240828)\n\nWe\u0027re not using `tuple` inside `__functional/function.h`, so we\nshouldn\u0027t include it.\n\nGitOrigin-RevId: 5958750c5df9d89e4bcb231ed41c10f4ddee4f93\n"
    },
    {
      "commit": "f1f50b6fdee18505206ed7263275ed5de272b10b",
      "tree": "9521a3714f9104867d22dd6925ff2355286d896c",
      "parents": [
        "7b17fe4102dcf17b6e4a4c17abeb1827247cdb4e"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Wed Nov 11 08:51:55 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 11 08:57:38 2026 -0800"
      },
      "message": "[libcxx] mark intentionally unused fields [[maybe_unused]] (#241054)\n\n-Wunused-private-field will soon be able to flag fields in instantiated\nclass templates. Land this in preparation.\n\nLink: #237374\nGitOrigin-RevId: 1dde95c1d1faa086ffa9fb8cce5aa98b9826e99b\n"
    },
    {
      "commit": "7b17fe4102dcf17b6e4a4c17abeb1827247cdb4e",
      "tree": "598c623c056ab173d97cdc679b93fd64d56d5c95",
      "parents": [
        "a2e598953d80cb6bc768e60c2fa5ca1f7f35d6a9"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Wed Nov 11 12:37:44 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 11 04:46:29 2026 -0800"
      },
      "message": "[libc++][pstl] Added tests for corner cases of calling __apply() (#240398)\n\nAdd a couple of tests that check non-trivial usage of\n`__apply()`, which is not currently covered by any of \"conventional\"\nPSTL tests. Any parallelism provider behind `__apply()` must allow for\nthese tests to pass, so that the overall PSTL offering is sound.\nAdded tests include:\n- Calling `__apply` before the `main` function has started.\n- Calling `__apply` after the `main` function has finished.\n- Calling `__apply` concurrently from multiple threads.\n- Calling `__apply` recursively and fanning out, nesting up to three\nlevels.\n- Calling `__apply` recursively, nesting up to ten levels.\n- Calling `__apply` recursively while holding a mutex.\n\nGitOrigin-RevId: 58d92382e7337327be9da10595e197ac15373dc8\n"
    },
    {
      "commit": "a2e598953d80cb6bc768e60c2fa5ca1f7f35d6a9",
      "tree": "e8b2d3aa7e17ad5cbab4666184421bc1e2ece7f1",
      "parents": [
        "05931883e24610da55e222e2c8b993f452ed7eec"
      ],
      "author": {
        "name": "Lucas Mellone",
        "email": "github.snugness349@passinbox.com",
        "time": "Wed Nov 11 04:11:32 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 10 19:18:36 2026 -0800"
      },
      "message": "[libc++] Mark LWG2166 as \"Nothing To Do\" (#236422)\n\nLWG2166 formalised the binary heap layout such that `for 0 \u003c i \u003c N`,\n`comp(a[(i-1)/2], a[i])` is `false`. libc++’s heap algorithms already\nimplement this layout, so this patch is NFC and mainly adding test\ncoverage for heap property.\n\nCloses: https://github.com/llvm/llvm-project/issues/99969\n\n---------\n\nCo-authored-by: A. Jiang \u003cde34@live.cn\u003e\nGitOrigin-RevId: 0e0fc06544bff8765eb09a38f606f8537d2aee67\n"
    },
    {
      "commit": "05931883e24610da55e222e2c8b993f452ed7eec",
      "tree": "a04067c58e71baacf29c37ea9cb8ac5413d8a455",
      "parents": [
        "4b01c914984106a4979b22c8b7ea7700ea085500"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Tue Nov 10 17:31:09 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 10 09:36:52 2026 -0800"
      },
      "message": "[libc++][pstl] Remove the libdispatch and the std_thread PSTL backends (#239290)\n\nTheir functionality is now provided by the statpart backend and they\nbecame effectively a dead code.\n\nGitOrigin-RevId: 01b3d57fe89d378040c41fc7ee7c6589a1a4c0d8\n"
    },
    {
      "commit": "4b01c914984106a4979b22c8b7ea7700ea085500",
      "tree": "4935e556240c96bf831e203c40fe68a3895b666a",
      "parents": [
        "eb7b32a734a8c79cc1db2631ff1be992bf1b0c47"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Nov 10 11:07:53 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 10 08:13:42 2026 -0800"
      },
      "message": "[libc++] Add Michael Kazakov as the main PSTL maintainer (#240857)\n\nGitOrigin-RevId: e3bb1d8ca634a003e72db614d3f48f1d3e642169\n"
    },
    {
      "commit": "eb7b32a734a8c79cc1db2631ff1be992bf1b0c47",
      "tree": "221c845608334f12767c0bf743879b1148c485b8",
      "parents": [
        "bcf38c3f9747c19d917f4e21bfd201998cdd095b"
      ],
      "author": {
        "name": "higher-performance",
        "email": "higher.performance.github@gmail.com",
        "time": "Tue Nov 10 10:59:24 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 10 08:02:54 2026 -0800"
      },
      "message": "Speed up std::invoke() compile times and rename __invoke_result_t to __direct_invoke_result_t (#213403)\n\nThis may surface a pre-existing recursive template instantiation compiler bug (#236677) in user code.\n\nGitOrigin-RevId: b2f7f43b949d018da989c5e8844d9d9a4d75d480\n"
    },
    {
      "commit": "bcf38c3f9747c19d917f4e21bfd201998cdd095b",
      "tree": "852863afe65cabf632f5b114b9cbb20b9cee8990",
      "parents": [
        "662791f71a823fc91eb838eedaaa4baff965b6f6"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Nov 09 21:47:29 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 18:52:02 2026 -0800"
      },
      "message": "[libc++] Add CI running on macOS without exceptions (#230157)\n\nThis is a supported configuration, so it should be tested.\n\nGitOrigin-RevId: e7725ece777675591d8874e83faed48f7e350fe2\n"
    },
    {
      "commit": "662791f71a823fc91eb838eedaaa4baff965b6f6",
      "tree": "f94a6e67df6bc4c07c1cd67a580a34764760ca29",
      "parents": [
        "a4f4784e5f5c0d560b72b42a4c69be089266385c"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Nov 09 21:45:56 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 18:51:40 2026 -0800"
      },
      "message": "[libc++] Use section-based overridden function detection on Mach-O (#240482)\n\nPR #208330 switched the non-ptrauth implementation of\n__is_function_overridden to a mechanism that defines a local alias at\nthe same address as the weak function f.\n\nRecent Mach-O linkers (e.g. the one in Xcode 27.0) bind references to a\nweak definition directly when that definition has a local alias at the\nsame address, instead of going through a weak-def-coalesced stub or GOT\nentry. Older linkers like the ones in Xcode 26.6 (which we use in the\nCI) don\u0027t do that, which is why this wasn\u0027t caught by the CI. This means\nthat we always resolved `__is_function_overridden` to false with newer\nlinkers, which breaks the detection mechanism.\n\nAssisted by Claude\n\nGitOrigin-RevId: de513b8f794ed75611475fea0f4ff2746a7c663f\n"
    },
    {
      "commit": "a4f4784e5f5c0d560b72b42a4c69be089266385c",
      "tree": "4c05ed413001a83a49444e18175481bfa6376690",
      "parents": [
        "a8ddb62ecb588f11c6b720bf3f5a45cf149195dd"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Nov 09 12:05:36 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 09:12:46 2026 -0800"
      },
      "message": "[libc++] Add a target to validate the conformance status CSV files (#238977)\n\nThis adds a libcxx-validate-conformance-csvs target which runs\n`libcxx/utils/conformance csv validate` on all the status CSV files, to\nmake sure they don\u0027t get broken. Also add to the CI jobs.\n\nGitOrigin-RevId: d8ad9d02820c00467aa0a5831b190d9e3a2670df\n"
    },
    {
      "commit": "a8ddb62ecb588f11c6b720bf3f5a45cf149195dd",
      "tree": "8e713fc190c5a91d4fd9aa86d8e143b8ecbaaf5b",
      "parents": [
        "8e4bf68f2b85cf9a05734a1adf0168cda05e0c42"
      ],
      "author": {
        "name": "Aiden Grossman",
        "email": "aidengrossman@google.com",
        "time": "Mon Nov 09 08:28:16 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 08:34:39 2026 -0800"
      },
      "message": "[libcxx] Switch to llvm-premerge-linux-4-runners for benchmarking (#239065)\n\nThese are smaller so take up less resources when we only run benchmarks\non a single thread and they are also c2d vs n2/n2d which means that we\nget exclusive cores rather than GCP overcommit.\n\nFixes #236840\n\nGitOrigin-RevId: 0f6dc59707ecf06746fb4fd96e62c64967a1024b\n"
    },
    {
      "commit": "8e4bf68f2b85cf9a05734a1adf0168cda05e0c42",
      "tree": "b1cc87844bbd6bda817ec9367c0f5de3f102db93",
      "parents": [
        "288ef52a363dbe6b5e0bdbe01b6b1e4c0a5af042"
      ],
      "author": {
        "name": "Hristo Hristov",
        "email": "hghristov.rmm@gmail.com",
        "time": "Mon Nov 09 12:33:08 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 08:34:12 2026 -0800"
      },
      "message": "[libc++] Mark P3774R1 as \"Nothing to Do\" (#239648)\n\nP3774R1 was superseded by P3948R1\n\nCloses #171279\n\n---------\n\nCo-authored-by: Hristo Hristov \u003czingam@outlook.com\u003e\nCo-authored-by: A. Jiang \u003cde34@live.cn\u003e\nGitOrigin-RevId: 79b25cf140e41cd7441e93a41bf461599f87c913\n"
    },
    {
      "commit": "288ef52a363dbe6b5e0bdbe01b6b1e4c0a5af042",
      "tree": "669f2dd1120e5067a22b2fe4da498b5be370d40a",
      "parents": [
        "9a8030db26f70209a5c778ea19bd28d9a7845072"
      ],
      "author": {
        "name": "Hristo Hristov",
        "email": "hghristov.rmm@gmail.com",
        "time": "Sun Nov 08 13:00:39 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 08:33:18 2026 -0800"
      },
      "message": "[libc++][FTM] Fix wrong standard versions (#240098)\n\nFTMs were updated in https://github.com/llvm/llvm-project/pull/233352\nbut some copy \u0026 paste errors were made. This PR fixes them.\n\nGitOrigin-RevId: af94c38ac902dec563ac9adcbdb62b7ab9b199ca\n"
    },
    {
      "commit": "9a8030db26f70209a5c778ea19bd28d9a7845072",
      "tree": "37abc1a537359c03f1f4e3f5abaf2cba710c0ec2",
      "parents": [
        "b360d89b73bf882b49985f8210d2b95bfc779e45"
      ],
      "author": {
        "name": "Dan Shan",
        "email": "3shandan@gmail.com",
        "time": "Sat Nov 07 00:08:08 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 09 08:32:20 2026 -0800"
      },
      "message": "[libc++] Implement ADL tests for std::expected (#236608)\n\nResolves #105307\n- LWG3973: `std::expected`\u0027s monadic operations use `this-\u003e__val()`\nrather than `**this`, so they are already ADL-proof. Added tests to\nensure an ADL-found `operator*` is never selected.\n\nResolves #171310\n- LWG4015: Nothing to do but considered completed together with\n`optional\u003cT\u0026\u003e`. It fixes the const overloads of `std::optional`\u0027s\nmonadic operations from LWG3973\u0027s exposition; libc++ uses `value()`\ninstead of a pointer so the issue is not present.\n\n---------\n\nCo-authored-by: A. Jiang \u003cde34@live.cn\u003e\nGitOrigin-RevId: a9530184832b4aa2d5bd966441c001f14feba38d\n"
    },
    {
      "commit": "b360d89b73bf882b49985f8210d2b95bfc779e45",
      "tree": "bbb77a8864927261778b4f28a08e1415b210be6c",
      "parents": [
        "3271cf119a77856b5de28ee01eb49dd6dd750081"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Fri Nov 06 10:48:48 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Nov 06 10:52:26 2026 -0800"
      },
      "message": "[libcxx] Simplify locale support for Fuchsia (#239100)\n\nRemove all unnecessary logic and use the no_locale implementations.\n\nGitOrigin-RevId: 3f0916ec0b1904c34002ab546aa68ecc7df0ffed\n"
    },
    {
      "commit": "3271cf119a77856b5de28ee01eb49dd6dd750081",
      "tree": "5e01fd3f18d03f32fc0bcbaaabb3a45f062d75c6",
      "parents": [
        "7233bc656579dc52bde57bfe94ee81065a272e0a"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Fri Nov 06 18:23:03 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Nov 06 10:30:36 2026 -0800"
      },
      "message": "Revert \"[libc++] Allow the compiler to reorder computation in reduction loops\" (#239721)\n\nReverts llvm/llvm-project#237918\n\nGitOrigin-RevId: a54fb533614bea93d9ddb2704b81869a2c2c6952\n"
    },
    {
      "commit": "7233bc656579dc52bde57bfe94ee81065a272e0a",
      "tree": "6159ef0feb927128a82954cfc1f39147240b4d9a",
      "parents": [
        "e448f56bac775098b7bec0705a4fbbde841b3da0"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Fri Nov 06 16:23:52 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Nov 06 08:30:05 2026 -0800"
      },
      "message": "[libc++][pstl] Implementation of parallel inclusive scan based on decoupled lookback (#238772)\n\nThis PR adds a new basis operation to the `statpart` backend:\n`__lookback_scan()`.\nThis function is a basic building block for the family of single-pass\nscanning operations: `inclusive_scan`, `exclusive_scan`,\n`transform_inclusive_scan`, `transform_exclusive_scan`, `copy_if`,\n`remove`, `remove_if`, `remove_copy`, `remove_copy_if`, `unique`,\n`unique_copy`.\nThe approach is based on the paper \"Single-pass Parallel Prefix Scan\nwith Decoupled Look-back\".\n\nThe first algorithm to use it is `std::transform_inclusive_scan()`,\nwhose implementation is also included in the patch.\nSince the declarations and the tests were already provided previously,\nnow this algorithm becomes parallel when the `statpart` backend is used.\n\nGitOrigin-RevId: f021128a32cab5584c706f771798b19d855f4e8b\n"
    },
    {
      "commit": "e448f56bac775098b7bec0705a4fbbde841b3da0",
      "tree": "499787276f6a572c7e1b2b6687a39a4b9720b997",
      "parents": [
        "ad1da7b3b4365d7e2676ff136834bcc7d0812842"
      ],
      "author": {
        "name": "anant",
        "email": "anant1234466@gmail.com",
        "time": "Fri Nov 06 18:20:11 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Nov 06 05:00:24 2026 -0800"
      },
      "message": "[libc++] Mark LWG4269 as Complete and test unique_copy argument order (#239085)\n\nLWG4269 changes the specification of unique_copy so that the predicate\nis called with the earlier element as the first argument, consistent\nwith unique.\n\nlibc++ already conforms to this in all three implementation strategies\nof std::unique_copy and in ranges::unique_copy, so no library code\nchanges are needed. This is considered completed together with\nranges::unique{_copy} in 62f1e6638158d8848777a29d9d142bb5481c7b67 (LLVM\n15, backported from 72f57e3a30d597346feec74cf626796b0055680f in LLVM\n16).\n\nThis adds regression tests verifying that the earlier element is passed\nfirst across iterator categories, ranges, and projections, and marks\nLWG4269 as complete in Cxx26Issues.csv.\n\nFixes #171326\n\nSigned-off-by: anant \u003canant1234466@gmail.com\u003e\nGitOrigin-RevId: d5e6df6d966a39b2e688f6421da910ac5e125385\n"
    },
    {
      "commit": "ad1da7b3b4365d7e2676ff136834bcc7d0812842",
      "tree": "f39008fbfcca608974a1ce145a519bde13f0d196",
      "parents": [
        "02b61ac1ad914924f2ff28bd75a3bd9fe5b4b6b2"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Fri Nov 06 11:59:19 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Nov 06 04:02:45 2026 -0800"
      },
      "message": "[libc++][pstl] Add serial implementations of partitioning algorithms to PSTL (#234598)\n\nThis PR adds serial implementations of the partitioning algorithms to\nPSTL.\nThey are added to the serial backend only, such that any other backend\ncan fall back to these implementations.\nCurrently there\u0027s no intent to provide parallel versions of these\nalgorithms, but later they can be added as well.\n\nThese are the added algorithms:\n- `std::partition`\n- `std::stable_partition`\n- `std::partition_copy`\n\nIncluded tests check that:\n- Semantics of the functions is correct.\n- The functions correctly SFINAE out when the first argument is not an\nexecution policy.\n- The `nodiscard` policy is followed.\n- The `noexcept` policy is followed.\n- `static_assert` verifies iterators\u0027 categories.\n\nPart of #99938.\n\nGitOrigin-RevId: c274a51b3b5fc07c6779604939c6af3be02a01d7\n"
    },
    {
      "commit": "02b61ac1ad914924f2ff28bd75a3bd9fe5b4b6b2",
      "tree": "86e1f06e279ec5970fae57674e6b478dbf24dfcc",
      "parents": [
        "fba3c08f3fcfc09e6af3f7d153cb8292e338e859"
      ],
      "author": {
        "name": "Hristo Hristov",
        "email": "hghristov.rmm@gmail.com",
        "time": "Fri Nov 06 08:11:05 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 22:16:19 2026 -0800"
      },
      "message": "[libc++] Added FTMs from Hagenberg 2025 and earlier (#233352)\n\nAdded:\n1. Missing FTMs from Hagenberg Meeting 2025\n2. Missing FTMs from Wroclaw Meeting 2024\n3. Added all remaining FTMs related to hardening\n4. Corrected the status of FTM constexpr queue\n\nReferences:\n  - https://wg21.link/version.syn#2\n  - https://wg21.link/version.syn#3\n  - https://github.com/orgs/llvm/projects/31/views/11\n\n---------\n\nCo-authored-by: Hristo Hristov \u003czingam@outlook.com\u003e\nGitOrigin-RevId: 0dfd901f375793105872436d77d505a7f2343b42\n"
    },
    {
      "commit": "fba3c08f3fcfc09e6af3f7d153cb8292e338e859",
      "tree": "8f886e5e560d5288ba0edaf82bae50ddada03c40",
      "parents": [
        "88c45dc0c23bbd1ffbffd0385a74a0c9a9a617a9"
      ],
      "author": {
        "name": "William Tran-Viet",
        "email": "wtranviet@proton.me",
        "time": "Fri Nov 06 00:17:53 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 21:21:18 2026 -0800"
      },
      "message": "[libc++][docs] Introduce `Experimental` Implementation Status (#235526)\n\nResolves #234320\n\nIntroduces a new |Experimental| tag in which to mark experimental paper\nimplementations.\n\nThis also marks `optional::iterator`, `chrono::tzdb` (and related items)\nand `\u003csyncstream\u003e` implementations as experimental based on the testing\n`params.py`.\n\nPSTL is deliberately left alone as I understand it is still in active\ndevelopment.\n\nGitOrigin-RevId: bd654a85865bdfa48f926e679a12d32b39d1eba0\n"
    },
    {
      "commit": "88c45dc0c23bbd1ffbffd0385a74a0c9a9a617a9",
      "tree": "007b2734784c59a6ad4f90de463e3e64e03546c2",
      "parents": [
        "517af185163a8650a2644d25153ba24f45d4f5d6"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Nov 05 22:42:10 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 19:47:53 2026 -0800"
      },
      "message": "[libc++] Adapt the LNT tooling to the new format of GET /series (#239352)\n\nLNT\u0027s GET /series endpoint now accepts several metrics at a time, which\nchanges slightly its output format. Update the scripts to account for\nthat.\n\nAssisted by Claude\n\nGitOrigin-RevId: 96f74c47afa67c6aaaad739b6a7877172fbd61fd\n"
    },
    {
      "commit": "517af185163a8650a2644d25153ba24f45d4f5d6",
      "tree": "86681eea286160c9132040bde684d858515f4c85",
      "parents": [
        "1d97bc32497aecb9ab73f3032f978180a785ead8"
      ],
      "author": {
        "name": "gulfemsavrun",
        "email": "gulfem@google.com",
        "time": "Thu Nov 05 19:14:20 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 19:18:44 2026 -0800"
      },
      "message": "Revert \"[libc++] Use glibc random APIs for std::random_device on Linux\" (#239435)\n\nReverts llvm/llvm-project#222567 because because it broke\n`std/numerics/rand/rand.device/ctor.pass.cpp` on\nhttps://ci.chromium.org/b/8665994883795746673 as reported in\nhttps://github.com/llvm/llvm-project/pull/222567#issuecomment-6673158574.\n\nGitOrigin-RevId: 7907a622d07ac3df366c14f794cdfd689414d7bc\n"
    },
    {
      "commit": "1d97bc32497aecb9ab73f3032f978180a785ead8",
      "tree": "6222c3464fc10e483122cfbb29c6cd0ce86cf3ba",
      "parents": [
        "cd7625f21b8275acc1300513a68a411df13fbb6a"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Nov 05 12:07:14 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 09:15:20 2026 -0800"
      },
      "message": "[libc++] Rewrite some std::allocator verify tests (#238802)\n\nThey were written in a way that makes it look like they are executed,\nwhen in reality they aren\u0027t.\n\nThe underlying motivation for rewriting is that some of the verify\nchecks were written inside `assert(...)`, which made them fail if the\n`assert` macro expands to nothing or expands to something that evaluates\nthe expression twice (both of which are terrible implementations of\nassert).\n\nAssisted by Claude\n\nGitOrigin-RevId: 438673e6a499dd76d592af7eaeb9e05fc29b31e6\n"
    },
    {
      "commit": "cd7625f21b8275acc1300513a68a411df13fbb6a",
      "tree": "d382c5a89de79f37a98a46806d128baa588018a0",
      "parents": [
        "1905184d6f7d650fe2c8d7044876323e672d7319"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Thu Nov 05 12:37:53 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 04:44:20 2026 -0800"
      },
      "message": "[libc++][pstl] Statpart backend is unconditionally used when threading is enabled (#237177)\n\nThis PR removes the CMake parameter `LIBCXX_PSTL_BACKEND` and instead\nmoves the backend selection logic purely into the source code:\n- If libc++ is built with threading (`_LIBCPP_HAS_THREADS\u003d1`), the\n`statpart` PSTL backend is used.\n- Otherwise, the `serial` PSTL backend is used.\n\n`pstl/statpart.cpp` is now added to `LIBCXX_EXPERIMENTAL_SOURCES`\nunconditionally.\nThis also cleans up a few places where the CI is now complaining since\nthe new backend is used.\n\nGitOrigin-RevId: fed3c60941abf37f77fca3742f6edc7ddd3541ca\n"
    },
    {
      "commit": "1905184d6f7d650fe2c8d7044876323e672d7319",
      "tree": "048b436a19550ee6a68ea796786dfc349e70edaf",
      "parents": [
        "4c8c80dcf7ec02da7b0b747af58ba10db18ffdc4"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Thu Nov 05 10:25:18 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Nov 05 02:32:15 2026 -0800"
      },
      "message": "[libc++] Allow the compiler to reorder computation in reduction loops (#237918)\n\nThis PR allows Clang to vectorize and interleave loops in the reduction\nalgorithms: `std::reduce` and `std::transform_reduce`.\nThis is permitted by\nhttps://eel.is/c++draft/numerics.defns#lib:GENERALIZED_SUM.\n\nCurrently it\u0027s enabled only for Clang, it\u0027s unclear if GCC has a direct\nequivalent.\n\nA new macro `_LIBCPP_ENABLE_LOOP_VECTORIZATION` is tentatively placed in\n`__configuration/attributes.h`, though it\u0027s not an attribute per-se.\nIdeally we might want to refactor `__configuration/pstl.h` to be less\nPSTL-specific and put the new macro there instead.\n\nPart of #234887\n\nGitOrigin-RevId: 22e6c38a528ad2c2c5f317c23c3436a313ce9fb9\n"
    },
    {
      "commit": "4c8c80dcf7ec02da7b0b747af58ba10db18ffdc4",
      "tree": "4259b3d056974bdc6dcbcc1a721197c2fc0997a9",
      "parents": [
        "859b1e43fa19be5c80d74facf87b4c86613813bc"
      ],
      "author": {
        "name": "Pavel Labath",
        "email": "pavel@labath.sk",
        "time": "Thu Nov 05 08:26:42 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 04 23:31:47 2026 -0800"
      },
      "message": "[libc] Find linux kernel headers in Debian multiarch directories (#224314)\n\nOn Debian/Ubuntu systems without gcc-multilib, architecture-specific\nkernel headers are installed in /usr/include/\u003ctriple\u003e/asm, while generic\nheaders are in /usr/include/linux. Because the symlink /usr/include/asm\ndoes not exist, full host builds failed to find \u003casm/errno.h\u003e and other\nasm headers.\n\nInstead of requiring root access to create a symlink in /usr, check if\n/usr/include/\u003ctriple\u003e/asm exists (using LIBC_TARGET_TRIPLE or\nCMAKE_LIBRARY_ARCHITECTURE) and prepend it to LIBC_KERNEL_HEADERS.\n\nAlso update consumers of LIBC_KERNEL_HEADERS in runtimes and libc++ test\nconfigs so they handle semicolon-separated lists properly.\n\nAssisted-by: Gemini\nGitOrigin-RevId: 0afe0094aa8c4310a21722f0ff21a7c8502896e8\n"
    },
    {
      "commit": "859b1e43fa19be5c80d74facf87b4c86613813bc",
      "tree": "c558c9e7aeed09623fac2450f407739a8e9ce300",
      "parents": [
        "287e89d01562b66d20439a761131a5b2ce6ea9ba"
      ],
      "author": {
        "name": "QIU Chaofan",
        "email": "qcf@ecnelises.com",
        "time": "Thu Nov 05 14:18:22 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 04 22:21:54 2026 -0800"
      },
      "message": "[libc++] Use glibc random APIs for std::random_device on Linux (#222567)\n\nUse arc4random with glibc 2.36 and later, and getentropy with glibc\n2.25 through 2.35. Retain current urandom file based implementation\non other Linux libc and older glibc versions.\n\nGitOrigin-RevId: 0a69f57dd806f8fcdcf114ae6a2b73cec7fed05a\n"
    },
    {
      "commit": "287e89d01562b66d20439a761131a5b2ce6ea9ba",
      "tree": "68e6d60e172bfe897f53fb35c740b921340158bb",
      "parents": [
        "6761a9aa43c176993cba75ebef7cf3707a22f8b6"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Nov 04 16:49:16 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 04 13:53:27 2026 -0800"
      },
      "message": "[ci] Adapt the LNT tooling to LNT projects (#238898)\n\nWe just added a new way to group test suites into projects in LNT. This\nallows giving more flexibility to different projects / teams sharing one\ninstance (e.g. keys can be scoped to a project, and the UI groups things\nby project).\n\nHowever, this means that submissions also have to specify a project, not\njust a test suite, which is a breaking change (fine since this is still\nearly).\n\nThis patch mechanically updates the test suites to the following\nprojects and suites:\n\n  libcxx          -\u003e libcxx/microbenchmarks\n  libstdcxx       -\u003e libcxx/libstdcxx_microbenchmarks\n  llvm_test_suite -\u003e llvm/test_suite\n\nGitOrigin-RevId: d5da222eff7101f94eab60af4ca57bf489b85367\n"
    },
    {
      "commit": "6761a9aa43c176993cba75ebef7cf3707a22f8b6",
      "tree": "bbf056c7421c7fcb960a2d41497b387615488d8a",
      "parents": [
        "a8e3a8c36f7116de8e31ad5708b8dfb8cb261277"
      ],
      "author": {
        "name": "William Tran-Viet",
        "email": "wtranviet@proton.me",
        "time": "Wed Nov 04 11:31:09 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 04 08:39:27 2026 -0800"
      },
      "message": "[libc++] Provide `optional::iterator` a packed, bounded representation (#203782)\n\nThe current situation with `optional::iterator`:\n\nIf the ABI switch is on, then `optional`\u0027s iterator type is\n`__bounded_iter` as it is a bit stronger, since\n`__static_packed_bounded_iter` can only guarantee that a dereference\nisn\u0027t out of bounds `__bounded_iter` can guard against dereferencing an\nuninitialized item in bounds.\n\nOtherwise, if `T` fulfills the alignment requirements for\n`__static_packed_bounded_iter`, then the iterator type is that.\n\nOtherwise, it is `__capacity_aware_iterator`.\n\nDue to the implementation of `__static_packed_bounded_iter` which relies\non pointer tagging, `optional::iterator` cannot be constexpr.\n\nGitOrigin-RevId: ed37935e8fddb4b498d4ac6458c6e6a7e147d926\n"
    },
    {
      "commit": "a8e3a8c36f7116de8e31ad5708b8dfb8cb261277",
      "tree": "83a985ff6bc6dae085b7e08e343c9aea77fa418f",
      "parents": [
        "70b6cd0be0b54b49e86f3e79881c5764d19b4fa5"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Wed Nov 04 15:42:39 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 04 06:56:03 2026 -0800"
      },
      "message": "[libc++] Optimize vector assign for trivially copyable types (#233863)\n\nWe can avoid unnecessary branching when the element types are trivially\ncopyable, since we don\u0027t need to distinguish between assignment and\nconstruction.\n\nGitOrigin-RevId: 142b20a144b3426abb50f1d77ca2598a48394980\n"
    },
    {
      "commit": "70b6cd0be0b54b49e86f3e79881c5764d19b4fa5",
      "tree": "18fc8858ef77dd11f90a719fc96e000b18c460ac",
      "parents": [
        "32a13ca143cfe91e32cf9d33310850a5c8d10870"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Wed Nov 04 15:22:12 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 04 06:31:47 2026 -0800"
      },
      "message": "[libc++] Remove redundant `_LIBCPP_HIDE_FROM_ABI` from detail headers d-i (#234100)\n\nThis is the second bulk-removal patch of `_LIBCPP_HIDE_FROM_ABI`. While\nthis is something we could do over time, actively removing the redundant\nannotations significanly improves readability, and QoI.\nThis happens in a few patches to keep the size somewhat manageable.\n\nGitOrigin-RevId: 12df5895a2e23e2b426c24f825590a33b4d68e60\n"
    },
    {
      "commit": "32a13ca143cfe91e32cf9d33310850a5c8d10870",
      "tree": "1b037009f0d356386a53d58d9624edcae7ef677b",
      "parents": [
        "6d391bda1b50170f5d5518927b9f94d59b0e22e7"
      ],
      "author": {
        "name": "Daniel Thornburgh",
        "email": "dthorn@google.com",
        "time": "Tue Nov 03 15:42:18 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 03 15:47:53 2026 -0800"
      },
      "message": "Revert \"[libc++] Optimize filebuf::seekoff\" (#238594)\n\nReverts llvm/llvm-project#211788\n\nGitOrigin-RevId: 9d4a620479ccd72f686b713ea7b761d31a84b1ca\n"
    },
    {
      "commit": "6d391bda1b50170f5d5518927b9f94d59b0e22e7",
      "tree": "5cb9cf4a846891ed89d4f4e0e519567321f34545",
      "parents": [
        "38b324ed47d9dcaf00354ec49e639d41d91e2933"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Nov 03 14:33:29 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 03 11:48:13 2026 -0800"
      },
      "message": "[libc++][test] Increase the constexpr step limit for ranges.ends_with.pass.cpp (#238491)\n\nThe test evaluates all the iterator and sentinel combinations in a\nsingle constant evaluation. On some versions of Clang, this blows up the\nconstexpr step limit. This is what we did in the contains_subrange test\nas well.\n\nGitOrigin-RevId: b27d385d28ae084cdb04b94e56a5ce90524b21a6\n"
    },
    {
      "commit": "38b324ed47d9dcaf00354ec49e639d41d91e2933",
      "tree": "331110742c114c37aed7710d94ffaa71f9111817",
      "parents": [
        "589e463f82477c4cb299bda63ae148b38d42dbe4"
      ],
      "author": {
        "name": "R. Aoto",
        "email": "aotodev@gmail.com",
        "time": "Tue Nov 03 18:46:04 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 03 09:55:26 2026 -0800"
      },
      "message": "[libc++] Implement LWG3601: `common_iterator`\u0027s postfix-proxy needs `indirectly_readable` (#237574)\n\n`common_iterator::operator++(int)` now returns the postfix-proxy only\nwhen the underlying iterator is `indirectly_readable`. Previously, a\nnon-readable iterator with a usable `value_type` and a non-referenceable\n`*it++` got a proxy holding a copied value. Now it gets the result of\nthe underlying `it++`.\n\nFixes #104946\n\nGitOrigin-RevId: eca43cccbe0eb9477a658b6c64f47a6fc5e79a29\n"
    },
    {
      "commit": "589e463f82477c4cb299bda63ae148b38d42dbe4",
      "tree": "f458b3f85c84b61b6ad79f886ea442ca275d18c3",
      "parents": [
        "337a52d9fe75457b44e417a6e5d831088ecb17df"
      ],
      "author": {
        "name": "anant",
        "email": "anant1234466@gmail.com",
        "time": "Tue Nov 03 13:42:41 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 03 00:20:26 2026 -0800"
      },
      "message": "[libc++] Implement LWG4294: bitset(const CharT*) constructor needs to be constrained (#238119)\n\nLWG4294 constrains bitset\u0027s `const charT*` constructor to char-like\ntypes. While libc++ already checked `_IsCharLikeType`, the trait was\nmissing the non-array requirement from [strings.general].\n\nBecause of this, checking `std::is_constructible\u003cstd::bitset\u003cN\u003e, const\nchar(*)[2]\u003e` hit a hard compile error inside `basic_string` instead of\nevaluating to false.\n\nThis adds the missing `!is_array` check to `_IsCharLikeType`, adds a\ntest covering the constraints, and updates Cxx26Issues.csv.\n\nFixes #171336\n\nGitOrigin-RevId: da922a4d85be38a0a0f5615756bd685327d88eeb\n"
    },
    {
      "commit": "337a52d9fe75457b44e417a6e5d831088ecb17df",
      "tree": "eeb0568c775806a9e8f50996b73243fccfc9f7f1",
      "parents": [
        "d48f40298937d2fd8188a678198371d65067bf35"
      ],
      "author": {
        "name": "Vitaly Buka",
        "email": "vitalybuka@google.com",
        "time": "Mon Nov 02 23:28:05 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 02 23:47:35 2026 -0800"
      },
      "message": "[libc++][test] Avoid assert() in gnu/hash/specializations.verify.cpp (#237485)\n\nIn glibc 2.44 under C++26, `\u003cassert.h\u003e` expands variadic `assert(...)`\nwith `__VA_ARGS__` twice, causing the compile-time call-operator error\nin this `-verify` test (updated in #145476) to fire twice on\nhttps://lab.llvm.org/staging/#/builders/sanitizer-aarch64-linux-bootstrap-msan\n(https://lab.llvm.org/staging/#/builders/7/builds/93).\n\nDrop `\u003cassert.h\u003e` and check the call expression directly.\n\nDiscovered during upgrading buildbot GLIBC 2.43 to 2.44.\n\nRelated issue https://github.com/llvm/llvm-project/issues/233597.\n\nAssisted-by: Gemini\nGitOrigin-RevId: a7667703eeb633e237aa8280ffc42e963e07189a\n"
    },
    {
      "commit": "d48f40298937d2fd8188a678198371d65067bf35",
      "tree": "f3c95695b399b5726dad147fa416f6da49ea980a",
      "parents": [
        "26a04db822d3324872a1bef4c635e6636e6b716a"
      ],
      "author": {
        "name": "Lucas Mellone",
        "email": "github.snugness349@passinbox.com",
        "time": "Tue Nov 03 02:06:00 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 02 17:11:19 2026 -0800"
      },
      "message": "[libc++][NFC] Mark LWG2859 as \"Nothing To Do\" (#236127)\n\nLWG2859 only rewrites the definition of \"reachable\" in the Remarks\nparagraph of `std::launder` precondition, relaxing the reachable set\nwith the pointer arithmetic scenario.\n\nIt does not change any observable behaviour of the library. No test\nshould be added because the precondition is not observable (a program\nthat is valid under the new wording was also valid under the old one,\nand vice versa).\n\nCloses: https://github.com/llvm/llvm-project/issues/100269\n\n---------\n\nCo-authored-by: A. Jiang \u003cde34@live.cn\u003e\nGitOrigin-RevId: 03e91edf5e1116de288aadcee4625b307786abd4\n"
    },
    {
      "commit": "26a04db822d3324872a1bef4c635e6636e6b716a",
      "tree": "082663012eb522cfc50d7d0cb3f786799466a14b",
      "parents": [
        "262ca56d9f7cf2223be72099e451c7b8a4fcabd0"
      ],
      "author": {
        "name": "lb90",
        "email": "luca.bacci982@gmail.com",
        "time": "Mon Nov 02 21:46:55 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 02 12:52:55 2026 -0800"
      },
      "message": "[libc++][windows] Use _wsetlocale() in __locale_guard (#160479)\n\nOn Windows, locale strings are not limited to ASCII characters, and\nnarrow locale strings are encoded relative to the `LC_CTYPE` charset.\n\nClass `__locale_guard` does three things in sequence:\n\n1. Queries the current locale string\n2. Sets a temporary locale\n3. Restores the locale retrieved at 1\n\nHowever, the locale string obtained from `1)` may be in an encoding\ndifferent from what `setlocale` expects at `3)`\n\nTo avoid any problem with narrow string encodings, use `_wsetlocale` in\n`__locale_guard`.\n\nFixes #160478\n\nGitOrigin-RevId: 12f572979922ca10b9c66d6264826f9cbc78f5de\n"
    },
    {
      "commit": "262ca56d9f7cf2223be72099e451c7b8a4fcabd0",
      "tree": "6b5e3cc7989881ad537b36db503f11c99a5d838e",
      "parents": [
        "1e2e7d36ec5e85431b73cf4a090684209b7d9b71"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Nov 02 11:29:08 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 02 08:32:49 2026 -0800"
      },
      "message": "[libc++] Only refine benchmark changes of at least 10% (#238012)\n\nThis will greatly reduce the number of commits we end up refining and we\nshould still get most of the value. This can be tweaked per machine in\ncase we have machines with more or less noise on them.\n\nAssisted by Claude\n\nGitOrigin-RevId: 02d4bb573ddea205c1963d9d725865e3853c1adc\n"
    },
    {
      "commit": "1e2e7d36ec5e85431b73cf4a090684209b7d9b71",
      "tree": "ac693e4200886f3a9879d553c599d5ee50c8be06",
      "parents": [
        "7548c05cda80697303ea83f289b47be7d8ca064e"
      ],
      "author": {
        "name": "R. Aoto",
        "email": "aotodev@gmail.com",
        "time": "Mon Nov 02 02:27:14 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Nov 01 17:31:06 2026 -0800"
      },
      "message": "[libc++][ranges] Implement LWG3904: `lazy_split_view::outer-iterator`\u0027s const-converting constructor isn\u0027t setting `trailing_empty_` (#237550)\n\nCopy `trailing_empty_` in `outer-iterator`\u0027s const-converting\nconstructor. Previously, converting an iterator that points at the\ntrailing empty subrange (e.g. the second element of `\"a,\"` split by\n`\",\"`) made it compare equal to `default_sentinel`, so that subrange was\nlost.\n\nFixes #105276\n\nGitOrigin-RevId: 63dd23c57e9d0af7cdbd1c6716773db09b76b7d4\n"
    },
    {
      "commit": "7548c05cda80697303ea83f289b47be7d8ca064e",
      "tree": "45ba9e7ad51f802fe0a96e504ddfed09d3f6bed3",
      "parents": [
        "75182540d3f2c0445002fadc4a90d101bdded30a"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Sat Oct 31 17:09:17 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 31 10:12:19 2026 -0700"
      },
      "message": "[libc++][pstl] Add serial implementations of std::inclusive_scan and std::transform_inclusive_scan (#236219)\n\nThis PR adds serial implementations of the inclusive scan operations to\nPSTL.\nWithin this patch they are added only to the serial backend, such that\nany other backend can fall back to these implementations.\nA real parallel implementation is intended to land within the `statpart`\nbackend later, which will be a purely additive change, it will not touch\nthe code in this PR.\n\nThese are the added scan operations:\n- `std::inclusive_scan` (3 variants)\n- `std::transform_inclusive_scan` (2 variants)\n\nPart of #99938.\n\n---------\n\nCo-authored-by: PaulXiCao \u003cpaulxicao7@gmail.com\u003e\nGitOrigin-RevId: 7efb1638f7cb94196057b1f8fa7726d43d84475a\n"
    },
    {
      "commit": "75182540d3f2c0445002fadc4a90d101bdded30a",
      "tree": "ad38c1aea639d3757e4778e834bae65c2a40555e",
      "parents": [
        "73e22919b393ed7853d2e56e0f5d7e456776fc6f"
      ],
      "author": {
        "name": "R. Aoto",
        "email": "aotodev@gmail.com",
        "time": "Sat Oct 31 17:28:45 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 31 09:31:58 2026 -0700"
      },
      "message": "[libc++][ranges] Implement LWG3797: `elements_view` insufficiently constrained (#236930)\n\nRequire `std::get\u003cN\u003e(t)` to be valid in `has-tuple-element`. Previously,\na range of `subrange`s over a move-only iterator satisfied the\nconstraints of `elements_view\u003cV, 0\u003e` and then failed with a hard error,\nbecause `subrange`\u0027s lvalue `get\u003c0\u003e` requires `copyable\u003cI\u003e`.\n\nFixes #189811\n\nGitOrigin-RevId: 12f2c4657237fa416e685512fc9d586280ec4397\n"
    },
    {
      "commit": "73e22919b393ed7853d2e56e0f5d7e456776fc6f",
      "tree": "b298306fef2b2690b43d9f17b4d5a36b602b5d62",
      "parents": [
        "17226b634588185fd8331ce764f9801a63bf29ad"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Fri Oct 30 19:52:35 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 30 12:58:05 2026 -0700"
      },
      "message": "[libc++] Added a benchmark for std::reduce with a trivial reduction operator (std::plus) (#236853)\n\nThis PR adds benchmarks for serial reductions with a trivial operator,\nto specifically capture the cases where the compiler can do a good job\noptimising the loop. This includes cases where the compiler can already\nperform reordering without an explicit permission (e.g. with `int`s) and\nwhere it requires an opt-int like `clang loop vectorize(enable)\ninterleave(enable)` (e.g. with `float`s, which libc++ currently doesn\u0027t\ndo).\n\nPart of #234887.\n\nGitOrigin-RevId: 8445ad1d24a66725308b1d4b7e9e625d9b2e3c79\n"
    },
    {
      "commit": "17226b634588185fd8331ce764f9801a63bf29ad",
      "tree": "8dc4323cd001b0c447455a9be7e0488e61feaf87",
      "parents": [
        "149e2790384fc0549677db2bb23a05908c8cb02e"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Fri Oct 30 08:25:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 30 08:33:49 2026 -0700"
      },
      "message": "[libc++] Submit the results of PR benchmarks to LNT and link to them (#237102)\n\nNow that we produce LNT v5 JSON in the benchmarking jobs, we can submit\nit to LNT as a data point with an expiration date and include the link\nin the comment we post to the PR.\n\nThe expiration date should help avoid bloating the LNT instance if this\nkind of PR benchmarking becomes more mainstream.\n\nGitOrigin-RevId: 95086c235ffebb94f0543c2070e1a5b04137b77d\n"
    },
    {
      "commit": "149e2790384fc0549677db2bb23a05908c8cb02e",
      "tree": "b69066203f02c5f06ff8e0f06cfddb014432d712",
      "parents": [
        "0910b8376b80136d55858bc6cb69f4fb89a558a0"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Fri Oct 30 14:28:37 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 30 06:31:59 2026 -0700"
      },
      "message": "[libc++] Remove unused type_info constructor (#235739)\n\nWe have a constructor taking a `const char*` since the initial import.\nIt\u0027s unused in the library and neither the C++ standard nor the Itanium\nABI require it. Since all `type_info` instances are magicked into\nexistence by the compiler it doesn\u0027t make a ton of sense to have a\nconstructor either.\n\nGitOrigin-RevId: b08681ba2a1f163475ab29ae4fc66712ccb56fac\n"
    },
    {
      "commit": "0910b8376b80136d55858bc6cb69f4fb89a558a0",
      "tree": "21f337593f24b90ce57953f39429be804632e90a",
      "parents": [
        "8664130e84fcdc56cea92dd7950c90dcfbb3d994"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Fri Oct 30 14:12:53 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 30 06:18:28 2026 -0700"
      },
      "message": "[libc++] Add a few _LIBCPP_HIDE_FROM_ABI which have been accidentally removed in #201722 (#236733)\n\nThese annotations should have stayed, since the functions are in a spot\nwhere explicit annotation are required.\n\nGitOrigin-RevId: 03cf1225b8654884db822f4030416802c963aa5a\n"
    },
    {
      "commit": "8664130e84fcdc56cea92dd7950c90dcfbb3d994",
      "tree": "d123d3da20b4c8ee329543b4b85ea12f21411544",
      "parents": [
        "bd2e4e7c2f6230a28edb1e268feaf46e83157c6e"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Fri Oct 30 14:11:31 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 30 06:18:01 2026 -0700"
      },
      "message": "[libc++][NFC] Move checks whether mutex/condition_variable are trivial to their headers (#236806)\n\nThe moved macros are only used as implementation details of `mutex` and\n`condition_variable` aren\u0027t used widely within the library, so they can\nbe moved to be more local.\n\nGitOrigin-RevId: c4953a08cd91b86c4f02e9380f43483c8bffcd2b\n"
    },
    {
      "commit": "bd2e4e7c2f6230a28edb1e268feaf46e83157c6e",
      "tree": "cc4ef4d146fe8688ac24b4d1cace1b58fcf5f89f",
      "parents": [
        "11d10f86b8eca410196f361e571d592f6d16dcf1"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Fri Oct 30 10:16:13 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 30 03:21:50 2026 -0700"
      },
      "message": "[libc++][pstl] Introduce a \"statpart\" backend (#230540)\n\nThis PR introduces a simplified PSTL backend based on a static\npartitioning scheme and on a single \"parallelism\" function\n`__apply(size_t, void*, void (*)(void*, size_t))`. Currently the\nunderlying parallelism is only provided via the `libdispatch` library,\nother mechanisms are assumed to be added later without changing the\nAPI+ABI surface.\n\nThis backend is mostly a re-packaging of the code existing in\n`libdispatch` and `cpu_algos`, currently placed in a dedicated\n`__pstl/statpart/...` directory. `__pstl/statpart.h` serves as a purely\numbrella header.\n\nThe implementations of the algorithms with the STL APIs are identical to\nthe existing implementations in `__pstl/cpu_algos/...` modulo these\nalterations:\n- the naming is rebased to use the `__statpart` backend.\n- the algorithms are presented directly under the\n`__statpart_backend_tag` specialisation, without a re-introduction via\ninheritance as currently done in `libdispatch` and `std_thread`.\n\nThere are a couple of differences in the backend basis as well:\n- The partitioning logic is moved out of the ABI surface.\n- The `__cpu_traits` API is not used, all backends\u0027 functions are\nstructured as free functions.\n- The partitioning logic is changed. Instead of capping the number of\nelements per partition, it now caps the maximum number of partitions per\navailable parallel workers and allows to specify the minimum number of\nelements per partition. Partitioning that produces less than 2\nsub-ranges is declared invalid, the caller should fall back to serial\nprocessing in this case.\n- The basis algorithm implementations are copied as-is with minimal\nchanges, with 2 exceptions:\n- `__merge()` finds the cutpoints of each paired sub-ranges in parallel,\ninstead of sequentially as before. This costs 2 binary searches per\npartition, comparing to 1 binary search per partition in the previous\nimplementation, but all these searches are now done in parallel, instead\nbeing serial on a critical path.\n- `__stable_sort()` no longer merges two the first partitions\nsequentially in case of an odd number of partitions. Instead the last\nspan is carried over as-is in case of odd number of spans.\n\nAt the moment this backend is not enabled by default on any\nconfiguration and needs to be explicitly picked via\n`-DLIBCXX_PSTL_BACKEND\u003dstatpart`.\n\nFixes #229804.\n\n---------\n\nCo-authored-by: Louis Dionne \u003cldionne.2@gmail.com\u003e\nGitOrigin-RevId: 260096e486b08edccd9c5db35c550029d65620b6\n"
    },
    {
      "commit": "11d10f86b8eca410196f361e571d592f6d16dcf1",
      "tree": "497b41a1817149bc6308f8f94cfa7cc6801604aa",
      "parents": [
        "c54dc7ae206898afaaeb208325392e67eec17a03"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 29 17:59:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 29 18:03:32 2026 -0700"
      },
      "message": "[libc++] Produce LNT v5 reports from the A/B benchmark job (#237001)\n\nThis patch lifts the LNT v5 report creation into a command-line tool so\nthat we can call it from the A/B benchmarking job, and upload it as an\nartifact. In future PRs we can actually submit those results to LNT.\n\nAssisted by Claude\n\nGitOrigin-RevId: 90577109166c266af96bf72026cfe9fe874e56eb\n"
    },
    {
      "commit": "c54dc7ae206898afaaeb208325392e67eec17a03",
      "tree": "dd1d9fd5aa6cf9b382db0c41913c75a38885c174",
      "parents": [
        "71edd05e4d520fca6d75377d26903accf3c31f66"
      ],
      "author": {
        "name": "Liza Burakova",
        "email": "liza@chromium.org",
        "time": "Thu Oct 29 11:29:31 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 29 08:38:41 2026 -0700"
      },
      "message": "[libcxx] Optimize __split_buffer::__relocate by using size-based __set_valid_range (#216822)\n\nThe new size is already known.\nWe can directly call the `(pointer, size_type)` overload.\nThis avoids redundant pointer arithmetic.\n\nGitOrigin-RevId: 87dbf150b66719ec1cdab2eb468aa77893c5576c\n"
    },
    {
      "commit": "71edd05e4d520fca6d75377d26903accf3c31f66",
      "tree": "0fcc986889bb8ec012d5144c30aa0ebf3300ad00",
      "parents": [
        "db4fe67c8bbbf7da5a7b1356aa69eb60143a6e19"
      ],
      "author": {
        "name": "kisuhorikka",
        "email": "kisuhorikka@gmail.com",
        "time": "Thu Oct 29 22:08:52 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 29 07:15:04 2026 -0700"
      },
      "message": "[libc++] Add __uninitialized_allocator_{fill_n,value_construct_n,move} and use them in vector (#167112)\n\nThis makes us more predictable in when we destruct elements and makes us\nconsistently use `__uninitialized_allocator_` throughout `vector`.\n\nFixes #59293\n\n---------\n\nCo-authored-by: Louis Dionne \u003cldionne.2@gmail.com\u003e\nCo-authored-by: Nikolas Klauser \u003cnikolasklauser@berlin.de\u003e\nGitOrigin-RevId: 14ba63aa7aa5bfac87298635470fa07fe5c946d4\n"
    },
    {
      "commit": "db4fe67c8bbbf7da5a7b1356aa69eb60143a6e19",
      "tree": "6fae2bbe91631f57c872cf70f16b965c217ee8bb",
      "parents": [
        "f8db104340e6e4850f2202a2ab2aee8bf022b1ff"
      ],
      "author": {
        "name": "A. Jiang",
        "email": "de34@live.cn",
        "time": "Thu Oct 29 22:06:55 2026 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 29 07:14:37 2026 -0700"
      },
      "message": "[libc++][test] Remove `XFAIL` for LLVM libc in `valarray` tests (#236629)\n\nNow these tests pass due to completion of several math functions in LLVM\nlibc.\n- `sinh` in 1866d4cc5634d9edb54d703f191981093b3ca51b\n- `cosh` in 075a6cb1402543bc3a1dd87a8720807d35c1eacc\n- `tanh` in ff9ad993c2b90a78f23b988333e05accae1147df\n\nGitOrigin-RevId: 09c1667484d57819a89be0bbc990bbbd0f5f36e5\n"
    },
    {
      "commit": "f8db104340e6e4850f2202a2ab2aee8bf022b1ff",
      "tree": "27b5d07079aad125b18ed1854dd733a7e52a929f",
      "parents": [
        "c3bd90e3e9e559d422d78568ab646fcd42332f41"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Oct 28 16:08:18 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 28 16:11:59 2026 -0700"
      },
      "message": "[libc++] Remove stale XFAIL from small_buffer.pass.cpp (#234407)\n\nThe availability-aligned_allocation-missing Lit feature was removed in\nec350ad418a2 along with all of its uses, but small_buffer.pass.cpp\nlanded around the same time and kept referencing it.\n\nGitOrigin-RevId: 93d74dc789036023285bf3d3a1638f5bf1ae26f1\n"
    },
    {
      "commit": "c3bd90e3e9e559d422d78568ab646fcd42332f41",
      "tree": "ca5898dc5ee2ca55f051c0499f5792ded71ff365",
      "parents": [
        "465f2c2e139cb7ab118689f32a456997062de245"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Oct 28 15:39:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 28 15:43:34 2026 -0700"
      },
      "message": "[libc++] Use constant initialization for the random_shuffle engine (#234815)\n\nThe default engine used by std::random_shuffle currently uses a function\nlocal static. However, we can skip the function local static and perform\nconstant initialization instead by marking a few functions constexpr,\nonly when building the dylib.\n\nThese functions will eventually be made constexpr in the Standard.\n\nGitOrigin-RevId: 49fa81775feb14d0e4a1c04d7758aa641a87ca24\n"
    },
    {
      "commit": "465f2c2e139cb7ab118689f32a456997062de245",
      "tree": "2f6c17e85b3d233e649c83468b49ae28533549b3",
      "parents": [
        "23e16a92c8c9d58164950c627793fe80c4b79359"
      ],
      "author": {
        "name": "Nikita Belenkiy",
        "email": "public@kits.net",
        "time": "Wed Oct 28 17:52:03 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 28 09:58:18 2026 -0700"
      },
      "message": "[libcxx][test-support] Implement fancy_pointer_allocator (#196187)\n\nIn order to make sure that our further modifications of basic_string\nwill make it able to handle fancy pointers such as boost::ipc::offset_ptr,\nwe need some testable fancy pointers. Unfortunately, offset pointers\nthemselves are a bad idea for that, as they cannot be constant evaluated.\n\nInstead, we are implementing a test fancy pointer that has nontrivial\nspecial member functions that are C++20 constexpr and have side effects\nthat can be checked on correctness even in constant evaluated test contexts,\nbacked by a similarly C++20 constexpr fancy pointer allocator.\n\nThe idea is that the allocator has a state that counts how many pointer\ninstances originated from the allocator exist at the moment, the\npointers in their special methods update this shared state, and the\nstate checks at its destruction that there exactly 0 pointers are recorded\nas still existing. The state is unique per instance of default-constructed\nallocator but shared between the instances of copy/move-constructed\nallocators.\n\nThe resulting test fancy pointer is more demanding than an offset\npointer: an offset pointer may have a trivial destructor, but our test\npointer has a destructor that relies on still existing state. Unfortunately,\nour containers are generally laid out in such a way that their allocator\nmember is destructed earlier than their storage pointer members. To use\nthe fancy_pointer_allocator in testing, we either need to modify the\ncontainers that they null the storage pointers at the end of destructor\n(which will be naturally done for basic_string, which is our main\ntarget) or write our tests in such a way that there is a copy of\ncontainer\u0027s allocator that survives the container\u0027s lifetime.\nGitOrigin-RevId: 8c884ee3738e1ad08d4a4167c3d7209a301801e0\n"
    },
    {
      "commit": "23e16a92c8c9d58164950c627793fe80c4b79359",
      "tree": "239a3537f84c70e05d9bd8b7179c978667a6a3f1",
      "parents": [
        "0912d68c945879651d9ec639c7774e99303cd0b9"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Wed Oct 28 10:03:39 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 28 03:08:00 2026 -0700"
      },
      "message": "[libc++] Make __thread_hardware_concurrency() an alias to an existing symbol (#234575)\n\nThis PR changes `__thread_hardware_concurrency()` to be an alias to\n`std::thread::hardware_concurrency()`, which is already exported from\nthe ABI.\nAlso adds the `_LIBCPP_ABI_NAMESPACE_LEN` macro to simplify the name\nmangling.\n\nGitOrigin-RevId: 749d82099196575d084fb63f89cbae1b97178bbd\n"
    },
    {
      "commit": "0912d68c945879651d9ec639c7774e99303cd0b9",
      "tree": "8965b9fccecb2d0ee9e2a9b51fa1a206fce18087",
      "parents": [
        "f6d87d6181a60e913df0c5458d6647532687817f"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Wed Oct 28 09:46:09 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 28 01:49:47 2026 -0700"
      },
      "message": "Reapply \"[libc++] Fix incorrect size check when growing std::string\" (#234545) (#234551)\n\nThere was a race condition with another commit adding another call of\n`__get_amortized_growth_capacity`. This is fixed in this version.\n\nOriginal commit message:\n\nWhen trying to grow very large amounts the `max_size()` check could fail\ndue to\nthe result of adding the current capacity and the additional capacity\ncould wrap.\n\nThis reverts commit 64b40b84eb293e259cfe36add2ac34ab3dafc05c.\n\nGitOrigin-RevId: 8e196cd486b1e532ca7f30abf6eb0fe0fe0f8564\n"
    },
    {
      "commit": "f6d87d6181a60e913df0c5458d6647532687817f",
      "tree": "ecf78957ab7508dce237c58f82db11703b230c1a",
      "parents": [
        "f07ac0209f692159a74452a8db53c28f7910901f"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Oct 27 16:02:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 27 16:07:41 2026 -0700"
      },
      "message": "[libc++] Make detect-changepoints much faster (#236245)\n\nThe permutation test used to find changepoints was the bottleneck of the\nLNT refinement job. This patch makes the test much cheaper in two ways\nwithout changing the algorithm:\n- Compute the best split of a segment only once, when the segment is\n  created.\n- Scoring every split of a segment only needs the sums of distances\n  within the first t points and between the first t points and the whole\n  segment. The latter doesn\u0027t depend on the order of the points, so it is\n  computed once per segment.\n\nThis was measured to be roughly 10x faster as the previous algorithm,\nand gives the same results.\n\nAssisted by Claude\n\nGitOrigin-RevId: 595e569a7df2cf166bea271169ccc4f02ac45926\n"
    },
    {
      "commit": "f07ac0209f692159a74452a8db53c28f7910901f",
      "tree": "d5e61ef001ed195d16a20b8f46052933c23e1425",
      "parents": [
        "6cf406ac8dcf6f2eb2b464459d8484c99f0901b2"
      ],
      "author": {
        "name": "Eric Ross",
        "email": "zerico2005@gmail.com",
        "time": "Tue Oct 27 11:15:49 2026 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 27 10:23:37 2026 -0700"
      },
      "message": "[libc++][test][NFC] Use correct number of digits for \u003cnumbers\u003e ground-truth values (#233664)\n\nCorrects the number of digits used for the `float` hexadecimal literals\nfor the `\u003cnumbers\u003e` test. All literals are now exactly representable as\n`float`. The tested values themselves are unchanged.\n\nNoted here:\nhttps://github.com/llvm/llvm-project/pull/222830#discussion_r3985465297\n\nGitOrigin-RevId: 79f9939862e10e75d59a06fd70ea69a882fb4211\n"
    },
    {
      "commit": "6cf406ac8dcf6f2eb2b464459d8484c99f0901b2",
      "tree": "f55412b0575eff9763b99b349fe3e527582035ed",
      "parents": [
        "3b5735a0b5cc9e0fea0b97196b82edb5696c1d3c"
      ],
      "author": {
        "name": "Lucas Mellone",
        "email": "github.snugness349@passinbox.com",
        "time": "Tue Oct 27 09:14:24 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 27 01:18:32 2026 -0700"
      },
      "message": "[libc++][ranges] Mark LWG3532 as resolved (#235016)\n\nAlready implemented and tested in the scope of the full implementation\nfor `lazy_split_view`\n(https://github.com/llvm/llvm-project/commit/e53c461bf3f0feebb4fd6b43e05a0047f8edb945).\n\nCloses https://github.com/llvm/llvm-project/issues/104342\n\nGitOrigin-RevId: 0f0c7c34ae2cb0d59538956e878c5d7e9383eb9b\n"
    },
    {
      "commit": "3b5735a0b5cc9e0fea0b97196b82edb5696c1d3c",
      "tree": "74dea1c4657a599876bedc5e293752a2162770c3",
      "parents": [
        "68587d9fb3e3d2532aac4f14bb01b836d570edbd"
      ],
      "author": {
        "name": "R. Aoto",
        "email": "aotodev@gmail.com",
        "time": "Tue Oct 27 07:27:21 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 26 23:32:42 2026 -0700"
      },
      "message": "[libc++] Implement LWG4245: Operators that interact with counted_iterator and default_sentinel_t should be noexcept (#235445)\n\nMark `counted_iterator`\u0027s `operator-` overloads and `operator\u003d\u003d` taking\n`default_sentinel_t` as `noexcept`, as required by the resolution of\nLWG4245. They only read the stored count. Applied as a defect report to\nevery mode where `counted_iterator` exists (C++20 and later).\n\nThe existing `minus.default_sentinel.pass.cpp` and `compare.pass.cpp`\nnow check `noexcept` for both argument orders and the rewritten `!\u003d`\nforms. They fail without the header change and pass in C++20 and later.\n\nFixes #148226\n\nGitOrigin-RevId: 21a3030c149eb1e76df2db9efff22f9a57382150\n"
    },
    {
      "commit": "68587d9fb3e3d2532aac4f14bb01b836d570edbd",
      "tree": "3404849801871b00d49c133b95f408bcc0c7c2aa",
      "parents": [
        "b1e5a5b94158566fd2a6d4db28063b7666d8a934"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Oct 26 16:47:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 26 16:54:19 2026 -0700"
      },
      "message": "[ci] Create a monorepo-wide workflow to submit to LNT (#235863)\n\nLift the libc++ specific workflow into one that is clearly decoupled\nfrom libc++ and can be reused by other projects in the monorepo. This is\nintended to support other projects submitting data into LNT.\n\nOne interesting question is whether we want all jobs to use the same\ntoken. In LNT v5, a token can be scoped to specific test suites (e.g. a\ntoken can be limited to submitting only to the libcxx test suite). Right\nnow, this workflow assumes that the token in use can submit to the\nprovided suite, and all submissions would use the same token, which\nwould be unscoped.\n\nI think this is fine, at least for now, but we could potentially revisit\nthis decision in the future.\n\nGitOrigin-RevId: 7f80ef0ed5441d143d427f687cafcedeaf0a53b3\n"
    },
    {
      "commit": "b1e5a5b94158566fd2a6d4db28063b7666d8a934",
      "tree": "ef84b6fd0a5724befa49eeaa33700cb5db954cb5",
      "parents": [
        "76ab3cccc13ee591cbd553e0cf1ba051f5572fd3"
      ],
      "author": {
        "name": "Michael Buch",
        "email": "michaelbuch12@gmail.com",
        "time": "Sun Oct 25 15:22:04 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Oct 25 08:29:50 2026 -0700"
      },
      "message": "[libc++][lldb] Add initial LLDB data-formatters (#187677)\n\nAdd synthetic child providers for `std::map` and `std::vector`. These\nwere translated from C++ into Python (with the help of Claude).\n\nSigned-off-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nCo-authored-by: Louis Dionne \u003cldionne.2@gmail.com\u003e\nCo-authored-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: 62141d57be96448943dbf9cd00d108bdcd2d33f4\n"
    },
    {
      "commit": "76ab3cccc13ee591cbd553e0cf1ba051f5572fd3",
      "tree": "a2d0c4b4795c4a71c69a796eee621cfe084297a0",
      "parents": [
        "06369af114e7e9d9edd0754a4498cf6d43e2aee8"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Sat Oct 24 08:29:01 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Oct 24 00:32:24 2026 -0700"
      },
      "message": "[libc++] Add benchmarks for std::reduce and std::transform_reduce (#233374)\n\nThe PR adds benchmarks for these algorithms:\n- `std::reduce()`\n- `std::transform_reduce()`, unary transform\n- `std::transform_reduce()`, binary transform\n\nThe benchmarks run minimal reduction and transformation operators with\n`int`, `float` and `double` parameters.\n`std::vector` and `std::list` containers are tested, `std::deque` is not\nincluded to reduce the number of added benchmarks.\n\nFixes #226211\n\n---------\n\nCo-authored-by: Louis Dionne \u003cldionne.2@gmail.com\u003e\nGitOrigin-RevId: b968e745fb9552b0da3b7fdfaf70c2c31eb7bece\n"
    },
    {
      "commit": "06369af114e7e9d9edd0754a4498cf6d43e2aee8",
      "tree": "be178cfc945829af6b94740bce5991a404264718",
      "parents": [
        "4339c5c1481eb3890e3c58c9cf4c5df9ac3c0195"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Fri Oct 23 12:06:55 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 23 02:12:47 2026 -0700"
      },
      "message": "[libcxx] [test] Update XFAILs for a clang-cl bug fixed in clang 23 (#234630)\n\nThis issue, issue https://github.com/llvm/llvm-project/issues/40363, was\nfixed by PR https://github.com/llvm/llvm-project/pull/168171 (commit\n9ce9e4e6c19bed1781db2c20fae7f24c905438e9) for LLVM 23.\n\nTherefore, update the XFAILs to limit the XFAIL to clang 21 and 22.\n(Older versions aren\u0027t supported.)\n\nThis unblocks one aspect of updating the version of clang-cl in CI to\nversion 23.\n\nGitOrigin-RevId: 1efb690992f0054079a9d8e474a551af066aee0c\n"
    },
    {
      "commit": "4339c5c1481eb3890e3c58c9cf4c5df9ac3c0195",
      "tree": "3a1fa7031df0959c4fac64d808f1d0ee2cfa9d00",
      "parents": [
        "98736a9d4026320684e1b05f12dd69422af06ece"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Fri Oct 23 09:45:47 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 23 01:52:58 2026 -0700"
      },
      "message": "[libc++][pstl] Add serial implementations of the set operations (#233783)\n\nThis PR adds serial implementations of the set operations to PSTL.\nThey are added to the serial backend only, such that any other one can\nfall back to these implementations.\nCurrently there\u0027s no intent to provide parallel versions of these\nalgorithms, but later they can be added as well.\n\nThese are the added set operations:\n- `std::includes`\n- `std::set_union`\n- `std::set_intersection`\n- `std::set_difference`\n- `std::set_symmetric_difference`\n\nPart of #99938.\n\nGitOrigin-RevId: 033f55044e278cda13e7a1472ab1fd7a4f9c0936\n"
    },
    {
      "commit": "98736a9d4026320684e1b05f12dd69422af06ece",
      "tree": "d47076eb4126267ea75facd7850486a2645c84c9",
      "parents": [
        "8cdaeea139f35891ec69b65f5eaf026b745ea0ad"
      ],
      "author": {
        "name": "Vishank Singh",
        "email": "vishanksinghh@gmail.com",
        "time": "Fri Oct 23 11:16:26 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 22:54:08 2026 -0700"
      },
      "message": "[libc++] Implement LWG3749: `common_iterator` should handle integer-class difference types (#233606)\n\nMake `iterator_category` of `iterator_traits\u003ccommon_iterator\u003cI,S\u003e\u003e`\nconditionally present only when `iter_difference_t\u003cI\u003e` is an integral\ntype.\n\nFixes #105291\n\nGitOrigin-RevId: 9d207030224595de65c0ca54033bd9d71412921c\n"
    },
    {
      "commit": "8cdaeea139f35891ec69b65f5eaf026b745ea0ad",
      "tree": "9948ea2a9a77ce0fde43b9d5c3397ed32bb131ec",
      "parents": [
        "9e863501021d3946475ada0a8b68edec15f08abc"
      ],
      "author": {
        "name": "Reid Kleckner",
        "email": "rkleckner@nvidia.com",
        "time": "Thu Oct 22 16:37:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 16:43:04 2026 -0700"
      },
      "message": "[libc++][docs] Remove stale release notes from toctree (#234792)\n\n#234169 deleted the release notes for LLVM 20, 21 and 22 but left them\nlisted in the hidden toctree in `ReleaseNotes.rst`. This results in\nSphinx doc build warnings, which show up as permerge failures.\n\nRemove the three stale toctree entries to fix the doc build warnings.\n\nLLM-aided\n\nGitOrigin-RevId: f1621eb7f46e649d0bae1da84895b252a945034a\n"
    },
    {
      "commit": "9e863501021d3946475ada0a8b68edec15f08abc",
      "tree": "7dc02ff89b7fee117ee71897732abab6e460e991",
      "parents": [
        "509cf03ef9114eb737474c170b5e568c92dee873"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 18:59:32 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 16:42:47 2026 -0700"
      },
      "message": "[libc++] Request refinement commits from the benchmark cron job (#234739)\n\nThis closes the loop for automatic refinement of benchmark data. It adds\na CI job that determines which commits to bisect based on the\nchangepoints we find in the existing data, and incorporates them into\nthe set of commits to measure.\n\nThe result is that we automatically bisect commits between which a\nsignificant changepoint is detected.\n\nAssisted by Claude\n\nGitOrigin-RevId: 03608cf04d8aefdb5d647dbb514ea3fb2b260191\n"
    },
    {
      "commit": "509cf03ef9114eb737474c170b5e568c92dee873",
      "tree": "56898aa345e6b96af428519d425b3c932a7fa77c",
      "parents": [
        "b000b4973add56be5efdcd8b8c55d4c5447a992f"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 14:37:36 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 11:42:56 2026 -0700"
      },
      "message": "[libc++] Add a tool to select commits to narrow down benchmark changes (#234716)\n\nThis patch adds the select-refinement-commits script, which reads\nchangepoints and ranks them. It then selects the commits in the middle\nof the segments containing changes, i.e. it selects the commits that we\nshould measure in order to bisect the high-ranked changes we detected.\n\nBy then requesting these additional data points from the benchmarking\ninfrastructure, this allows dynamically refining the benchmark data we\nhave to pinpoint regressions exactly at the commit that introduced them.\n\nThis script is biased towards prefering large changes on a few\nbenchmarks over small changes over many benchmarks, whicih fits the\nnature of libc++ benchmarks better and was experimentally observed to\nproduce better decisions. This may not be right for other test suites.\n\nThe output of the script is a commit list meant to be included with the\nbenchmark planning pipeline.\n\nAssisted by Claude\n\nGitOrigin-RevId: 763ee24d95619c79e72da86b29ee8711827f031a\n"
    },
    {
      "commit": "b000b4973add56be5efdcd8b8c55d4c5447a992f",
      "tree": "e0bae83a83865b24067a6369097687b7f81fb22e",
      "parents": [
        "26d232317a39d233f117a164917923b63fb2f6bc"
      ],
      "author": {
        "name": "Zibi Sarbinowski",
        "email": "zibi@ca.ibm.com",
        "time": "Thu Oct 22 13:27:49 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 10:33:32 2026 -0700"
      },
      "message": "[libc++][filesystem] Fix truncation in vformat_string dynamic fallback (#203531)\n\nThe `vformat_string` fallback path (used when the message exceeds the\nstack buffer) had two bugs that caused the last character to be silently\ndropped:\n\n1. **Off-by-one in `resize_and_overwrite`**: `vsnprintf` returns the\n   number of bytes needed *excluding* the null terminator. The fallback\n   called `resize_and_overwrite(size, ...)`, which passed `n \u003d\u003d size`\n   to `vsnprintf`. Since `vsnprintf` needs `n+1` bytes to write `n`\n   characters plus the null terminator, it truncated the output by one\n   character. Fixed by keeping `resize_and_overwrite(size, ...)` and\n   passing `n + 1` to `vsnprintf`: `std::string` always has room for a\n   null terminator past its size, so there is no need to request\n   `size + 1` characters from the string.\n\n2. **`ap` was never the problem**: Because the first `vsnprintf` call\n   uses `apcopy` (not `ap`), `ap` remains valid for use in the\n   fallback. The fallback correctly uses `ap` directly.\n\nThese bugs caused test failures in `copy_file.pass.cpp` on z/OS when the\n`--execdir` path was long enough that the formatted error message\n(which includes paths twice) exceeded 256 characters. The symptom was:\n\n```\nExpected message length: 263 characters\nActual message length: 262 characters (missing final \u0027]\u0027)\n```\n\nWith the fallback now working correctly, the stack buffer stays at its\noriginal 256 bytes — no workaround inflation needed.\n\nCo-authored-by: Sean Perry \u003cperry@ca.ibm.com\u003e\nGitOrigin-RevId: 2a377c5826a83055524a710368e93ec12155a9ea\n"
    },
    {
      "commit": "26d232317a39d233f117a164917923b63fb2f6bc",
      "tree": "2d6343ba26c65ae5e65fb6da41cedc8be346ac01",
      "parents": [
        "2be5fe3b6e47a5f98d34a6c22cddd590d35a01c3"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 11:23:47 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 08:30:17 2026 -0700"
      },
      "message": "[libc++] Allow detect-changepoints to analyze several series at once (#234651)\n\nAdd --series-by FIELD, which splits the input into one series per value\nof that field and analyzes each of them on its own. This allows\nanalyzing all the benchmarks for a given machine with a single\ninvocation:\n\ncurl -sS --fail --compressed -G\nhttps://lnt.llvm.org/api/suites/libcxx/series \\\n--data-urlencode machine\u003d\u003cmachine\u003e --data-urlencode\nmetric\u003dexecution_time \\\n      | detect-changepoints --series-by test --aggregate median\n\nAssisted by Claude\n\nGitOrigin-RevId: 48a360b11dd13348c123cedf92fe04bd1898843b\n"
    },
    {
      "commit": "2be5fe3b6e47a5f98d34a6c22cddd590d35a01c3",
      "tree": "6ca34bfa1586a6e17f13472cd27321a8ef81de0f",
      "parents": [
        "72bd6845c3ae1a6e21234a98664dc30179a5e1ce"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 09:36:31 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 06:43:44 2026 -0700"
      },
      "message": "[libc++] Share the benchmark paths and the LNT runs listing between the LNT tools (#234616)\n\nThis is a NFC commit that will simplify the introduction of refinement\ntooling in upcoming PRs.\n\nAssisted by Claude\n\nGitOrigin-RevId: c01d0cd644a0ea0945ceb9a32279ce670edce83f\n"
    },
    {
      "commit": "72bd6845c3ae1a6e21234a98664dc30179a5e1ce",
      "tree": "1f045aa7dfefc9bd4f075c291ac3f6f045ab7033",
      "parents": [
        "75254edd30f0124df1e354382ad0ea260b541b03"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 09:34:29 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 06:37:59 2026 -0700"
      },
      "message": "[libc++][NFC] Update the LNT README to use GET /series (#234619)\n\nI introduced a GET /series endpoint that is not paginated to simplify\ntools that perform regression detection. Use that in the README example.\n\nGitOrigin-RevId: a5d857a48de815b77dae992ea627379daa9d309b\n"
    },
    {
      "commit": "75254edd30f0124df1e354382ad0ea260b541b03",
      "tree": "00173f6ae3b7b795a65e81d4a977252f8a84713d",
      "parents": [
        "c5c78f81b458fbb93d3819da7cbc392662bd1fd1"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 09:29:35 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 06:33:08 2026 -0700"
      },
      "message": "[libc++] Clean up leftover std::print availability workarounds (#234379)\n\nThe availability markup for std::print was removed in 4a87db6b10a0 and\nthe corresponding macros were deleted entirely in 1616fbaccf82. However,\nseveral functions in \u003cprint\u003e were left templates to work around\nhttps://llvm.org/PR61563, which is not necessary anymore.\n\nRemove a few workarounds that are now unnecessary, and reword others\nthat are required due to format now, not print.\n\nGitOrigin-RevId: 4158a91cde4aa0c1555675976020a7f11f05a18f\n"
    },
    {
      "commit": "c5c78f81b458fbb93d3819da7cbc392662bd1fd1",
      "tree": "e1103284c2156b58434217b6b05a7a4010fa57cc",
      "parents": [
        "c2b2d90e6525744764626e3d1a551fbfe94aa66a"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Oct 22 07:32:26 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 04:40:15 2026 -0700"
      },
      "message": "[libc++][docs] Fix the name of the availability attribute macro (#234380)\n\nThe vendor documentation had a typo (MARKUP vs ATTRIBUTE).\n\nGitOrigin-RevId: 531b9d251cbf853725301f0265c2e8320cf21bd6\n"
    },
    {
      "commit": "c2b2d90e6525744764626e3d1a551fbfe94aa66a",
      "tree": "71acb6642d08e4d90f406f2e4172eac58b7899c5",
      "parents": [
        "bde703a450f3a3a7eeab80b45608e219a0d721e8"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Thu Oct 22 11:25:01 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 02:35:03 2026 -0700"
      },
      "message": "Revert \"[libc++] Fix incorrect size check when growing std::string\" (#234545)\n\nReverts llvm/llvm-project#232737\n\nBroke premerge CI.\n\nGitOrigin-RevId: 64b40b84eb293e259cfe36add2ac34ab3dafc05c\n"
    },
    {
      "commit": "bde703a450f3a3a7eeab80b45608e219a0d721e8",
      "tree": "a23904aa5dc48ab8f0907523ae71cff2efbafb5f",
      "parents": [
        "952ea3f28060e88a8f682014bc60350b6c97c09d"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Thu Oct 22 10:05:38 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 22 01:16:01 2026 -0700"
      },
      "message": "[libc++] Fix incorrect size check when growing std::string (#232737)\n\nWhen trying to grow very large amounts the `max_size()` check could fail\ndue to the result of adding the current capacity and the additional\ncapacity could wrap.\n\nGitOrigin-RevId: 5f2c5b7848b91fa235d21761b7887ec10c71bd10\n"
    },
    {
      "commit": "952ea3f28060e88a8f682014bc60350b6c97c09d",
      "tree": "71acb6642d08e4d90f406f2e4172eac58b7899c5",
      "parents": [
        "996644047c8dea6a54f9cf62a2248f62f30dda49"
      ],
      "author": {
        "name": "Sharjeel Khan",
        "email": "sharjeelkhan@google.com",
        "time": "Wed Oct 21 22:21:45 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 19:26:52 2026 -0700"
      },
      "message": "[libc++][Android] Update compiler and sysroot for Android libc++ builders (#234389)\n\nUpgrade Android compiler from r584948b to r596125 because libc++ is\ndropping LLVM 21 support in\nhttps://github.com/llvm/llvm-project/pull/231580. In addition, update\nthe sysroot to the latest NDK r30\u0027s sysroot but Bionic has deprecated\ncertain symbols (btowc, wctob, and strtok) so we ignore\n`Wdeprecated-declarations` for these symbols like\nhttps://github.com/llvm/llvm-project/commit/45ce3f325240417200a7bf89ac6f6c72b190ccbb.\n\nAssisted-by: Gemini\nGitOrigin-RevId: 2e02658913cbb74c3aa4aece44b42a88df475146\n"
    },
    {
      "commit": "996644047c8dea6a54f9cf62a2248f62f30dda49",
      "tree": "62f97b082f6ca4fc284dbd574876a8b5eeb9b538",
      "parents": [
        "6b3637df4832598d94a422137f87d78ffc8695b3"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Oct 21 22:10:17 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 19:17:51 2026 -0700"
      },
      "message": "[libc++] Actually run union_tests() in invoke.pass.cpp (#234205)\n\nThe tests for LWG3655 were added to invoke.pass.cpp, but we never\nactually ran them.\n\nGitOrigin-RevId: 0441507623697ba25812481dd54255ee3e5212db\n"
    },
    {
      "commit": "6b3637df4832598d94a422137f87d78ffc8695b3",
      "tree": "210c7f249f5cba5624945c4dd89b2ee86a695353",
      "parents": [
        "2408dbf0b47dea368256c400feda4ee71477c0f3"
      ],
      "author": {
        "name": "hchataing",
        "email": "henrichataing@google.com",
        "time": "Thu Oct 22 01:44:51 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 19:17:17 2026 -0700"
      },
      "message": "[libc++] Replace integrals helper by types::integer_types (#233923)\n\nintegrals imprecisely describes the list of all integer\ntypes, only \u0027char\u0027 is included from character types\n\nGitOrigin-RevId: 56fb6257140e502146a9e8e1da99beed864e1e37\n"
    },
    {
      "commit": "2408dbf0b47dea368256c400feda4ee71477c0f3",
      "tree": "aa3959da543dbbb0cac97e781681d12a3d00669b",
      "parents": [
        "14848e2f2fcaae6e2f45a8505d5f287d154f264e"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Thu Oct 22 01:43:21 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 16:47:52 2026 -0700"
      },
      "message": "[libc++] Remove old release notes (#234169)\n\nThe current release is 23, so we don\u0027t need any earlier release notes\nanymore. There is nothing to back-port that could benefit from them.\n\nGitOrigin-RevId: 8ffea316a20a33bb57acdaf7d53c4accd95ce72a\n"
    },
    {
      "commit": "14848e2f2fcaae6e2f45a8505d5f287d154f264e",
      "tree": "eb713a666a7bdbe4ba4d01684ccdc55008d68e14",
      "parents": [
        "f3d918c21b792c44f4ba1edec72f5600ed7a5e76"
      ],
      "author": {
        "name": "Hristo Hristov",
        "email": "hghristov.rmm@gmail.com",
        "time": "Thu Oct 22 02:42:56 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 16:47:26 2026 -0700"
      },
      "message": "[libc++] Flat containers should reject `vector\u003cbool, Alloc\u003e` (#224886)\n\nUpdate the error condition and the error messages.\nThis is a follow-up to 08daaa8e376a5d.\n\nCo-authored-by: Hristo Hristov \u003czingam@outlook.com\u003e\nCo-authored-by: A. Jiang \u003cde34@live.cn\u003e\nGitOrigin-RevId: ead0877d5bb3d8173c999a261f720cc34729f921\n"
    },
    {
      "commit": "f3d918c21b792c44f4ba1edec72f5600ed7a5e76",
      "tree": "01cbf51a64fb9414b0a9acff32a130a5f7a92d23",
      "parents": [
        "5cf473045519a235bcfdd2e5dd437dfa181709f7"
      ],
      "author": {
        "name": "Mehdi Amini",
        "email": "joker.eph@gmail.com",
        "time": "Wed Oct 21 23:47:01 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 14:51:48 2026 -0700"
      },
      "message": "[libc++] Disable automatic module scanning on ARM CI builders (#232947)\n\nThe ARM Buildkite toolchains do not expose clang-scan-deps to CMake.\nWhen CMP0155 enables automatic scanning for libc++abi C++23 sources,\nthese standalone runtimes builds fail with the scanner set to NOTFOUND.\n\nPass CMAKE_CXX_SCAN_FOR_MODULES\u003dOFF in the eight ARM job invocations,\nincluding the no-exceptions variants, until their toolchains provide a\nmatching scanner. Keep the other CI configurations on their defaults.\n\nSee the issue tracking upgrading the bots:\nhttps://github.com/llvm/llvm-project/issues/232946\n\nAssisted-by: Codex\nGitOrigin-RevId: e8605fba270516fe3715fe38e30904b3217d1bb1\n"
    },
    {
      "commit": "5cf473045519a235bcfdd2e5dd437dfa181709f7",
      "tree": "c33c657d0bd9f87a4de1c95246fb034671bb405a",
      "parents": [
        "a7f13d5000ffe084a7caa7ca9687d5d7267b7b61"
      ],
      "author": {
        "name": "Lucas Mellone",
        "email": "github.snugness349@passinbox.com",
        "time": "Wed Oct 21 22:35:30 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 13:44:02 2026 -0700"
      },
      "message": "[libc++] Add coverage for corner case in enumerate_view::size test (#233777)\n\nCompletes the [range.enumerate.sentinel] `size` test by addressing the\nreview comment https://github.com/llvm/llvm-project/pull/73617#discussion_r1416645016\nfrom the original implementation.\n\nGitOrigin-RevId: 7ae415894ac76a6301fb005eb06881acba2c2351\n"
    },
    {
      "commit": "a7f13d5000ffe084a7caa7ca9687d5d7267b7b61",
      "tree": "6f72b40dac4f1f6440797fefbcb5ab447980e9e8",
      "parents": [
        "e07551d95dff0369b25588b230d32bc7d1f23e8a"
      ],
      "author": {
        "name": "Michael G. Kazakov",
        "email": "mike.kazakov@gmail.com",
        "time": "Wed Oct 21 17:57:42 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 10:05:19 2026 -0700"
      },
      "message": "[libc++][pstl][NFC] Sort the forward declarations in backend_fwd.h (#233477)\n\nThis file has grown quite a lot and is expected to continue growing.\nMake it easier to maintain by organising the forward declarations in a\nstrict lexicographical order.\n\nGitOrigin-RevId: a6240d136e92e28f0750da242be8cdf2c2e6dc8e\n"
    },
    {
      "commit": "e07551d95dff0369b25588b230d32bc7d1f23e8a",
      "tree": "7fd0c6d2d7e7b586254b9d98ca42ffc65e55a784",
      "parents": [
        "c03fc951192e3469cd8124e020a0dbc73e8491a6"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Wed Oct 21 08:38:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 08:43:22 2026 -0700"
      },
      "message": "[libcxx][docker] Update android libc++ builders (#232887)\n\nThe base images were consolidated in #225214. Move to the new base\nimage.\n\nEnsure we run as root, since the new base image runs as `gha`.\n\nTo test:\n\n    $ sudo docker compose --file \\\n      libcxx/utils/ci/docker/docker-compose.yml build \\\n      libcxx-android-builder\n\nLink: #223854\nGitOrigin-RevId: 0262c111c66182312f60b5883b235bf48466ff13\n"
    },
    {
      "commit": "c03fc951192e3469cd8124e020a0dbc73e8491a6",
      "tree": "21d3612767c6daaf8dc267d16497bb52ec7baa75",
      "parents": [
        "1eb9741ddd1621773400da8a099473759e17549c"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Wed Oct 21 15:45:56 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 06:53:30 2026 -0700"
      },
      "message": "Reapply \"[libc++] Remove __libcpp_allocate\" (#222814) (#229771)\n\nThe crash in Clang that caused the revert has been fixed. This works\naround the issue for old compilers by not using `__builtin_operator_{new,delete}` during constant evaluation.\n\nOriginal commit message:\n\nWe use `__libcpp_allocate` and friends only in very specific\ncircumstances.\nInstead of providing a private API we can make `std::allocator` the\ndefault\nAPI for the uses of `__libcpp_allocate`.\n\nThis reverts commit f896082fb9ea598c548bcb63515da7b23ff40f6d.\n\nGitOrigin-RevId: edad54e08d3b5f8e8669e7caffcfd406c8bdf5c0\n"
    },
    {
      "commit": "1eb9741ddd1621773400da8a099473759e17549c",
      "tree": "783521465e6e51395662d60df0fded6583cd5b8c",
      "parents": [
        "c9d8662c6584d74ceeeef053f033d9dd5e065abd"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Wed Oct 21 13:21:26 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 21 04:29:21 2026 -0700"
      },
      "message": "[libc++] Replace __libcpp_allocate with std::allocator in small_bufer.h (#234158)\n\nWe use `__libcpp_allocate` and frineds only in very specific\ncircumstances. Instead of providing a private API we can make\n`std::allocator` the default API for the uses of `__libcpp_allocate`.\nThis is a step towards that goal.\n\nGitOrigin-RevId: 8775913d9b4a58a4162f2c865f31a213ac96f4c0\n"
    },
    {
      "commit": "c9d8662c6584d74ceeeef053f033d9dd5e065abd",
      "tree": "fffc403eeb084d6d58cda9ca0b65918b1299e1d2",
      "parents": [
        "827db6c99447918bd2182a91f51bcbd752382561"
      ],
      "author": {
        "name": "Michael Jones",
        "email": "michaelrj@google.com",
        "time": "Tue Oct 20 11:26:18 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 11:33:46 2026 -0700"
      },
      "message": "[libcxx][libc] add missing flag to libc config (#233935)\n\nUnder some configs I was getting errors from missing the flag to not\nbuild scudo standalone as a shared library. Add that flag.\n\nGitOrigin-RevId: 5758d8e3120ad749e8a74f2dfec0e43e403d0ff6\n"
    },
    {
      "commit": "827db6c99447918bd2182a91f51bcbd752382561",
      "tree": "2efe48ce3d78a9656788189ef3bdaaa3b8c957b2",
      "parents": [
        "7052f6d5479700807c7864024316d635c2a9b8db"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Oct 20 11:26:43 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 08:33:59 2026 -0700"
      },
      "message": "[libc++] Add a tool to find when a benchmark result changed (#233656)\n\nAdd `detect-changepoints`, which reads a time series line-by-line and\nreports the changepoints in the time series.\n\nThe method is E-Divisive (Matteson \u0026 James, 2014), which has been used\nfor similar applications (e.g. MongoDB performance tooling similar to\nwhat we\u0027re doing here, see [1]). Note that we\u0027re not using the\n`signal-processing-algorithms` package [2] since that repo seems barely\nmaintained and does not support Python \u003e 3.11.\n\n[1]: https://dl.acm.org/doi/10.1145/3491204.3527488\n[2]: https://github.com/mongodb/signal-processing-algorithms\n\nAssisted by Claude\n\nGitOrigin-RevId: 9574c664f774ee83c9487f38e51d8d52f8323b4e\n"
    },
    {
      "commit": "7052f6d5479700807c7864024316d635c2a9b8db",
      "tree": "7bbd26199cc8a574b7d4643edee2380a0355e5e6",
      "parents": [
        "39771eb6bac76c7d261f7512841482a05bbe412e"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Tue Oct 20 16:29:19 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 07:33:19 2026 -0700"
      },
      "message": "[libc++] Optimize filebuf::seekoff (#211788)\n\nIn some cases it is possible to avoid synchronizing with the underlying\nstream, and instead just move the cursor inside the buffer. This can\nsignificantly improve performance, since it avoids making potentially\nexpensive syscalls.\n\nGitOrigin-RevId: c59cd09df19686f62238acea334930dd37218ce7\n"
    },
    {
      "commit": "39771eb6bac76c7d261f7512841482a05bbe412e",
      "tree": "a4a3bbbafe824e7972b995ba020a3342ecb5745f",
      "parents": [
        "13f3116be0de3857574ed1c59a38ad8d1238cc6a"
      ],
      "author": {
        "name": "Brad Smith",
        "email": "brad@comstyle.com",
        "time": "Tue Oct 20 06:35:54 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 20 03:42:58 2026 -0700"
      },
      "message": "[libc++] Mark xopen_source test unsupported on OpenBSD (#233710)\n\nOpenBSD\u0027s headers strictly honor _XOPEN_SOURCE. With 500 and 600 the\nPOSIX.1-2008 locale API (locale_t, uselocale(), LC_*_MASK) is hidden,\nand with any value below 800 asprintf() is hidden since it is only\nexposed for POSIX.1-2024 or the BSD namespace. libc++\u0027s OpenBSD locale\nsupport relies on these from public headers, so every generated test\nfails.\n\nMark the test unsupported on OpenBSD targets, as is already done for\nFreeBSD.\n\nGitOrigin-RevId: 2b83d6a4ef40f9aec3fc7c6a59129ea0875f462d\n"
    },
    {
      "commit": "13f3116be0de3857574ed1c59a38ad8d1238cc6a",
      "tree": "980811758e31fe29c2605b89676702fc38781fa3",
      "parents": [
        "fef7e13c077aca8310c6731b2da4b86888805902"
      ],
      "author": {
        "name": "Vishank Singh",
        "email": "vishanksinghh@gmail.com",
        "time": "Tue Oct 20 12:04:44 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 19 23:38:12 2026 -0700"
      },
      "message": "[libc++] Mark LWG4460 as Nothing To Do (#232252)\n\nLWG4460 only adds a missing Throws: element to the last variant\nconstructor. libc++ already has the correct behaviour, so no code\nchanges are required.\n\nCloses #189836\n\nGitOrigin-RevId: 3f4cb78fba0238f526ada5c58fbcb31a39b69a3d\n"
    }
  ],
  "next": "fef7e13c077aca8310c6731b2da4b86888805902"
}
