<fanquake>
Sjors: not sure why cmake would make a difference in that regard. Sounds like you're looking for something list distcc, which also worked fine with autotools
<bitcoin-git>
bitcoin/master fac9736 MarcoFalke: test: Use string_view for json_tests
<bitcoin-git>
bitcoin/master faecca9 MarcoFalke: test: Use span for raw data
<bitcoin-git>
bitcoin/master 6852d1d merge-script: Merge bitcoin/bitcoin#30796: test: Use std::span and std::string_view for ...
<bitcoin-git>
[bitcoin] fanquake merged pull request #30796: test: Use std::span and std::string_view for raw data (master...2409-raw-data) https://github.com/bitcoin/bitcoin/pull/30796
<bitcoin-git>
[bitcoin] fanquake opened pull request #30821: build: work around issue with Boost = 1.80 and Clang = 18 (master...boost_174_clang_18) https://github.com/bitcoin/bitcoin/pull/30821
<achow101>
wouldn't have happened without some miners paying attention though and switching over
<instagibbs>
I mean that's not a consensus failure, you just needed some miners to enforce the Users Will
<instagibbs>
?
dzxzg has joined #bitcoin-core-dev
<lightlike>
so re: bench/fuzz/gui compilation, is the intentioned "typical" workflow for devs to work on whatever you are working on with just the basics compiled, then compile everything (and maybe fix compilation failures), then open PR? I always thought previously bench/fuzz etc. was enabled by default not to run them but to make they sure they still compile.
<maflcko>
lightlike: For developers it makes sense to compile as much as possible, for the reasons given by you. However, other people compiling from source (users) may not want to build some stuff by default?
<fanquake>
lightlike: I'd think the typical flow should be for each dev to setup a cmake preset, which compiles exactly what they want/don't want, and to just work as normal
<sipa>
i saw some earlier discussion around that, and hebasto suggested adding a preset with all dev-related things enabled?
<sipa>
can we have such a preset be part of the project?
<luke-jr>
I thought the current defaults were meant to be ideal for devs
<fanquake>
that is also something we could do, which I assume would be basically + fuzz + bench
<hebasto>
sipa: yes, we can
<fanquake>
luke-jr: what's ideal depends on what you're working on
<luke-jr>
IMO it would be ideal for defaults to be user-oriented
<sipa>
luke-jr: i think the current cmake defaults are user-oriented (more so than the autotools defaults were)
<luke-jr>
sipa: GUI disabled by default certainly isn't
* luke-jr
wonders if make -C src bitcoind still works
<sipa>
luke-jr: ah i was thinking in terms of artefacts, not dependencies
<sipa>
fanquake, hebasto: i think it'd be useful to have a preset with "enable all the things" for development, which could be updated when new artefacts/features/... are added, because as a developer who creates a PR, you want to make sure you've compiled as much as possible you can locally before submitting (e.g. say the default is not to compile benchmarks, even if in the code you're currently working
<sipa>
on you don't care (or even know about the existence of)...
<sipa>
benchmarks, it'd be annoying if you miss that you introduced a compilation error in the benchmarks by not building it)
<achow101>
should "all the things" also include optional dependencies?
<fanquake>
Having a minimal set of initial default things turned on, means that everyone can do exactly what they want, by opting in to whatever they want. Having a convenience preset in the repo, for "development" seems like a good idea. Outside of that, anyone who wants to setup their own compilation to suit themselves, has the flexibility of presets to do so.
<hebasto>
^ I concur
<sipa>
fanquake: right, i'm happy to create a preset for myself with whatever i care about, and i assume the same is true for most regularly contributors... but for occasional contributors, a "enable as much as possible that i might not even be aware of exists" may make sense
<sipa>
achow101: i guess yes
<achow101>
I think we should provide a couple different presets in repo: 1) development preset, 2) everything that goes in a release preset, 3) fuzzing preset
<sipa>
yeah that may make sense
<fanquake>
This is also something that we need to expand the developer / productivity notes to encompass
<sipa>
yeah
<achow101>
one for each of the ci configs would also be useful
<fanquake>
i.e, should the CI config live in presets, or in the scripts etc
<maflcko>
achow101: That'd be difficult, becusea the CI configs really test different compiler versions and packaging/depends settings, which may not exist on the dev machine?
<fanquake>
as we don't want subtly changing presets, to inadvertantly change things in the ci
<luke-jr>
maflcko: we could get half of it in a preset?
<fanquake>
althought the CI presets could exist separately under /ci etc
<luke-jr>
even if not every issue can be reproduced with a preset, it might help sometimes
<maflcko>
For example, the "tidy" preset would just be equal to the "compile-all" preset. However, you would get nothing similar to the tidy CI otherwise
<achow101>
ci presets could live under /ci which makes it clear that they're intended to only work on ci, but when people are trying to reproduce locally, at least the config is easily available and they just need to hunt down the right dependnencies and versions
<bitcoin-git>
[bitcoin] fanquake opened pull request #30822: cmake: scope Boost Test check to `vcpkg` (master...scope_boost_test_vcpkg) https://github.com/bitcoin/bitcoin/pull/30822
<achow101>
a lot of times though, when I'm debugging ci failures, the things i'm interested in that would be in a preset are which sanitizers are enabled, or which extra flags have been set, or was it gcc or clang that was used
<maflcko>
You can get the flags via "git grep -W BITCOIN_CONFIG ./ci/test/00_setup_env_native_tsan.sh"
<maflcko>
Though, seems fine to move them to another file, as they are not required to build the CI image file.
<bitcoin-git>
[bitcoin] fanquake opened pull request #30823: cmake: add `USE_SOURCE_PERMISSIONS` to all `configure_file()` usage (master...configure_file_explicit_perms) https://github.com/bitcoin/bitcoin/pull/30823
<maflcko>
Personally I have a bash alias (since autotools) with similar ones for each compiler/sanitizer: "rm -rf ./bld-cmake/ && cmake -B ./bld-cmake -DAPPEND_CXXFLAGS='-std=c++23' -DCMAKE_C_COMPILER='clang' -DCMAKE_CXX_COMPILER='clang++' -DBUILD_GUI=ON -DBUILD_FUZZ_BINARY=ON -DBUILD_BENCH=ON -DWITH_ZMQ=ON -DWITH_ZMQ=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_LIB=ON && cmake --build ./bld-cmake --parallel $( nproc ) --"
<maflcko>
Personally, even typing "cmake --build ..." is too much for me, so I'll use a bash alias either way
<luke-jr>
I'm building in throwaway containers these days
<sipa>
maflcko: my build/configure command lines are in bash history
<luke-jr>
(by typing `make` :)
<sipa>
maflcko: woah c++23, such modern
<maflcko>
sipa: My bash history has the default limit, so I'd cycle through it in a few days
<sipa>
maflcko: humblebrag
<luke-jr>
I wish bash could just use a sqlite db instead of caching history in RAM
<maflcko>
"history | grep --count git" -> 536
<maflcko>
I guess I am using git sometimes
<maflcko>
536/1000
<luke-jr>
30528 for me, in my main worktree dir
<vasild>
maflcko: you have -DWITH_ZMQ=ON two times
<maflcko>
vasild: Heh, fixed.
<sipa>
vasild: two times zero(MQ) is still zero
<luke-jr>
(MQ)
<vasild>
;-D
<luke-jr>
we need to add -D___=TOGGLE just for maflcko? :P jk
<bitcoin-git>
[bitcoin] fanquake opened pull request #30824: cmake: decouple `FORTIFY_SOURCE` check from `Debug` build type (master...decouple_fortify_debug_mode) https://github.com/bitcoin/bitcoin/pull/30824
zeropoint has joined #bitcoin-core-dev
dzxzg has quit [Quit: Client closed]
bugs_ has joined #bitcoin-core-dev
jonatack has joined #bitcoin-core-dev
jon_atack has quit [Ping timeout: 265 seconds]
abubakarsadiq has joined #bitcoin-core-dev
achow101 has quit [Ping timeout: 260 seconds]
achow101_ has joined #bitcoin-core-dev
preimage has joined #bitcoin-core-dev
zeropoint has quit [Quit: leaving]
achow101_ has quit [Ping timeout: 260 seconds]
achow101 has joined #bitcoin-core-dev
kashifs has quit [Quit: Client closed]
SpellChecker has quit [Quit: bye]
SpellChecker has joined #bitcoin-core-dev
zeropoint has joined #bitcoin-core-dev
___nick___ has joined #bitcoin-core-dev
<jonatack>
maflcko: nice bash alias! what would the flag be, por favor, to silence the leveldb warnings
<jonatack>
leveldb deprecation warnings from [-Wdeprecated-declarations]
Talkless has joined #bitcoin-core-dev
<jonatack>
luke-jr: agree it makes sense for the GUI to be included by default for the users that build from source
<sipa>
jonatack: my understanding is that it's unusual in cmake-land to base features on auto-detection
<maflcko>
jonatack: To disable the warning, you can just drop the C++23 option
benwestgate has joined #bitcoin-core-dev
<jonatack>
sipa: maflcko: ty!
SpellChecker_ has joined #bitcoin-core-dev
SpellChecker has quit [Remote host closed the connection]
jonatack has quit [Remote host closed the connection]
jonatack has joined #bitcoin-core-dev
___nick___ has quit [Ping timeout: 252 seconds]
___nick___ has joined #bitcoin-core-dev
jonatack has quit [Ping timeout: 246 seconds]
jonatack has joined #bitcoin-core-dev
jleost has quit [Remote host closed the connection]
jleost has joined #bitcoin-core-dev
dviola has joined #bitcoin-core-dev
SpellChecker_ has quit [Remote host closed the connection]
SpellChecker has joined #bitcoin-core-dev
Talkless has quit [Remote host closed the connection]
<bitcoin-git>
bitcoin/master cd062d6 fanquake: build: work around issue with Boost = 18
<bitcoin-git>
bitcoin/master 7f472e9 Ava Chow: Merge bitcoin/bitcoin#30821: build: work around issue with Boost <= 1.80 a...
<bitcoin-git>
[bitcoin] achow101 merged pull request #30821: build: work around issue with Boost = 1.80 and Clang = 18 (master...boost_174_clang_18) https://github.com/bitcoin/bitcoin/pull/30821
___nick___ has joined #bitcoin-core-dev
<pinheadmz>
fixed nm. carry on
___nick___ has quit [Ping timeout: 246 seconds]
<bitcoin-git>
[bitcoin] brunoerg opened pull request #30826: fuzz: reduce number of iterations in `crypto_aeadchacha20poly1305` target (master...2024-09-fuzz-crypto-iterations) https://github.com/bitcoin/bitcoin/pull/30826
bugs_ has quit [Quit: Leaving]
nickler has quit [Ping timeout: 245 seconds]
nickler has joined #bitcoin-core-dev
andrewtoth_ has joined #bitcoin-core-dev
andrewtoth has quit [Ping timeout: 260 seconds]
SpellChecker_ has joined #bitcoin-core-dev
SpellChecker has quit [Remote host closed the connection]