Skip to content

Conversation

maflcko
Copy link
Member

@maflcko maflcko commented Aug 3, 2023

All supported operating systems ship with clang-13 (or later), so bump the minimum to that and remove now unused workarounds for previous clang bugs.

For reference:

This is for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

@DrahtBot
Copy link
Contributor

DrahtBot commented Aug 3, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage

For detailed information about the code coverage, see the test coverage report.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK fanquake
Concept ACK hebasto

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #28686 (refactor: Split per-peer parts of net module into new node/connection module by ajtowns)
  • #28348 (build: Bump g++ minimum supported version to 10 by maflcko)
  • #26022 (Add util::ResultPtr class by ryanofsky)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@maflcko maflcko added this to the 27.0 milestone Aug 3, 2023
@maflcko
Copy link
Member Author

maflcko commented Aug 3, 2023

This fails on macOS 11.0, according to CI. So I guess this can be closed for now.

@fanquake
Copy link
Member

fanquake commented Aug 3, 2023

This fails on macOS 11.0,

Yea, this'll at least need to wait for the macOS compiler bump, but the next time that happens (soon) it will be from 11 to 16, if not 17.

@DrahtBot
Copy link
Contributor

DrahtBot commented Aug 3, 2023

Guix builds

File commit 7c66a4b
(master)
commit 09dd230
(master and this pull)
SHA256SUMS.part f1ea8819c5a564a6... 6a69d06d9b380559...
*-aarch64-linux-gnu-debug.tar.gz fec95a0e7a02362c... 135b6423cf9fb06e...
*-aarch64-linux-gnu.tar.gz 14ebb3ca98553fc5... 473d24aeca9c55e3...
*-arm-linux-gnueabihf-debug.tar.gz 0ca7b4dcfd771cac... d2f4164338e059c9...
*-arm-linux-gnueabihf.tar.gz 9edf67b30a765e82... 696dbeb56974f2e1...
*-arm64-apple-darwin-unsigned.dmg 6d0f8fa3fe700836...
*-arm64-apple-darwin-unsigned.tar.gz e43bf0cdea1bc892...
*-arm64-apple-darwin.tar.gz bf4249018c3b58a8...
*-powerpc64-linux-gnu-debug.tar.gz 961e9f43562ac206... 127780061a07f0c8...
*-powerpc64-linux-gnu.tar.gz e39abba2d6a364df... f31008e4f0adecc7...
*-powerpc64le-linux-gnu-debug.tar.gz 967d0d2135d7e6f0... a96fbaec143e1ea0...
*-powerpc64le-linux-gnu.tar.gz 0e227a39b05338dc... 6873f96bff363215...
*-riscv64-linux-gnu-debug.tar.gz 0e802565dfa259c6... 0511c8bbc75f333a...
*-riscv64-linux-gnu.tar.gz 12f8c850e0884057... de73c2301b3bb53d...
*-x86_64-apple-darwin-unsigned.dmg 3b1e499e75c16f77...
*-x86_64-apple-darwin-unsigned.tar.gz 1726002d89e15316...
*-x86_64-apple-darwin.tar.gz 5c702cd8c5dff36d...
*-x86_64-linux-gnu-debug.tar.gz 42a9e736ca1555cf... 0dc7f7dce4bfd81e...
*-x86_64-linux-gnu.tar.gz bf4892239cab6e48... a829b3ffd800361a...
*.tar.gz 70e97dbd476e0c3d... 749b2781a7ac5798...
guix_build.log d21931bc7b08a487... 2edbc3e197d4bf3d...
guix_build.log.diff 70ce68314ebb705f...

@fanquake
Copy link
Member

If you want pull in fanquake@fc8f7ae, should be enough for green macOS cross-compile CI. Tested once locally.

@maflcko
Copy link
Member Author

maflcko commented Aug 24, 2023

Happy to rebase on that, once and if it is merged. I think it is better to keep the changes here to CI/doc-only.

@maflcko maflcko changed the title build: Bump minimum supported Clang to clang-13 build: Bump clang minimum supported version to 13 Aug 27, 2023
fanquake added a commit that referenced this pull request Aug 27, 2023
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for #28210, and is already part of #21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
@maflcko maflcko marked this pull request as ready for review October 24, 2023 16:52
@fanquake
Copy link
Member

ACK fae379b

@DrahtBot DrahtBot requested a review from hebasto October 24, 2023 20:43
@fanquake fanquake merged commit ba0313d into bitcoin:master Oct 24, 2023
@DrahtBot
Copy link
Contributor

Guix builds (on x86_64)

File commit 4370482
(master)
commit 8d05fba
(master and this pull)
SHA256SUMS.part 183387813ca7437c... 1c091be339920b50...
*-aarch64-linux-gnu-debug.tar.gz dbe14eca3b7590f9... cd3a238ed7dac501...
*-aarch64-linux-gnu.tar.gz 86e581c5aa6288be... 810b75c084d7cdc7...
*-arm-linux-gnueabihf-debug.tar.gz 1be1acedf78a3446... 04e4ed17c8976694...
*-arm-linux-gnueabihf.tar.gz 09c5d6abefb45f51... afbd9fd834be959f...
*-arm64-apple-darwin-unsigned.tar.gz f6d41940fd261af9... c38c0648e74af4f0...
*-arm64-apple-darwin-unsigned.zip 268791efe0de4e07... 4e7e4ff215e3690b...
*-arm64-apple-darwin.tar.gz b6dadb8374975f5f... 5a077e8d368cc190...
*-powerpc64-linux-gnu-debug.tar.gz ebe3060f3de9d6d0... 9b13ce46a3760021...
*-powerpc64-linux-gnu.tar.gz e6eac3cef68d41a6... 7d0a70d146404acf...
*-powerpc64le-linux-gnu-debug.tar.gz 4ffd1440c7990acb... 75dba1caaab07d2c...
*-powerpc64le-linux-gnu.tar.gz 0b6bcd94d3c4b455... be7d5d7f091fff14...
*-riscv64-linux-gnu-debug.tar.gz 36928faea0e41f47... e9e497c3ae8c828b...
*-riscv64-linux-gnu.tar.gz 53e7196be616f7fa... b0275528db455f55...
*-x86_64-apple-darwin-unsigned.tar.gz b51b362bd8e1f7bf... f53c0b87d040fdb0...
*-x86_64-apple-darwin-unsigned.zip a96fe067ca443670... 8b99f2199fd4854a...
*-x86_64-apple-darwin.tar.gz 062eb82c207dbebb... 0acbff16e6d42f72...
*-x86_64-linux-gnu-debug.tar.gz 934752412e800e61... 0e75e243e5a35f18...
*-x86_64-linux-gnu.tar.gz 23e28d2b322eeaf4... 1d33e710f1cc5769...
*.tar.gz c49c626683702ab1... f3fc477067f901f4...
guix_build.log be39534ef95fdc39... d63ae96aca0ee56f...
guix_build.log.diff 5ed5ea4f9c00a2c1...

@maflcko maflcko deleted the 2308-clang-13- branch October 25, 2023 05:40
@hebasto
Copy link
Member

hebasto commented Oct 25, 2023

Post-merge ACK.

PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Oct 27, 2023
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Nov 3, 2023
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Dec 6, 2023
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Dec 7, 2023
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
fanquake added a commit to bitcoin-core/gui that referenced this pull request Dec 8, 2023
fa6e50d fuzz: Use C++20 starts_with in rpc.cpp (MarcoFalke)
faa4838 Revert "tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings" (MarcoFalke)
fae3b77 refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments (MarcoFalke)
fa02fc0 refactor: modernize-use-default-member-init for bit-fields (C++20) (MarcoFalke)
fa67f09 build: Require C++20 compiler (MarcoFalke)

Pull request description:

  C++20 allows to write safer code, because it allows to enforce more stuff at compile time (`constinit`, `conteval`, `constexpr`, `std::span`, ...).

  Also, it allows to write less verbose and easier to understand code (C++ 20 Concepts).

  See bitcoin/bitcoin#23363 and https://en.cppreference.com/w/cpp/compiler_support#cpp20

  With g++-10 (bitcoin/bitcoin#28348) and clang-13 (bitcoin/bitcoin#28210), there is broad support for almost all features of C++20.

  It should be fine to require a C++20 compiler for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  This pull request includes three small cleanups to make use of C++20 features. If any issues are detected before or after merge, this should be easy to revert. If no issues arise, it should be fine to make use of more involved C++20 features later on.

ACKs for top commit:
  fanquake:
    ACK fa6e50d

Tree-SHA512: 244d79bfb0b750a4bdd713f40573b9ca33816fb84b6c84a58f027b9d7d4bb0cc4f18642959e4cf3d094808a69e5b8a327ca8521d7c0c08af27dacb5da3e78e71
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 3, 2024
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 4, 2024
fa6e50d fuzz: Use C++20 starts_with in rpc.cpp (MarcoFalke)
faa4838 Revert "tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings" (MarcoFalke)
fae3b77 refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments (MarcoFalke)
fa02fc0 refactor: modernize-use-default-member-init for bit-fields (C++20) (MarcoFalke)
fa67f09 build: Require C++20 compiler (MarcoFalke)

Pull request description:

  C++20 allows to write safer code, because it allows to enforce more stuff at compile time (`constinit`, `conteval`, `constexpr`, `std::span`, ...).

  Also, it allows to write less verbose and easier to understand code (C++ 20 Concepts).

  See bitcoin#23363 and https://en.cppreference.com/w/cpp/compiler_support#cpp20

  With g++-10 (bitcoin#28348) and clang-13 (bitcoin#28210), there is broad support for almost all features of C++20.

  It should be fine to require a C++20 compiler for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  This pull request includes three small cleanups to make use of C++20 features. If any issues are detected before or after merge, this should be easy to revert. If no issues arise, it should be fine to make use of more involved C++20 features later on.

ACKs for top commit:
  fanquake:
    ACK fa6e50d

Tree-SHA512: 244d79bfb0b750a4bdd713f40573b9ca33816fb84b6c84a58f027b9d7d4bb0cc4f18642959e4cf3d094808a69e5b8a327ca8521d7c0c08af27dacb5da3e78e71
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 4, 2024
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 4, 2024
fa6e50d fuzz: Use C++20 starts_with in rpc.cpp (MarcoFalke)
faa4838 Revert "tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings" (MarcoFalke)
fae3b77 refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments (MarcoFalke)
fa02fc0 refactor: modernize-use-default-member-init for bit-fields (C++20) (MarcoFalke)
fa67f09 build: Require C++20 compiler (MarcoFalke)

Pull request description:

  C++20 allows to write safer code, because it allows to enforce more stuff at compile time (`constinit`, `conteval`, `constexpr`, `std::span`, ...).

  Also, it allows to write less verbose and easier to understand code (C++ 20 Concepts).

  See bitcoin#23363 and https://en.cppreference.com/w/cpp/compiler_support#cpp20

  With g++-10 (bitcoin#28348) and clang-13 (bitcoin#28210), there is broad support for almost all features of C++20.

  It should be fine to require a C++20 compiler for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  This pull request includes three small cleanups to make use of C++20 features. If any issues are detected before or after merge, this should be easy to revert. If no issues arise, it should be fine to make use of more involved C++20 features later on.

ACKs for top commit:
  fanquake:
    ACK fa6e50d

Tree-SHA512: 244d79bfb0b750a4bdd713f40573b9ca33816fb84b6c84a58f027b9d7d4bb0cc4f18642959e4cf3d094808a69e5b8a327ca8521d7c0c08af27dacb5da3e78e71
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 12, 2024
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 12, 2024
fa6e50d fuzz: Use C++20 starts_with in rpc.cpp (MarcoFalke)
faa4838 Revert "tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings" (MarcoFalke)
fae3b77 refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments (MarcoFalke)
fa02fc0 refactor: modernize-use-default-member-init for bit-fields (C++20) (MarcoFalke)
fa67f09 build: Require C++20 compiler (MarcoFalke)

Pull request description:

  C++20 allows to write safer code, because it allows to enforce more stuff at compile time (`constinit`, `conteval`, `constexpr`, `std::span`, ...).

  Also, it allows to write less verbose and easier to understand code (C++ 20 Concepts).

  See bitcoin#23363 and https://en.cppreference.com/w/cpp/compiler_support#cpp20

  With g++-10 (bitcoin#28348) and clang-13 (bitcoin#28210), there is broad support for almost all features of C++20.

  It should be fine to require a C++20 compiler for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  This pull request includes three small cleanups to make use of C++20 features. If any issues are detected before or after merge, this should be easy to revert. If no issues arise, it should be fine to make use of more involved C++20 features later on.

ACKs for top commit:
  fanquake:
    ACK fa6e50d

Tree-SHA512: 244d79bfb0b750a4bdd713f40573b9ca33816fb84b6c84a58f027b9d7d4bb0cc4f18642959e4cf3d094808a69e5b8a327ca8521d7c0c08af27dacb5da3e78e71
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 23, 2024
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 23, 2024
fa6e50d fuzz: Use C++20 starts_with in rpc.cpp (MarcoFalke)
faa4838 Revert "tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings" (MarcoFalke)
fae3b77 refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments (MarcoFalke)
fa02fc0 refactor: modernize-use-default-member-init for bit-fields (C++20) (MarcoFalke)
fa67f09 build: Require C++20 compiler (MarcoFalke)

Pull request description:

  C++20 allows to write safer code, because it allows to enforce more stuff at compile time (`constinit`, `conteval`, `constexpr`, `std::span`, ...).

  Also, it allows to write less verbose and easier to understand code (C++ 20 Concepts).

  See bitcoin#23363 and https://en.cppreference.com/w/cpp/compiler_support#cpp20

  With g++-10 (bitcoin#28348) and clang-13 (bitcoin#28210), there is broad support for almost all features of C++20.

  It should be fine to require a C++20 compiler for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  This pull request includes three small cleanups to make use of C++20 features. If any issues are detected before or after merge, this should be easy to revert. If no issues arise, it should be fine to make use of more involved C++20 features later on.

ACKs for top commit:
  fanquake:
    ACK fa6e50d

Tree-SHA512: 244d79bfb0b750a4bdd713f40573b9ca33816fb84b6c84a58f027b9d7d4bb0cc4f18642959e4cf3d094808a69e5b8a327ca8521d7c0c08af27dacb5da3e78e71
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 24, 2024
ff42d81 guix: use clang-toolchain-15 for macOS compilation (fanquake)
94955b4 depends: use LLVM/Clang 15.0.6 for macOS cross-compile (fanquake)

Pull request description:

  This will end up being a blocker for bitcoin#28210, and is already part of bitcoin#21778, even though an even newer LLVM/Clang combination is required (and still missing from upstream Guix). Seems straight-forward enough to just bump the macOS compiler to a more modern Clang.

ACKs for top commit:
  TheCharlatan:
    re-ACK ff42d81

Tree-SHA512: 8af4b54c3a56abb3825c6470444a28e14e9c69820c09ec4a33acebb8ae434df9ae18163c088a582130cc68755293a7e2bde5d065763919d94064ff9b3f83730f
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 24, 2024
fa6e50d fuzz: Use C++20 starts_with in rpc.cpp (MarcoFalke)
faa4838 Revert "tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings" (MarcoFalke)
fae3b77 refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments (MarcoFalke)
fa02fc0 refactor: modernize-use-default-member-init for bit-fields (C++20) (MarcoFalke)
fa67f09 build: Require C++20 compiler (MarcoFalke)

Pull request description:

  C++20 allows to write safer code, because it allows to enforce more stuff at compile time (`constinit`, `conteval`, `constexpr`, `std::span`, ...).

  Also, it allows to write less verbose and easier to understand code (C++ 20 Concepts).

  See bitcoin#23363 and https://en.cppreference.com/w/cpp/compiler_support#cpp20

  With g++-10 (bitcoin#28348) and clang-13 (bitcoin#28210), there is broad support for almost all features of C++20.

  It should be fine to require a C++20 compiler for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

  This pull request includes three small cleanups to make use of C++20 features. If any issues are detected before or after merge, this should be easy to revert. If no issues arise, it should be fine to make use of more involved C++20 features later on.

ACKs for top commit:
  fanquake:
    ACK fa6e50d

Tree-SHA512: 244d79bfb0b750a4bdd713f40573b9ca33816fb84b6c84a58f027b9d7d4bb0cc4f18642959e4cf3d094808a69e5b8a327ca8521d7c0c08af27dacb5da3e78e71
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Oct 4, 2024
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Oct 6, 2024
PastaPastaPasta added a commit to dashpay/dash that referenced this pull request Oct 24, 2024
da45a67 docs: bump python version in dependencies.md and build-openbsd.md (pasta)
5f7009c bump PYTHON_VERSION for CI (pasta)
c6fed1e partial Merge bitcoin#28210: build: Bump clang minimum supported version to 13 (MarcoFalke)
68ccd6d bump CI python version (pasta)
64cd338 Merge bitcoin#28211: Bump python minimum supported version to 3.9 (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  Why not

  ## What was done?
  Bump python version

  ## How Has This Been Tested?
  See CI

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK da45a67
  kwvg:
    utACK da45a67
  UdjinM6:
    utACK da45a67

Tree-SHA512: 5bb99817a5faca73e8e18b9fd6b5f190a7eb0274ef316038d78dea339e9610ed1b1870636a6ecbe1ed3074301a9fabfa84d879f6d7fa6276170cd15170b8f148
@bitcoin bitcoin locked and limited conversation to collaborators Oct 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants