Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

try to reduce the size of the library #173

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

try to reduce the size of the library #173

wants to merge 9 commits into from

Conversation

tomjnixon
Copy link
Member

@tomjnixon tomjnixon commented Nov 18, 2022

The auto base changes are not done (needs tidying and the comments need updating), but here's the impact on the size (before and after stripping) of libadm.a in a MinSizeRel build:

6ea2031 upgrade vcpkg
full:  6912176
strip: 2637822
1a1680d auto base: use types rather than constexprs to avoid making symbols
full:  6874780
strip: 2624334
5521ff4 auto base: turn HasParameters into an alias
full:  6030010
strip: 2328462
3a9d121 auto base: move tags out of type
full:  5725192
strip: 2223934
8986e43 auto base: eliminate virtual inheritance
full:  4270758
strip: 1705742
79554cc auto base: simplify Combine parameters
full:  4268124
strip: 1705318
03e4114 auto base: implement find_item manually
full:  4261820
strip: 1703270
d9fe62b move range validators out of header
full:  4065912
strip: 1637390
6e39c40 auto base: avoid using CombineRaw if possible
full:  4045350
strip: 1628566
f77fbc4 don't use boost formmat in errors
full:  3925706
strip: 1582126
b5eedff don't use boost::format for timecode parsing
full:  3808490
strip: 1537886

@tomjnixon tomjnixon force-pushed the smaller branch 7 times, most recently from 52e749c to 2d36ce3 Compare November 21, 2022 13:58
- make Combine corecursive with HasParameters so that the tail stays
  encoded as a list of parameter classes, rather than the full
  inheritance structure

- avoid using CombineRaw by adding more combination classes that inherit
  from two bases

- avoid virtual base in variant parameter

- add tests for variant parameters

- move more of the details out of the main header

- move tag types out of template parameters

- turn flags into types to cut down on symbols
@codecov-commenter
Copy link

codecov-commenter commented Nov 22, 2022

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 86.20690% with 8 lines in your changes missing coverage. Please review.

Project coverage is 89.42%. Comparing base (6ea2031) to head (b8ba39e).
Report is 23 commits behind head on master.

Files with missing lines Patch % Lines
include/adm/detail/named_type_validators.hpp 61.90% 8 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #173      +/-   ##
==========================================
- Coverage   89.45%   89.42%   -0.04%     
==========================================
  Files         125      125              
  Lines        5692     5703      +11     
==========================================
+ Hits         5092     5100       +8     
- Misses        600      603       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants