bigwheels icon indicating copy to clipboard operation
bigwheels copied to clipboard

[knob-framework] Knob Framework V2

Open angela28chen opened this issue 1 year ago • 0 comments

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 and CommandLineParserNew) that are intended to replace CliOptions and CommandLineParser
  • KnobManagerNew and KnobNew
  • 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 by ToString() 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 and mStandardOptsNew
  • Remove code for old knob framework and CommandLineParser + CliOptions
  • Rename the replacements to remove "New" suffix

angela28chen avatar Feb 16 '24 19:02 angela28chen