Improve build time. Add a new header file holding trivial typedefs instead of using types.hpp#3008
Improve build time. Add a new header file holding trivial typedefs instead of using types.hpp#3008vasil-pashov wants to merge 1 commit intomasterfrom
Conversation
|
ArcticDB Code Review Summary - full content below in inline review comments. Issues: 1) Ill-formed nested namespace in entity/protobuf_mappings.hpp line 13 (namespace arcticdb::proto inside namespace arcticdb block - ill-formed C++17). 2) Commented-out fmt::formatter for StreamId in types-inl.hpp line 165 (will break fmt::format of StreamId for TUs using typedefs.hpp without types.hpp). 3) Duplicate field_proto declaration in entity/types_proto.hpp line 43. 4) Missing trailing newlines in 6 files. Positives: noexcept on move ctor, maybe_unused attribute, pragma once fix. Overall: sound approach, well-motivated. Fix bugs 1 and 2 before merge. |
053d1d1 to
bdc013a
Compare
|
line1 |
bdc013a to
db2a7cb
Compare
9acc20c to
cd0407c
Compare
According to ClangBuildAnalyzer types.hpp is one of the most included files in the codebase. It contains trivial typedefs such as timestap = uint64_t. These things cannot be fwd declared thus many files include this so that they can use the typedef of a POD. In order to improve the build time a new file holding only these simple typedefs is added. Also because of how types.hpp was used it leaked lots of namespaces which lead to compilation errors because of ambiguous namespaces. No functional changes are present in the PR only namespaces and includes are changed.
b8e86eb to
9832101
Compare
ArcticDB Code Review Summary
API & Compatibility
Memory & Safety
Correctness
Code Quality
Testing
Build & Dependencies
Security
PR Title & Description
Summary: Well-motivated build-time improvement. The one substantive concern is the deleted |
Reference Issues/PRs
What does this implement or fix?
According to ClangBuildAnalyzer
types.hppis one of the most included files in the codebase. It contains trivial typedefs such as timestap = uint64_t. These things cannot be fwd declared thus many files include this so that they can use the typedef of a POD. In order to improve the build time a new filetypedefs.hppholding only these simple typedefs is added. Also because of how types.hpp was used it leaked lots of namespaces which lead to compilation errors because of ambiguous namespaces. No functional changes are present in the PR only namespaces and includes are changed.Any other comments?
Checklist
Checklist for code changes...