dash/test/lint
Konstantin Akimov ba97f49f2f
refactor: re-order headers and forward declarations to improve compile time (#5693)
## Issue being fixed or feature implemented
Some headers include other heavy headers, such as `logging.h`,
`tinyformat.h`, `iostream`. These headers are heavy and increase
compilation time on scale of whole project drastically because can be
used in many other headers.

## What was done?
Moved many heavy includes from headers to cpp files to optimize
compilation time.
In some places  added forward declarations if it is reasonable.

As side effect removed 2 circular dependencies:
```
"llmq/debug -> llmq/dkgsessionhandler -> llmq/debug"
"llmq/debug -> llmq/dkgsessionhandler -> llmq/dkgsession -> llmq/debug"
```


## How Has This Been Tested?
Run build 2 times before refactoring and after refactoring: `make clean
&& sleep 10s; time make -j18`

Before refactoring:
```
real    5m37,826s
user    77m12,075s
sys     6m20,547s

real    5m32,626s
user    76m51,143s
sys     6m24,511s
```

After refactoring:
```
real    5m18,509s
user    73m32,133s
sys     6m21,590s

real    5m14,466s
user    73m20,942s
sys     6m17,868s
```

~5% of improvement for compilation time. That's not huge, but that's
worth to get merged

There're several more refactorings TODO but better to do them later by
backports:
 - bitcoin/bitcoin#27636
 - bitcoin/bitcoin#26286
 - bitcoin/bitcoin#27238
 - and maybe this one: bitcoin/bitcoin#28200


## Breaking Changes
N/A

## Checklist:
- [x] 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
2023-11-17 10:04:18 -06:00
..
check-doc.py merge bitcoin#19671: Remove -zapwallettxes 2022-05-13 18:06:06 +05:30
check-rpc-mappings.py refactor: remove leftover rpc prefix from filename (evo, quorum) 2022-10-21 21:51:45 +05:30
commit-script-check.sh Merge bitcoin/bitcoin#23543: test: Prevent non-compatible sed binary for scripted-diffs 2022-04-11 09:46:40 -07:00
extended-lint-all.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
extended-lint-cppcheck.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
git-subtree-check.sh Merge #17329: linter: Strip trailing / in path for git-subtree-check 2021-07-13 20:43:16 -05:00
lint-all.sh Optimize linters (#4637) 2021-12-30 19:34:36 +03:00
lint-assertions.sh partial bitcoin#19277: Add Assert identity function' 2022-05-13 18:06:06 +05:30
lint-circular-dependencies.sh refactor: re-order headers and forward declarations to improve compile time (#5693) 2023-11-17 10:04:18 -06:00
lint-cppcheck-dash.sh refactor: remove some now unneeded cppcheck suppressions (#5589) 2023-09-29 07:53:22 -05:00
lint-filenames.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-format-strings.py Merge #16688: log: Add validation interface logging 2023-05-24 12:43:57 -05:00
lint-format-strings.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
lint-git-commit-check.sh Fix lint-git-commit-check.sh (#4267) 2021-07-19 12:32:12 +03:00
lint-include-guards.sh refactor: add gsl::not_null to get compile time / run time pointer guarantees (#5595) 2023-10-22 09:14:30 -05:00
lint-includes.sh Merge bitcoin/bitcoin#25803: refactor: Drop boost/algorithm/string/replace.hpp dependency 2023-10-31 08:40:25 -05:00
lint-locale-dependence.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
lint-logs.sh Merge #17260: Split some CWallet functions into new LegacyScriptPubKeyMan (#4938) 2022-08-08 11:05:21 -05:00
lint-python-dead-code.sh Merge #21096: Re-add dead code detection 2021-10-05 20:34:00 +03:00
lint-python-mutable-default-parameters.sh Merge #16726: tests: Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values 2023-04-04 12:45:27 -05:00
lint-python-utf8-encoding.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
lint-python.sh build: add exclusions to linting scripts and filters 2022-12-01 00:51:08 +05:30
lint-qt.sh Merge #13529: Use new Qt5 connect syntax 2021-08-23 12:12:31 -04:00
lint-rpc-help.sh Merge bitcoin#14726: Use RPCHelpMan for all RPCs (#4492) 2021-10-12 00:55:23 +03:00
lint-shebang.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
lint-shell-locale.sh build/depends: commit dashpay/bls-signatures@66ee820f to source tree as vendored (#5077) 2022-11-22 11:34:46 -06:00
lint-shell.sh Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
lint-spelling.ignore-words.txt Merge #18253: doc: Correct spelling errors in comments 2023-04-04 12:53:49 -05:00
lint-spelling.sh partial Merge bitcoin/bitcoin#22405: build: remove --enable-glibc-back-compat from Guix build 2023-03-26 16:50:26 -05:00
lint-submodule.sh Merge #18056: ci: Check for submodules 2021-07-13 21:17:15 -05:00
lint-tests.sh Merge #13510: Scripts and tools: Obsolete #!/bin/bash shebang 2020-12-18 12:55:45 -06:00
lint-whitespace.sh Merge #20937: guix: Make nsis reproducible by respecting SOURCE-DATE-EPOCH 2023-03-26 16:50:26 -05:00
README.md Merge #17176: ci: Cleanup macOS runs 2022-05-17 01:20:21 -04:00

This folder contains lint scripts.

check-doc.py

Check for missing documentation of command line options.

commit-script-check.sh

Verification of scripted diffs. Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems might require installing GNU tools, such as GNU sed.

git-subtree-check.sh

Run this script from the root of the repository to verify that a subtree matches the contents of the commit it claims to have been updated to.

To use, make sure that you have fetched the upstream repository branch in which the subtree is maintained:

Usage: git-subtree-check.sh DIR (COMMIT)

COMMIT may be omitted, in which case HEAD is used.

lint-all.sh

Calls other scripts with the lint- prefix.