]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
common : move up common_init() and fix Windows UTF-8 logs (#21176)
authorAdrien Gallouët <redacted>
Tue, 31 Mar 2026 10:53:41 +0000 (12:53 +0200)
committerGitHub <redacted>
Tue, 31 Mar 2026 10:53:41 +0000 (12:53 +0200)
The build info is now only for debug, so we avoid the duplicate
with `--version`.

The UTF-8 setup at the beginning is needed to avoid logging
garbage on Windows.

Signed-off-by: Adrien Gallouët <redacted>
34 files changed:
common/common.cpp
examples/batched/batched.cpp
examples/debug/debug.cpp
examples/diffusion/diffusion-cli.cpp
examples/embedding/embedding.cpp
examples/eval-callback/eval-callback.cpp
examples/idle/idle.cpp
examples/lookahead/lookahead.cpp
examples/lookup/lookup-create.cpp
examples/lookup/lookup-stats.cpp
examples/lookup/lookup.cpp
examples/parallel/parallel.cpp
examples/passkey/passkey.cpp
examples/retrieval/retrieval.cpp
examples/save-load-state/save-load-state.cpp
examples/speculative-simple/speculative-simple.cpp
examples/speculative/speculative.cpp
examples/training/finetune.cpp
tests/export-graph-ops.cpp
tests/test-state-restore-fragmented.cpp
tests/test-thread-safety.cpp
tools/batched-bench/batched-bench.cpp
tools/cli/cli.cpp
tools/completion/completion.cpp
tools/cvector-generator/cvector-generator.cpp
tools/export-lora/export-lora.cpp
tools/fit-params/fit-params.cpp
tools/imatrix/imatrix.cpp
tools/mtmd/debug/mtmd-debug.cpp
tools/mtmd/mtmd-cli.cpp
tools/perplexity/perplexity.cpp
tools/results/results.cpp
tools/server/server.cpp
tools/tts/tts.cpp

index 497cfaad5efc80cf6ac75f38362d81007bfc2891..60396af1f838495d4b2e6fa18b90db75b10b7909 100644 (file)
@@ -359,6 +359,11 @@ bool parse_cpu_mask(const std::string & mask, bool (&boolmask)[GGML_MAX_N_THREAD
 }
 
 void common_init() {
+#if defined(_WIN32)
+    SetConsoleOutputCP(CP_UTF8);
+    SetConsoleCP(CP_UTF8);
+#endif
+
     llama_log_set(common_log_default_callback, NULL);
 
 #ifdef NDEBUG
@@ -367,7 +372,7 @@ void common_init() {
     const char * build_type = " (debug)";
 #endif
 
-    LOG_INF("build: %d (%s) with %s for %s%s\n", LLAMA_BUILD_NUMBER, LLAMA_COMMIT, LLAMA_COMPILER, LLAMA_BUILD_TARGET, build_type);
+    LOG_DBG("build: %d (%s) with %s for %s%s\n", LLAMA_BUILD_NUMBER, LLAMA_COMMIT, LLAMA_COMPILER, LLAMA_BUILD_TARGET, build_type);
 }
 
 std::string common_params_get_system_info(const common_params & params) {
index d2b2e336e759691271bb926055d33416f9d15fa0..830e45f5afd74dcfa50115838cc974815b01f838 100644 (file)
@@ -24,12 +24,12 @@ int main(int argc, char ** argv) {
     params.prompt = "Hello my name is";
     params.n_predict = 32;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_BATCHED, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     // number of parallel batches
     int n_parallel = params.n_parallel;
 
index 88947acbd3909868ff98860e7c72e37617c8cc6e..ec80be19ba4f183b76e56da7c1af16cd25722330 100644 (file)
@@ -213,12 +213,12 @@ static bool run(llama_context * ctx, const common_params & params) {
 int main(int argc, char ** argv) {
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_DEBUG, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     llama_backend_init();
     llama_numa_init(params.numa);
 
index d38bfe7f82d46e4317535c9d176461ed517ae416..e9780407da4e3b4897d9bee42ba9bfbc34c57e85 100644 (file)
@@ -545,11 +545,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_DIFFUSION)) {
         return 1;
     }
 
-    common_init();
     llama_backend_init();
 
     llama_model_params model_params = llama_model_default_params();
index 33ef2a7521fae3afe41cd6adff89e0b1cf65bc7a..f6a20ef9d074b0e2117e70dbc395254220a8c76d 100644 (file)
@@ -99,12 +99,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_EMBEDDING)) {
         return 1;
     }
 
-    common_init();
-
     params.embedding = true;
 
     // get max number of sequences per batch
index 17d162d95d3734a492ad40a979cd8cfdf207a64a..902b0fdb56abfe2a3803a6e16f3f71b5b831d12a 100644 (file)
@@ -37,12 +37,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
         return 1;
     }
 
-    common_init();
-
     llama_backend_init();
     llama_numa_init(params.numa);
 
index 000427143dbb6573dd9f95500ef978d427beb51d..409fd25c18f86d3e8e0caf04e4cedbba32d8b457 100644 (file)
@@ -19,12 +19,12 @@ static void print_usage(int /*argc*/, char ** argv) {
 int main(int argc, char ** argv) {
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     // init LLM
 
     llama_backend_init();
index d5fde081c599f6c204bc49710b405d99eacbe9bb..b7f5c6de86b33c561ac0d3c80b6c300436bbb969 100644 (file)
@@ -43,12 +43,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
         return 1;
     }
 
-    common_init();
-
     const int W = 15; // lookahead window
     const int N = 5;  // n-gram size
     const int G = 15; // max verification n-grams
index 439e3f726eed4696e94ac7c3987a5fd728a11dc8..6b8f258a4a59850d37ab8f96aee53379c159b790 100644 (file)
@@ -12,6 +12,8 @@ int main(int argc, char ** argv){
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_LOOKUP)) {
         return 1;
     }
index c3158281c75e9d04649f36388b4b566808937c6a..847976ddc7d9998bc4bb3197ab41531a6c5be3ce 100644 (file)
@@ -18,12 +18,12 @@ int main(int argc, char ** argv){
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_LOOKUP)) {
         return 1;
     }
 
-    common_init();
-
     const int n_draft = params.speculative.n_max;
 
     // init llama.cpp
index bd216035c0bd26f1a8af7d08356b7520239bd6ef..74272f17e71c8760d0c6babf233680b212a41d9f 100644 (file)
@@ -18,12 +18,12 @@ int main(int argc, char ** argv){
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_LOOKUP)) {
         return 1;
     }
 
-    common_init();
-
     // max. number of additional tokens to draft if match is found
     const int n_draft = params.speculative.n_max;
 
index 1700ceefbf7905e35b8075529ed60babf2fd9be8..a46400c5b943aee03ce0a12ae9d6d4d2d7f042a2 100644 (file)
@@ -163,12 +163,12 @@ int main(int argc, char ** argv) {
     params.n_predict = 128;
     params.n_junk = 1;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_PARALLEL)) {
         return 1;
     }
 
-    common_init();
-
     // number of simultaneous "clients" to simulate
     const int32_t n_clients = params.n_parallel;
 
index 665191047a415b3b5e04132947778f8acf45c960..8440a2bf773d0f802b09f5d31ad64cb2c8dea625 100644 (file)
@@ -25,12 +25,12 @@ int main(int argc, char ** argv) {
     params.n_keep = 32;
     params.i_pos  = -1;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_PASSKEY, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     int n_junk = params.n_junk;
     int n_keep = params.n_keep;
     int n_grp  = params.grp_attn_n;
index 9e05fc22337dde504f710e6c58480c84d2dd482d..7d93ab1172c69ed948e35473a98c9a60605abc97 100644 (file)
@@ -117,12 +117,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_RETRIEVAL, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     // For BERT models, batch size must be equal to ubatch size
     params.n_ubatch = params.n_batch;
     params.embedding = true;
index 174c8c75854644ac9e41fb10a9d3544a15440012..a26fd73cb3c4981d314aa28524172c09de68e206 100644 (file)
@@ -17,6 +17,8 @@ int main(int argc, char ** argv) {
 
     const std::string_view state_file = "dump_state.bin";
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
         return 1;
     }
@@ -27,8 +29,6 @@ int main(int argc, char ** argv) {
         params.kv_unified = true;
     }
 
-    common_init();
-
     if (params.n_predict < 0) {
         params.n_predict = 16;
     }
index 8a1cbd96c25cac5970b16f7807f94cd3f2661ef7..a03dbce887f2160388f52ef1a531991e401af2dd 100644 (file)
@@ -16,6 +16,8 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_SPECULATIVE)) {
         return 1;
     }
@@ -25,8 +27,6 @@ int main(int argc, char ** argv) {
         return 1;
     }
 
-    common_init();
-
     if (params.speculative.mparams_dft.path.empty()) {
         LOG_ERR("%s: --model-draft is required\n", __func__);
         return 1;
index 250c5b7c62d4416443fb16f20e59862804ed6d99..8f56a659b3e087805892c8f611aa507b2c415ebe 100644 (file)
@@ -38,6 +38,8 @@ int main(int argc, char ** argv) {
     // needed to get candidate probs even for temp <= 0.0
     params.sampling.n_probs = 128;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_SPECULATIVE)) {
         return 1;
     }
@@ -47,8 +49,6 @@ int main(int argc, char ** argv) {
         return 1;
     }
 
-    common_init();
-
     if (params.speculative.mparams_dft.path.empty()) {
         LOG_ERR("%s: --model-draft is required\n", __func__);
         return 1;
index e20f89488f2a500a70e5942cd205f87428b02be3..0a75ac110ca4dcf4fa724c984a3b58bcee37b505 100644 (file)
@@ -20,6 +20,8 @@ int main(int argc, char ** argv) {
     common_params params;
     params.escape = false;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_FINETUNE)) {
         return 1;
     }
@@ -38,7 +40,6 @@ int main(int argc, char ** argv) {
         params.cache_type_v = GGML_TYPE_F32;
     }
 
-    common_init();
     llama_backend_init();
     llama_numa_init(params.numa);
     // load the model and apply lora adapter, if any
index 754089d068efacea0ec8ecc98c9400c88195b6ec..cac3ff628e7c05ee02289fc791845a6cd654c485 100644 (file)
@@ -118,12 +118,12 @@ int main(int argc, char ** argv) {
     common_params params;
     params.out_file = "tests.txt";
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_EXPORT_GRAPH_OPS)) {
         return 1;
     }
 
-    common_init();
-
     // Load CPU-only
     ggml_backend_dev_t cpu_device = ggml_backend_dev_by_type(GGML_BACKEND_DEVICE_TYPE_CPU);
     params.devices = { cpu_device, nullptr };
index 481b39d04c70be20a0918ca669f8f476f018bd9a..8a9bfaf5dcc729651b5a7d005b9972a4a8556862 100644 (file)
@@ -22,12 +22,12 @@ int main(int argc, char ** argv) {
     params.n_parallel = 3;
     params.n_ctx = 256;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
         return 1;
     }
 
-    common_init();
-
     // init
     common_init_result_ptr llama_init = common_init_from_params(params);
 
index bcb86c35e66526aedc79de231ac688846c89be8b..acda4aa81eaba92e00ca4edd1774c3d55e48e576 100644 (file)
 int main(int argc, char ** argv) {
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
         return 1;
     }
 
-    common_init();
-
     llama_backend_init();
     llama_numa_init(params.numa);
 
index 224f0e1f1c6eff883daa1c1d74f2d2cf3f6c965b..3964ef25955fe9249e3c98b02b50bb5900b775dc 100644 (file)
@@ -20,12 +20,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_BENCH, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     int is_pp_shared   = params.is_pp_shared;
     int is_tg_separate = params.is_tg_separate;
 
index c58fda83e2a9268ce88038a82c70e997d6bb0c69..b57d27762c7a957c744a9a526a9e1e7d95da590f 100644 (file)
@@ -347,6 +347,8 @@ int main(int argc, char ** argv) {
 
     params.verbosity = LOG_LEVEL_ERROR; // by default, less verbose logs
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_CLI)) {
         return 1;
     }
@@ -357,8 +359,6 @@ int main(int argc, char ** argv) {
         console::error("please use llama-completion instead\n");
     }
 
-    common_init();
-
     // struct that contains llama context and inference
     cli_context ctx_cli(params);
 
index 813526a0ec09562eacc85a8342fac011d443960d..1dc5df1afa210dd5bc03b2c10103d80649ceba94 100644 (file)
@@ -90,12 +90,12 @@ int main(int argc, char ** argv) {
     common_params params;
     g_params = &params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMPLETION, print_usage)) {
         return 1;
     }
 
-    common_init();
-
     auto & sparams = params.sampling;
 
     // save choice to use color for later
index dcce0e98418b320ce1032d4115b3f0ae78a27da4..fd6e5ddd2d8f4a4ba5c9bbfe36fb0bfad3967828 100644 (file)
@@ -400,6 +400,8 @@ int main(int argc, char ** argv) {
 
     params.out_file = "control_vector.gguf";
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_CVECTOR_GENERATOR, print_usage)) {
         return 1;
     }
index 50774c59baee94ea607feb81ccf6cf113ca73bb1..e1bc4a2f3152dd1a538ead4de85d86cbe0929856 100644 (file)
@@ -418,6 +418,8 @@ int main(int argc, char ** argv) {
 
     params.out_file = "ggml-lora-merged-f16.gguf";
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_EXPORT_LORA, print_usage)) {
         return 1;
     }
index 0176be06e78f992772fec20364f0f3e93169de7d..3c0404ed309169aa17e46e74bca99c7135a6c20a 100644 (file)
@@ -17,11 +17,12 @@ using namespace std::chrono_literals;
 int main(int argc, char ** argv) {
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
         return 1;
     }
 
-    common_init();
     llama_backend_init();
     llama_numa_init(params.numa);
     auto mparams = common_model_params_to_llama(params);
index fa21f6c9d540a94adcc7167309870a648ffd39bb..3f7f3a11dfa3ad4535ad0c9e521cfc04f3a9a649 100644 (file)
@@ -1212,6 +1212,8 @@ int main(int argc, char ** argv) {
     params.n_ctx = 512;
     params.escape = false;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_IMATRIX, print_usage)) {
         return 1;
     }
@@ -1223,8 +1225,6 @@ int main(int argc, char ** argv) {
         return 0;
     }
 
-    common_init();
-
     const int32_t n_ctx = params.n_ctx;
 
     if (n_ctx <= 0) {
index d42806ec3f8c366795589294cd6be7b243f049a1..6e32b283aa4d5e72354ca621a7f498494487b887 100644 (file)
@@ -54,11 +54,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_MTMD, show_additional_info)) {
         return 1;
     }
 
-    common_init();
     mtmd_helper_log_set(common_log_default_callback, nullptr);
 
     if (params.mmproj.path.empty()) {
index ba00e08534ff6df706460b71952ce555adc05cd3..dd72dfb17c857b2a5e31a7d13944bee0508d1a23 100644 (file)
@@ -281,11 +281,12 @@ int main(int argc, char ** argv) {
 
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_MTMD, show_additional_info)) {
         return 1;
     }
 
-    common_init();
     mtmd_helper_log_set(common_log_default_callback, nullptr);
 
     if (params.mmproj.path.empty()) {
index 0eb062f05dd3f8a9a3b92ab94c3392a68378ab5a..9c49e18630aee86e7132c99374c853cf2c5a01b5 100644 (file)
@@ -2012,12 +2012,12 @@ int main(int argc, char ** argv) {
     params.n_ctx = 512;
     params.escape = false;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_PERPLEXITY)) {
         return 1;
     }
 
-    common_init();
-
     const int32_t n_ctx = params.n_ctx;
 
     if (n_ctx <= 0) {
index e5c5df128e254cc5942a7a80096d66758caff3dc..f2179ed275210c9f9e5b811906ab33b6d1d24ad7 100644 (file)
@@ -58,6 +58,9 @@ static std::vector<float> get_logits(
 int main(int argc, char ** argv) {
     common_params params;
     params.escape = false;
+
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_RESULTS)) {
         return 1;
     }
@@ -65,7 +68,6 @@ int main(int argc, char ** argv) {
         LOG_ERR("%s: an output file must be specified", __func__);
         return 1;
     }
-    common_init();
     llama_backend_init();
     llama_numa_init(params.numa);
     common_init_result_ptr llama_init = common_init_from_params(params);
index ef54a46b1973e0270f8ecbea2414f002c6437a76..a7afa7743812799acfeaf6aa1c1530c089e2230d 100644 (file)
@@ -75,6 +75,8 @@ int main(int argc, char ** argv) {
     // own arguments required by this example
     common_params params;
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_SERVER)) {
         return 1;
     }
@@ -100,8 +102,6 @@ int main(int argc, char ** argv) {
         params.model_alias.insert(params.model.name);
     }
 
-    common_init();
-
     // struct that contains llama context and inference
     server_context ctx_server;
 
index dc2fa494b880c424e98501f57414cffb1f7d9025..ce68213d145e8c21ab383a5da3c4f4285270970f 100644 (file)
@@ -551,6 +551,8 @@ int main(int argc, char ** argv) {
     params.sampling.top_k = 4;
     params.sampling.samplers = { COMMON_SAMPLER_TYPE_TOP_K, };
 
+    common_init();
+
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_TTS, print_usage)) {
         return 1;
     }
@@ -558,8 +560,6 @@ int main(int argc, char ** argv) {
     const int n_parallel = params.n_parallel;
     const int n_predict  = params.n_predict;
 
-    common_init();
-
     // init LLM
 
     llama_backend_init();