{
 "number": 31507,
 "repo": "bitcoin/bitcoin",
 "url": "https://github.com/bitcoin/bitcoin/pull/31507",
 "title": "build: Use clang-cl to build on Windows natively",
 "author": "hebasto",
 "author_association": "MEMBER",
 "created_at": "2024-12-16T10:58:38Z",
 "updated_at": "2026-09-13T14:03:52Z",
 "age_days": 640,
 "draft": false,
 "labels": [
  "Windows",
  "Build system"
 ],
 "milestone": null,
 "base": "master",
 "head_sha": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
 "head_ref": "241216-clang-cl",
 "head_repo": "hebasto/bitcoin",
 "head_history": [
  {
   "t": "2024-12-17T11:47:59Z",
   "sha": "caa61b5c7a07536925f42b3cd52dd0ba5e768fe4"
  },
  {
   "t": "2025-03-10T17:45:29Z",
   "sha": "d60710991d9eb25b0fc5c4e314f20271f15e2e3e"
  },
  {
   "t": "2025-03-10T17:52:43Z",
   "sha": "4941ea80060d0167d154aa2b48f3bdbd36420c89"
  },
  {
   "t": "2025-03-11T15:56:18Z",
   "sha": "80e7e80a6dbe87782fe943eb6835182622c02384"
  },
  {
   "t": "2025-03-17T12:29:52Z",
   "sha": "19191706cb3f6657674cfaacd9a753f1067d1182"
  },
  {
   "t": "2025-05-13T10:40:44Z",
   "sha": "33298f01e8aa237f0d918249da4fb5b83b2c7b13"
  },
  {
   "t": "2025-05-13T16:59:02Z",
   "sha": "85c3b4f241ba61cb5f298e288f47ab141b59dc48"
  },
  {
   "t": "2025-05-15T15:40:04Z",
   "sha": "fba56f9052950267d46220eee73bd433a33fef18"
  },
  {
   "t": "2025-05-16T10:12:09Z",
   "sha": "ae314018b1b013b701c2feff2b3241323f44a9da"
  },
  {
   "t": "2025-05-17T11:56:05Z",
   "sha": "41d4b94c8f72e8d5db1460fd16d1e578a4bd5964"
  },
  {
   "t": "2025-05-18T09:51:08Z",
   "sha": "336ca00df31ab5ea68c7883922f607d4f4373b7e"
  },
  {
   "t": "2025-10-16T15:12:07Z",
   "sha": "a4cc68115d60c182d6d20c0adc5ad1381095bc15"
  },
  {
   "t": "2025-10-16T15:40:10Z",
   "sha": "39b091a1d92f48503207c8458b215ec06c6fb982"
  },
  {
   "t": "2025-11-04T17:52:05Z",
   "sha": "a1469e6c4392a4a776ba4b3ec804a5b40aa23fd0"
  },
  {
   "t": "2025-12-01T11:03:48Z",
   "sha": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1"
  },
  {
   "t": "2025-12-02T12:16:04Z",
   "sha": "bf15fb8e8d2fd4e89583ad202818a9458964cd0f"
  },
  {
   "t": "2026-01-22T12:13:46Z",
   "sha": "42000aeed009eaa1c8d11fbeed36a2b792b95124"
  },
  {
   "t": "2026-01-22T13:18:53Z",
   "sha": "f482a4edea20062c837461573ebe84590850d9a4"
  },
  {
   "t": "2026-01-22T14:49:44Z",
   "sha": "af37ba98397181cd0945f3d07628222663cf6dd0"
  },
  {
   "t": "2026-01-22T16:08:33Z",
   "sha": "48521e9419c6c315508e8c09e30e7f8ff6d44a25"
  },
  {
   "t": "2026-01-22T22:36:07Z",
   "sha": "8e8cf277d7dbef4de695dd3ef2b80cd4a11b96be"
  },
  {
   "t": "2026-02-12T11:13:51Z",
   "sha": "7eefe455c1f4b27886283ebc2ba494cf748d5d20"
  },
  {
   "t": "2026-02-12T14:33:00Z",
   "sha": "e3a1b1d927687a408b5f7ea0cb526e185f282015"
  },
  {
   "t": "2026-02-19T17:10:47Z",
   "sha": "a5a8b9a315f7e9ebb984ece3e940382095b7ffee"
  },
  {
   "t": "2026-02-19T19:02:21Z",
   "sha": "4f265f43d89908bef095ff779b6d5772f6516ef4"
  },
  {
   "t": "2026-02-23T11:46:30Z",
   "sha": "1d2baf97b97e6bb31802e5fa3772c8c6fe679c9e"
  },
  {
   "t": "2026-02-23T16:34:58Z",
   "sha": "9d3db80e442adfdccfedcdaa1d710633e0d2d294"
  },
  {
   "t": "2026-03-13T10:34:28Z",
   "sha": "d758f2b23dcd9ad78c871ce527866fe45466fd81"
  },
  {
   "t": "2026-03-20T17:02:32Z",
   "sha": "be70f28eee22f84c9450b2fe15ae5433ecd82293"
  },
  {
   "t": "2026-03-25T23:19:26Z",
   "sha": "d8fdee9ffb850cb57793eb266fd4877c63da3318"
  },
  {
   "t": "2026-04-09T13:32:35Z",
   "sha": "a10622c5544c62a8110abad5fb6556f867f6d489"
  },
  {
   "t": "2026-04-09T14:13:48Z",
   "sha": "ca165a4ecf4859ede995f3988051b0c3bf25d50a"
  },
  {
   "t": "2026-05-28T15:06:45Z",
   "sha": "f186438e21517ce4e2a13f98dd8199cc599d668f"
  },
  {
   "t": "2026-08-12T15:40:43Z",
   "sha": "914a8734d131481a99d88e7f5d4292109877874e"
  },
  {
   "t": "2026-08-12T15:47:50Z",
   "sha": "ec347d1108d57d682bdc239558b8ca2660be6a3a"
  }
 ],
 "additions": 131,
 "deletions": 94,
 "changed_files": 10,
 "commit_count": 6,
 "size_bucket": "M",
 "mergeable_state": "clean",
 "bot": {
  "drahtbot": {
   "present": true,
   "reviews": {
    "concept_ack": [
     {
      "login": "fanquake",
      "url": "https://github.com/bitcoin/bitcoin/pull/31507#issuecomment-3860542483"
     },
     {
      "login": "hodlinator",
      "url": "https://github.com/bitcoin/bitcoin/pull/31507#pullrequestreview-4926426721"
     }
    ]
   },
   "conflicts": [
    {
     "number": 36167,
     "title": "[RFC] Enable `-Wunused`",
     "author": "fanquake"
    },
    {
     "number": 35911,
     "title": "Warn on and add missing [[noreturn]]",
     "author": "fanquake"
    },
    {
     "number": 35356,
     "title": "ci: Test build dir with spaces",
     "author": "maflcko"
    },
    {
     "number": 32387,
     "title": "ipc: add windows support",
     "author": "ryanofsky"
    },
    {
     "number": 29409,
     "title": "multiprocess: Add capnp wrapper for Chain interface",
     "author": "ryanofsky"
    },
    {
     "number": 19461,
     "title": "multiprocess: Add bitcoin-gui -ipcconnect option",
     "author": "ryanofsky"
    },
    {
     "number": 19460,
     "title": "multiprocess: Add bitcoin-wallet -ipcconnect option",
     "author": "ryanofsky"
    },
    {
     "number": 10102,
     "title": "Multiprocess bitcoin",
     "author": "ryanofsky"
    }
   ]
  }
 },
 "acks_parsed": {
  "hodlinator": {
   "kind": "concept_ack",
   "hash": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "t": "2026-08-20T08:40:15Z",
   "stale": false
  }
 },
 "acks_tally": {
  "ack": 0,
  "stale_ack": 0,
  "concept_ack": 1,
  "approach_ack": 0,
  "nack": 0,
  "concept_nack": 0,
  "approach_nack": 0
 },
 "reviews": {
  "approved": 0,
  "changes_requested": 0,
  "distinct_reviewers": [
   "fanquake",
   "hodlinator",
   "maflcko",
   "theuni"
  ]
 },
 "signals": {
  "needs_rebase": false,
  "ci_failed": false,
  "mergeable_state": "clean",
  "last_author_activity": "2026-08-12T15:47:50Z",
  "last_reviewer_activity": "2026-08-20T08:40:15Z",
  "last_reviewer": "hodlinator",
  "author_silent_days": 36,
  "waiting_on_author_days": 28,
  "days_since_update": 4
 },
 "refs": {
  "mentioned": [],
  "depends_on": [],
  "fixes": [],
  "linked_issues": [],
  "references": [],
  "conflicts": [
   36167,
   35911,
   35356,
   32387,
   29409,
   19461,
   19460,
   10102
  ]
 },
 "stack": {
  "shares_commits_with": [],
  "based_on": [],
  "base_for": []
 },
 "review_paths": [
  ".github/ci-windows.py",
  ".github/workflows/ci.yml",
  "CMakeLists.txt",
  "CMakePresets.json",
  "cmake/leveldb.cmake",
  "cmake/module/TryAppendCXXFlags.cmake",
  "doc/build-windows-msvc.md",
  "src/compat/byteswap.h",
  "src/netaddress.h",
  "src/qt/CMakeLists.txt",
  "src/util/subprocess.h"
 ],
 "body": "Building on Windows using Clang instead of the MS compiler may be beneficial, considering the issues with the latter, as outlined in https://github.com/bitcoin/bitcoin/issues/31456:\n\n[quoted text omitted]\nAdditionally, MSVC does not [support](https://learn.microsoft.com/en-us/cpp/assembler/inline/inline-assembler) inline assembly on the ARM and x64 processors.\n\nSo this PR:\n1. Closes https://github.com/bitcoin/bitcoin/issues/31456 (and addresses https://github.com/bitcoin/bitcoin/issues/14118).\n2. Could be an alternative to https://github.com/bitcoin/bitcoin/pull/24773.\n\n---\n\nAdditionally, clang-cl:\n1. Produces binaries with [better](https://github.com/bitcoin-core/secp256k1/pull/1681) performance. For example:\n\n| MSVC, block/s | clang-cl, block/s | benchmark |\n|--------------:|------------------:|:----------|\n|          7.40 |             11.52 | `ConnectBlockAllEcdsa`\n|          7.32 |             11.81 | `ConnectBlockAllSchnorr`\n|          7.38 |             11.45 | `ConnectBlockMixedEcdsaSchnorr`\n|         91.86 |            143.12 | `DeserializeAndCheckBlockTest`\n|        121.46 |            189.04 | `DeserializeBlockTest`\n\n2. Builds faster on the CI:\n    - [MSVC](https://github.com/bitcoin/bitcoin/actions/runs/13792522864/job/38575846787) - 20m 35s\n    - [clang-cl](https://github.com/bitcoin/bitcoin/actions/runs/13792522864/job/38575849680) - 12m 43s",
 "commits": [
  {
   "sha": "4241a5e089b2d7874551336ef09f88566703d6ae",
   "date": "2026-08-12T14:13:58Z",
   "message": "cmake: Always link `bitcoinqt` to `shlwapi` when building on Windows"
  },
  {
   "sha": "d8e58c1ea28d5f62d096a86ce64d3d8c7117ab86",
   "date": "2026-08-12T14:15:15Z",
   "message": "cmake: Link to clang-cl builtins library on Windows"
  },
  {
   "sha": "725178f365dc43295ee70a649aeb7ae6a00ddd7f",
   "date": "2026-08-12T14:15:15Z",
   "message": "cmake: Adjust diagnostic flags for clang-cl\n\nBeing compatible with cl.exe, clang-cl supports most of the same\ncommand-line options. These options are typically guarded by the `MSVC`\nCMake variable.\n\nOptions not supported by clang-cl, such as `/wdNNN`, are now guarded by\n`CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\"`."
  },
  {
   "sha": "a630d623f3136af47ebc74e67312162802065905",
   "date": "2026-08-12T15:09:25Z",
   "message": "Couple `BSWAP_CONSTEXPR` definition to bswap implementation\n\nPreviously `BSWAP_CONSTEXPR` was defined empty whenever `_MSC_VER` was\ndefined. However, clang-cl also defines `_MSC_VER` while it selects\nClang's `__builtin_bswap*` builtins, which are `constexpr`."
  },
  {
   "sha": "96d2380dc40e703e342dc0fad5d294cc49b25ff9",
   "date": "2026-08-12T15:12:55Z",
   "message": "cmake: Drop support for MSVC"
  },
  {
   "sha": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "date": "2026-08-12T15:47:44Z",
   "message": "doc: Add clang-cl release notes"
  }
 ],
 "timeline": [
  {
   "t": "2024-12-16T12:52:05Z",
   "kind": "comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "text": "Seems fine to add this, because it is easy to remove and can increase the build compatibly in the meantime.\n\nAlso, it allows to evaluate the codegen, which could be substantially better than msvc, or detect more msvc bugs.\n\nIf there are enough benefits to clang-cl, the docs could be updated to use it and msvc could be dropped from the docs and possibly CI."
  },
  {
   "t": "2024-12-16T12:54:11Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nDoes it? My read of the docs was that clang just tries to internally work around all the MSVC bugs, so it seems like it will just continue to \"hide\" issues?"
  },
  {
   "t": "2024-12-16T13:33:19Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "From https://github.com/bitcoin/bitcoin/issues/31456#issue-2729797132:\n\n[quoted text omitted]\nAdded two commits that enable compiling `fuzz/utxo_snapshot.cpp` with clang-cl and switch \"Win64 native, fuzz\" job to clang-cl."
  },
  {
   "t": "2024-12-16T19:44:29Z",
   "kind": "review_comment",
   "who": "theuni",
   "assoc": "MEMBER",
   "path": "cmake/module/TryAppendCXXFlags.cmake",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "Can't the `if(MSVC)` go away and we just rely on the `CMAKE_CXX_COMPILER_ID` test?"
  },
  {
   "t": "2024-12-16T19:46:54Z",
   "kind": "comment",
   "who": "theuni",
   "assoc": "MEMBER",
   "text": "At a high level.. seems to me we want to avoid doing `if(MSVC)` as much as possible and instead check against the compiler id, no? Except for the cases where we REALLY mean MSVC."
  },
  {
   "t": "2024-12-16T20:02:43Z",
   "kind": "comment",
   "who": "theuni",
   "assoc": "MEMBER",
   "text": "Hmm, actually, it seems like maybe [CMAKE_CXX_COMPILER_FRONTEND_VARIANT](https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_FRONTEND_VARIANT.html) is what we should be testing against?"
  },
  {
   "t": "2024-12-17T11:47:59Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "caa61b5c7a07536925f42b3cd52dd0ba5e768fe4"
  },
  {
   "t": "2024-12-17T11:49:36Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nIt'd be good if this could actually be filled in, so it's clear what the goals are / what's trying to be acheived here."
  },
  {
   "t": "2024-12-17T12:08:17Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "cmake/module/TryAppendCXXFlags.cmake",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 1887472502,
   "text": "In this case, I think we do want to check `MSVC`, as it separates MSVC specific syntax `/WX` from GCC syntax `-Werror`."
  },
  {
   "t": "2024-12-17T12:11:22Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nIt doesn't seem reliable, as it might not be set at all for CMake versions < 3.26."
  },
  {
   "t": "2025-03-10T17:45:29Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "d60710991d9eb25b0fc5c4e314f20271f15e2e3e"
  },
  {
   "t": "2025-03-10T17:47:18Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased on https://github.com/bitcoin/bitcoin/pull/32028."
  },
  {
   "t": "2025-03-10T17:52:43Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "4941ea80060d0167d154aa2b48f3bdbd36420c89"
  },
  {
   "t": "2025-03-11T15:28:35Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nDone."
  },
  {
   "t": "2025-03-11T15:56:18Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "80e7e80a6dbe87782fe943eb6835182622c02384"
  },
  {
   "t": "2025-03-12T03:39:38Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "cmake/leveldb.cmake",
   "commit": "80e7e80a6dbe87782fe943eb6835182622c02384",
   "in_reply_to": null,
   "text": "In 76659d92f1925f561736ffe0f070ed0b9fef8d23: It'd be good if commits like this could contain actual details, rather than just \"Adjust diagnostic flags\"; especially given this is touching non-Windows code. Also, any reason to not fix the issues in leveldb, rather than adding more suppressions?"
  },
  {
   "t": "2025-03-17T12:29:52Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "19191706cb3f6657674cfaacd9a753f1067d1182"
  },
  {
   "t": "2025-05-13T10:40:44Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "33298f01e8aa237f0d918249da4fb5b83b2c7b13"
  },
  {
   "t": "2025-05-13T11:27:09Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "```bash\n   test_bitcoin.vcxproj -> D:\\a\\bitcoin\\bitcoin\\build\\bin\\Release\\test_bitcoin.exe\nlld-link : warning : found both wWinMain and WinMain; using latter [D:\\a\\bitcoin\\bitcoin\\build\\src\\qt\\bitcoin-qt.vcxproj]\nlld-link : error : undefined symbol: __declspec(dllimport) PathRemoveFileSpecW [D:\\a\\bitcoin\\bitcoin\\build\\src\\qt\\bitcoin-qt.vcxproj]\n[quoted text omitted]\nlld-link : error : undefined symbol: __declspec(dllimport) PathRemoveFileSpecW [D:\\a\\bitcoin\\bitcoin\\build\\src\\qt\\test\\test_bitcoin-qt.vcxproj]\n[quoted text omitted]\n```\n\n```bash\n  C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.20348.0\\shared\\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'\nlld-link : error : undefined symbol: __divti3 [D:\\a\\bitcoin\\bitcoin\\build\\src\\test\\fuzz\\fuzz.vcxproj]\n[quoted text omitted]\n```"
  },
  {
   "t": "2025-05-13T16:59:02Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "85c3b4f241ba61cb5f298e288f47ab141b59dc48"
  },
  {
   "t": "2025-05-15T15:40:04Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "fba56f9052950267d46220eee73bd433a33fef18"
  },
  {
   "t": "2025-05-16T10:12:09Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "ae314018b1b013b701c2feff2b3241323f44a9da"
  },
  {
   "t": "2025-05-17T11:56:05Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "41d4b94c8f72e8d5db1460fd16d1e578a4bd5964"
  },
  {
   "t": "2025-05-17T11:58:49Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "cmake/leveldb.cmake",
   "commit": "80e7e80a6dbe87782fe943eb6835182622c02384",
   "in_reply_to": 1990498934,
   "text": "More details have been added to the commit message.\n\n[quoted text omitted]\nI'll consider this option."
  },
  {
   "t": "2025-05-17T22:10:26Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "cmake/leveldb.cmake",
   "commit": "80e7e80a6dbe87782fe943eb6835182622c02384",
   "in_reply_to": 1990498934,
   "text": "[quoted text omitted]\n\nPlease see https://github.com/bitcoin-core/leveldb-subtree/pull/53."
  },
  {
   "t": "2025-05-18T09:51:08Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "336ca00df31ab5ea68c7883922f607d4f4373b7e"
  },
  {
   "t": "2025-05-21T09:11:23Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "Reading the description, I'm still not really clear on the goals here. It seems like this is just adding even more ways to compile for Windows, which we have to add more CI / and more work arounds for, but doesn't actually improve the Windows binaries we are shipping to end users in any way. This might make more sense if we were actually going to switch to shipping Windows binaries using Clang."
  },
  {
   "t": "2025-10-16T15:05:59Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nBuilding Bitcoin Core from source has always been considered one of the best practices. Not supporting an effective compiler, such as clang-cl on Windows, prevents users from achieving optimal performance, which negatively affects their experience.\n\nIf adding one more CI job is an issue for the current framework, we could consider dropping MSVC support instead. And if another compiler exposes more source-level workarounds, that\u2019s an indication the code could be made more portable.\n\n[quoted text omitted]\nThat\u2019s already on the [horizon](https://github.com/bitcoin/bitcoin/issues/31388#issuecomment-3369255505)."
  },
  {
   "t": "2025-10-16T15:12:07Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "a4cc68115d60c182d6d20c0adc5ad1381095bc15"
  },
  {
   "t": "2025-10-16T15:12:33Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased to refresh the CI."
  },
  {
   "t": "2025-10-16T15:21:51Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nClang on Windows produces better performing binaries than MSVC?"
  },
  {
   "t": "2025-10-16T15:24:48Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nYes. I forgot to put this link into my previous comment: https://github.com/bitcoin-core/secp256k1/pull/1681."
  },
  {
   "t": "2025-10-16T15:26:37Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nHave you seen the same from actually running Core, or it's benchmarks, or an IBD?"
  },
  {
   "t": "2025-10-16T15:34:09Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nI'll refresh my benchmarks and post them shortly."
  },
  {
   "t": "2025-10-16T15:36:04Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "```bash\n\nD:\\a\\bitcoin\\bitcoin\\src\\script\\interpreter.cpp(1531,33): warning : variable 'ext_flag' may be uninitialized when used here [-Wconditional-uninitialized] [D:\\a\\bitcoin\\bitcoin\\build\\src\\bitcoin_consensus.vcxproj]\n  D:\\a\\bitcoin\\bitcoin\\src\\script\\interpreter.cpp(1733,10): note: in instantiation of function template specialization 'SignatureHashSchnorr<CTransaction>' requested here\n  D:\\a\\bitcoin\\bitcoin\\src\\script\\interpreter.cpp(1481,21): note: initialize the variable 'ext_flag' to silence this warning\nD:\\a\\bitcoin\\bitcoin\\src\\script\\interpreter.cpp(1531,33): warning : variable 'ext_flag' may be uninitialized when used here [-Wconditional-uninitialized] [D:\\a\\bitcoin\\bitcoin\\build\\src\\bitcoin_consensus.vcxproj]\n  D:\\a\\bitcoin\\bitcoin\\src\\script\\interpreter.cpp(1733,10): note: in instantiation of function template specialization 'SignatureHashSchnorr<CMutableTransaction>' requested here\n  D:\\a\\bitcoin\\bitcoin\\src\\script\\interpreter.cpp(1481,21): note: initialize the variable 'ext_flag' to silence this warning\n  bitcoin_clientversion.vcxproj -> D:\\a\\bitcoin\\bitcoin\\build\\lib\\Release\\bitcoin_clientversion.lib\n```\n```bash\n D:\\a\\bitcoin\\bitcoin\\src\\util/subprocess.h(759,10): error : private field 'parent_' is not used [-Werror,-Wunused-private-field] [D:\\a\\bitcoin\\bitcoin\\build\\src\\bitcoin_common.vcxproj]\nD:\\a\\bitcoin\\bitcoin\\src\\util/subprocess.h(760,7): error : private field 'err_wr_pipe_' is not used [-Werror,-Wunused-private-field] [D:\\a\\bitcoin\\bitcoin\\build\\src\\bitcoin_common.vcxproj]\nD:\\a\\bitcoin\\bitcoin\\src\\util/subprocess.h(1038,7): error : private field 'child_pid_' is not used [-Werror,-Wunused-private-field] [D:\\a\\bitcoin\\bitcoin\\build\\src\\bitcoin_common.vcxproj]\n```"
  },
  {
   "t": "2025-10-16T15:40:10Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "39b091a1d92f48503207c8458b215ec06c6fb982"
  },
  {
   "t": "2025-10-25T17:58:51Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nBelow are benchmarks on my Windows machine:\n\nCompiled with MSVC\n\n```\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|        1,179,325.00 |              847.94 |    6.9% |      0.15 | :wavy_dash: `AddAndRemoveDisconnectedBlockTransactions10` (Unstable with ~10.9 iters. Increase `minEpochIterations` to e.g. 109)\n|        1,260,020.00 |              793.64 |    5.0% |      0.16 | `AddAndRemoveDisconnectedBlockTransactions90`\n|        1,455,309.09 |              687.14 |    2.4% |      0.18 | `AddAndRemoveDisconnectedBlockTransactionsAll`\n|       71,612,900.00 |               13.96 |    1.1% |      0.79 | `AddrManAdd`\n|      187,231,800.00 |                5.34 |    0.5% |      2.07 | `AddrManAddThenGood`\n|          267,166.67 |            3,742.98 |    2.5% |      0.01 | `AddrManGetAddr`\n|              370.42 |        2,699,601.97 |    9.5% |      0.01 | :wavy_dash: `AddrManSelect` (Unstable with ~2,676.5 iters. Increase `minEpochIterations` to e.g. 26765)\n|        1,524,112.50 |              656.12 |   57.9% |      0.03 | :wavy_dash: `AddrManSelectByNetwork` (Unstable with ~1.6 iters. Increase `minEpochIterations` to e.g. 16)\n|          179,040.00 |            5,585.34 |   32.2% |      0.01 | :wavy_dash: `AddrManSelectFromAlmostEmpty` (Unstable with ~5.2 iters. Increase `minEpochIterations` to e.g. 52)\n|          698,000.00 |            1,432.66 |    1.2% |      0.01 | `AssembleBlock`\n\n|             ns/ecdh |              ecdh/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           72,300.00 |           13,831.26 |    0.3% |      0.01 | `BIP324_ECDH`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              118.70 |        8,424,277.24 |    0.2% |      0.01 | `Base58CheckEncode`\n|               28.09 |       35,600,546.52 |    0.5% |      0.01 | `Base58Decode`\n|               75.57 |       13,232,799.25 |    1.8% |      0.01 | `Base58Encode`\n|               12.29 |       81,346,439.17 |    1.5% |      0.01 | `Bech32Decode`\n|               18.92 |       52,852,519.65 |    0.5% |      0.01 | `Bech32Encode`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              204.06 |        4,900,466.95 |    6.4% |      0.01 | :wavy_dash: `BenchLockedPool` (Unstable with ~4,444.4 iters. Increase `minEpochIterations` to e.g. 44444)\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                2.60 |      384,098,329.17 |    2.6% |      0.03 | `BenchRIPEMD160`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               28.54 |       35,043,209.88 |    1.0% |      0.01 | `BenchTimeDeprecated`\n|               27.26 |       36,688,102.89 |    0.7% |      0.01 | `BenchTimeMillis`\n|               20.72 |       48,253,935.59 |    0.4% |      0.01 | `BenchTimeMillisSys`\n|                2.17 |      460,814,656.01 |    0.4% |      0.01 | `BenchTimeMock`\n|    1,162,030,600.00 |                0.86 |    0.1% |     12.83 | `BlockAssemblerAddPackageTxns`\n|        2,600,400.00 |              384.56 |    0.2% |      0.03 | `BlockEncodingLargeExtra`\n|        2,357,300.00 |              424.21 |    0.3% |      0.03 | `BlockEncodingNoExtra`\n|        2,368,000.00 |              422.30 |    0.5% |      0.03 | `BlockEncodingStdExtra`\n|    5,480,110,960.00 |                0.18 |    0.5% |    326.48 | `BlockFilterIndexSync`\n|       45,776,800.00 |               21.85 |    0.6% |      0.50 | `BlockToJsonVerboseWrite`\n|          484,450.00 |            2,064.20 |    1.1% |      0.01 | `BlockToJsonVerbosity1`\n|       93,670,700.00 |               10.68 |    0.6% |      1.05 | `BlockToJsonVerbosity2`\n|       97,989,500.00 |               10.21 |    1.3% |      1.09 | `BlockToJsonVerbosity3`\n|          724,300.00 |            1,380.64 |    5.6% |      0.01 | :wavy_dash: `BnBExhaustion` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n\n|              ns/job |               job/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              247.58 |        4,039,030.63 |   13.1% |      0.09 | :wavy_dash: `CCheckQueueSpeedPrevectorJob` (Unstable with ~10.9 iters. Increase `minEpochIterations` to e.g. 109)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              851.71 |        1,174,107.66 |    3.4% |      0.01 | `CCoinsCaching`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.88 |      531,597,465.15 |    0.7% |      0.02 | `CHACHA20_1MB`\n|                1.93 |      518,358,837.88 |    0.9% |      0.01 | `CHACHA20_256BYTES`\n|                2.14 |      468,040,540.54 |    2.8% |      0.01 | `CHACHA20_64BYTES`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|          101,433.33 |            9,858.69 |    0.9% |      0.01 | `CheckBlockIndex`\n|       18,427,900.00 |               54.27 |    0.9% |      0.21 | `CoinSelection`\n|      293,690,800.00 |                3.40 |    0.4% |      3.24 | `ComplexMemPool`\n\n|            ns/block |             block/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|      135,146,600.00 |                7.40 |    1.2% |      1.50 | `ConnectBlockAllEcdsa`\n|      136,611,800.00 |                7.32 |    3.1% |      1.51 | `ConnectBlockAllSchnorr`\n|      135,439,600.00 |                7.38 |    0.8% |      1.51 | `ConnectBlockMixedEcdsaSchnorr`\n|       10,885,800.00 |               91.86 |    2.2% |      0.12 | `DeserializeAndCheckBlockTest`\n|        8,232,900.00 |              121.46 |    4.8% |      0.09 | `DeserializeBlockTest`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|        8,377,400.00 |              119.37 |    1.1% |      0.09 | `DuplicateInputs`\n\n|           ns/pubkey |            pubkey/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           61,135.29 |           16,357.16 |    8.2% |      0.01 | :wavy_dash: `EllSwiftCreate` (Unstable with ~15.0 iters. Increase `minEpochIterations` to e.g. 150)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           17,842.00 |           56,047.53 |    1.7% |      0.01 | `EvictionProtection0Networks250Candidates`\n|           17,623.91 |           56,741.09 |    5.8% |      0.01 | :wavy_dash: `EvictionProtection1Networks250Candidates` (Unstable with ~52.2 iters. Increase `minEpochIterations` to e.g. 522)\n|           28,021.21 |           35,687.25 |   10.0% |      0.01 | :wavy_dash: `EvictionProtection2Networks250Candidates` (Unstable with ~34.6 iters. Increase `minEpochIterations` to e.g. 346)\n|            4,916.51 |          203,396.34 |    2.9% |      0.01 | `EvictionProtection3Networks050Candidates`\n|           14,537.70 |           68,786.65 |    0.6% |      0.01 | `EvictionProtection3Networks100Candidates`\n|           32,770.00 |           30,515.72 |    0.4% |      0.01 | `EvictionProtection3Networks250Candidates`\n|       27,257,200.00 |               36.69 |    1.4% |      0.31 | `ExpandDescriptor`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                2.98 |      336,049,738.81 |    2.3% |      0.04 | `FSCHACHA20POLY1305_1MB`\n|                3.69 |      270,753,844.23 |    1.5% |      0.01 | `FSCHACHA20POLY1305_256BYTES`\n|                6.29 |      159,062,436.86 |    4.2% |      0.01 | `FSCHACHA20POLY1305_64BYTES`\n\n|           ns/number |            number/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               13.51 |       74,002,603.32 |    0.8% |      0.01 | `FastRandom_rand32`\n|               21.52 |       46,475,091.77 |    2.0% |      0.01 | `FastRandom_rand64`\n|               17.89 |       55,886,030.54 |    0.5% |      0.01 | `FastRandom_randbits`\n|                2.03 |      492,182,923.46 |    1.0% |      0.01 | `FastRandom_randbool`\n|               12.01 |       83,255,086.07 |    0.7% |      0.01 | `FastRandom_randrange100`\n|               14.46 |       69,142,631.37 |    5.9% |      0.01 | :wavy_dash: `FastRandom_randrange1000` (Unstable with ~70.9 iters. Increase `minEpochIterations` to e.g. 709)\n|               19.40 |       51,540,546.95 |    0.2% |      0.22 | `FastRandom_randrange1000000`\n|               50.69 |       19,727,047.15 |   14.7% |      0.01 | :wavy_dash: `FastRandom_stdshuffle100` (Unstable with ~166.2 iters. Increase `minEpochIterations` to e.g. 1662)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               20.38 |       49,069,790.93 |    4.7% |      0.01 | `FindByte`\n|          843,000.00 |            1,186.24 |    1.0% |      0.01 | `GCSBlockFilterGetHash`\n|       15,844,200.00 |               63.11 |    0.7% |      0.17 | `GCSFilterConstruct`\n|        2,035,000.00 |              491.40 |    0.2% |      0.02 | `GCSFilterDecode`\n|            6,160.00 |          162,337.66 |    0.4% |      0.01 | `GCSFilterDecodeSkipCheck`\n|          252,466.67 |            3,960.92 |    1.3% |      0.01 | `GCSFilterMatch`\n\n|           ns/base16 |            base16/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                2.42 |      413,044,817.50 |    4.9% |      0.01 | `HexParse`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.37 |      729,258,989.13 |   24.9% |      0.02 | :wavy_dash: `HexStrBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n\n|           ns/number |            number/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                2.79 |      358,376,996.23 |    8.7% |      0.01 | :wavy_dash: `InsecureRandom_rand32` (Unstable with ~395,493.5 iters. Increase `minEpochIterations` to e.g. 3954935)\n|                2.10 |      475,354,929.88 |    2.2% |      0.01 | `InsecureRandom_rand64`\n|                3.26 |      306,422,541.39 |   17.8% |      0.01 | :wavy_dash: `InsecureRandom_randbits` (Unstable with ~4,377.0 iters. Increase `minEpochIterations` to e.g. 43770)\n|                1.66 |      602,926,829.27 |    2.9% |      0.01 | `InsecureRandom_randbool`\n|               11.62 |       86,084,142.39 |    9.8% |      0.01 | :wavy_dash: `InsecureRandom_randrange100` (Unstable with ~994.9 iters. Increase `minEpochIterations` to e.g. 9949)\n|                8.65 |      115,668,844.38 |    1.4% |      0.01 | `InsecureRandom_randrange1000`\n|                8.88 |      112,640,519.05 |    4.9% |      0.10 | `InsecureRandom_randrange1000000`\n|               23.36 |       42,813,765.18 |   10.7% |      0.01 | :wavy_dash: `InsecureRandom_stdshuffle100` (Unstable with ~352.1 iters. Increase `minEpochIterations` to e.g. 3521)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           19,800.00 |           50,505.05 |    8.0% |      0.00 | :wavy_dash: `Linearize16TxWorstCase120Iters` (Unstable with ~14.1 iters. Increase `minEpochIterations` to e.g. 141)\n|            4,152.94 |          240,793.20 |    7.3% |      0.01 | :wavy_dash: `Linearize16TxWorstCase20Iters` (Unstable with ~173.1 iters. Increase `minEpochIterations` to e.g. 1731)\n|        1,340,300.00 |              746.10 |    5.2% |      0.02 | :wavy_dash: `Linearize32TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|          458,800.00 |            2,179.60 |    1.8% |      0.01 | `Linearize32TxWorstCase5000Iters`\n|        1,283,800.00 |              778.94 |    3.1% |      0.01 | `Linearize48TxWorstCase15000Iters`\n|          507,900.00 |            1,968.89 |    7.7% |      0.01 | :wavy_dash: `Linearize48TxWorstCase5000Iters` (Unstable with ~2.0 iters. Increase `minEpochIterations` to e.g. 20)\n|        1,279,700.00 |              781.43 |    1.8% |      0.02 | `Linearize64TxWorstCase15000Iters`\n|          746,200.00 |            1,340.12 |   11.1% |      0.01 | :wavy_dash: `Linearize64TxWorstCase5000Iters` (Unstable with ~1.4 iters. Increase `minEpochIterations` to e.g. 14)\n|        3,503,200.00 |              285.45 |   14.3% |      0.04 | :wavy_dash: `Linearize75TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|        1,164,900.00 |              858.44 |   22.0% |      0.01 | :wavy_dash: `Linearize75TxWorstCase5000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|        2,219,000.00 |              450.65 |    4.9% |      0.03 | `Linearize99TxWorstCase15000Iters`\n|          812,600.00 |            1,230.62 |    2.1% |      0.01 | `Linearize99TxWorstCase5000Iters`\n|            2,276.16 |          439,337.25 |    2.2% |      0.01 | `LinearizeNoIters16TxWorstCaseAnc`\n|            3,408.36 |          293,395.92 |    1.2% |      0.01 | `LinearizeNoIters16TxWorstCaseLIMO`\n|            7,155.92 |          139,744.41 |    0.4% |      0.01 | `LinearizeNoIters32TxWorstCaseAnc`\n|           12,471.21 |           80,184.67 |    3.0% |      0.01 | `LinearizeNoIters32TxWorstCaseLIMO`\n|           16,783.33 |           59,582.92 |    9.0% |      0.01 | :wavy_dash: `LinearizeNoIters48TxWorstCaseAnc` (Unstable with ~51.6 iters. Increase `minEpochIterations` to e.g. 516)\n|           31,245.83 |           32,004.27 |   11.6% |      0.01 | :wavy_dash: `LinearizeNoIters48TxWorstCaseLIMO` (Unstable with ~30.4 iters. Increase `minEpochIterations` to e.g. 304)\n|           27,361.11 |           36,548.22 |    2.2% |      0.01 | `LinearizeNoIters64TxWorstCaseAnc`\n|           48,836.84 |           20,476.34 |    2.1% |      0.01 | `LinearizeNoIters64TxWorstCaseLIMO`\n|           53,081.25 |           18,839.04 |    1.7% |      0.01 | `LinearizeNoIters75TxWorstCaseAnc`\n|           77,928.57 |           12,832.26 |    8.7% |      0.01 | :wavy_dash: `LinearizeNoIters75TxWorstCaseLIMO` (Unstable with ~11.8 iters. Increase `minEpochIterations` to e.g. 118)\n|           65,180.00 |           15,342.13 |    4.9% |      0.01 | `LinearizeNoIters99TxWorstCaseAnc`\n|          126,387.50 |            7,912.17 |    0.7% |      0.01 | `LinearizeNoIters99TxWorstCaseLIMO`\n|          184,075.00 |            5,432.57 |    9.2% |      0.01 | :wavy_dash: `LinearizeOptimallyExample00` (Unstable with ~4.0 iters. Increase `minEpochIterations` to e.g. 40)\n|          344,650.00 |            2,901.49 |   25.9% |      0.01 | :wavy_dash: `LinearizeOptimallyExample01` (Unstable with ~2.8 iters. Increase `minEpochIterations` to e.g. 28)\n|          130,585.71 |            7,657.81 |    1.3% |      0.01 | `LinearizeOptimallyExample02`\n|          165,950.00 |            6,025.91 |    1.4% |      0.01 | `LinearizeOptimallyExample03`\n|            6,424.32 |          155,658.39 |    1.9% |      0.01 | `LinearizeOptimallyExample04`\n|           42,055.00 |           23,778.39 |    6.2% |      0.01 | :wavy_dash: `LinearizeOptimallyExample05` (Unstable with ~22.9 iters. Increase `minEpochIterations` to e.g. 229)\n|          110,590.00 |            9,042.41 |    1.7% |      0.01 | `LinearizeOptimallyExample06`\n|           25,597.56 |           39,066.22 |    0.5% |      0.01 | `LinearizeOptimallyExample07`\n|          187,075.00 |            5,345.45 |    1.3% |      0.01 | `LinearizeOptimallyExample08`\n|           40,508.33 |           24,686.28 |    3.8% |      0.01 | `LinearizeOptimallyExample09`\n|           28,385.29 |           35,229.51 |    2.1% |      0.01 | `LinearizeOptimallyExample10`\n|      719,994,100.00 |                1.39 |    1.3% |      7.99 | `LinearizeOptimallyExample11`\n|        1,006,700.00 |              993.34 |    0.9% |      0.01 | `LinearizeOptimallyExample12`\n|          176,500.00 |            5,665.72 |    2.4% |      0.01 | `LinearizeOptimallyExample13`\n|        1,143,000.00 |              874.89 |    2.1% |      0.01 | `LinearizeOptimallyExample14`\n|       29,272,700.00 |               34.16 |    0.5% |      0.33 | `LinearizeOptimallyExample15`\n|       20,853,100.00 |               47.95 |    0.3% |      0.23 | `LinearizeOptimallyExample16`\n|       26,201,500.00 |               38.17 |    0.3% |      0.30 | `LinearizeOptimallyExample17`\n|       26,541,500.00 |               37.68 |    0.7% |      0.30 | `LinearizeOptimallyExample18`\n|       32,764,400.00 |               30.52 |    3.9% |      0.37 | `LinearizeOptimallyExample19`\n|       39,456,100.00 |               25.34 |    4.0% |      0.50 | `LoadExternalBlockFile`\n|           13,837.88 |           72,265.41 |    1.1% |      0.01 | `LogWithDebug`\n|           22,309.09 |           44,824.78 |    1.1% |      0.01 | `LogWithThreadNames`\n|                5.11 |      195,635,694.57 |    0.6% |      0.01 | `LogWithoutDebug`\n|           21,524.39 |           46,458.92 |    1.0% |      0.01 | `LogWithoutThreadNames`\n|               84.59 |       11,822,331.46 |    0.6% |      0.01 | `LogWithoutWriteToFile`\n|      106,364,600.00 |                9.40 |    0.6% |      1.18 | `MempoolCheck`\n|           93,475.00 |           10,698.05 |    6.3% |      0.01 | :wavy_dash: `MempoolCheckEphemeralSpends` (Unstable with ~11.1 iters. Increase `minEpochIterations` to e.g. 111)\n|           78,840.00 |           12,683.92 |    3.3% |      0.01 | `MempoolEviction`\n|            1,662.86 |          601,372.26 |    1.2% |      0.01 | `MergeLinearizations16TxWorstCase`\n|            6,180.56 |          161,797.75 |    2.8% |      0.01 | `MergeLinearizations32TxWorstCase`\n|           13,255.38 |           75,441.04 |    0.4% |      0.01 | `MergeLinearizations48TxWorstCase`\n|           24,127.59 |           41,446.33 |    0.2% |      0.01 | `MergeLinearizations64TxWorstCase`\n|           41,200.00 |           24,271.84 |    4.2% |      0.01 | `MergeLinearizations75TxWorstCase`\n|           71,612.50 |           13,964.04 |    5.3% |      0.01 | :wavy_dash: `MergeLinearizations99TxWorstCase` (Unstable with ~13.7 iters. Increase `minEpochIterations` to e.g. 137)\n\n|             ns/leaf |              leaf/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              803.73 |        1,244,194.40 |    1.7% |      0.08 | `MerkleRoot`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           23,234.38 |           43,039.68 |    0.9% |      0.01 | `MuHash`\n|           22,334.04 |           44,774.70 |    1.5% |      0.01 | `MuHashDiv`\n|          118,775.00 |            8,419.28 |    0.4% |      0.01 | `MuHashFinalize`\n|           24,059.38 |           41,563.84 |    7.7% |      0.01 | :wavy_dash: `MuHashMul` (Unstable with ~39.3 iters. Increase `minEpochIterations` to e.g. 393)\n|            1,170.44 |          854,377.57 |    5.3% |      0.01 | :wavy_dash: `MuHashPrecompute` (Unstable with ~775.1 iters. Increase `minEpochIterations` to e.g. 7751)\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                0.08 |   13,208,359,679.74 |   15.8% |      0.01 | :wavy_dash: `ObfuscationBench` (Unstable with ~12,789.5 iters. Increase `minEpochIterations` to e.g. 127895)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|       25,839,500.00 |               38.70 |    0.0% |      0.03 | `OrphanageEraseForBlock`\n|        8,382,700.00 |              119.29 |    0.0% |      0.01 | `OrphanageEraseForPeer`\n|        8,739,700.00 |              114.42 |    0.0% |      0.01 | `OrphanageMultiPeerEviction`\n|          914,900.00 |            1,093.02 |    0.0% |      0.00 | `OrphanageSinglePeerEviction`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.01 |      987,731,725.70 |    1.0% |      0.01 | `POLY1305_1MB`\n|                1.05 |      950,234,981.39 |    1.1% |      0.01 | `POLY1305_256BYTES`\n|                1.23 |      810,674,540.92 |    0.2% |      0.01 | `POLY1305_64BYTES`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               73.26 |       13,650,324.20 |    2.8% |      0.06 | `PoolAllocator_StdUnorderedMap`\n|               20.40 |       49,028,347.30 |    0.3% |      0.02 | `PoolAllocator_StdUnorderedMapWithPoolResource`\n|            1,630.94 |          613,143.28 |    9.8% |      0.01 | :wavy_dash: `PostLinearize16TxWorstCase` (Unstable with ~583.2 iters. Increase `minEpochIterations` to e.g. 5832)\n|            5,243.22 |          190,722.64 |    4.4% |      0.01 | `PostLinearize32TxWorstCase`\n|           10,507.06 |           95,174.11 |    2.0% |      0.01 | `PostLinearize48TxWorstCase`\n|           17,806.78 |           56,158.39 |    0.2% |      0.01 | `PostLinearize64TxWorstCase`\n|           26,935.48 |           37,125.75 |    1.0% |      0.01 | `PostLinearize75TxWorstCase`\n|           45,540.00 |           21,958.72 |    0.9% |      0.01 | `PostLinearize99TxWorstCase`\n|              348.53 |        2,869,175.24 |    0.9% |      0.01 | `PrePadded`\n|               13.09 |       76,408,566.72 |    1.5% |      0.01 | `PrevectorClearNontrivial`\n|               13.10 |       76,340,252.71 |    1.9% |      0.01 | `PrevectorClearTrivial`\n|              513.70 |        1,946,661.48 |    0.9% |      0.01 | `PrevectorDeserializeNontrivial`\n|               25.56 |       39,116,185.64 |    1.7% |      0.01 | `PrevectorDeserializeTrivial`\n|               34.86 |       28,686,825.52 |    0.3% |      0.01 | `PrevectorDestructorNontrivial`\n|               34.30 |       29,158,158.35 |    0.4% |      0.01 | `PrevectorDestructorTrivial`\n|            2,955.97 |          338,298.76 |    0.5% |      0.01 | `PrevectorFillVectorDirectNontrivial`\n|            1,062.68 |          941,018.49 |   16.4% |      0.01 | :wavy_dash: `PrevectorFillVectorDirectTrivial` (Unstable with ~878.6 iters. Increase `minEpochIterations` to e.g. 8786)\n|           18,486.27 |           54,094.19 |    5.6% |      0.01 | :wavy_dash: `PrevectorFillVectorIndirectNontrivial` (Unstable with ~51.8 iters. Increase `minEpochIterations` to e.g. 518)\n|           14,531.25 |           68,817.20 |    1.2% |      0.01 | `PrevectorFillVectorIndirectTrivial`\n|                6.59 |      151,681,063.12 |    1.2% |      0.01 | `PrevectorResizeNontrivial`\n|                6.52 |      153,458,755.43 |    0.9% |      0.01 | `PrevectorResizeTrivial`\n|        9,865,300.00 |              101.37 |    5.8% |      0.12 | :wavy_dash: `ReadBlockBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|        1,411,200.00 |              708.62 |    3.2% |      0.02 | `ReadRawBlockBench`\n|              680.73 |        1,469,008.73 |    0.7% |      0.01 | `RegularPadded`\n|              497.44 |        2,010,294.54 |    1.0% |      0.01 | `RollingBloom`\n|           27,363.16 |           36,545.49 |    0.2% |      0.01 | `RollingBloomReset`\n|       16,691,500.00 |               59.91 |    1.0% |      0.19 | `RpcMempool`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.71 |      585,411,544.32 |    0.9% |      0.02 | `SHA1`\n|               12.23 |       81,756,487.03 |    0.4% |      0.01 | `SHA256D64_1024_AVX2 using the 'standard' SHA256 implementation`\n|               12.33 |       81,108,910.89 |    1.3% |      0.01 | `SHA256D64_1024_SHANI using the 'standard' SHA256 implementation`\n|               12.65 |       79,025,684.31 |    3.4% |      0.01 | `SHA256D64_1024_SSE4 using the 'standard' SHA256 implementation`\n|               12.27 |       81,512,437.81 |    0.6% |      0.01 | `SHA256D64_1024_STANDARD using the 'standard' SHA256 implementation`\n|               10.94 |       91,389,499.39 |    1.2% |      0.01 | `SHA256_32b_AVX2 using the 'standard' SHA256 implementation`\n|               11.19 |       89,345,293.33 |    3.5% |      0.01 | `SHA256_32b_SHANI using the 'standard' SHA256 implementation`\n|               11.50 |       86,973,470.49 |    6.3% |      0.01 | :wavy_dash: `SHA256_32b_SSE4 using the 'standard' SHA256 implementation` (Unstable with ~2,799.7 iters. Increase `minEpochIterations` to e.g. 27997)\n|               10.89 |       91,825,214.30 |    0.5% |      0.01 | `SHA256_32b_STANDARD using the 'standard' SHA256 implementation`\n|                4.93 |      203,037,440.10 |    0.8% |      0.06 | `SHA256_AVX2 using the 'standard' SHA256 implementation`\n|                5.06 |      197,526,962.43 |    3.1% |      0.06 | `SHA256_SHANI using the 'standard' SHA256 implementation`\n|                5.04 |      198,558,465.54 |    2.8% |      0.06 | `SHA256_SSE4 using the 'standard' SHA256 implementation`\n|                5.04 |      198,542,696.61 |    3.0% |      0.06 | `SHA256_STANDARD using the 'standard' SHA256 implementation`\n|                4.22 |      236,910,684.67 |    3.4% |      0.05 | `SHA3_256_1M`\n|                2.52 |      396,967,170.81 |    1.3% |      0.03 | `SHA512`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|          170,784.40 |            5,855.34 |    1.8% |      0.21 | `SignSchnorrWithMerkleRoot`\n|          171,072.81 |            5,845.46 |    2.3% |      0.21 | `SignSchnorrWithNullMerkleRoot`\n|          264,442.61 |            3,781.54 |    0.7% |      0.32 | `SignTransactionECDSA`\n|          211,025.22 |            4,738.77 |    0.9% |      0.26 | `SignTransactionSchnorr`\n|               30.11 |       33,210,919.73 |    1.6% |      0.01 | `SipHash_32b`\n|                9.23 |      108,313,013.40 |    5.9% |      0.02 | :wavy_dash: `Trig` (Unstable with ~188,576.0 iters. Increase `minEpochIterations` to e.g. 1885760)\n|       33,670,400.00 |               29.70 |    0.0% |      0.03 | `TxGraphTrim`\n|          106,750.00 |            9,367.68 |    0.6% |      0.01 | `VerifyNestedIfScript`\n|           67,992.31 |           14,707.55 |    1.3% |      0.01 | `VerifyScriptBench`\n|      120,327,800.00 |                8.31 |    0.2% |      1.33 | `WalletAvailableCoins`\n|            6,284.76 |          159,115.16 |    1.3% |      0.01 | `WalletBalanceClean`\n|            6,926.72 |          144,368.53 |    0.9% |      0.01 | `WalletBalanceDirty`\n|            6,308.93 |          158,505.52 |    1.1% |      0.01 | `WalletBalanceMine`\n|               78.53 |       12,734,112.86 |    1.0% |      0.01 | `WalletBalanceWatch`\n|    1,320,096,500.00 |                0.76 |    0.9% |     14.74 | `WalletCreateEncrypted`\n|    1,000,096,500.00 |                1.00 |    1.8% |     11.01 | `WalletCreatePlain`\n|        2,470,100.00 |              404.84 |    1.3% |      0.03 | `WalletCreateTxUseOnlyPresetInputs`\n|      129,672,200.00 |                7.71 |    1.3% |      1.44 | `WalletCreateTxUsePresetInputsAndCoinSelection`\n|              103.20 |        9,690,302.30 |    0.1% |      0.01 | `WalletIsMineDescriptors`\n|              103.40 |        9,671,102.46 |    0.4% |      0.01 | `WalletIsMineMigratedDescriptors`\n|      682,741,400.00 |                1.46 |    0.4% |      3.42 | `WalletLoadingDescriptors`\n|    9,446,679,300.00 |                0.11 |    0.0% |      9.45 | `WalletMigration`\n|       10,101,000.00 |               99.00 |    1.0% |      0.11 | `WriteBlockBench`\n\n```\n\nCompiled with clang-cl\n\n```\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|        1,451,472.73 |              688.96 |    4.7% |      0.16 | `AddAndRemoveDisconnectedBlockTransactions10`\n|        1,147,027.27 |              871.82 |    0.5% |      0.14 | `AddAndRemoveDisconnectedBlockTransactions90`\n|        1,431,420.00 |              698.61 |    2.7% |      0.18 | `AddAndRemoveDisconnectedBlockTransactionsAll`\n|       53,722,500.00 |               18.61 |    0.5% |      0.60 | `AddrManAdd`\n|      136,084,600.00 |                7.35 |    1.3% |      1.51 | `AddrManAddThenGood`\n|          255,600.00 |            3,912.36 |    0.9% |      0.01 | `AddrManGetAddr`\n|              289.15 |        3,458,382.18 |    2.2% |      0.01 | `AddrManSelect`\n|        1,059,900.00 |              943.49 |   47.5% |      0.01 | :wavy_dash: `AddrManSelectByNetwork` (Unstable with ~1.1 iters. Increase `minEpochIterations` to e.g. 11)\n|           79,000.00 |           12,658.23 |   29.1% |      0.01 | :wavy_dash: `AddrManSelectFromAlmostEmpty` (Unstable with ~12.2 iters. Increase `minEpochIterations` to e.g. 122)\n|          581,250.00 |            1,720.43 |    4.1% |      0.01 | `AssembleBlock`\n\n|             ns/ecdh |              ecdh/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           46,791.30 |           21,371.49 |    0.5% |      0.01 | `BIP324_ECDH`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              113.44 |        8,815,521.49 |    0.5% |      0.01 | `Base58CheckEncode`\n|               26.41 |       37,868,835.99 |    0.6% |      0.01 | `Base58Decode`\n|               76.55 |       13,063,597.82 |    1.8% |      0.01 | `Base58Encode`\n|                9.45 |      105,876,049.29 |    3.7% |      0.01 | `Bech32Decode`\n|               17.65 |       56,659,019.81 |    0.6% |      0.01 | `Bech32Encode`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              188.81 |        5,296,396.75 |    1.0% |      0.01 | `BenchLockedPool`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                2.36 |      423,872,499.15 |    4.1% |      0.03 | `BenchRIPEMD160`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               28.55 |       35,026,548.67 |    1.2% |      0.01 | `BenchTimeDeprecated`\n|               27.32 |       36,609,274.56 |    0.9% |      0.01 | `BenchTimeMillis`\n|               20.66 |       48,396,462.22 |    0.4% |      0.01 | `BenchTimeMillisSys`\n|                2.17 |      460,582,963.96 |    1.0% |      0.01 | `BenchTimeMock`\n|    1,448,861,600.00 |                0.69 |    0.4% |     15.91 | `BlockAssemblerAddPackageTxns`\n|        2,555,100.00 |              391.37 |    1.1% |      0.03 | `BlockEncodingLargeExtra`\n|        2,314,600.00 |              432.04 |    0.7% |      0.03 | `BlockEncodingNoExtra`\n|        2,345,900.00 |              426.28 |    1.1% |      0.03 | `BlockEncodingStdExtra`\n|    5,455,197,200.00 |                0.18 |    0.2% |    322.09 | `BlockFilterIndexSync`\n|       45,462,500.00 |               22.00 |    1.0% |      0.51 | `BlockToJsonVerboseWrite`\n|          442,400.00 |            2,260.40 |    0.4% |      0.01 | `BlockToJsonVerbosity1`\n|       83,156,800.00 |               12.03 |    1.3% |      0.93 | `BlockToJsonVerbosity2`\n|       82,647,900.00 |               12.10 |    0.4% |      0.92 | `BlockToJsonVerbosity3`\n|          617,350.00 |            1,619.83 |    0.4% |      0.01 | `BnBExhaustion`\n\n|              ns/job |               job/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              230.93 |        4,330,272.61 |    7.0% |      0.09 | :wavy_dash: `CCheckQueueSpeedPrevectorJob` (Unstable with ~10.9 iters. Increase `minEpochIterations` to e.g. 109)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              683.83 |        1,462,358.04 |    3.1% |      0.01 | `CCoinsCaching`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.67 |      599,666,018.53 |    0.5% |      0.02 | `CHACHA20_1MB`\n|                1.73 |      577,714,344.81 |    0.8% |      0.01 | `CHACHA20_256BYTES`\n|                2.00 |      500,654,679.58 |    2.6% |      0.01 | `CHACHA20_64BYTES`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           91,781.82 |           10,895.40 |    1.7% |      0.01 | `CheckBlockIndex`\n|       16,983,800.00 |               58.88 |    0.8% |      0.19 | `CoinSelection`\n|      296,209,200.00 |                3.38 |    0.2% |      3.25 | `ComplexMemPool`\n\n|            ns/block |             block/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|       86,831,100.00 |               11.52 |    1.3% |      0.98 | `ConnectBlockAllEcdsa`\n|       84,704,400.00 |               11.81 |    1.0% |      0.94 | `ConnectBlockAllSchnorr`\n|       87,313,300.00 |               11.45 |    0.6% |      0.97 | `ConnectBlockMixedEcdsaSchnorr`\n|        6,986,900.00 |              143.12 |    2.2% |      0.08 | `DeserializeAndCheckBlockTest`\n|        5,289,800.00 |              189.04 |    6.4% |      0.06 | :wavy_dash: `DeserializeBlockTest` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|        7,979,700.00 |              125.32 |    0.5% |      0.09 | `DuplicateInputs`\n\n|           ns/pubkey |            pubkey/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           42,715.79 |           23,410.55 |    2.3% |      0.01 | `EllSwiftCreate`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           17,945.28 |           55,724.95 |   13.8% |      0.01 | :wavy_dash: `EvictionProtection0Networks250Candidates` (Unstable with ~41.4 iters. Increase `minEpochIterations` to e.g. 414)\n|           15,346.00 |           65,163.56 |   12.5% |      0.01 | :wavy_dash: `EvictionProtection1Networks250Candidates` (Unstable with ~60.7 iters. Increase `minEpochIterations` to e.g. 607)\n|           21,886.36 |           45,690.55 |    9.2% |      0.01 | :wavy_dash: `EvictionProtection2Networks250Candidates` (Unstable with ~45.9 iters. Increase `minEpochIterations` to e.g. 459)\n|            4,370.44 |          228,809.74 |    9.7% |      0.01 | :wavy_dash: `EvictionProtection3Networks050Candidates` (Unstable with ~222.7 iters. Increase `minEpochIterations` to e.g. 2227)\n|           11,346.24 |           88,134.95 |    0.6% |      0.01 | `EvictionProtection3Networks100Candidates`\n|           27,344.12 |           36,570.94 |    5.2% |      0.01 | :wavy_dash: `EvictionProtection3Networks250Candidates` (Unstable with ~36.3 iters. Increase `minEpochIterations` to e.g. 363)\n|       21,228,500.00 |               47.11 |    1.2% |      0.23 | `ExpandDescriptor`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                2.37 |      421,182,519.28 |    1.9% |      0.03 | `FSCHACHA20POLY1305_1MB`\n|                3.20 |      312,461,857.68 |    2.6% |      0.01 | `FSCHACHA20POLY1305_256BYTES`\n|                5.63 |      177,559,854.43 |    1.6% |      0.01 | `FSCHACHA20POLY1305_64BYTES`\n\n|           ns/number |            number/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               10.98 |       91,078,985.96 |    0.4% |      0.01 | `FastRandom_rand32`\n|               19.82 |       50,464,399.95 |    0.9% |      0.01 | `FastRandom_rand64`\n|               12.52 |       79,874,882.70 |    2.2% |      0.01 | `FastRandom_randbits`\n|                1.84 |      543,283,597.77 |    1.1% |      0.01 | `FastRandom_randbool`\n|               11.42 |       87,556,632.60 |    0.8% |      0.01 | `FastRandom_randrange100`\n|               12.19 |       82,008,200.82 |    1.4% |      0.01 | `FastRandom_randrange1000`\n|               16.76 |       59,662,311.32 |    1.1% |      0.19 | `FastRandom_randrange1000000`\n|               34.60 |       28,900,930.94 |    0.5% |      0.01 | `FastRandom_stdshuffle100`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               15.03 |       66,527,760.60 |    2.1% |      0.01 | `FindByte`\n|          499,850.00 |            2,000.60 |    0.7% |      0.01 | `GCSBlockFilterGetHash`\n|       14,975,200.00 |               66.78 |    0.7% |      0.17 | `GCSFilterConstruct`\n|        1,859,900.00 |              537.66 |    2.4% |      0.02 | `GCSFilterDecode`\n|            5,623.89 |          177,812.90 |    0.9% |      0.01 | `GCSFilterDecodeSkipCheck`\n|          212,120.00 |            4,714.31 |    0.5% |      0.01 | `GCSFilterMatch`\n\n|           ns/base16 |            base16/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                3.24 |      308,399,366.09 |    0.3% |      0.01 | `HexParse`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                0.94 |    1,064,388,971.68 |   12.4% |      0.01 | :wavy_dash: `HexStrBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n\n|           ns/number |            number/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.76 |      567,551,949.57 |    1.1% |      0.01 | `InsecureRandom_rand32`\n|                2.10 |      477,100,915.78 |    3.0% |      0.01 | `InsecureRandom_rand64`\n|                2.17 |      460,846,145.69 |    0.9% |      0.01 | `InsecureRandom_randbits`\n|                1.47 |      680,678,296.67 |    0.8% |      0.01 | `InsecureRandom_randbool`\n|                7.20 |      138,831,042.62 |    2.6% |      0.01 | `InsecureRandom_randrange100`\n|                6.88 |      145,243,282.50 |    1.5% |      0.01 | `InsecureRandom_randrange1000`\n|                7.39 |      135,382,116.02 |    0.9% |      0.08 | `InsecureRandom_randrange1000000`\n|               16.31 |       61,325,847.55 |    0.5% |      0.01 | `InsecureRandom_stdshuffle100`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|            9,683.87 |          103,264.49 |    0.6% |      0.01 | `Linearize16TxWorstCase120Iters`\n|            3,162.66 |          316,189.30 |    7.0% |      0.01 | :wavy_dash: `Linearize16TxWorstCase20Iters` (Unstable with ~278.6 iters. Increase `minEpochIterations` to e.g. 2786)\n|        1,031,700.00 |              969.27 |   12.3% |      0.01 | :wavy_dash: `Linearize32TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|          351,066.67 |            2,848.46 |    0.6% |      0.01 | `Linearize32TxWorstCase5000Iters`\n|          874,500.00 |            1,143.51 |    0.3% |      0.01 | `Linearize48TxWorstCase15000Iters`\n|          321,950.00 |            3,106.07 |    1.6% |      0.01 | `Linearize48TxWorstCase5000Iters`\n|          939,900.00 |            1,063.94 |    5.9% |      0.01 | :wavy_dash: `Linearize64TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|          370,600.00 |            2,698.33 |    1.3% |      0.01 | `Linearize64TxWorstCase5000Iters`\n|        1,365,800.00 |              732.17 |    2.5% |      0.02 | `Linearize75TxWorstCase15000Iters`\n|          538,750.00 |            1,856.15 |    1.2% |      0.01 | `Linearize75TxWorstCase5000Iters`\n|        1,392,900.00 |              717.93 |    5.3% |      0.02 | :wavy_dash: `Linearize99TxWorstCase15000Iters` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|          541,400.00 |            1,847.06 |    3.0% |      0.01 | `Linearize99TxWorstCase5000Iters`\n|            1,451.48 |          688,953.18 |    0.6% |      0.01 | `LinearizeNoIters16TxWorstCaseAnc`\n|            2,159.19 |          463,135.79 |    0.2% |      0.01 | `LinearizeNoIters16TxWorstCaseLIMO`\n|            4,901.71 |          204,010.26 |    3.4% |      0.01 | `LinearizeNoIters32TxWorstCaseAnc`\n|            8,484.00 |          117,868.93 |    8.8% |      0.01 | :wavy_dash: `LinearizeNoIters32TxWorstCaseLIMO` (Unstable with ~118.3 iters. Increase `minEpochIterations` to e.g. 1183)\n|            8,153.04 |          122,653.58 |    1.5% |      0.01 | `LinearizeNoIters48TxWorstCaseAnc`\n|           17,206.90 |           58,116.23 |    3.9% |      0.01 | `LinearizeNoIters48TxWorstCaseLIMO`\n|           14,300.00 |           69,930.07 |    3.0% |      0.01 | `LinearizeNoIters64TxWorstCaseAnc`\n|           30,121.87 |           33,198.46 |    1.8% |      0.01 | `LinearizeNoIters64TxWorstCaseLIMO`\n|           21,540.00 |           46,425.26 |    0.5% |      0.01 | `LinearizeNoIters75TxWorstCaseAnc`\n|           46,038.10 |           21,721.14 |    0.7% |      0.01 | `LinearizeNoIters75TxWorstCaseLIMO`\n|           37,370.59 |           26,759.01 |    4.7% |      0.01 | `LinearizeNoIters99TxWorstCaseAnc`\n|           80,030.00 |           12,495.31 |    1.9% |      0.01 | `LinearizeNoIters99TxWorstCaseLIMO`\n|          117,644.44 |            8,500.19 |    1.1% |      0.01 | `LinearizeOptimallyExample00`\n|          182,060.00 |            5,492.69 |    0.3% |      0.01 | `LinearizeOptimallyExample01`\n|           88,050.00 |           11,357.18 |    1.8% |      0.01 | `LinearizeOptimallyExample02`\n|          106,620.00 |            9,379.10 |    2.9% |      0.01 | `LinearizeOptimallyExample03`\n|            4,921.03 |          203,209.67 |    0.6% |      0.01 | `LinearizeOptimallyExample04`\n|           25,166.67 |           39,735.10 |    0.2% |      0.01 | `LinearizeOptimallyExample05`\n|           70,709.09 |           14,142.45 |    1.2% |      0.01 | `LinearizeOptimallyExample06`\n|           16,685.71 |           59,931.51 |    1.7% |      0.01 | `LinearizeOptimallyExample07`\n|          138,250.00 |            7,233.27 |    1.5% |      0.01 | `LinearizeOptimallyExample08`\n|           25,919.44 |           38,581.07 |    0.6% |      0.01 | `LinearizeOptimallyExample09`\n|           18,258.18 |           54,769.97 |    0.5% |      0.01 | `LinearizeOptimallyExample10`\n|      496,799,900.00 |                2.01 |    0.6% |      5.46 | `LinearizeOptimallyExample11`\n|          787,500.00 |            1,269.84 |    1.5% |      0.01 | `LinearizeOptimallyExample12`\n|          116,711.11 |            8,568.16 |    1.1% |      0.01 | `LinearizeOptimallyExample13`\n|          718,800.00 |            1,391.21 |    3.8% |      0.01 | `LinearizeOptimallyExample14`\n|       21,523,300.00 |               46.46 |    0.6% |      0.24 | `LinearizeOptimallyExample15`\n|       14,895,300.00 |               67.14 |    1.1% |      0.17 | `LinearizeOptimallyExample16`\n|       18,399,200.00 |               54.35 |    0.3% |      0.20 | `LinearizeOptimallyExample17`\n|       18,561,100.00 |               53.88 |    0.3% |      0.21 | `LinearizeOptimallyExample18`\n|       22,151,600.00 |               45.14 |    3.1% |      0.25 | `LinearizeOptimallyExample19`\n|       38,314,200.00 |               26.10 |    3.5% |      0.43 | `LoadExternalBlockFile`\n|           13,187.50 |           75,829.38 |    1.0% |      0.01 | `LogWithDebug`\n|           21,370.21 |           46,794.11 |    6.2% |      0.01 | :wavy_dash: `LogWithThreadNames` (Unstable with ~45.1 iters. Increase `minEpochIterations` to e.g. 451)\n|                5.64 |      177,250,274.97 |    1.9% |      0.01 | `LogWithoutDebug`\n|           21,744.00 |           45,989.70 |    3.9% |      0.01 | `LogWithoutThreadNames`\n|               82.91 |       12,061,834.77 |    0.3% |      0.01 | `LogWithoutWriteToFile`\n|      127,724,700.00 |                7.83 |    0.3% |      1.41 | `MempoolCheck`\n|           91,550.00 |           10,922.99 |    8.6% |      0.01 | :wavy_dash: `MempoolCheckEphemeralSpends` (Unstable with ~11.0 iters. Increase `minEpochIterations` to e.g. 110)\n|          117,588.89 |            8,504.20 |    3.1% |      0.01 | `MempoolEviction`\n|            1,328.90 |          752,501.92 |    1.3% |      0.01 | `MergeLinearizations16TxWorstCase`\n|            4,865.80 |          205,515.92 |    1.8% |      0.01 | `MergeLinearizations32TxWorstCase`\n|            9,940.95 |          100,593.98 |    0.4% |      0.01 | `MergeLinearizations48TxWorstCase`\n|           18,200.00 |           54,945.05 |    0.9% |      0.01 | `MergeLinearizations64TxWorstCase`\n|           29,572.73 |           33,814.94 |    4.4% |      0.01 | `MergeLinearizations75TxWorstCase`\n|           50,065.00 |           19,974.03 |    1.4% |      0.01 | `MergeLinearizations99TxWorstCase`\n\n|             ns/leaf |              leaf/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|              613.15 |        1,630,911.40 |    2.6% |      0.06 | `MerkleRoot`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|           19,535.42 |           51,189.08 |    0.5% |      0.01 | `MuHash`\n|           18,587.50 |           53,799.60 |    0.6% |      0.01 | `MuHashDiv`\n|          104,680.00 |            9,552.92 |    0.2% |      0.01 | `MuHashFinalize`\n|           19,165.12 |           52,178.13 |    4.1% |      0.01 | `MuHashMul`\n|              932.36 |        1,072,542.51 |    4.9% |      0.01 | `MuHashPrecompute`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                0.02 |   44,499,578,618.09 |    0.4% |      0.01 | `ObfuscationBench`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|       24,853,800.00 |               40.24 |    0.0% |      0.02 | `OrphanageEraseForBlock`\n|        8,055,900.00 |              124.13 |    0.0% |      0.01 | `OrphanageEraseForPeer`\n|        8,103,300.00 |              123.41 |    0.0% |      0.01 | `OrphanageMultiPeerEviction`\n|          741,700.00 |            1,348.25 |    0.0% |      0.00 | `OrphanageSinglePeerEviction`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                0.70 |    1,436,012,051.49 |    3.9% |      0.01 | `POLY1305_1MB`\n|                0.75 |    1,337,172,194.27 |    1.5% |      0.01 | `POLY1305_256BYTES`\n|                0.99 |    1,012,746,607.99 |    0.8% |      0.01 | `POLY1305_64BYTES`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|               74.43 |       13,435,935.02 |    2.8% |      0.05 | `PoolAllocator_StdUnorderedMap`\n|               23.94 |       41,774,002.65 |    2.7% |      0.02 | `PoolAllocator_StdUnorderedMapWithPoolResource`\n|              837.66 |        1,193,799.94 |    1.0% |      0.01 | `PostLinearize16TxWorstCase`\n|            2,793.77 |          357,939.06 |    4.1% |      0.01 | `PostLinearize32TxWorstCase`\n|            6,151.00 |          162,575.19 |    4.4% |      0.01 | `PostLinearize48TxWorstCase`\n|           10,197.59 |           98,062.38 |    3.3% |      0.01 | `PostLinearize64TxWorstCase`\n|           13,336.62 |           74,981.52 |    1.4% |      0.01 | `PostLinearize75TxWorstCase`\n|           21,982.50 |           45,490.73 |    0.6% |      0.01 | `PostLinearize99TxWorstCase`\n|              233.80 |        4,277,164.38 |    8.7% |      0.01 | :wavy_dash: `PrePadded` (Unstable with ~4,344.4 iters. Increase `minEpochIterations` to e.g. 43444)\n|                8.78 |      113,914,290.53 |   12.8% |      0.01 | :wavy_dash: `PrevectorClearNontrivial` (Unstable with ~59,749.5 iters. Increase `minEpochIterations` to e.g. 597495)\n|                6.34 |      157,752,831.72 |    3.6% |      0.01 | `PrevectorClearTrivial`\n|              151.85 |        6,585,446.16 |    1.1% |      0.01 | `PrevectorDeserializeNontrivial`\n|               12.26 |       81,573,896.35 |    1.7% |      0.01 | `PrevectorDeserializeTrivial`\n|                   - |                   - |       - |         - | :boom: `PrevectorDestructorNontrivial` (iterations overflow. Maybe your code got optimized away?)\n|                   - |                   - |       - |         - | :boom: `PrevectorDestructorTrivial` (iterations overflow. Maybe your code got optimized away?)\n|            3,030.00 |          330,033.00 |    0.6% |      0.01 | `PrevectorFillVectorDirectNontrivial`\n|              892.58 |        1,120,346.95 |    0.3% |      0.01 | `PrevectorFillVectorDirectTrivial`\n|           15,746.00 |           63,508.19 |    1.3% |      0.01 | `PrevectorFillVectorIndirectNontrivial`\n|           14,486.15 |           69,031.44 |    2.9% |      0.01 | `PrevectorFillVectorIndirectTrivial`\n|                3.80 |      263,020,209.20 |    1.4% |      0.01 | `PrevectorResizeNontrivial`\n|                3.09 |      323,837,259.10 |    0.7% |      0.01 | `PrevectorResizeTrivial`\n|        6,568,900.00 |              152.23 |    1.1% |      0.08 | `ReadBlockBench`\n|        1,615,300.00 |              619.08 |    9.6% |      0.02 | :wavy_dash: `ReadRawBlockBench` (Unstable with ~1.0 iters. Increase `minEpochIterations` to e.g. 10)\n|              420.26 |        2,379,495.03 |    4.2% |      0.01 | `RegularPadded`\n|              449.27 |        2,225,845.02 |    0.6% |      0.01 | `RollingBloom`\n|           28,907.89 |           34,592.63 |    0.2% |      0.01 | `RollingBloomReset`\n|       15,066,000.00 |               66.37 |    0.7% |      0.17 | `RpcMempool`\n\n|             ns/byte |              byte/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|                1.74 |      574,415,532.20 |    1.2% |      0.02 | `SHA1`\n|                9.15 |      109,308,648.15 |    1.7% |      0.01 | `SHA256D64_1024_AVX2 using the 'sse4(1way)' SHA256 implementation`\n|                9.16 |      109,117,549.12 |    2.1% |      0.01 | `SHA256D64_1024_SHANI using the 'sse4(1way)' SHA256 implementation`\n|                9.04 |      110,618,617.60 |    0.8% |      0.01 | `SHA256D64_1024_SSE4 using the 'sse4(1way)' SHA256 implementation`\n|               11.32 |       88,359,174.87 |    0.6% |      0.01 | `SHA256D64_1024_STANDARD using the 'standard' SHA256 implementation`\n|                6.86 |      145,720,281.45 |    6.1% |      0.01 | :wavy_dash: `SHA256_32b_AVX2 using the 'sse4(1way)' SHA256 implementation` (Unstable with ~4,179.5 iters. Increase `minEpochIterations` to e.g. 41795)\n|                6.75 |      148,211,720.90 |    3.9% |      0.01 | `SHA256_32b_SHANI using the 'sse4(1way)' SHA256 implementation`\n|                6.50 |      153,826,170.01 |    0.3% |      0.01 | `SHA256_32b_SSE4 using the 'sse4(1way)' SHA256 implementation`\n|                9.35 |      106,922,385.38 |    0.2% |      0.01 | `SHA256_32b_STANDARD using the 'standard' SHA256 implementation`\n|                2.92 |      342,348,510.78 |    1.4% |      0.03 | `SHA256_AVX2 using the 'sse4(1way)' SHA256 implementation`\n|                2.96 |      337,541,348.82 |    2.8% |      0.03 | `SHA256_SHANI using the 'sse4(1way)' SHA256 implementation`\n|                2.95 |      339,523,987.37 |    1.7% |      0.03 | `SHA256_SSE4 using the 'sse4(1way)' SHA256 implementation`\n|                4.36 |      229,247,380.85 |    1.1% |      0.05 | `SHA256_STANDARD using the 'standard' SHA256 implementation`\n|                3.92 |      255,063,000.56 |    2.4% |      0.05 | `SHA3_256_1M`\n|                2.60 |      385,015,208.10 |    2.6% |      0.03 | `SHA512`\n\n|               ns/op |                op/s |    err% |     total | benchmark\n|--------------------:|--------------------:|--------:|----------:|:----------\n|          108,296.49 |            9,233.91 |    0.4% |      0.13 | `SignSchnorrWithMerkleRoot`\n|          108,620.59 |            9,206.36 |    0.8% |      0.13 | `SignSchnorrWithNullMerkleRoot`\n|          190,794.39 |            5,241.24 |    3.0% |      0.23 | `SignTransactionECDSA`\n|          137,775.24 |            7,258.20 |    0.5% |      0.17 | `SignTransactionSchnorr`\n|               31.14 |       32,113,941.55 |    6.5% |      0.01 | :wavy_dash: `SipHash_32b` (Unstable with ~30,618.5 iters. Increase `minEpochIterations` to e.g. 306185)\n|                9.23 |      108,384,801.58 |    6.0% |      0.02 | :wavy_dash: `Trig` (Unstable with ~187,765.5 iters. Increase `minEpochIterations` to e.g. 1877655)\n|       28,278,000.00 |               35.36 |    0.0% |      0.03 | `TxGraphTrim`\n|          102,250.00 |            9,779.95 |    0.5% |      0.01 | `VerifyNestedIfScript`\n|           41,344.44 |           24,187.05 |    1.7% |      0.01 | `VerifyScriptBench`\n|       72,342,700.00 |               13.82 |    0.3% |      0.80 | `WalletAvailableCoins`\n|            6,493.75 |          153,994.23 |    4.4% |      0.01 | `WalletBalanceClean`\n|            6,882.52 |          145,295.67 |    1.4% |      0.01 | `WalletBalanceDirty`\n|            7,061.03 |          141,622.41 |   10.3% |      0.01 | :wavy_dash: `WalletBalanceMine` (Unstable with ~108.5 iters. Increase `minEpochIterations` to e.g. 1085)\n|               78.27 |       12,776,287.80 |    0.7% |      0.01 | `WalletBalanceWatch`\n|    1,101,592,500.00 |                0.91 |    0.3% |     12.15 | `WalletCreateEncrypted`\n|      780,882,100.00 |                1.28 |    1.9% |      8.53 | `WalletCreatePlain`\n|        1,724,300.00 |              579.95 |    1.5% |      0.02 | `WalletCreateTxUseOnlyPresetInputs`\n|      125,178,300.00 |                7.99 |    2.7% |      1.40 | `WalletCreateTxUsePresetInputsAndCoinSelection`\n|              104.93 |        9,529,737.21 |    0.3% |      0.01 | `WalletIsMineDescriptors`\n|              104.95 |        9,527,988.87 |    0.3% |      0.01 | `WalletIsMineMigratedDescriptors`\n|      445,204,800.00 |                2.25 |    0.5% |      2.22 | `WalletLoadingDescriptors`\n|    7,056,696,700.00 |                0.14 |    0.0% |      7.06 | `WalletMigration`\n|       10,330,300.00 |               96.80 |    2.1% |      0.11 | `WriteBlockBench`\n\n```"
  },
  {
   "t": "2025-11-04T17:52:05Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "a1469e6c4392a4a776ba4b3ec804a5b40aa23fd0"
  },
  {
   "t": "2025-11-04T17:52:44Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased to resolve the conflict with the merged bitcoin/bitcoin#30595."
  },
  {
   "t": "2025-12-01T11:03:48Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1"
  },
  {
   "t": "2025-12-01T11:04:34Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased to resolve conflicts."
  },
  {
   "t": "2025-12-01T11:08:00Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "src/qt/CMakeLists.txt",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": null,
   "text": "Is this going to be overlinking now?"
  },
  {
   "t": "2025-12-01T11:09:09Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": null,
   "text": "Why not use the builtins? Not sure I understand the TODO."
  },
  {
   "t": "2025-12-01T11:10:09Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": null,
   "text": "[quoted text omitted]\n\nWhy are these needed/are they being fixed?"
  },
  {
   "t": "2025-12-01T11:51:49Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": 2576643197,
   "text": "[quoted text omitted]\n\nFrom https://github.com/bitcoin/bitcoin/actions/runs/19820405203/job/56781245720:\n```\nD:\\a\\bitcoin\\bitcoin\\src\\test\\i2p_tests.cpp(116,34): warning : suggest braces around initialization of subobject [-Wmissing-braces] [D:\\a\\bitcoin\\bitcoin\\build\\src\\test\\test_bitcoin.vcxproj]\n  C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\shared\\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'\nD:\\a\\bitcoin\\bitcoin\\src\\test\\i2p_tests.cpp(159,38): warning : suggest braces around initialization of subobject [-Wmissing-braces] [D:\\a\\bitcoin\\bitcoin\\build\\src\\test\\test_bitcoin.vcxproj]\n  C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\shared\\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'\nD:\\a\\bitcoin\\bitcoin\\src\\test\\netbase_tests.cpp(502,36): warning : suggest braces around initialization of subobject [-Wmissing-braces] [D:\\a\\bitcoin\\bitcoin\\build\\src\\test\\test_bitcoin.vcxproj]\n  C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\shared\\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'\nD:\\a\\bitcoin\\bitcoin\\src\\test\\netbase_tests.cpp(507,36): warning : suggest braces around initialization of subobject [-Wmissing-braces] [D:\\a\\bitcoin\\bitcoin\\build\\src\\test\\test_bitcoin.vcxproj]\n  C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\shared\\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'\nD:\\a\\bitcoin\\bitcoin\\src\\test\\netbase_tests.cpp(512,36): warning : suggest braces around initialization of subobject [-Wmissing-braces] [D:\\a\\bitcoin\\bitcoin\\build\\src\\test\\test_bitcoin.vcxproj]\n  C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\shared\\ws2ipdef.h(251,33): note: expanded from macro 'IN6ADDR_LOOPBACK_INIT'\n```\n\n[quoted text omitted]\n```\nD:\\a\\bitcoin\\bitcoin\\src\\util/subprocess.h(759,10): warning : private field 'parent_' is not used [-Wunused-private-field] [D:\\a\\bitcoin\\bitcoin\\build\\src\\util\\bitcoin_util.vcxproj]\nD:\\a\\bitcoin\\bitcoin\\src\\util/subprocess.h(760,7): warning : private field 'err_wr_pipe_' is not used [-Wunused-private-field] [D:\\a\\bitcoin\\bitcoin\\build\\src\\util\\bitcoin_util.vcxproj]\nD:\\a\\bitcoin\\bitcoin\\src\\util/subprocess.h(1038,7): warning : private field 'child_pid_' is not used [-Wunused-private-field] [D:\\a\\bitcoin\\bitcoin\\build\\src\\util\\bitcoin_util.vcxproj]\n```\n\n[quoted text omitted]\nI'm going to work on the fixes."
  },
  {
   "t": "2025-12-02T10:26:09Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "src/netaddress.h",
   "commit": "751f3b91d08c30f0556f6b285bd898c5360c67fc",
   "in_reply_to": null,
   "text": "Should be in `compat.h`?"
  },
  {
   "t": "2025-12-02T12:15:47Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "src/netaddress.h",
   "commit": "751f3b91d08c30f0556f6b285bd898c5360c67fc",
   "in_reply_to": 2580569951,
   "text": "Thanks! Reworked."
  },
  {
   "t": "2025-12-02T12:16:04Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "bf15fb8e8d2fd4e89583ad202818a9458964cd0f"
  },
  {
   "t": "2026-01-20T17:33:44Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": 2576643197,
   "text": "Would be good to make them -Wno-error, instead of a full -Wno-"
  },
  {
   "t": "2026-01-22T12:13:46Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "42000aeed009eaa1c8d11fbeed36a2b792b95124"
  },
  {
   "t": "2026-01-22T13:18:53Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "f482a4edea20062c837461573ebe84590850d9a4"
  },
  {
   "t": "2026-01-22T13:19:11Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "src/qt/CMakeLists.txt",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": 2576634300,
   "text": "Thanks! Reworked."
  },
  {
   "t": "2026-01-22T13:19:46Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": 2576643197,
   "text": "[quoted text omitted]\n\nSwitched to `-Wno-error=unused-private-field`."
  },
  {
   "t": "2026-01-22T14:49:44Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "af37ba98397181cd0945f3d07628222663cf6dd0"
  },
  {
   "t": "2026-01-22T14:57:42Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "af37ba98397181cd0945f3d07628222663cf6dd0",
   "in_reply_to": null,
   "text": "Hardcoded architecture?"
  },
  {
   "t": "2026-01-22T16:08:33Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25"
  },
  {
   "t": "2026-01-22T16:10:04Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": 2576639205,
   "text": "Reworked."
  },
  {
   "t": "2026-01-22T16:10:19Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "af37ba98397181cd0945f3d07628222663cf6dd0",
   "in_reply_to": 2717275635,
   "text": "Thanks! Fixed."
  },
  {
   "t": "2026-01-22T17:36:20Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": null,
   "text": "What is the return type issue? All i can see in the logs is:\n\n```\n    ACTIONS_ORCHESTRATION_ID: 1fe30250-b534-498c-9285-7256c1d1e411.windows-native-dll.clang-cl_-Wno-return-type\n```\n\nwhich seems a bit odd, but is probably just an upstream Github actions bug"
  },
  {
   "t": "2026-01-22T18:18:49Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "This warning is very noisy on Windows, so the `-Wno-return-type` flag is used.\n\nAll cases are highlighted here: https://github.com/hebasto/bitcoin/actions/runs/21259251206/job/61182273662."
  },
  {
   "t": "2026-01-22T19:55:38Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "It doesn't look too verbose. Also, I wonder if this is a compiler bug, or a real warning.\n\nSomeone  on Windows should test if an `assert(false)` without a return at runtime causes UB, or a crash.\n\nIf UB, then there is a bug to fix\n\nIf a crash, then this is something to report upstream, or maybe `assert` can be replaced by `Assert`?"
  },
  {
   "t": "2026-01-22T21:03:29Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "It reminds me https://github.com/mingw-w64/mingw-w64/commit/1690994f515910a31b9fb7c7bd3a52d4ba987abe."
  },
  {
   "t": "2026-01-22T22:36:07Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "8e8cf277d7dbef4de695dd3ef2b80cd4a11b96be"
  },
  {
   "t": "2026-01-22T22:36:44Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased on top of https://github.com/bitcoin/bitcoin/pull/34385."
  },
  {
   "t": "2026-01-22T22:38:27Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "c8feaeeee8151df4c84c6a5411c7d8bfc086f7b1",
   "in_reply_to": 2576643197,
   "text": "[quoted text omitted]\n\nA fix has been proposed in https://github.com/bitcoin/bitcoin/pull/34385."
  },
  {
   "t": "2026-02-05T15:39:04Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "Right. I think it would be good to look into this. At least, to confirm there is no hidden UB"
  },
  {
   "t": "2026-02-06T13:41:28Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "I think I'd be more concept-ACK here, if it included removing support for MSVC, at the same time."
  },
  {
   "t": "2026-02-06T13:44:24Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "to clarify what needs to be done here:\n\n* Remove a case from a switch\n* Set -Wno-error=switch\n* Check the assert is hit, not a no-return UB"
  },
  {
   "t": "2026-02-12T11:13:51Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "7eefe455c1f4b27886283ebc2ba494cf748d5d20"
  },
  {
   "t": "2026-02-12T14:33:00Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "e3a1b1d927687a408b5f7ea0cb526e185f282015"
  },
  {
   "t": "2026-02-14T21:59:52Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "On Windows 11 Pro:\n```\n[quoted text omitted]\n#include <iostream>\n#include <cassert>\n\nenum TestEnum {\n    CASE_A,\n    CASE_B,\n    CASE_C\n};\n\nint test_no_return_ub(TestEnum e) {\n    switch (e) {\n        case CASE_A:\n                return 1;\n        case CASE_B:\n                return 2;\n    // CASE_C is intentionally missing\n    } // no default case, so the compiler can warn about missing cases\n    assert(false);\n}\n\nint main() {\n    int result = test_no_return_ub(CASE_C);\n    std::cout << \"Result: \" << result << std::endl;\n    return 0;\n}\n[quoted text omitted]\ntest.cpp(11,13): warning: enumeration value 'CASE_C' not handled in switch [-Wswitch]\n   11 |     switch (e) {\n      |             ^\ntest.cpp(19,1): warning: non-void function does not return a value in all control paths [-Wreturn-type]\n   19 | }\n      | ^\n2 warnings generated.\n[quoted text omitted]\nAssertion failed: false, file test.cpp, line 18\n```"
  },
  {
   "t": "2026-02-16T07:45:29Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "48521e9419c6c315508e8c09e30e7f8ff6d44a25",
   "in_reply_to": 2717933593,
   "text": "Thx. So I guess it is fine to proceed here. Would still be nice to report and fix this upstream and/or pick up https://github.com/bitcoin/bitcoin/pull/26504 again."
  },
  {
   "t": "2026-02-17T12:37:10Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "src/util/subprocess.h",
   "commit": "a5a8b9a315f7e9ebb984ece3e940382095b7ffee",
   "in_reply_to": null,
   "text": "in theory, this could be sumbitted upstream?"
  },
  {
   "t": "2026-02-17T13:02:00Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "src/util/subprocess.h",
   "commit": "a5a8b9a315f7e9ebb984ece3e940382095b7ffee",
   "in_reply_to": 2816829187,
   "text": "I see you has already left a comment in https://github.com/arun11299/cpp-subprocess/pull/127 :)"
  },
  {
   "t": "2026-02-17T13:32:10Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "Why is this being moved?"
  },
  {
   "t": "2026-02-19T17:10:47Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "a5a8b9a315f7e9ebb984ece3e940382095b7ffee"
  },
  {
   "t": "2026-02-19T17:16:47Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2817061787,
   "text": "According to the [docs](https://clang.llvm.org/docs/UsersManual.html#id13): clang-cl treats `-Wall` as `-Weverything`. `/W3` above brings `-Wall`.\n\nAnd this is specific to the MSVC-style options (covered by the `MSVC` variable), which  includes MSVC and clang-cl."
  },
  {
   "t": "2026-02-19T17:20:32Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2817061787,
   "text": "I can see this getting very fragile and confusing, if flags are now being moved between various else branches of `if(MSVC)` and `if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")` calls, and sometimes that means \"stuff for Clang\" and sometimes it doesn't."
  },
  {
   "t": "2026-02-19T17:21:01Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2817061787,
   "text": "(especially given nothing is being documented here)"
  },
  {
   "t": "2026-02-19T17:48:50Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2817061787,
   "text": "[quoted text omitted]\n\nIt's a bit above: https://github.com/bitcoin/bitcoin/blob/a5a8b9a315f7e9ebb984ece3e940382095b7ffee/CMakeLists.txt#L445-L447"
  },
  {
   "t": "2026-02-19T17:50:56Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2817061787,
   "text": "[quoted text omitted]\n\nYes, that is somewhat of an issue (documentation isn't near where it's needed/isn't clear what it applies to), but the point of:\n[quoted text omitted]\n\nstill stands regardless."
  },
  {
   "t": "2026-02-19T18:02:58Z",
   "kind": "comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nWhat is the status on this? If MSVC is kept, and MSVC ICEs are a motivation for this pull, it seems there is not much gain, because the ICEs still have to be dealt with. Though maybe I am missing a reason to keep MSVC?"
  },
  {
   "t": "2026-02-19T18:08:21Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nNo, you are not. I'm working on it."
  },
  {
   "t": "2026-02-19T19:02:21Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "4f265f43d89908bef095ff779b6d5772f6516ef4"
  },
  {
   "t": "2026-02-19T19:03:34Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nThe support for MSVC has been removed."
  },
  {
   "t": "2026-02-19T19:04:25Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2817061787,
   "text": "`if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")` is [no longer used](https://github.com/bitcoin/bitcoin/pull/31507#issuecomment-3929316233)."
  },
  {
   "t": "2026-02-20T12:33:43Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "Is this no-longer needed with Clang?"
  },
  {
   "t": "2026-02-20T12:34:34Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nShould probably add a release note, to state that only building with Clang is supported?"
  },
  {
   "t": "2026-02-20T12:41:39Z",
   "kind": "comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "text": "and update doc/build-windows-msvc.md ?\n\nMaybe it seems better to merge this early for 32.0, than late for 31.0?"
  },
  {
   "t": "2026-02-20T12:43:36Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nYes, this seems prudent."
  },
  {
   "t": "2026-02-23T11:44:43Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2832992997,
   "text": "Here are the logs for building with the \"Debug\" build configuration:\n- https://github.com/hebasto/bitcoin/actions/runs/22301565695/job/64510422251\n- https://github.com/hebasto/bitcoin/actions/runs/22301565695/job/64510422292\n\nThe error from [before](https://github.com/bitcoin/bitcoin/issues/28109#issuecomment-2509735314) is no longer present."
  },
  {
   "t": "2026-02-23T11:46:30Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "1d2baf97b97e6bb31802e5fa3772c8c6fe679c9e"
  },
  {
   "t": "2026-02-23T11:47:30Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nDone.\n\n[quoted text omitted]\nDone as well."
  },
  {
   "t": "2026-02-23T16:34:58Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "9d3db80e442adfdccfedcdaa1d710633e0d2d294"
  },
  {
   "t": "2026-02-24T10:40:24Z",
   "kind": "review_comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2832992997,
   "text": "Ok. Is that because it's not needed with Clang, or the code was refactored, or something else?"
  },
  {
   "t": "2026-02-24T11:43:46Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2832992997,
   "text": "I couldn't reproduce the issue when ~cross-compiling on Fedora 43 (using GCC 15.2.1) or~ compiling on Windows (using the [older](https://github.com/bitcoin/bitcoin/pull/33861) VS 17.x or the new VS 18.3). ~It's probably safe to assume that recent code refactoring has rendered this workaround in the master branch obsolete:~ https://github.com/bitcoin/bitcoin/blob/ab8a7af74209e5d58203af14d9133d14de6a5776/CMakeLists.txt#L313-L321"
  },
  {
   "t": "2026-02-24T12:01:28Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2832992997,
   "text": "May as well revert commit 1251a23642025e0440d85bb0d584be0e05d05699 for master then?"
  },
  {
   "t": "2026-02-24T14:11:19Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": 2832992997,
   "text": "Apologies for the confusion, but the issue _is_ still reproducible when cross-compiling on Fedora 43 (using GCC 15.2.1."
  },
  {
   "t": "2026-03-13T10:30:18Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Friendly ping @davidgumberg @hodlinator :)"
  },
  {
   "t": "2026-03-13T10:34:28Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "d758f2b23dcd9ad78c871ce527866fe45466fd81"
  },
  {
   "t": "2026-03-13T10:34:53Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased."
  },
  {
   "t": "2026-03-20T17:02:32Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "be70f28eee22f84c9450b2fe15ae5433ecd82293"
  },
  {
   "t": "2026-03-25T23:19:26Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "d8fdee9ffb850cb57793eb266fd4877c63da3318"
  },
  {
   "t": "2026-03-25T23:20:21Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased to resolve a conflict with the merged bitcoin/bitcoin#34883."
  },
  {
   "t": "2026-04-09T13:32:35Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "a10622c5544c62a8110abad5fb6556f867f6d489"
  },
  {
   "t": "2026-04-09T13:38:27Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "Rebased to resolve a conflict with the merged bitcoin/bitcoin#35031."
  },
  {
   "t": "2026-04-09T14:11:13Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "CMakePresets.json",
   "commit": "6cfa80e20bbb42579405db0eb261b29696ae8c06",
   "in_reply_to": null,
   "text": "\u201cBuild using clang-cl and and 'x64-windows-static' triplet\u201d -> \u201cBuild using clang-cl and 'x64-windows-static' triplet [Duplicated \u201cand\u201d makes the sentence grammatically wrong and slightly confusing.]"
  },
  {
   "t": "2026-04-09T14:13:48Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "ca165a4ecf4859ede995f3988051b0c3bf25d50a"
  },
  {
   "t": "2026-04-09T14:14:27Z",
   "kind": "review_comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "path": "CMakePresets.json",
   "commit": "6cfa80e20bbb42579405db0eb261b29696ae8c06",
   "in_reply_to": 3058425758,
   "text": "Thanks! Fixed."
  },
  {
   "t": "2026-05-28T15:06:45Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "f186438e21517ce4e2a13f98dd8199cc599d668f"
  },
  {
   "t": "2026-05-28T16:08:00Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "Are code / comments like still correct, if we are dropping support for MSVC?\n\nhttps://github.com/bitcoin/bitcoin/blob/master/src/compat/byteswap.h#L18-L42\n\nWill Clang now take the `__has_builtin` branch, and in the fallback case, you'd want constexpr?"
  },
  {
   "t": "2026-08-12T10:54:22Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "What's the status here? This is tagged for `32.0`, but needs rebase and review addressed. I think it could also be good to expand the release note to mention why we are dropping support for MSVC, in favour of Clang."
  },
  {
   "t": "2026-08-12T15:40:43Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "914a8734d131481a99d88e7f5d4292109877874e"
  },
  {
   "t": "2026-08-12T15:41:48Z",
   "kind": "comment",
   "who": "hebasto",
   "assoc": "MEMBER",
   "text": "[quoted text omitted]\n\nReworked.\n\n[quoted text omitted]\nDone."
  },
  {
   "t": "2026-08-12T15:47:50Z",
   "kind": "force_push",
   "who": "hebasto",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a"
  },
  {
   "t": "2026-08-13T11:46:09Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": "cmake/module/TryAppendCXXFlags.cmake",
   "commit": "725178f365dc43295ee70a649aeb7ae6a00ddd7f",
   "in_reply_to": null,
   "text": "[quoted text omitted]\n\nTried re-adding `/options:strict` on top of the tip commit using clang-cl and got:\n```\n-- Performing Test CXX_SUPPORTS__WX__OPTIONS_STRICT\n-- Performing Test CXX_SUPPORTS__WX__OPTIONS_STRICT - Failed\n```\n\ud83d\udc4d"
  },
  {
   "t": "2026-08-13T11:50:24Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "725178f365dc43295ee70a649aeb7ae6a00ddd7f",
   "in_reply_to": null,
   "text": "[quoted text omitted]\n\nMore natural ordering (+ replace \"core\" with \"internal\")?\n```diff\n-# Enables -Wall Clang's core option.\n+# Enables Clang-CL's internal -Wall option.\n```"
  },
  {
   "t": "2026-08-13T12:02:22Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": "src/compat/byteswap.h",
   "commit": "a630d623f3136af47ebc74e67312162802065905",
   "in_reply_to": null,
   "text": "[quoted text omitted]\n\nShould this #elif-branch be removed in the commit dropping support for MSVC?"
  },
  {
   "t": "2026-08-18T07:10:17Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/ci-windows.py",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "Is this a violation of the C++26 standard? Ref: https://github.com/hebasto/bitcoin-core-nightly/pull/313#discussion_r3726748425 .\n\nIf yes, it should be reported/fixed upstream.\n\nIf not, it should not be hidden, to be able to confirm it. See also https://github.com/hebasto/bitcoin-core-nightly/pull/325"
  },
  {
   "t": "2026-08-18T09:09:40Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": "CMakeLists.txt",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "(Confirmed that https://clang.llvm.org/docs/UsersManual.html#finding-clang-runtime-libraries is required for int128 division)."
  },
  {
   "t": "2026-08-18T19:18:06Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": "doc/build-windows-msvc.md",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "build-windows-msvc.md could be renamed to build-windows-native.md?"
  },
  {
   "t": "2026-08-18T20:47:02Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": "doc/build-windows-msvc.md",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "Repeatedly had output such as:\n```\nPS C:\\Users\\hodlinator> winget install --verbose --id Microsoft.VisualStudio.Community --override \"--wait --quiet --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.Git --includeRecommended\"\nFound an existing package already installed. Trying to upgrade the installed package...\nFound Visual Studio Community 2026 [Microsoft.VisualStudio.Community] Version 18.9.0\nThis application is licensed to you by its owner.\nMicrosoft is not responsible for, nor does it grant any licenses to, third-party packages.\nDownloading https://download.visualstudio.microsoft.com/download/pr/b1ea2f6c-5e55-49bc-81e8-7623cc5a6743/4699cc0139951d64dec28a8007fff73dbac262ca6160d62cbc430bdc15b539dd/vs_Community.exe\n  \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  5.42 MB / 5.42 MB\nSuccessfully verified installer hash\nStarting package install...\nInstaller failed with exit code: 1\n```\nRemoving `--wait` and `--quiet` had me able to complete it. It was probably the `--quiet` one that helped, got shown some modal dialogs."
  },
  {
   "t": "2026-08-20T07:49:12Z",
   "kind": "review_comment",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "path": ".github/ci-windows.py",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "in_reply_to": null,
   "text": "This results in \"cmake -E ... cmake -B ...\" in the `command` array:\n``['cmake', '-E', 'env', 'CXXFLAGS=-Wno-return-type -Wno-error=conditional-uninitialized', 'cmake', '-B', 'build', '-Werror=dev', '--preset=windows', '-DVCPKG_HOST_TRIPLET=x64-windows-release', '-DVCPKG_TARGET_TRIPLET=x64-windows-release', '-DBUILD_BENCH=ON', '-DBUILD_KERNEL_LIB=ON', '-DBUILD_UTIL_CHAINSTATE=ON', '-DCMAKE_COMPILE_WARNING_AS_ERROR=ON']``\n\nSeems to work though."
  },
  {
   "t": "2026-08-20T08:40:15Z",
   "kind": "review",
   "who": "hodlinator",
   "assoc": "MEMBER",
   "state": "COMMENTED",
   "commit": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
   "text": "Concept ACK ec347d1108d57d682bdc239558b8ca2660be6a3a"
  }
 ],
 "labels_log": [
  {
   "t": "2024-12-16T10:58:38Z",
   "action": "labeled",
   "label": "Windows",
   "who": "hebasto"
  },
  {
   "t": "2024-12-16T10:58:38Z",
   "action": "labeled",
   "label": "Build system",
   "who": "hebasto"
  },
  {
   "t": "2024-12-16T12:00:10Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2025-01-27T23:21:05Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-03-10T19:18:50Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2025-03-10T19:33:52Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-03-14T03:43:07Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-03-17T14:02:03Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-03-31T14:42:45Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-05-13T12:25:18Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-05-16T09:31:33Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-05-16T11:52:18Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-05-17T09:41:25Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-05-17T13:57:55Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-11-04T17:44:52Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-11-04T19:55:01Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-12-01T10:50:39Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2025-12-01T13:07:16Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-01-22T13:19:26Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-01-22T14:49:33Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-01-22T16:09:02Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-01-22T18:14:52Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-02-05T20:11:20Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-02-12T11:55:03Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-02-12T12:34:10Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-02-12T15:35:33Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-02-19T20:27:40Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-02-20T13:07:47Z",
   "action": "labeled",
   "label": "Needs release note",
   "who": "fanquake"
  },
  {
   "t": "2026-02-24T10:40:34Z",
   "action": "unlabeled",
   "label": "Needs release note",
   "who": "fanquake"
  },
  {
   "t": "2026-02-24T12:44:16Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-03-19T23:35:08Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-03-20T17:35:11Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-03-20T17:40:27Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-03-20T20:50:22Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-03-25T02:45:06Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-03-26T00:19:21Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-04-09T04:19:51Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-04-09T14:00:53Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-04-09T14:14:22Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-04-09T15:03:33Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-08-11T16:35:12Z",
   "action": "labeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-08-12T15:49:05Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-08-12T16:30:23Z",
   "action": "unlabeled",
   "label": "Needs rebase",
   "who": "DrahtBot"
  },
  {
   "t": "2026-08-12T17:18:37Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  }
 ],
 "state_log": [
  {
   "t": "2025-05-15T16:57:24Z",
   "kind": "renamed",
   "who": "hebasto",
   "from": "[POC] build: Use clang-cl to build on Windows natively",
   "to": "build: Use clang-cl to build on Windows natively"
  },
  {
   "t": "2025-05-17T11:56:36Z",
   "kind": "ready_for_review",
   "who": "hebasto"
  },
  {
   "t": "2026-02-20T12:46:52Z",
   "kind": "milestoned",
   "who": "DrahtBot"
  },
  {
   "t": "2026-08-12T17:03:38Z",
   "kind": "demilestoned",
   "who": "hebasto"
  }
 ],
 "text_chars": 77333,
 "text_tokens_estimate": 19333,
 "changed_paths": [
  ".github/ci-windows.py",
  ".github/workflows/ci.yml",
  "CMakeLists.txt",
  "CMakePresets.json",
  "cmake/leveldb.cmake",
  "cmake/module/TryAppendCXXFlags.cmake",
  "doc/build-windows-msvc.md",
  "doc/release-notes-31507.md",
  "src/compat/byteswap.h",
  "src/qt/CMakeLists.txt"
 ],
 "files": [
  {
   "path": ".github/ci-windows.py",
   "add": 14,
   "del": 2
  },
  {
   "path": ".github/workflows/ci.yml",
   "add": 2,
   "del": 2
  },
  {
   "path": "CMakeLists.txt",
   "add": 70,
   "del": 58
  },
  {
   "path": "CMakePresets.json",
   "add": 6,
   "del": 8
  },
  {
   "path": "cmake/leveldb.cmake",
   "add": 6,
   "del": 7
  },
  {
   "path": "cmake/module/TryAppendCXXFlags.cmake",
   "add": 1,
   "del": 1
  },
  {
   "path": "doc/build-windows-msvc.md",
   "add": 13,
   "del": 10
  },
  {
   "path": "doc/release-notes-31507.md",
   "add": 15,
   "del": 0
  },
  {
   "path": "src/compat/byteswap.h",
   "add": 3,
   "del": 5
  },
  {
   "path": "src/qt/CMakeLists.txt",
   "add": 1,
   "del": 1
  }
 ],
 "test_lines": 0,
 "git": {
  "head": "ec347d1108d57d682bdc239558b8ca2660be6a3a",
  "head_matches_backup": true,
  "base": "4c045f1a0323af6621100a7e6479f04205d50c7a",
  "commits": [
   {
    "sha": "4241a5e089",
    "subject": "cmake: Always link `bitcoinqt` to `shlwapi` when building on Windows",
    "files": 1,
    "add": 1,
    "del": 1
   },
   {
    "sha": "d8e58c1ea2",
    "subject": "cmake: Link to clang-cl builtins library on Windows",
    "files": 1,
    "add": 15,
    "del": 0
   },
   {
    "sha": "725178f365",
    "subject": "cmake: Adjust diagnostic flags for clang-cl",
    "files": 3,
    "add": 25,
    "del": 13
   },
   {
    "sha": "a630d623f3",
    "subject": "Couple `BSWAP_CONSTEXPR` definition to bswap implementation",
    "files": 1,
    "add": 3,
    "del": 5
   },
   {
    "sha": "96d2380dc4",
    "subject": "cmake: Drop support for MSVC",
    "files": 7,
    "add": 104,
    "del": 107
   },
   {
    "sha": "ec347d1108",
    "subject": "doc: Add clang-cl release notes",
    "files": 1,
    "add": 15,
    "del": 0
   }
  ],
  "patch_truncated": false
 },
 "input_hash": "ec94376aae24ec0c",
 "extracted_at": "2026-09-17T16:15:31+00:00"
}