]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Fix locale-dependent float printing in GGUF metadata (#17331)
authorSamareshSingh <redacted>
Wed, 4 Mar 2026 08:30:40 +0000 (02:30 -0600)
committerGitHub <redacted>
Wed, 4 Mar 2026 08:30:40 +0000 (09:30 +0100)
* Set C locale for consistent float formatting across all binaries.

* Add C locale setting to all tools binaries

Add std::setlocale(LC_NUMERIC, "C") to all 16 binaries in the tools/
directory to ensure consistent floating-point formatting.

* Apply suggestion from @JohannesGaessler

---------

Co-authored-by: Johannes Gäßler <redacted>
39 files changed:
examples/batched/batched.cpp
examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp
examples/deprecation-warning/deprecation-warning.cpp
examples/diffusion/diffusion-cli.cpp
examples/embedding/embedding.cpp
examples/eval-callback/eval-callback.cpp
examples/gen-docs/gen-docs.cpp
examples/gguf-hash/gguf-hash.cpp
examples/gguf/gguf.cpp
examples/lookahead/lookahead.cpp
examples/lookup/lookup-create.cpp
examples/lookup/lookup-merge.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/simple-chat/simple-chat.cpp
examples/simple/simple.cpp
examples/speculative-simple/speculative-simple.cpp
examples/speculative/speculative.cpp
examples/sycl/ls-sycl-device.cpp
examples/training/finetune.cpp
tools/batched-bench/batched-bench.cpp
tools/completion/completion.cpp
tools/cvector-generator/cvector-generator.cpp
tools/export-lora/export-lora.cpp
tools/gguf-split/gguf-split.cpp
tools/imatrix/imatrix.cpp
tools/llama-bench/llama-bench.cpp
tools/mtmd/deprecation-warning.cpp
tools/mtmd/mtmd-cli.cpp
tools/perplexity/perplexity.cpp
tools/quantize/quantize.cpp
tools/rpc/rpc-server.cpp
tools/server/server.cpp
tools/tokenize/tokenize.cpp
tools/tts/tts.cpp

index a8c19a6aba6dba72a0d6e4f8ae7ca4133858a539..d2b2e336e759691271bb926055d33416f9d15fa0 100644 (file)
@@ -5,6 +5,7 @@
 #include "sampling.h"
 
 #include <algorithm>
+#include <clocale>
 #include <cstdio>
 #include <string>
 #include <vector>
@@ -16,6 +17,8 @@ static void print_usage(int, char ** argv) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.prompt = "Hello my name is";
index 767198aafa21c1c980201e342b8c08914f89cc7c..702bc74bee2dd443dcd847ac49bb916a768342de 100644 (file)
@@ -5,14 +5,16 @@
 #include "common.h"
 #include "log.h"
 
-#include <unordered_map>
-#include <vector>
+#include <algorithm>
 #include <cassert>
+#include <cinttypes>
 #include <climits>
-#include <cstring>
+#include <clocale>
 #include <cstdarg>
-#include <cinttypes>
+#include <cstring>
 #include <ctime>
+#include <unordered_map>
+#include <vector>
 #include <random>
 #include <stdexcept>
 #include <sstream>
@@ -874,6 +876,8 @@ static std::string basename(const std::string &path) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_init();
 
     struct train_params params = get_default_train_params();
index 11f5147328a7ec77f04e73a1cc40d33164dac4fc..0cde17f6e996eb66d9b04cbe22b63d36b982b39b 100644 (file)
@@ -1,11 +1,14 @@
 // Warns users that this filename was deprecated, and provides a link for more information.
 
+#include <clocale>
 #include <cstdio>
 #include <string>
 #include <unordered_map>
 
 // Main
 int main(int argc, char** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     std::string filename = "main";
     if (argc >= 1) {
         filename = argv[0];
index d50f754092d55e44dfd7cbf0c1ed83c03ab9732b..d38bfe7f82d46e4317535c9d176461ed517ae416 100644 (file)
@@ -7,6 +7,7 @@
 #include <limits.h>
 
 #include <algorithm>
+#include <clocale>
 #include <cmath>
 #include <cstring>
 #include <limits>
@@ -538,6 +539,8 @@ static std::string format_input_text(const std::string & prompt, const std::stri
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     ggml_time_init();
 
     common_params params;
index d8eaaa2691f94519c6e273ed9e36de9c0bb02f3f..33ef2a7521fae3afe41cd6adff89e0b1cf65bc7a 100644 (file)
@@ -3,6 +3,7 @@
 #include "log.h"
 #include "llama.h"
 
+#include <clocale>
 #include <ctime>
 #include <algorithm>
 
@@ -94,6 +95,8 @@ static void print_raw_embeddings(const float * emb,
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_EMBEDDING)) {
index bd587349798b53b43859998a7b8d5e3c64a59193..17d162d95d3734a492ad40a979cd8cfdf207a64a 100644 (file)
@@ -4,6 +4,8 @@
 #include "log.h"
 #include "llama.h"
 #include "llama-cpp.h"
+
+#include <clocale>
 #include <string>
 #include <vector>
 
@@ -29,6 +31,8 @@ static bool run(llama_context * ctx, const common_params & params) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     base_callback_data cb_data;
 
     common_params params;
index 0aa33e8245b79570493703337e42e451500f8a6b..7ba7d79f72106da4f297a239e02c14a8652e3317 100644 (file)
@@ -1,6 +1,7 @@
 #include "arg.h"
 #include "common.h"
 
+#include <clocale>
 #include <fstream>
 #include <sstream>
 #include <string>
@@ -100,6 +101,8 @@ static void write_help(std::ostringstream & ss, const md_file & md) {
 }
 
 int main(int, char **) {
+    std::setlocale(LC_NUMERIC, "C");
+
     for (const auto & md : md_files) {
         std::ifstream infile(md.fname);
         if (!infile.is_open()) {
index 9523ec122f57304f7a439534c49b24c3fb64893e..331de301ffc54b730d4200f7d46a60430ea27ce1 100644 (file)
@@ -1,13 +1,14 @@
 #include "ggml.h"
 #include "gguf.h"
 
-#include <cstdlib>   /* abort() */
+#include <algorithm>
+#include <clocale>
 #include <cstddef>
 #include <cstdio>
-#include <string>
-#include <stdexcept>
-#include <algorithm>
+#include <cstdlib>   /* abort() */
 #include <cstring>
+#include <stdexcept>
+#include <string>
 
 #include <sstream>
 #include <fstream>
@@ -626,6 +627,8 @@ static hash_exit_code_t gguf_hash(const hash_params & hash_params) {
 }
 
 int main(int argc, const char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     hash_params params;
     manifest_check_params manifest_check;
     hash_params_parse(argc, argv, params);
index 499cfacc92aa91aeb5141f9aaf43ce283c1bb060..79ad38711e3e107e217ba162b81634717352e5e6 100644 (file)
@@ -1,6 +1,7 @@
 #include "ggml.h"
 #include "gguf.h"
 
+#include <clocale>
 #include <cstdio>
 #include <string>
 #include <sstream>
@@ -240,6 +241,8 @@ static bool gguf_ex_read_1(const std::string & fname, bool check_data) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     if (argc < 3) {
         printf("usage: %s data.gguf r|w [n]\n", argv[0]);
         printf("r: read data.gguf file\n");
index aa6efa62b3b65623241786a333d5f0210c9add82..d5fde081c599f6c204bc49710b405d99eacbe9bb 100644 (file)
@@ -4,10 +4,11 @@
 #include "log.h"
 #include "llama.h"
 
+#include <algorithm>
+#include <clocale>
 #include <cstdio>
 #include <string>
 #include <vector>
-#include <algorithm>
 
 struct ngram_data {
     bool active = false;
@@ -38,6 +39,8 @@ struct ngram_container {
 };
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_COMMON)) {
index f7b6ea1b190b9f1a37ea554498dd17d36a0c9661..439e3f726eed4696e94ac7c3987a5fd728a11dc8 100644 (file)
@@ -3,10 +3,13 @@
 #include "ngram-cache.h"
 #include "llama.h"
 
+#include <clocale>
 #include <string>
 #include <vector>
 
 int main(int argc, char ** argv){
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_LOOKUP)) {
index 6871c0f5fdb3729e394c21e832871903ec116655..ee3c7249cf187788e98bd3995b04bd530e330909 100644 (file)
@@ -3,6 +3,7 @@
 #include "common.h"
 #include "ngram-cache.h"
 
+#include <clocale>
 #include <cstdint>
 #include <cstdio>
 #include <fstream>
@@ -17,6 +18,8 @@ static void print_usage(char* argv0) {
 }
 
 int main(int argc, char ** argv){
+    std::setlocale(LC_NUMERIC, "C");
+
     if (argc < 3) {
         print_usage(argv[0]);
         exit(1);
index ae28b2e6e86d8a3c957976f317371180abf52003..c3158281c75e9d04649f36388b4b566808937c6a 100644 (file)
@@ -5,14 +5,17 @@
 #include "llama.h"
 #include "ggml.h"
 
+#include <cinttypes>
+#include <clocale>
 #include <cstdint>
 #include <cstdio>
-#include <cinttypes>
 #include <fstream>
 #include <string>
 #include <vector>
 
 int main(int argc, char ** argv){
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_LOOKUP)) {
index c7552ddde14168fe240410939c9fb3a3da39b171..bd216035c0bd26f1a8af7d08356b7520239bd6ef 100644 (file)
@@ -6,6 +6,7 @@
 #include "log.h"
 #include "llama.h"
 
+#include <clocale>
 #include <cstdint>
 #include <cstdio>
 #include <fstream>
@@ -13,6 +14,8 @@
 #include <vector>
 
 int main(int argc, char ** argv){
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_LOOKUP)) {
index c92173ae2914690b211d0b15c9f3e781296a4847..1700ceefbf7905e35b8075529ed60babf2fd9be8 100644 (file)
@@ -7,12 +7,13 @@
 #include "log.h"
 #include "llama.h"
 
+#include <algorithm>
+#include <clocale>
 #include <cmath>
 #include <cstdio>
 #include <string>
 #include <vector>
 #include <ctime>
-#include <algorithm>
 
 // trim whitespace from the beginning and end of a string
 static std::string trim(const std::string & str) {
@@ -153,6 +154,8 @@ static std::vector<std::string> split_string(const std::string& input, char deli
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     srand(1234);
 
     common_params params;
index 8a4faa383bf323152a55e52102ae6f97524de745..665191047a415b3b5e04132947778f8acf45c960 100644 (file)
@@ -3,6 +3,7 @@
 #include "log.h"
 #include "llama.h"
 
+#include <clocale>
 #include <cmath>
 #include <cstdio>
 #include <string>
@@ -16,6 +17,8 @@ static void print_usage(int, char ** argv) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.n_junk = 250;
index 3f2afd4346e29c185ddebc90e6d918215861e781..9e05fc22337dde504f710e6c58480c84d2dd482d 100644 (file)
@@ -4,6 +4,7 @@
 #include "llama.h"
 
 #include <algorithm>
+#include <clocale>
 #include <fstream>
 #include <iostream> // TODO: remove me
 
@@ -112,6 +113,8 @@ static void batch_process(llama_context * ctx, llama_batch & batch, float * outp
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_RETRIEVAL, print_usage)) {
index 5e35dcd6030666d4b537ade803aee7542aa8935d..174c8c75854644ac9e41fb10a9d3544a15440012 100644 (file)
@@ -2,11 +2,14 @@
 #include "common.h"
 #include "llama.h"
 
+#include <clocale>
 #include <vector>
 #include <cstdio>
 
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.prompt = "The quick brown fox";
index 57195df331628ecedbca28e5fe242003feb8a427..97e9dc9842f5a768de07941a58f6ea2b2ecd07cc 100644 (file)
@@ -1,4 +1,5 @@
 #include "llama.h"
+#include <clocale>
 #include <cstdio>
 #include <cstring>
 #include <iostream>
@@ -12,6 +13,8 @@ static void print_usage(int, char ** argv) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     std::string model_path;
     int ngl = 99;
     int n_ctx = 2048;
index d09771d10457f57cac14748c0a0e17b494ac2265..9f0a25d713f46dbc8cfc0a7fe46e455f509c9038 100644 (file)
@@ -1,4 +1,5 @@
 #include "llama.h"
+#include <clocale>
 #include <cstdio>
 #include <cstring>
 #include <string>
@@ -11,6 +12,8 @@ static void print_usage(int, char ** argv) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     // path to the model gguf file
     std::string model_path;
     // prompt to generate text from
index d8b1f5a480cd09a29e24966a868232c0913fe5fb..8a1cbd96c25cac5970b16f7807f94cd3f2661ef7 100644 (file)
@@ -5,12 +5,15 @@
 #include "log.h"
 #include "llama.h"
 
+#include <clocale>
 #include <cstdio>
 #include <cstring>
 #include <string>
 #include <vector>
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_SPECULATIVE)) {
index 3e5cf5f46b55a746092b8c47f37af6fee5e26eae..250c5b7c62d4416443fb16f20e59862804ed6d99 100644 (file)
@@ -5,6 +5,7 @@
 #include "llama.h"
 
 #include <algorithm>
+#include <clocale>
 #include <cstdio>
 #include <cstring>
 #include <random>
@@ -30,6 +31,8 @@ struct seq_draft {
 };
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     // needed to get candidate probs even for temp <= 0.0
index 74a8b7fd814d9ba06d3447086d84d98809f8f83a..3bdc405982522811f572dbec6b80800a1c1e6471 100644 (file)
@@ -6,8 +6,10 @@
 
 
 #include "ggml-sycl.h"
+#include <clocale>
 
 int main() {
+    std::setlocale(LC_NUMERIC, "C");
     ggml_backend_sycl_print_sycl_devices();
     return 0;
 }
index c82de8d35d0363162bd79ca850b3a2e90575eccd..e20f89488f2a500a70e5942cd205f87428b02be3 100644 (file)
@@ -3,6 +3,7 @@
 #include "log.h"
 #include "llama.h"
 
+#include <clocale>
 #include <cmath>
 #include <cstdio>
 #include <cstring>
@@ -14,6 +15,8 @@
 #endif
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
     params.escape = false;
 
index 0f627c5ff65ad5da8925523044d8bcf5a9dc178b..224f0e1f1c6eff883daa1c1d74f2d2cf3f6c965b 100644 (file)
@@ -4,6 +4,7 @@
 #include "llama.h"
 
 #include <algorithm>
+#include <clocale>
 #include <cstdio>
 #include <string>
 #include <vector>
@@ -15,6 +16,8 @@ static void print_usage(int, char ** argv) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_BENCH, print_usage)) {
index e13816f735e99610f8d5505963c9639bff175580..2e0f0871847f34664e9f352f92d4f6f47107d084 100644 (file)
@@ -6,6 +6,7 @@
 #include "llama.h"
 #include "chat.h"
 
+#include <clocale>
 #include <cstdio>
 #include <cstring>
 #include <ctime>
@@ -84,6 +85,8 @@ static void sigint_handler(int signo) {
 #endif
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
     g_params = &params;
 
index 3ba7c5295065d8e95937eb36c8a1fa770ddc155a..4c8ca61ec4f91e232b3bce030f0f47b6155fb998 100644 (file)
@@ -7,6 +7,8 @@
 #include "pca.hpp"
 #include "mean.hpp"
 
+#include <clocale>
+
 #ifdef GGML_USE_CUDA
 #include "ggml-cuda.h"
 #endif
@@ -392,6 +394,8 @@ static int prepare_entries(common_params & params, train_context & ctx_train) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.out_file = "control_vector.gguf";
index 41f426208f85328c3025a9a83a0140d30a0e8338..50774c59baee94ea607feb81ccf6cf113ca73bb1 100644 (file)
@@ -5,6 +5,7 @@
 #include "arg.h"
 #include "common.h"
 
+#include <clocale>
 #include <map>
 #include <vector>
 #include <string>
@@ -411,6 +412,8 @@ static void print_usage(int, char ** argv) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.out_file = "ggml-lora-merged-f16.gguf";
index 30e771564e80849d096fb44c11fb07ee860480e0..f99f0299b9c1014ddd88e89204dde728bda74120 100644 (file)
@@ -6,6 +6,7 @@
 #include <algorithm>
 #include <cinttypes>
 #include <climits>
+#include <clocale>
 #include <cstdio>
 #include <cstdlib>
 #include <stdexcept>
@@ -567,6 +568,8 @@ static void gguf_merge(const split_params & split_params) {
 }
 
 int main(int argc, const char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     split_params params;
     split_params_parse(argc, argv, params);
 
index e025c114b48049a3501d2ab2c7c9a729fba17ed6..bbedb159cd42b3f681a9b570912c8ab484dbf6e5 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <algorithm>
 #include <chrono>
+#include <clocale>
 #include <cmath>
 #include <cstdio>
 #include <cstring>
@@ -1191,6 +1192,8 @@ static bool show_statistics(const common_params & params) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.out_file = "imatrix.gguf";
index 7da6c3957c71bcfcdabfb1684c4cab46122d0af6..7a750265505956db849ff68c922904974ca30be9 100644 (file)
@@ -2034,8 +2034,9 @@ static std::unique_ptr<printer> create_printer(output_formats format) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
     // try to set locale for unicode characters in markdown
-    setlocale(LC_CTYPE, ".UTF-8");
+    std::setlocale(LC_CTYPE, ".UTF-8");
 
 #if !defined(NDEBUG)
     fprintf(stderr, "warning: asserts enabled, performance may be affected\n");
index dded0a56af96bc88697623f0fda9d67ce8aac09a..2b31a9d8b0b33a50f8b7afc7327bb7cbe2692a8a 100644 (file)
@@ -1,7 +1,10 @@
+#include <clocale>
 #include <cstdio>
 #include <string>
 
 int main(int argc, char** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     std::string filename = "main";
     if (argc >= 1) {
         filename = argv[0];
index 054c7faa6af3518a5ca0033cbe6366ba3e8e49aa..09b8e311c5356c5bd47b329a09f1c691d3827701 100644 (file)
@@ -274,6 +274,8 @@ static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     ggml_time_init();
 
     common_params params;
index 433b747f0d457b84e5bf5cf1331bccb20f018476..cc5ea99c4dfe05161a378812809654393fe82107 100644 (file)
@@ -3,10 +3,11 @@
 #include "log.h"
 #include "llama.h"
 
-#include <chrono>
 #include <algorithm>
 #include <array>
 #include <atomic>
+#include <chrono>
+#include <clocale>
 #include <cmath>
 #include <cstdio>
 #include <cstring>
@@ -2004,6 +2005,8 @@ static void kl_divergence(llama_context * ctx, const common_params & params) {
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.n_ctx = 512;
index 59bf9bd3fd056ee5fa3acf0acaed643c8d6079e6..0a483328ee5e94728606210af22ce52533ad7853 100644 (file)
@@ -2,6 +2,10 @@
 #include "llama.h"
 #include "gguf.h"
 
+#include <algorithm>
+#include <cctype>
+#include <clocale>
+#include <cmath>
 #include <cstdio>
 #include <cstring>
 #include <vector>
@@ -485,6 +489,8 @@ static bool parse_layer_prune(const char * data, std::vector<int> & prune_layers
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     if (argc < 3) {
         usage(argv[0]);
     }
index 6feb0e91f326e68f1658184ece0808cb55ae71c9..03ab78e5f0529e250e0cf6d6d4b512512a66fdc2 100644 (file)
 #  include <unistd.h>
 #  include <sys/stat.h>
 #endif
-#include <string>
-#include <stdio.h>
-#include <vector>
 #include <algorithm>
-#include <thread>
+#include <clocale>
+#include <codecvt>
+#include <filesystem>
 #include <regex>
+#include <stdio.h>
+#include <string>
+#include <thread>
+#include <vector>
 
 #if defined(__linux__)
 #include <sys/types.h>
@@ -285,6 +288,8 @@ static std::vector<ggml_backend_dev_t> get_devices(const rpc_server_params & par
 }
 
 int main(int argc, char * argv[]) {
+    std::setlocale(LC_NUMERIC, "C");
+
     ggml_backend_load_all();
 
     rpc_server_params params;
index f353dcdde7bfeb41b90896122bb1200b5858abf9..fab0bb587f3d8211abdf6dc6cb2cc50cfc2d0b3c 100644 (file)
@@ -8,6 +8,7 @@
 #include "log.h"
 
 #include <atomic>
+#include <clocale>
 #include <exception>
 #include <signal.h>
 #include <thread> // for std::thread::hardware_concurrency
@@ -67,6 +68,8 @@ static server_http_context::handler_t ex_wrapper(server_http_context::handler_t
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     // own arguments required by this example
     common_params params;
 
index 7375759ebe25ba6ee8520b0198cba71aa5162f86..32cf8c8eb99cfed192f6264e0518a090c88fcbd6 100644 (file)
@@ -2,6 +2,7 @@
 //#include "log.h" // TODO: start using log.h
 #include "llama.h"
 
+#include <clocale>
 #include <cstdio>
 #include <cstring>
 #include <fstream>
@@ -184,6 +185,8 @@ static void write_utf8_cstr_to_stdout(const char * str, bool & invalid_utf8) {
 }
 
 int main(int raw_argc, char ** raw_argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     const std::vector<std::string> argv = ingest_args(raw_argc, raw_argv);
     const int argc = argv.size();
 
index ac55a8b1ca41ad766d6f619371761e9891a0a26a..dc2fa494b880c424e98501f57414cffb1f7d9025 100644 (file)
@@ -10,6 +10,7 @@
 #include <nlohmann/json.hpp>
 
 #include <algorithm>
+#include <clocale>
 #include <cmath>
 #include <cstdio>
 #include <fstream>
@@ -536,6 +537,8 @@ static std::string audio_data_from_speaker(json speaker, const outetts_version t
 }
 
 int main(int argc, char ** argv) {
+    std::setlocale(LC_NUMERIC, "C");
+
     common_params params;
 
     params.out_file = "output.wav";