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

[knob-framework] Knob Framework V2 #434

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

angela28chen
Copy link
Collaborator

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 angela28chen marked this pull request as draft February 16, 2024 19:58
@angela28chen angela28chen changed the title Knob Framework V2 [knob-framework] Knob Framework V2 Feb 16, 2024
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.

1 participant