I was thinking of adding a new verbose flag, and got the following error from s_all
flags.py: ran out of flags at verbose method
All flags in WiredTiger (except for one in logging) are 32 bits, which limits us to 32 different flag values. I can see a few options for fixing this, but none are particularly appealing:
1) Change all of our flags to be 64 bits.
2) Change just the verbose flags to be 64 bits.
3) Change how verbose is implemented to not use the standard flag checking mechanism.
|Extend all||Keeps flags usage consistent and simple||We expose flags fields via our public API, so we'd either need to change our API or have some horrible munging at that layer. A fairly invasive change. Will change some potentially size sensitive structures (eg: WT_ITEM)|
|Extend verbose||Minimal code changes||Means we'd have two sets of macros, and need to know the size of the flags being used to choose the right one. Need to extend scripting etc to support both flags sizes.|
|Change verbose||Would mean we can add as many verbose modes as we like.||Invasive code change, diverges from a standard approach and probably make comparisons more expensive/complex.|
- is related to
WT-3720 flags macros cast flags to unsigned values, hiding warnings.
- links to