Skip to content

Conversation

practicalswift
Copy link
Contributor

@practicalswift practicalswift commented May 31, 2019

Make reasoning about dependencies easier by not including unused dependencies.

Please note that the removed headers are not "transitively included" by other still included headers. Thus the removals are real.

As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

$ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
      sed 's%^%src/%g' | xargs cat | wc -l
51393

Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

@DrahtBot
Copy link
Contributor

DrahtBot commented May 31, 2019

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

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #16083 ([WIP] transaction fees in getblock by FelixWeis)
  • #16069 (test: move-only: Split large tests into smaller compile units by MarcoFalke)
  • #15987 (Wallet, GUI: Warn when sending to already-used Bitcoin addresses (also RPC: include such information in getaddressinfo) by luke-jr)
  • #15810 ([WIP] Remove nAbsurdFee fee from AcceptToMemoryPool by jnewbery)
  • #15382 ([util] add runCommandParseJSON by Sjors)
  • #14912 ([WIP] External signer support (e.g. hardware wallet) by Sjors)
  • #14384 (Resolve validationinterface circular dependencies by 251Labs)
  • #13949 (Introduce MempoolObserver interface to break "policy/fees -> txmempool -> policy/fees" circular dependency by Empact)
  • #13751 (Utils and libraries: Drops the boost/algorithm/string/split.hpp dependency by 251Labs)
  • #13062 (Make script interpreter independent from storage type CScript by sipa)
  • #10443 (Add fee_est tool for debugging fee estimation code by ryanofsky)
  • #9152 (Wallet/RPC: sweepprivkeys method to scan UTXO set and send to local wallet by luke-jr)

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
Copy link
Member

maflcko commented May 31, 2019

Concept ACK, but is this complete? It seems that for example wallet.cpp should not depend on net.h and txmempool.h (txs are submitted via the chain interface).

@dongcarl
Copy link
Contributor

@practicalswift Are you finding these manually or is there a static analysis tool that you use?

@practicalswift practicalswift force-pushed the decouple-translation-units branch 2 times, most recently from 7cc1ad2 to 51614da Compare June 1, 2019 21:46
@practicalswift practicalswift changed the title Make reasoning about dependencies easier by not including unused dependencies Remove seven circular dependencies. Make reasoning about dependencies easier by not including unused dependencies. Jun 2, 2019
@practicalswift
Copy link
Contributor Author

@MarcoFalke Oh, good catch! My analysis script was a bit too conservative which made it miss the mentioned removal opportunities. I re-ran the analysis and removed quite a few more unused includes. Thanks for noticing! The removals should be complete now: let me know if you find any completeness counterexamples (false negatives) or removals that look incorrect (false positives) in the updated version!

@dongcarl It's a combination of my own #include analysis script, lots of test compilations/test suite runs and manual review of the candidate removals :-)

@maflcko maflcko changed the title Remove seven circular dependencies. Make reasoning about dependencies easier by not including unused dependencies. refactor: Remove unused includes Jun 2, 2019
@practicalswift practicalswift force-pushed the decouple-translation-units branch from 51614da to a15aa52 Compare June 2, 2019 15:07
@practicalswift practicalswift force-pushed the decouple-translation-units branch from a15aa52 to eca9767 Compare June 2, 2019 15:15
@promag
Copy link
Contributor

promag commented Jun 2, 2019

I think this is great even if incomplete (considering we are in the begin of 0.19). Say goodbye to some fake circular dependencies.

utACK eca9767.

@fanquake
Copy link
Member

fanquake commented Jun 3, 2019

utACK eca9767

If there's a way to automate away this checking (which I think @dongcarl is alluding too), that'd be great.

I probably see a slight speedup during compiling. A few iterations of make clean; time make -j6

master (c7cfd20)

real	0m20.960s
real	0m20.761s
real	0m20.580s
real	0m21.375s
real	0m20.287s

This PR (eca9767):

real	0m20.914s
real	0m20.643s
real	0m20.321s
real	0m20.049s
real	0m19.920s

@maflcko
Copy link
Member

maflcko commented Jun 5, 2019

@fanquake It seems you are using ccache?

@maflcko
Copy link
Member

maflcko commented Jun 5, 2019

utACK eca9767

Good to see some heavy unused includes such as net and validation go from wallet et al.

Show signature and timestamp

Signature:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

utACK eca97676737174ac6ff775c60e3798c69fb67f4a

Good to see some heavy unused includes such as net and validation go from wallet et al.
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p
pUjDHwv+Lr0cxXrLCdXoWTbCZqE+LNvbCr9skT123fqixJAynCioxlhRmRTG8h5H
grrJN6NcBx+7j62FdsD7i63gN43NB8v39E76n7srDx3PJhMjAnMY7eE3lSNahB8r
M883ppvD11FIDBHFt99lBSRjLssS0GvJkcQOPCDujwhQkTAEk3RIJlRZSkBJuW6e
SNFLazqgGwijf7ctnIWXjyEBXL/k2joz01iNi3ANrz+iIwlV13bRnxUbDromYIZo
GS3yTi/0q18ai5B3cvcniR331DE1XNv/9P937RXxkxvnItwPVkC2bOm46MHnW0jH
N/45QgVyVSzlOHlNoJ71cufllTnaUXYibfZq8vicTu9CUOqHyE3wnS8iW43KCx3z
rSmav/NNqTuUAlCL0Xcb/DpsSLPy9CW3oPUZqNF4G6s0LTfltNAHhtziQBhPeeje
aOxy+NUQzV7aa6O/O+6WT1zK8cdJYY7cdt8mjUjtTIYEyhARD2N2zen0HSlmbpiP
C3KdAu2x
=JgzO
-----END PGP SIGNATURE-----

Timestamp of file with hash 8038fe8e9c52a24ec081a494a241e5a2fe735738b384a4c2d3eb1250a80ba885 -

@maflcko
Copy link
Member

maflcko commented Jun 5, 2019

Unless there are objections, this will be merged within the next week or so.

@sdaftuar
Copy link
Member

sdaftuar commented Jun 5, 2019

Unless there are objections, this will be merged within the next week or so.

Not an objection, but I do think that in general we should consider whether any of the conflicting PRs should have priority over pure refactor PRs like this. (I don't have an opinion myself, as I have not reviewed any of the PRs that conflict to see how important they are or how close they are to being merged.)

@maflcko
Copy link
Member

maflcko commented Jun 5, 2019

I did check them and they are all WIP, test-only or refactoring themselves.

@maflcko
Copy link
Member

maflcko commented Jun 6, 2019

Memory usage before
File name RSS (kB)
addrdb.cpp 339432
addrman.cpp 308212
arith_uint256.cpp 72260
banman.cpp 268376
base58.cpp 96548
bech32.cpp 69608
blockencodings.cpp 485452
blockfilter.cpp 179224
bloom.cpp 163444
chain.cpp 185280
chainparamsbase.cpp 235344
chainparams.cpp 417012
clientversion.cpp 87868
coins.cpp 137128
compat/glibc_sanity.cpp 25712
compat/glibcxx_sanity.cpp 68404
compat/strnlen.cpp 17112
compressor.cpp 138056
consensus/merkle.cpp 101224
consensus/tx_check.cpp 119508
consensus/tx_verify.cpp 208472
core_read.cpp 413892
core_write.cpp 375424
crypto/aes.cpp 36584
crypto/chacha20.cpp 32984
crypto/hkdf_sha256_32.cpp 47640
crypto/hmac_sha256.cpp 48616
crypto/hmac_sha512.cpp 27264
crypto/poly1305.cpp 31088
crypto/ripemd160.cpp 66860
crypto/sha1.cpp 48756
crypto/sha256_avx2.cpp 370964
crypto/sha256.cpp 129324
crypto/sha256_shani.cpp 118748
crypto/sha256_sse41.cpp 380744
crypto/sha256_sse4.cpp 25328
crypto/sha512.cpp 57012
crypto/siphash.cpp 58372
dbwrapper.cpp 302036
flatfile.cpp 255008
fs.cpp 155368
hash.cpp 81216
httprpc.cpp 419268
httpserver.cpp 344028
index/base.cpp 336248
index/blockfilterindex.cpp 361868
index/txindex.cpp 471132
init.cpp 924328
interfaces/chain.cpp 520804
interfaces/handler.cpp 215672
interfaces/node.cpp 619612
interfaces/wallet.cpp 845216
key.cpp 122092
key_io.cpp 228028
keystore.cpp 441392
leveldb/db/builder.cc 80432
leveldb/db/c.cc 69276
leveldb/db/dbformat.cc 62416
leveldb/db/db_impl.cc 176980
leveldb/db/db_iter.cc 82104
leveldb/db/dumpfile.cc 96772
leveldb/db/filename.cc 69704
leveldb/db/log_reader.cc 62776
leveldb/db/log_writer.cc 60488
leveldb/db/memtable.cc 68064
leveldb/db/repair.cc 140544
leveldb/db/table_cache.cc 63348
leveldb/db/version_edit.cc 100996
leveldb/db/version_set.cc 176228
leveldb/db/write_batch.cc 64000
leveldb/helpers/memenv/memenv.cc 104628
leveldb/port/port_posix.cc 55404
leveldb/port/port_posix_sse.cc 58788
leveldb/table/block_builder.cc 72256
leveldb/table/block.cc 74708
leveldb/table/filter_block.cc 72000
leveldb/table/format.cc 62508
leveldb/table/iterator.cc 49556
leveldb/table/merger.cc 54980
leveldb/table/table_builder.cc 71380
leveldb/table/table.cc 67104
leveldb/table/two_level_iterator.cc 66664
leveldb/util/arena.cc 62708
leveldb/util/bloom.cc 50956
leveldb/util/cache.cc 61448
leveldb/util/coding.cc 57616
leveldb/util/comparator.cc 60948
leveldb/util/crc32c.cc 57148
leveldb/util/env.cc 56380
leveldb/util/env_posix.cc 110268
leveldb/util/filter_policy.cc 46772
leveldb/util/hash.cc 55120
leveldb/util/histogram.cc 64004
leveldb/util/logging.cc 61076
leveldb/util/options.cc 50752
leveldb/util/status.cc 57752
lib/univalue.cpp 2712
lib/univalue_get.cpp 2644
lib/univalue_read.cpp 2692
lib/univalue_write.cpp 2700
logging.cpp 188492
merkleblock.cpp 123228
miner.cpp 545048
netaddress.cpp 131020
netbase.cpp 303412
net.cpp 641752
net_processing.cpp 903684
node/coin.cpp 359000
node/psbt.cpp 229924
node/transaction.cpp 501876
noui.cpp 323392
outputtype.cpp 323616
policy/feerate.cpp 96472
policy/fees.cpp 521436
policy/policy.cpp 281476
policy/rbf.cpp 330760
policy/settings.cpp 126552
pow.cpp 173568
primitives/block.cpp 118776
primitives/transaction.cpp 151108
protocol.cpp 252616
psbt.cpp 323128
-pthread 992596
pubkey.cpp 86164
random.cpp 210588
rest.cpp 553628
rpc/blockchain.cpp 847204
rpc/client.cpp 280928
rpc/mining.cpp 676556
rpc/misc.cpp 509676
rpc/net.cpp 470636
rpc/protocol.cpp 279744
rpc/rawtransaction.cpp 840376
rpc/rawtransaction_util.cpp 449240
rpc/server.cpp 538228
rpc/util.cpp 441840
scheduler.cpp 363208
script/bitcoinconsensus.cpp 145580
script/descriptor.cpp 488564
script/interpreter.cpp 210904
script/ismine.cpp 318740
script/script.cpp 100584
script/script_error.cpp 24064
script/sigcache.cpp 418992
script/sign.cpp 307888
script/standard.cpp 333964
shutdown.cpp 33240
src/secp256k1.c 15296
support/cleanse.cpp 25672
support/lockedpool.cpp 124324
sync.cpp 162008
test/addrman_tests.cpp 652328
test/allocator_tests.cpp 553304
test/amount_tests.cpp 551544
test/arith_uint256_tests.cpp 692628
test/base32_tests.cpp 547868
test/base58_tests.cpp 537788
test/base64_tests.cpp 547844
test/bech32_tests.cpp 536752
test/bip32_tests.cpp 559484
test/blockchain_tests.cpp 539524
test/blockencodings_tests.cpp 647392
test/blockfilter_index_tests.cpp 644636
test/blockfilter_tests.cpp 595292
test/bloom_tests.cpp 672124
test/bswap_tests.cpp 548016
test/checkqueue_tests.cpp 668592
test/coins_tests.cpp 684284
test/compress_tests.cpp 538112
test/crypto_tests.cpp 641656
test/cuckoocache_tests.cpp 569404
test/dbwrapper_tests.cpp 571232
test/denialofservice_tests.cpp 677568
test/descriptor_tests.cpp 686608
test/flatfile_tests.cpp 554992
test/fs_tests.cpp 537424
test/getarg_tests.cpp 635464
test/hash_tests.cpp 554424
test/key_io_tests.cpp 596568
test/key_tests.cpp 597832
test/limitedmap_tests.cpp 536476
test/main.cpp 142840
test/mempool_tests.cpp 648792
test/merkleblock_tests.cpp 543556
test/merkle_tests.cpp 536332
test/miner_tests.cpp 683808
test/multisig_tests.cpp 587852
test/netbase_tests.cpp 624632
test/net_tests.cpp 632696
test/pmt_tests.cpp 559956
test/policyestimator_tests.cpp 563212
test/pow_tests.cpp 560040
test/prevector_tests.cpp 546660
test/raii_event_tests.cpp 546828
test/random_tests.cpp 584428
test/reverselock_tests.cpp 536732
test/rpc_tests.cpp 808252
test/sanity_tests.cpp 547536
test/scheduler_tests.cpp 562272
test/scriptnum_tests.cpp 539224
test/script_p2sh_tests.cpp 644396
test/script_standard_tests.cpp 728936
test/script_tests.cpp 1422668
test/serialize_tests.cpp 651156
test/setup_common.cpp 625408
test/sighash_tests.cpp 598748
test/sigopcount_tests.cpp 589084
test/skiplist_tests.cpp 559568
test/streams_tests.cpp 566088
test/sync_tests.cpp 536888
test/timedata_tests.cpp 538180
test/torcontrol_tests.cpp 585648
test/transaction_tests.cpp 834816
test/txindex_tests.cpp 574132
test/txvalidationcache_tests.cpp 639960
test/txvalidation_tests.cpp 546328
test/uint256_tests.cpp 593688
test/util_tests.cpp 897316
test/util_threadnames_tests.cpp 536448
test/validation_block_tests.cpp 594424
test/validation_tests.cpp 618512
test/versionbits_tests.cpp 575776
threadinterrupt.cpp 79676
timedata.cpp 276120
torcontrol.cpp 625500
txdb.cpp 485644
txmempool.cpp 653824
ui_interface.cpp 634304
uint256.cpp 66424
util/bip32.cpp 90048
util/bytevectorhash.cpp 54548
util/error.cpp 229948
util/fees.cpp 120932
util/moneystr.cpp 108296
util/rbf.cpp 90536
util/strencodings.cpp 106212
util/strencodings.cpp 2532
util/system.cpp 335012
util/threadnames.cpp 73768
util/time.cpp 446380
util/url.cpp 51316
util/validation.cpp 113864
validation.cpp 971296
validationinterface.cpp 851868
versionbits.cpp 192660
versionbitsinfo.cpp 54724
wallet/coincontrol.cpp 479884
wallet/coinselection.cpp 329532
wallet/crypter.cpp 451652
wallet/db.cpp 511924
wallet/feebumper.cpp 612368
wallet/fees.cpp 485752
wallet/init.cpp 637808
wallet/load.cpp 560320
wallet/psbtwallet.cpp 475836
wallet/rpcdump.cpp 861276
wallet/rpcwallet.cpp 1332508
wallet/test/coinselector_tests.cpp 876888
wallet/test/db_tests.cpp 564976
wallet/test/init_test_fixture.cpp 545212
wallet/test/init_tests.cpp 674808
wallet/test/psbt_wallet_tests.cpp 855056
wallet/test/wallet_crypto_tests.cpp 585340
wallet/test/wallet_test_fixture.cpp 686740
wallet/test/wallet_tests.cpp 875692
wallet/wallet.cpp 1284744
wallet/walletdb.cpp 764024
wallet/walletutil.cpp 264060
warnings.cpp 224448
Memory usage after
File name RSS (kB)
addrdb.cpp 339432
addrman.cpp 300868
arith_uint256.cpp 62044
banman.cpp 268376
base58.cpp 96548
bech32.cpp 69608
blockencodings.cpp 485452
blockfilter.cpp 179224
bloom.cpp 163444
chain.cpp 185280
chainparamsbase.cpp 235344
chainparams.cpp 417012
clientversion.cpp 87612
coins.cpp 137128
compat/glibc_sanity.cpp 25712
compat/glibcxx_sanity.cpp 68404
compat/strnlen.cpp 17112
compressor.cpp 138056
consensus/merkle.cpp 101216
consensus/tx_check.cpp 119508
consensus/tx_verify.cpp 208472
core_read.cpp 331212
core_write.cpp 375372
crypto/aes.cpp 36304
crypto/chacha20.cpp 32984
crypto/hkdf_sha256_32.cpp 47640
crypto/hmac_sha256.cpp 48616
crypto/hmac_sha512.cpp 27264
crypto/poly1305.cpp 31088
crypto/ripemd160.cpp 66860
crypto/sha1.cpp 48756
crypto/sha256_avx2.cpp 350716
crypto/sha256.cpp 129324
crypto/sha256_shani.cpp 118748
crypto/sha256_sse41.cpp 360612
crypto/sha256_sse4.cpp 25328
crypto/sha512.cpp 57012
crypto/siphash.cpp 58372
dbwrapper.cpp 302036
flatfile.cpp 255008
fs.cpp 155368
hash.cpp 81216
httprpc.cpp 419240
httpserver.cpp 344028
index/base.cpp 336248
index/blockfilterindex.cpp 361868
index/txindex.cpp 471132
init.cpp 924352
interfaces/chain.cpp 520804
interfaces/handler.cpp 215672
interfaces/node.cpp 533112
interfaces/wallet.cpp 708204
key.cpp 121412
key_io.cpp 228028
keystore.cpp 441392
leveldb/db/builder.cc 80432
leveldb/db/c.cc 69276
leveldb/db/dbformat.cc 62416
leveldb/db/db_impl.cc 176980
leveldb/db/db_iter.cc 82104
leveldb/db/dumpfile.cc 96772
leveldb/db/filename.cc 69704
leveldb/db/log_reader.cc 62776
leveldb/db/log_writer.cc 60488
leveldb/db/memtable.cc 68064
leveldb/db/repair.cc 140544
leveldb/db/table_cache.cc 63348
leveldb/db/version_edit.cc 100996
leveldb/db/version_set.cc 176228
leveldb/db/write_batch.cc 64000
leveldb/helpers/memenv/memenv.cc 104628
leveldb/port/port_posix.cc 55404
leveldb/port/port_posix_sse.cc 58788
leveldb/table/block_builder.cc 72256
leveldb/table/block.cc 74708
leveldb/table/filter_block.cc 72000
leveldb/table/format.cc 62508
leveldb/table/iterator.cc 49556
leveldb/table/merger.cc 54980
leveldb/table/table_builder.cc 71380
leveldb/table/table.cc 67104
leveldb/table/two_level_iterator.cc 66664
leveldb/util/arena.cc 62708
leveldb/util/bloom.cc 50956
leveldb/util/cache.cc 61448
leveldb/util/coding.cc 57616
leveldb/util/comparator.cc 60948
leveldb/util/crc32c.cc 57148
leveldb/util/env.cc 56380
leveldb/util/env_posix.cc 110268
leveldb/util/filter_policy.cc 46772
leveldb/util/hash.cc 55120
leveldb/util/histogram.cc 64004
leveldb/util/logging.cc 61076
leveldb/util/options.cc 50752
leveldb/util/status.cc 57752
lib/univalue.cpp 144548
lib/univalue_get.cpp 79124
lib/univalue_read.cpp 123936
lib/univalue_write.cpp 83164
logging.cpp 188492
merkleblock.cpp 123220
miner.cpp 521796
netaddress.cpp 131020
netbase.cpp 302472
net.cpp 641752
net_processing.cpp 903388
node/coin.cpp 359000
node/psbt.cpp 229924
node/transaction.cpp 501876
noui.cpp 323392
outputtype.cpp 323616
policy/feerate.cpp 96472
policy/fees.cpp 510808
policy/policy.cpp 160232
policy/rbf.cpp 330760
policy/settings.cpp 126552
pow.cpp 173568
primitives/block.cpp 118412
primitives/transaction.cpp 151108
protocol.cpp 252616
psbt.cpp 303900
-pthread 979916
pubkey.cpp 86164
random.cpp 210588
rest.cpp 553628
rpc/blockchain.cpp 845848
rpc/client.cpp 280928
rpc/mining.cpp 676556
rpc/misc.cpp 515044
rpc/net.cpp 468504
rpc/protocol.cpp 279596
rpc/rawtransaction.cpp 839388
rpc/rawtransaction_util.cpp 447992
rpc/server.cpp 537812
rpc/util.cpp 441840
scheduler.cpp 363208
script/bitcoinconsensus.cpp 145580
script/descriptor.cpp 488564
script/interpreter.cpp 210904
script/ismine.cpp 318740
script/script.cpp 97876
script/script_error.cpp 24064
script/sigcache.cpp 418276
script/sign.cpp 307888
script/standard.cpp 247636
shutdown.cpp 33240
src/secp256k1.c 90624
support/cleanse.cpp 25672
support/lockedpool.cpp 124324
sync.cpp 162008
test/addrman_tests.cpp 652328
test/allocator_tests.cpp 553304
test/amount_tests.cpp 551544
test/arith_uint256_tests.cpp 692628
test/base32_tests.cpp 547868
test/base58_tests.cpp 537788
test/base64_tests.cpp 547844
test/bech32_tests.cpp 536752
test/bip32_tests.cpp 559484
test/blockchain_tests.cpp 539524
test/blockencodings_tests.cpp 647392
test/blockfilter_index_tests.cpp 644636
test/blockfilter_tests.cpp 595292
test/bloom_tests.cpp 672124
test/bswap_tests.cpp 548016
test/checkqueue_tests.cpp 668592
test/coins_tests.cpp 674912
test/compress_tests.cpp 538112
test/crypto_tests.cpp 641656
test/cuckoocache_tests.cpp 569404
test/dbwrapper_tests.cpp 571232
test/denialofservice_tests.cpp 677660
test/descriptor_tests.cpp 686608
test/flatfile_tests.cpp 554992
test/fs_tests.cpp 537424
test/getarg_tests.cpp 635464
test/hash_tests.cpp 554424
test/key_io_tests.cpp 596568
test/key_tests.cpp 597832
test/limitedmap_tests.cpp 536476
test/main.cpp 142840
test/mempool_tests.cpp 648792
test/merkleblock_tests.cpp 543556
test/merkle_tests.cpp 536332
test/miner_tests.cpp 683644
test/multisig_tests.cpp 586904
test/netbase_tests.cpp 624632
test/net_tests.cpp 632696
test/pmt_tests.cpp 559956
test/policyestimator_tests.cpp 563212
test/pow_tests.cpp 560040
test/prevector_tests.cpp 546660
test/raii_event_tests.cpp 546828
test/random_tests.cpp 584428
test/reverselock_tests.cpp 536732
test/rpc_tests.cpp 782644
test/sanity_tests.cpp 547536
test/scheduler_tests.cpp 562272
test/scriptnum_tests.cpp 539224
test/script_p2sh_tests.cpp 644272
test/script_standard_tests.cpp 728936
test/script_tests.cpp 1422668
test/serialize_tests.cpp 651156
test/setup_common.cpp 625256
test/sighash_tests.cpp 598748
test/sigopcount_tests.cpp 589084
test/skiplist_tests.cpp 559568
test/streams_tests.cpp 566088
test/sync_tests.cpp 536888
test/timedata_tests.cpp 538180
test/torcontrol_tests.cpp 585644
test/transaction_tests.cpp 834816
test/txindex_tests.cpp 568128
test/txvalidationcache_tests.cpp 640032
test/txvalidation_tests.cpp 546328
test/uint256_tests.cpp 593688
test/util_tests.cpp 897316
test/util_threadnames_tests.cpp 536448
test/validation_block_tests.cpp 594424
test/validation_tests.cpp 618512
test/versionbits_tests.cpp 575776
threadinterrupt.cpp 79676
timedata.cpp 275988
torcontrol.cpp 625500
txdb.cpp 480384
txmempool.cpp 649156
ui_interface.cpp 493492
uint256.cpp 66424
util/bip32.cpp 90048
util/bytevectorhash.cpp 54548
util/error.cpp 229948
util/fees.cpp 120932
util/moneystr.cpp 108296
util/rbf.cpp 90536
util/strencodings.cpp 106212
util/strencodings.cpp 2532
util/system.cpp 334932
util/threadnames.cpp 73768
util/time.cpp 446380
util/url.cpp 51316
util/validation.cpp 113864
validation.cpp 971080
validationinterface.cpp 840984
versionbits.cpp 192660
versionbitsinfo.cpp 54724
wallet/coincontrol.cpp 479884
wallet/coinselection.cpp 329532
wallet/crypter.cpp 451652
wallet/db.cpp 491732
wallet/feebumper.cpp 506332
wallet/fees.cpp 467316
wallet/init.cpp 528692
wallet/load.cpp 560320
wallet/psbtwallet.cpp 475836
wallet/rpcdump.cpp 857432
wallet/rpcwallet.cpp 1297072
wallet/test/coinselector_tests.cpp 876888
wallet/test/db_tests.cpp 564976
wallet/test/init_test_fixture.cpp 545212
wallet/test/init_tests.cpp 562384
wallet/test/psbt_wallet_tests.cpp 854972
wallet/test/wallet_crypto_tests.cpp 585340
wallet/test/wallet_test_fixture.cpp 680460
wallet/test/wallet_tests.cpp 875692
wallet/wallet.cpp 1162820
wallet/walletdb.cpp 764024
wallet/walletutil.cpp 264060
warnings.cpp 224348
Diff
diff --git a/tmp/a b/tmp/b
index 71c592b9a5..d3402ea013 100644
--- a/tmp/a
+++ b/tmp/b
@@ -2,2 +2,2 @@
-| addrman.cpp | 308212 |
-| arith_uint256.cpp | 72260 |
+| addrman.cpp | 300868 |
+| arith_uint256.cpp | 62044 |
@@ -13 +13 @@
-| clientversion.cpp | 87868 |
+| clientversion.cpp | 87612 |
@@ -19 +19 @@
-| consensus/merkle.cpp | 101224 |
+| consensus/merkle.cpp | 101216 |
@@ -22,3 +22,3 @@
-| core_read.cpp | 413892 |
-| core_write.cpp | 375424 |
-| crypto/aes.cpp | 36584 |
+| core_read.cpp | 331212 |
+| core_write.cpp | 375372 |
+| crypto/aes.cpp | 36304 |
@@ -32 +32 @@
-| crypto/sha256_avx2.cpp | 370964 |
+| crypto/sha256_avx2.cpp | 350716 |
@@ -35 +35 @@
-| crypto/sha256_sse41.cpp | 380744 |
+| crypto/sha256_sse41.cpp | 360612 |
@@ -43 +43 @@
-| httprpc.cpp | 419268 |
+| httprpc.cpp | 419240 |
@@ -48 +48 @@
-| init.cpp | 924328 |
+| init.cpp | 924352 |
@@ -51,3 +51,3 @@
-| interfaces/node.cpp | 619612 |
-| interfaces/wallet.cpp | 845216 |
-| key.cpp | 122092 |
+| interfaces/node.cpp | 533112 |
+| interfaces/wallet.cpp | 708204 |
+| key.cpp | 121412 |
@@ -97,4 +97,4 @@
-| lib/univalue.cpp | 2712 |
-| lib/univalue_get.cpp | 2644 |
-| lib/univalue_read.cpp | 2692 |
-| lib/univalue_write.cpp | 2700 |
+| lib/univalue.cpp | 144548 |
+| lib/univalue_get.cpp | 79124 |
+| lib/univalue_read.cpp | 123936 |
+| lib/univalue_write.cpp | 83164 |
@@ -102,2 +102,2 @@
-| merkleblock.cpp | 123228 |
-| miner.cpp | 545048 |
+| merkleblock.cpp | 123220 |
+| miner.cpp | 521796 |
@@ -105 +105 @@
-| netbase.cpp | 303412 |
+| netbase.cpp | 302472 |
@@ -107 +107 @@
-| net_processing.cpp | 903684 |
+| net_processing.cpp | 903388 |
@@ -114,2 +114,2 @@
-| policy/fees.cpp | 521436 |
-| policy/policy.cpp | 281476 |
+| policy/fees.cpp | 510808 |
+| policy/policy.cpp | 160232 |
@@ -119 +119 @@
-| primitives/block.cpp | 118776 |
+| primitives/block.cpp | 118412 |
@@ -122,2 +122,2 @@
-| psbt.cpp | 323128 |
-| -pthread | 992596 |
+| psbt.cpp | 303900 |
+| -pthread | 979916 |
@@ -127 +127 @@
-| rpc/blockchain.cpp | 847204 |
+| rpc/blockchain.cpp | 845848 |
@@ -130,6 +130,6 @@
-| rpc/misc.cpp | 509676 |
-| rpc/net.cpp | 470636 |
-| rpc/protocol.cpp | 279744 |
-| rpc/rawtransaction.cpp | 840376 |
-| rpc/rawtransaction_util.cpp | 449240 |
-| rpc/server.cpp | 538228 |
+| rpc/misc.cpp | 515044 |
+| rpc/net.cpp | 468504 |
+| rpc/protocol.cpp | 279596 |
+| rpc/rawtransaction.cpp | 839388 |
+| rpc/rawtransaction_util.cpp | 447992 |
+| rpc/server.cpp | 537812 |
@@ -142 +142 @@
-| script/script.cpp | 100584 |
+| script/script.cpp | 97876 |
@@ -144 +144 @@
-| script/sigcache.cpp | 418992 |
+| script/sigcache.cpp | 418276 |
@@ -146 +146 @@
-| script/standard.cpp | 333964 |
+| script/standard.cpp | 247636 |
@@ -148 +148 @@
-| src/secp256k1.c | 15296 |
+| src/secp256k1.c | 90624 |
@@ -168 +168 @@
-| test/coins_tests.cpp | 684284 |
+| test/coins_tests.cpp | 674912 |
@@ -173 +173 @@
-| test/denialofservice_tests.cpp | 677568 |
+| test/denialofservice_tests.cpp | 677660 |
@@ -186,2 +186,2 @@
-| test/miner_tests.cpp | 683808 |
-| test/multisig_tests.cpp | 587852 |
+| test/miner_tests.cpp | 683644 |
+| test/multisig_tests.cpp | 586904 |
@@ -197 +197 @@
-| test/rpc_tests.cpp | 808252 |
+| test/rpc_tests.cpp | 782644 |
@@ -201 +201 @@
-| test/script_p2sh_tests.cpp | 644396 |
+| test/script_p2sh_tests.cpp | 644272 |
@@ -205 +205 @@
-| test/setup_common.cpp | 625408 |
+| test/setup_common.cpp | 625256 |
@@ -212 +212 @@
-| test/torcontrol_tests.cpp | 585648 |
+| test/torcontrol_tests.cpp | 585644 |
@@ -214,2 +214,2 @@
-| test/txindex_tests.cpp | 574132 |
-| test/txvalidationcache_tests.cpp | 639960 |
+| test/txindex_tests.cpp | 568128 |
+| test/txvalidationcache_tests.cpp | 640032 |
@@ -224 +224 @@
-| timedata.cpp | 276120 |
+| timedata.cpp | 275988 |
@@ -226,3 +226,3 @@
-| txdb.cpp | 485644 |
-| txmempool.cpp | 653824 |
-| ui_interface.cpp | 634304 |
+| txdb.cpp | 480384 |
+| txmempool.cpp | 649156 |
+| ui_interface.cpp | 493492 |
@@ -238 +238 @@
-| util/system.cpp | 335012 |
+| util/system.cpp | 334932 |
@@ -243,2 +243,2 @@
-| validation.cpp | 971296 |
-| validationinterface.cpp | 851868 |
+| validation.cpp | 971080 |
+| validationinterface.cpp | 840984 |
@@ -250,4 +250,4 @@
-| wallet/db.cpp | 511924 |
-| wallet/feebumper.cpp | 612368 |
-| wallet/fees.cpp | 485752 |
-| wallet/init.cpp | 637808 |
+| wallet/db.cpp | 491732 |
+| wallet/feebumper.cpp | 506332 |
+| wallet/fees.cpp | 467316 |
+| wallet/init.cpp | 528692 |
@@ -256,2 +256,2 @@
-| wallet/rpcdump.cpp | 861276 |
-| wallet/rpcwallet.cpp | 1332508 |
+| wallet/rpcdump.cpp | 857432 |
+| wallet/rpcwallet.cpp | 1297072 |
@@ -261,2 +261,2 @@
-| wallet/test/init_tests.cpp | 674808 |
-| wallet/test/psbt_wallet_tests.cpp | 855056 |
+| wallet/test/init_tests.cpp | 562384 |
+| wallet/test/psbt_wallet_tests.cpp | 854972 |
@@ -264 +264 @@
-| wallet/test/wallet_test_fixture.cpp | 686740 |
+| wallet/test/wallet_test_fixture.cpp | 680460 |
@@ -266 +266 @@
-| wallet/wallet.cpp | 1284744 |
+| wallet/wallet.cpp | 1162820 |
@@ -269 +269 @@
-| warnings.cpp | 224448 |
+| warnings.cpp | 224348 |

@maflcko
Copy link
Member

maflcko commented Jun 6, 2019

Thanks for working on this. See related issues:

@maflcko maflcko merged commit 67f4e9c into bitcoin:master Jun 6, 2019
maflcko pushed a commit that referenced this pull request Jun 6, 2019
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jun 6, 2019
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
@practicalswift
Copy link
Contributor Author

@MarcoFalke Thanks for quantifying the results. I want to replicate your numbers: how did you perform the measurements - using time or something else? :-)

deadalnix pushed a commit to Bitcoin-ABC/bitcoin-abc that referenced this pull request Jun 2, 2020
…uding unused dependencies

Summary:
bitcoin/bitcoin@eca9767

---

Backport of Core [[bitcoin/bitcoin#16129 | PR16129]]

Test Plan:
  ninja
  ninja check-all
  cd ..
  ./test/lint/lint-circular-dependencies.sh

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D6330
deadalnix pushed a commit to Bitcoin-ABC/bitcoin-abc that referenced this pull request Jun 2, 2020
Summary:
bitcoin/bitcoin@67f4e9c

---

Concludes backport of Core [[bitcoin/bitcoin#16129 | PR16129]]

Test Plan:
  ninja check

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D6331
@practicalswift practicalswift deleted the decouple-translation-units branch April 10, 2021 19:38
Munkybooty pushed a commit to Munkybooty/dash that referenced this pull request Oct 20, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Oct 21, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 6, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 6, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 11, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 11, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 11, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 11, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 13, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 13, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 13, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 13, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 14, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 18, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 19, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 19, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 19, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 20, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 20, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 20, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 21, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 24, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 25, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Dec 27, 2021
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13
PastaPastaPasta pushed a commit to dashpay/dash that referenced this pull request Jan 3, 2022
67f4e9c Include core_io.h from core_read.cpp (practicalswift)
eca9767 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 16, 2022
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.

7 participants