Skip to content

Commit b97958a

Browse files
committed
log : fix compile warnings
- do not use C++20 stuff - use PRIu64 to print uint64_t - avoid string copies by using const ref - fix ", ##__VA_ARGS__" warnings - compare strings with == and !=
1 parent 2c1930d commit b97958a

File tree

2 files changed

+60
-71
lines changed

2 files changed

+60
-71
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ k_quants.o: k_quants.c k_quants.h
327327
endif # LLAMA_NO_K_QUANTS
328328

329329
ifdef LLAMA_DISABLE_LOGS
330-
CFLAGS += -DLOG_DISABLE_LOGS
330+
CFLAGS += -DLOG_DISABLE_LOGS
331331
CXXFLAGS += -DLOG_DISABLE_LOGS
332332
endif # LLAMA_DISABLE_LOGS
333333

common/log.h

Lines changed: 59 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <thread>
88
#include <vector>
99
#include <algorithm>
10+
#include <cinttypes>
1011

1112
// --------------------------------
1213
//
@@ -89,21 +90,18 @@
8990
// }
9091
//
9192
#ifndef LOG_TARGET
92-
/**/ #define LOG_TARGET log_handler()
93+
#define LOG_TARGET log_handler()
9394
#endif
9495

9596
#ifndef LOG_TEE_TARGET
96-
/**/ #define LOG_TEE_TARGET stderr
97+
#define LOG_TEE_TARGET stderr
9798
#endif
9899

99100
// Utility to obtain "pid" like unique process id and use it when creating log files.
100101
inline std::string log_get_pid()
101102
{
102103
static std::string pid;
103104
if (pid.empty())
104-
#ifndef _WIN32
105-
[[unlikely]]
106-
#endif
107105
{
108106
// std::this_thread::get_id() is the most portable way of obtaining a "process id"
109107
// it's not the same as "pid" but is unique enough to solve multiple instances
@@ -123,7 +121,7 @@ inline std::string log_get_pid()
123121
#define LOG_FILENAME_GENERATOR(log_file_basename, log_file_extension) _log_filename_generator(log_file_basename, log_file_extension)
124122

125123
// INTERNAL, DO NOT USE
126-
inline std::string _log_filename_generator(std::string log_file_basename, std::string log_file_extension)
124+
inline std::string _log_filename_generator(const std::string & log_file_basename, const std::string & log_file_extension)
127125
{
128126
return std::string().append(log_file_basename).append(".").append(log_get_pid()).append(".").append(log_file_extension);
129127
}
@@ -149,10 +147,10 @@ inline std::string _log_filename_generator(std::string log_file_basename, std::s
149147
//
150148
#ifndef LOG_NO_TIMESTAMPS
151149
/**/#ifndef _WIN32
152-
/* */#define LOG_TIMESTAMP_FMT "[%lu]"
150+
/* */#define LOG_TIMESTAMP_FMT "[%" PRIu64 "]"
153151
/* */#define LOG_TIMESTAMP_VAL , (std::chrono::duration_cast<std::chrono::duration<std::uint64_t>>(std::chrono::system_clock::now().time_since_epoch())).count()
154152
/**/#else
155-
/* */#define LOG_TIMESTAMP_FMT "[%llu]"
153+
/* */#define LOG_TIMESTAMP_FMT "[%" PRIu64 "]"
156154
/* */#define LOG_TIMESTAMP_VAL , (std::chrono::duration_cast<std::chrono::duration<std::uint64_t>>(std::chrono::system_clock::now().time_since_epoch())).count()
157155
/**/#endif
158156
#else
@@ -162,10 +160,10 @@ inline std::string _log_filename_generator(std::string log_file_basename, std::s
162160

163161
#ifdef LOG_TEE_TIMESTAMPS
164162
/**/#ifndef _WIN32
165-
/* */#define LOG_TEE_TIMESTAMP_FMT "[%lu]"
163+
/* */#define LOG_TEE_TIMESTAMP_FMT "[%" PRIu64 "]"
166164
/* */#define LOG_TEE_TIMESTAMP_VAL , (std::chrono::duration_cast<std::chrono::duration<std::uint64_t>>(std::chrono::system_clock::now().time_since_epoch())).count()
167165
/**/#else
168-
/* */#define LOG_TEE_TIMESTAMP_FMT "[%llu]"
166+
/* */#define LOG_TEE_TIMESTAMP_FMT "[%" PRIu64 "]"
169167
/* */#define LOG_TEE_TIMESTAMP_VAL , (std::chrono::duration_cast<std::chrono::duration<std::uint64_t>>(std::chrono::system_clock::now().time_since_epoch())).count()
170168
/**/#endif
171169
#else
@@ -219,55 +217,55 @@ enum LogTriState
219217
// USE LOG() INSTEAD
220218
//
221219
#ifndef _WIN32
222-
/**/#define _LOG(str, ...) \
223-
{ \
224-
if (LOG_TARGET != nullptr) \
225-
{ \
226-
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL, ##__VA_ARGS__); \
227-
fflush(LOG_TARGET); \
228-
} \
220+
/**/#define _LOG(str, ...) \
221+
{ \
222+
if (LOG_TARGET != nullptr) \
223+
{ \
224+
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL, __VA_ARGS__); \
225+
fflush(LOG_TARGET); \
226+
} \
229227
}
230228
#else
231-
/**/#define _LOG(str, ...) \
232-
{ \
233-
if (LOG_TARGET != nullptr) \
234-
{ \
235-
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL "", ##__VA_ARGS__); \
236-
fflush(LOG_TARGET); \
237-
} \
229+
/**/#define _LOG(str, ...) \
230+
{ \
231+
if (LOG_TARGET != nullptr) \
232+
{ \
233+
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL "", __VA_ARGS__); \
234+
fflush(LOG_TARGET); \
235+
} \
238236
}
239237
#endif
240238

241239
// INTERNAL, DO NOT USE
242240
// USE LOG_TEE() INSTEAD
243241
//
244242
#ifndef _WIN32
245-
/**/#define _LOG_TEE(str, ...) \
246-
{ \
247-
if (LOG_TARGET != nullptr) \
248-
{ \
249-
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL, ##__VA_ARGS__); \
250-
fflush(LOG_TARGET); \
251-
} \
252-
if (LOG_TARGET != nullptr && LOG_TARGET != stdout && LOG_TARGET != stderr && LOG_TEE_TARGET != nullptr) \
253-
{ \
254-
fprintf(LOG_TEE_TARGET, LOG_TEE_TIMESTAMP_FMT LOG_TEE_FLF_FMT str "%s" LOG_TEE_TIMESTAMP_VAL LOG_TEE_FLF_VAL, ##__VA_ARGS__); \
255-
fflush(LOG_TEE_TARGET); \
256-
} \
243+
/**/#define _LOG_TEE(str, ...) \
244+
{ \
245+
if (LOG_TARGET != nullptr) \
246+
{ \
247+
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL, __VA_ARGS__); \
248+
fflush(LOG_TARGET); \
249+
} \
250+
if (LOG_TARGET != nullptr && LOG_TARGET != stdout && LOG_TARGET != stderr && LOG_TEE_TARGET != nullptr) \
251+
{ \
252+
fprintf(LOG_TEE_TARGET, LOG_TEE_TIMESTAMP_FMT LOG_TEE_FLF_FMT str "%s" LOG_TEE_TIMESTAMP_VAL LOG_TEE_FLF_VAL, __VA_ARGS__); \
253+
fflush(LOG_TEE_TARGET); \
254+
} \
257255
}
258256
#else
259-
/**/#define _LOG_TEE(str, ...) \
260-
{ \
261-
if (LOG_TARGET != nullptr) \
262-
{ \
263-
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL "", ##__VA_ARGS__); \
264-
fflush(LOG_TARGET); \
265-
} \
266-
if (LOG_TARGET != nullptr && LOG_TARGET != stdout && LOG_TARGET != stderr && LOG_TEE_TARGET != nullptr) \
267-
{ \
268-
fprintf(LOG_TEE_TARGET, LOG_TEE_TIMESTAMP_FMT LOG_TEE_FLF_FMT str "%s" LOG_TEE_TIMESTAMP_VAL LOG_TEE_FLF_VAL "", ##__VA_ARGS__); \
269-
fflush(LOG_TEE_TARGET); \
270-
} \
257+
/**/#define _LOG_TEE(str, ...) \
258+
{ \
259+
if (LOG_TARGET != nullptr) \
260+
{ \
261+
fprintf(LOG_TARGET, LOG_TIMESTAMP_FMT LOG_FLF_FMT str "%s" LOG_TIMESTAMP_VAL LOG_FLF_VAL "", __VA_ARGS__); \
262+
fflush(LOG_TARGET); \
263+
} \
264+
if (LOG_TARGET != nullptr && LOG_TARGET != stdout && LOG_TARGET != stderr && LOG_TEE_TARGET != nullptr) \
265+
{ \
266+
fprintf(LOG_TEE_TARGET, LOG_TEE_TIMESTAMP_FMT LOG_TEE_FLF_FMT str "%s" LOG_TEE_TIMESTAMP_VAL LOG_TEE_FLF_VAL "", __VA_ARGS__); \
267+
fflush(LOG_TEE_TARGET); \
268+
} \
271269
}
272270
#endif
273271

@@ -308,7 +306,7 @@ enum LogTriState
308306
#endif
309307

310308
// INTERNAL, DO NOT USE
311-
inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStateSame, std::string filename = LOG_DEFAULT_FILE_NAME, FILE *target = nullptr)
309+
inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStateSame, const std::string & filename = LOG_DEFAULT_FILE_NAME, FILE *target = nullptr)
312310
{
313311
static bool _initialized{false};
314312
static bool _disabled{(filename.empty() && target == nullptr)};
@@ -317,9 +315,6 @@ inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStat
317315
static FILE *logfile = nullptr;
318316

319317
if (change)
320-
#ifndef _WIN32
321-
[[unlikely]]
322-
#endif
323318
{
324319
if (disable == LogTriStateTrue)
325320
{
@@ -334,7 +329,7 @@ inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStat
334329
// Otherwise, process the arguments
335330
else
336331
{
337-
if (log_current_filename.compare(filename) != 0)
332+
if (log_current_filename != filename)
338333
{
339334
_initialized = false;
340335
}
@@ -347,16 +342,13 @@ inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStat
347342
}
348343

349344
if (_initialized)
350-
#ifndef _WIN32
351-
[[likely]]
352-
#endif
353345
{
354346
if (_disabled)
355347
{
356348
// Log is disabled
357349
return nullptr;
358350
}
359-
else
351+
else // NOLINT
360352
{
361353
// with fallback in case something went wrong
362354
return logfile ? logfile : stderr;
@@ -378,10 +370,7 @@ inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStat
378370
}
379371
else
380372
{
381-
if (log_current_filename.compare(filename) != 0)
382-
#ifndef _WIN32
383-
[[likely]]
384-
#endif
373+
if (log_current_filename != filename)
385374
{
386375
if (logfile != nullptr && logfile != stdout && logfile != stderr)
387376
{
@@ -415,7 +404,7 @@ inline FILE *_log_handler1(bool change = false, LogTriState disable = LogTriStat
415404
}
416405

417406
// INTERNAL, DO NOT USE
418-
inline FILE *_log_handler2(bool change = false, LogTriState disable = LogTriStateSame, FILE *target = nullptr, std::string filename = LOG_DEFAULT_FILE_NAME)
407+
inline FILE *_log_handler2(bool change = false, LogTriState disable = LogTriStateSame, FILE *target = nullptr, const std::string & filename = LOG_DEFAULT_FILE_NAME)
419408
{
420409
return _log_handler1(change, disable, filename, target);
421410
}
@@ -444,7 +433,7 @@ inline FILE *_log_enable()
444433
#define LOG_SET_TARGET(target) _log_set_target(target)
445434

446435
// INTERNAL, DO NOT USE
447-
inline FILE *_log_set_target(std::string filename) { return _log_handler1(true, LogTriStateSame, filename); }
436+
inline FILE *_log_set_target(const std::string & filename) { return _log_handler1(true, LogTriStateSame, filename); }
448437
inline FILE *_log_set_target(FILE *target) { return _log_handler2(true, LogTriStateSame, target); }
449438

450439
// INTERNAL, DO NOT USE
@@ -491,19 +480,19 @@ inline void log_test()
491480
#endif
492481
}
493482

494-
inline bool log_param_single_parse(std::string param)
483+
inline bool log_param_single_parse(const std::string & param)
495484
{
496-
if (std::string("--log-test").compare(param) == 0)
485+
if (std::string("--log-test") == param)
497486
{
498487
log_test();
499488
return true;
500489
}
501-
else if (std::string("--log-disable").compare(param) == 0)
490+
else if (std::string("--log-disable") == param) // NOLINT
502491
{
503492
LOG_DISABLE();
504493
return true;
505494
}
506-
else if (std::string("--log-enable").compare(param) == 0)
495+
else if (std::string("--log-enable") == param)
507496
{
508497
LOG_ENABLE();
509498
return true;
@@ -512,9 +501,9 @@ inline bool log_param_single_parse(std::string param)
512501
return false;
513502
}
514503

515-
inline bool log_param_pair_parse(bool check_but_dont_parse, std::string param, std::string next = std::string())
504+
inline bool log_param_pair_parse(bool check_but_dont_parse, const std::string & param, const std::string & next = std::string())
516505
{
517-
if (std::string("--log-file").compare(param) == 0)
506+
if (std::string("--log-file") == param)
518507
{
519508
if (check_but_dont_parse)
520509
{
@@ -573,7 +562,7 @@ inline std::string _log_var_to_string(std::string var)
573562
return var;
574563
}
575564

576-
inline std::string _log_var_to_string(std::vector<int> var)
565+
inline std::string _log_var_to_string(const std::vector<int> & var)
577566
{
578567
std::string buf;
579568
buf.append("[ ");

0 commit comments

Comments
 (0)