bigwheels
bigwheels copied to clipboard
[knob-framework] Knob Framework V2
Adding a newer version of the knob framework and a demo that utilizes it.
Added in this PR:
-
ApplicationSettings.useKnobManagerNew
: A flag for applications to use the new knob framework on top of the old one -
OptionsNew
: An intermediate format along with some supporting classes (JsonConverterNew
andCommandLineParserNew
) that are intended to replaceCliOptions
andCommandLineParser
-
KnobManagerNew
andKnobNew
-
knob_demo/
: Example project that features the newer knob framework - Minor changes to
string_util
, adding Split function and removing whitespace padding from compound strings produced byToString()
functions
Some notable features of the newer version of knob framework:
- Decoupled knob function and display
- Runtime adjustable knob parameters (e.g. min, max, available subset of options)
- Runtime Load/Save support with JSON config files
- Can now identify if non-knob options are specified on the command line and terminate the application early
Future plans:
- Switch all projects and benchmarks to use the new knob framework.
- Change
ppx::Application
to use only the new knob framework andmStandardOptsNew
- Remove code for old knob framework and
CommandLineParser
+CliOptions
- Rename the replacements to remove "New" suffix