👍 ryanofsky approved a pull request: "depends: Fix build with `MULTIPROCESS=1` in Guix environment"
(https://github.com/bitcoin/bitcoin/pull/30940#pullrequestreview-2322355196)
Code review ACK 06b4c339e89e593d951a90cd2d1bce944acf3bf7
>> This causes CMake to search for package configurations in the native subdirectory first.
>
> This is the correct behaviour as far as we are concerned right?
I think the problem here is not that that cmake is searching the native directory first, but that it is searching the native directory only for the libmultiprocess runtime library, which is cross compiled, and can't be found in the native prefix.
The fix in d8e3afc3352a27
...
(https://github.com/bitcoin/bitcoin/pull/30940#pullrequestreview-2322355196)
Code review ACK 06b4c339e89e593d951a90cd2d1bce944acf3bf7
>> This causes CMake to search for package configurations in the native subdirectory first.
>
> This is the correct behaviour as far as we are concerned right?
I think the problem here is not that that cmake is searching the native directory first, but that it is searching the native directory only for the libmultiprocess runtime library, which is cross compiled, and can't be found in the native prefix.
The fix in d8e3afc3352a27
...
💬 hebasto commented on pull request "depends: Fix build with `MULTIPROCESS=1` in Guix environment":
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368400799)
> 2. I don't understand why "In the Guix environment, `${BASEPREFIX}/${HOST}/native/bin` is added to the `PATH` environment variable," according to the description. Setting this seems indiscriminate, like a sledgehammer approach, something that would cause the guix build to behave differently from normal depends builds and lead to confusing issues like this one.
I believe it was required when the macOS toolchain was built in depends. We can investigate this issue separately, can't we?
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368400799)
> 2. I don't understand why "In the Guix environment, `${BASEPREFIX}/${HOST}/native/bin` is added to the `PATH` environment variable," according to the description. Setting this seems indiscriminate, like a sledgehammer approach, something that would cause the guix build to behave differently from normal depends builds and lead to confusing issues like this one.
I believe it was required when the macOS toolchain was built in depends. We can investigate this issue separately, can't we?
💬 hebasto commented on pull request "depends: Fix build with `MULTIPROCESS=1` in Guix environment":
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368431723)
My Guix build:
```
aarch64
8868809b50ea77b47c45c1cdf802e85540d9428f182773b1cd7e5d73750dce87 guix-build-06b4c339e89e/output/aarch64-linux-gnu/SHA256SUMS.part
fccf8cf14ca3d3ee7812f254d10eb17e62c507f5b2606c6b099c5d00ed5d3446 guix-build-06b4c339e89e/output/aarch64-linux-gnu/bitcoin-06b4c339e89e-aarch64-linux-gnu-debug.tar.gz
2d7cf4959e238fae666476db1cd11112c77708a58bb9d5cd1e0c7986c8c477a6 guix-build-06b4c339e89e/output/aarch64-linux-gnu/bitcoin-06b4c339e89e-aarch64-linux-gnu.tar.gz
22d7016c
...
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368431723)
My Guix build:
```
aarch64
8868809b50ea77b47c45c1cdf802e85540d9428f182773b1cd7e5d73750dce87 guix-build-06b4c339e89e/output/aarch64-linux-gnu/SHA256SUMS.part
fccf8cf14ca3d3ee7812f254d10eb17e62c507f5b2606c6b099c5d00ed5d3446 guix-build-06b4c339e89e/output/aarch64-linux-gnu/bitcoin-06b4c339e89e-aarch64-linux-gnu-debug.tar.gz
2d7cf4959e238fae666476db1cd11112c77708a58bb9d5cd1e0c7986c8c477a6 guix-build-06b4c339e89e/output/aarch64-linux-gnu/bitcoin-06b4c339e89e-aarch64-linux-gnu.tar.gz
22d7016c
...
💬 willcl-ark commented on pull request "test: re-bucket long-running tests":
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2368445072)
> Should feature_assumeutxo also be moved up a bit? According to [corecheck.dev/tests](https://corecheck.dev/tests) it is one of the top-20 slowest tests. Also, according to the CI runs in this pull (Asan + macOS) it is in the tail.
Added feature_assumeutxo to the < 2m bucket
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2368445072)
> Should feature_assumeutxo also be moved up a bit? According to [corecheck.dev/tests](https://corecheck.dev/tests) it is one of the top-20 slowest tests. Also, according to the CI runs in this pull (Asan + macOS) it is in the tail.
Added feature_assumeutxo to the < 2m bucket
💬 maflcko commented on pull request "test: switch MiniWallet padding unit from weight to vsize":
(https://github.com/bitcoin/bitcoin/pull/30718#issuecomment-2368460763)
lgtm ACK 7d1c8d0aa3ebe30d7633caf9bc4765927e4d6e08 🔋
<details><summary>Show signature</summary>
Signature:
```
untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
trusted comment: lgtm ACK 7d1c8d0aa3ebe30d
...
(https://github.com/bitcoin/bitcoin/pull/30718#issuecomment-2368460763)
lgtm ACK 7d1c8d0aa3ebe30d7633caf9bc4765927e4d6e08 🔋
<details><summary>Show signature</summary>
Signature:
```
untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
trusted comment: lgtm ACK 7d1c8d0aa3ebe30d
...
💬 l0rinc commented on pull request "refactor: Implement missing error checking for ArgsManager flags":
(https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771575039)
Was merged since (added you as co-author), you should be able to remove this now
(https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771575039)
Was merged since (added you as co-author), you should be able to remove this now
💬 hebasto commented on pull request "depends: Fix build with `MULTIPROCESS=1` in Guix environment":
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368530170)
> 3. Indirectly related to this issue: I don't understand why depends toolchain is setting `set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF)`. I use a `shell.nix` file to set up a build environment for bitcoin and this setting make it hard to use depends because it makes cmake ignore the CMAKE_INCLUDE_PATH / CMAKE_PREFIX_PATH / CMAKE_LIBRARY_PATH variables constructed in the nix environment to allow cmake to find dependencies.
I vaguely recall that while working on the CMake staging branch,
...
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368530170)
> 3. Indirectly related to this issue: I don't understand why depends toolchain is setting `set(CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH OFF)`. I use a `shell.nix` file to set up a build environment for bitcoin and this setting make it hard to use depends because it makes cmake ignore the CMAKE_INCLUDE_PATH / CMAKE_PREFIX_PATH / CMAKE_LIBRARY_PATH variables constructed in the nix environment to allow cmake to find dependencies.
I vaguely recall that while working on the CMake staging branch,
...
💬 brunoerg commented on pull request "fuzz: fuzz connman with non-empty addrman + ASMap":
(https://github.com/bitcoin/bitcoin/pull/29536#issuecomment-2368551774)
Rebased
(https://github.com/bitcoin/bitcoin/pull/29536#issuecomment-2368551774)
Rebased
💬 Sjors commented on pull request "depends: Fix build with `MULTIPROCESS=1` in Guix environment":
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368574744)
Demo branch `MULTIPROCESS=1` and without `x86_64-w64-mingw32`:
```
x86_64
e31ab0eeff88048301f113731a9b829df63e7db2c6a83c3a54e14b6f423aa4a8 guix-build-d8ec933456bc/output/aarch64-linux-gnu/SHA256SUMS.part
77f4a9481b4ce7df26549c6001384e066a1de3cb1b81ba950c29cc41b0b5c058 guix-build-d8ec933456bc/output/aarch64-linux-gnu/bitcoin-d8ec933456bc-aarch64-linux-gnu-debug.tar.gz
ee471d630ea0eb71c2040a3b9e408c4f1709ee29d2da4ecbc1931d93b67e5495 guix-build-d8ec933456bc/output/aarch64-linux-gnu/bitcoi
...
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368574744)
Demo branch `MULTIPROCESS=1` and without `x86_64-w64-mingw32`:
```
x86_64
e31ab0eeff88048301f113731a9b829df63e7db2c6a83c3a54e14b6f423aa4a8 guix-build-d8ec933456bc/output/aarch64-linux-gnu/SHA256SUMS.part
77f4a9481b4ce7df26549c6001384e066a1de3cb1b81ba950c29cc41b0b5c058 guix-build-d8ec933456bc/output/aarch64-linux-gnu/bitcoin-d8ec933456bc-aarch64-linux-gnu-debug.tar.gz
ee471d630ea0eb71c2040a3b9e408c4f1709ee29d2da4ecbc1931d93b67e5495 guix-build-d8ec933456bc/output/aarch64-linux-gnu/bitcoi
...
💬 ryanofsky commented on pull request "refactor: Implement missing error checking for ArgsManager flags":
(https://github.com/bitcoin/bitcoin/pull/16545#issuecomment-2368602184)
Thanks for @hodlinator and @maflcko for the comments.I'll go ahead and update this PR in case marco is interested in looking at it since dropping support for flag combinations (https://github.com/bitcoin/bitcoin/pull/16545#pullrequestreview-2256044988).
In the meantime though I'm slowly working on the branch in #22978. Compared to this PR, that approach will be a larger change. This PR adds only ~100 lines if you exclude tests and documentation by only adding flags while not change existing c
...
(https://github.com/bitcoin/bitcoin/pull/16545#issuecomment-2368602184)
Thanks for @hodlinator and @maflcko for the comments.I'll go ahead and update this PR in case marco is interested in looking at it since dropping support for flag combinations (https://github.com/bitcoin/bitcoin/pull/16545#pullrequestreview-2256044988).
In the meantime though I'm slowly working on the branch in #22978. Compared to this PR, that approach will be a larger change. This PR adds only ~100 lines if you exclude tests and documentation by only adding flags while not change existing c
...
💬 willcl-ark commented on pull request "build: speed up by flattening the dependency graph":
(https://github.com/bitcoin/bitcoin/pull/30911#issuecomment-2368602687)
ACK 42edb2f4a5900e0b2451a7446d58962c0bf0095d
I agree with @l0rinc that this seems conceptually nicer, and also see a much smaller time diff since 30888:
```log
# master @ 33adc7521cc8bb24b941d959022b084002ba7c60
________________________________________________________
Executed in 181.29 secs fish external
usr time 38.26 mins 214.00 micros 38.26 mins
sys time 1.49 mins 55.00 micros 1.49 mins
# this PR rebased on master @ 33adc7521cc8bb24b941d959022
...
(https://github.com/bitcoin/bitcoin/pull/30911#issuecomment-2368602687)
ACK 42edb2f4a5900e0b2451a7446d58962c0bf0095d
I agree with @l0rinc that this seems conceptually nicer, and also see a much smaller time diff since 30888:
```log
# master @ 33adc7521cc8bb24b941d959022b084002ba7c60
________________________________________________________
Executed in 181.29 secs fish external
usr time 38.26 mins 214.00 micros 38.26 mins
sys time 1.49 mins 55.00 micros 1.49 mins
# this PR rebased on master @ 33adc7521cc8bb24b941d959022
...
💬 hebasto commented on pull request "depends: Fix build with `MULTIPROCESS=1` in Guix environment":
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368636422)
> I don't understand why it is switching from _DIR variables to _ROOT variables. According to https://chatgpt.com/c/66f16a25-c068-800a-bba6-36d030d42869 both approaches seem roughly equivalent, but I don't understand if there was another reason to switch from _DIR to _ROOT.
1. https://cmake.org/cmake/help/latest/policy/CMP0074.html
2. `<PackageName>_ROOT` has top priority for the [`find_package()`](https://cmake.org/cmake/help/latest/command/find_package.html) command.
3. `<PackageName>_ROO
...
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368636422)
> I don't understand why it is switching from _DIR variables to _ROOT variables. According to https://chatgpt.com/c/66f16a25-c068-800a-bba6-36d030d42869 both approaches seem roughly equivalent, but I don't understand if there was another reason to switch from _DIR to _ROOT.
1. https://cmake.org/cmake/help/latest/policy/CMP0074.html
2. `<PackageName>_ROOT` has top priority for the [`find_package()`](https://cmake.org/cmake/help/latest/command/find_package.html) command.
3. `<PackageName>_ROO
...
💬 fjahr commented on pull request "test: Introduce ensure helper":
(https://github.com/bitcoin/bitcoin/pull/30893#discussion_r1771685550)
fixed
(https://github.com/bitcoin/bitcoin/pull/30893#discussion_r1771685550)
fixed
💬 fjahr commented on pull request "test: Introduce ensure helper":
(https://github.com/bitcoin/bitcoin/pull/30893#discussion_r1771685757)
taken
(https://github.com/bitcoin/bitcoin/pull/30893#discussion_r1771685757)
taken
💬 fjahr commented on pull request "test: Introduce ensure helper":
(https://github.com/bitcoin/bitcoin/pull/30893#issuecomment-2368661926)
> Commit https://github.com/bitcoin/bitcoin/commit/19bc71caf6a43702946f1bc15696fe14afa24fda description says "delay" when it should say "check_interval".
Also fixed.
(https://github.com/bitcoin/bitcoin/pull/30893#issuecomment-2368661926)
> Commit https://github.com/bitcoin/bitcoin/commit/19bc71caf6a43702946f1bc15696fe14afa24fda description says "delay" when it should say "check_interval".
Also fixed.
💬 ryanofsky commented on pull request "depends: Fix build with `MULTIPROCESS=1` in Guix environment":
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368665229)
Thanks for the clarifications. I agree that issues (2) (3) and (4) are not directly related to this PR and would be best to address separately if it makes sense to follow up on them. Those were just things that I didn't understand, and seemed to intersect with the issue.
(https://github.com/bitcoin/bitcoin/pull/30940#issuecomment-2368665229)
Thanks for the clarifications. I agree that issues (2) (3) and (4) are not directly related to this PR and would be best to address separately if it makes sense to follow up on them. Those were just things that I didn't understand, and seemed to intersect with the issue.
💬 sipa commented on pull request "cluster mempool: extend DepGraph functionality":
(https://github.com/bitcoin/bitcoin/pull/30857#issuecomment-2368720193)
I have replaced the `clusterlin_add_dependency` and `clusterlin_cluster_serialization` tests with a new `clusterlin_depgraph_sim` test that performs an arbitrary sequence of `AddTransaction`, `AddDependencies`, and `RemoveTransactions` calls, and compares the final result with a simulated version. With that, `Cluster` was easy to delete.
(https://github.com/bitcoin/bitcoin/pull/30857#issuecomment-2368720193)
I have replaced the `clusterlin_add_dependency` and `clusterlin_cluster_serialization` tests with a new `clusterlin_depgraph_sim` test that performs an arbitrary sequence of `AddTransaction`, `AddDependencies`, and `RemoveTransactions` calls, and compares the final result with a simulated version. With that, `Cluster` was easy to delete.
🤔 ryanofsky reviewed a pull request: "refactor: Implement missing error checking for ArgsManager flags"
(https://github.com/bitcoin/bitcoin/pull/16545#pullrequestreview-2322682262)
Rebased 41bdf3d025f900a59ec14d5b497a31a2d84eea52 -> 87b6d4cb5a5c04f6c8542c633c3bfa5f76901d43 ([`pr/argcheck.40`](https://github.com/ryanofsky/bitcoin/commits/pr/argcheck.40) -> [`pr/argcheck.41`](https://github.com/ryanofsky/bitcoin/commits/pr/argcheck.41), [compare](https://github.com/ryanofsky/bitcoin/compare/pr/argcheck.40-rebase..pr/argcheck.41)) due to conflicts with #29043 and #30618
Followup adding support for argument combinations is commit c919f51c044f0e80ecd301f9c9d396ddff2331ba ([b
...
(https://github.com/bitcoin/bitcoin/pull/16545#pullrequestreview-2322682262)
Rebased 41bdf3d025f900a59ec14d5b497a31a2d84eea52 -> 87b6d4cb5a5c04f6c8542c633c3bfa5f76901d43 ([`pr/argcheck.40`](https://github.com/ryanofsky/bitcoin/commits/pr/argcheck.40) -> [`pr/argcheck.41`](https://github.com/ryanofsky/bitcoin/commits/pr/argcheck.41), [compare](https://github.com/ryanofsky/bitcoin/compare/pr/argcheck.40-rebase..pr/argcheck.41)) due to conflicts with #29043 and #30618
Followup adding support for argument combinations is commit c919f51c044f0e80ecd301f9c9d396ddff2331ba ([b
...
💬 ryanofsky commented on pull request "refactor: Implement missing error checking for ArgsManager flags":
(https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771696767)
re: https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1767576075
> nit: Remove double spaces
Thanks! Applied suggestion
(https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771696767)
re: https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1767576075
> nit: Remove double spaces
Thanks! Applied suggestion
💬 ryanofsky commented on pull request "refactor: Implement missing error checking for ArgsManager flags":
(https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771700848)
re: https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771310361
> Feels like this is encouraging `BOOL | STRING` usage and should be broken out too if we are postponing that support.
Good catch. Makes sense to drop the example since it doesn't work yet.
(https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771700848)
re: https://github.com/bitcoin/bitcoin/pull/16545#discussion_r1771310361
> Feels like this is encouraging `BOOL | STRING` usage and should be broken out too if we are postponing that support.
Good catch. Makes sense to drop the example since it doesn't work yet.