From: Xuan-Son Nguyen Date: Sat, 13 Dec 2025 11:53:37 +0000 (+0100) Subject: arg: fix common_params_parse not accepting negated arg (#17991) X-Git-Tag: upstream/0.0.7446~60 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=4d5ae24c0ac79c4e360773bac58dd2c2a46b7f67;p=pkg%2Fggml%2Fsources%2Fllama.cpp arg: fix common_params_parse not accepting negated arg (#17991) --- diff --git a/common/arg.cpp b/common/arg.cpp index 19f22f88..bb2a6840 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -724,7 +724,7 @@ static void add_rpc_devices(const std::string & servers) { } } -bool common_params_parse(int argc, char ** argv, llama_example ex, std::map & out_map) { +bool common_params_to_map(int argc, char ** argv, llama_example ex, std::map & out_map) { common_params dummy_params; common_params_context ctx_arg = common_params_parser_init(dummy_params, ex, nullptr); @@ -733,6 +733,9 @@ bool common_params_parse(int argc, char ** argv, llama_example ex, std::map & out_map); +bool common_params_to_map(int argc, char ** argv, llama_example ex, std::map & out_map); // initialize argument parser context - used by test-arg-parser and preset common_params_context common_params_parser_init(common_params & params, llama_example ex, void(*print_usage)(int, char **) = nullptr); diff --git a/tests/test-arg-parser.cpp b/tests/test-arg-parser.cpp index 90750b20..468d325e 100644 --- a/tests/test-arg-parser.cpp +++ b/tests/test-arg-parser.cpp @@ -72,6 +72,10 @@ int main(void) { argv = {"binary_name", "--draft", "123"}; assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_EMBEDDING)); + // negated arg + argv = {"binary_name", "--no-mmap"}; + assert(false == common_params_parse(argv.size(), list_str_to_char(argv).data(), params, LLAMA_EXAMPLE_COMMON)); + printf("test-arg-parser: test valid usage\n\n"); diff --git a/tools/server/server-models.cpp b/tools/server/server-models.cpp index 6c618a67..6be5ffbd 100644 --- a/tools/server/server-models.cpp +++ b/tools/server/server-models.cpp @@ -171,7 +171,7 @@ server_presets::server_presets(int argc, char ** argv, common_params & base_para } // read base args from router's argv - common_params_parse(argc, argv, LLAMA_EXAMPLE_SERVER, base_args); + common_params_to_map(argc, argv, LLAMA_EXAMPLE_SERVER, base_args); // remove any router-controlled args from base_args for (const auto & cargs : control_args) {