Changeset: 6fe755f44157 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6fe755f44157 Modified Files: gdk/gdk_tracer.c gdk/gdk_tracer.h Branch: gdk-tracer Log Message:
Craeted macros to generate enums && show log level per component diffs (truncated from 390 to 300 lines): diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c --- a/gdk/gdk_tracer.c +++ b/gdk/gdk_tracer.c @@ -80,7 +80,12 @@ static bool static bool _GDKtracer_component_exists(COMPONENT comp) { + if(comp == COMPONENTS_COUNT) + return false; + (void) comp; + /* CHECK */ + // Add all the cases in loop return true; } @@ -100,6 +105,26 @@ static void } +static void +_GDKtracer_show_log_level_per_component(void) +{ + // Find max width from components + int max_width = 0; + for(int i = 0; i < COMPONENTS_COUNT; i++) + { + int comp_width = strlen(COMPONENT_STR[i]); + if(comp_width > max_width) + max_width = comp_width; + } + + for(int i = 0; i < COMPONENTS_COUNT; i++) + { + int space = (int) (max_width - strlen(COMPONENT_STR[i]) + 30); + fprintf(stderr, "# %s %*s\n", COMPONENT_STR[i], space, LEVEL_STR[LOG_LEVELS_LIST[i]]); + } +} + + // Prepares a file in order to write the contents of the buffer // when necessary. The file name each time is merovingian_{int}.log static void @@ -172,6 +197,7 @@ gdk_return GDKtracer_init(void) { _GDKtracer_init_log_level_per_component(); + _GDKtracer_show_log_level_per_component(); _GDKtracer_create_file(); return GDK_SUCCEED; } diff --git a/gdk/gdk_tracer.h b/gdk/gdk_tracer.h --- a/gdk/gdk_tracer.h +++ b/gdk/gdk_tracer.h @@ -20,138 +20,153 @@ #define NAME_SEP '_' #define NEW_LINE '\n' -// Print the enum as a string -#define STR(x) #x -#define ENUM_STR(x) STR(x) - // Print only the filename without the path #define __FILENAME__ (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) -/* CHECK */ -// Sort it per layer -// COMPONENTS -typedef enum { +// Print the enum as a string +#define STR(x) #x +#define AS_STR(x) STR(x) - // M_ALL, +#define GENERATE_ENUM(ENUM) ENUM, +#define GENERATE_STRING(STRING) #STRING, - // Specific - ALLOC, - PAR, - ALGO, + - // Modules - GEOM, - LIDAR, - BAM, - FITS, - SHP, +// ADAPTERS +#define FOREACH_ADPTR(ADPTR) \ + ADPTR(BASIC) \ + ADPTR(PROFILER) \ - // SQL_ALL, - SQL_ATOM_TR, - SQL_STATISTICS, - SQL_ORDERIDX, - SQL_OPTIMIZER, - SQL_WLR, - SQL_USER, - SQL_SCENARIO, - SQL_CACHE_TR, - SQL_SYMBOL, - SQL_MVC, - SQL_STORE, - SQL_UPGRADES, - SQL_RELATION, - SQL_RESULT, - SQL_STATEMENT, - SQL_BAT, +typedef enum { + FOREACH_ADPTR(GENERATE_ENUM) +} ADAPTER; - // MAL_ALL, - MAL_MEMO, - MAL_SESSION, - MAL_INTERPRETER, - MAL_SCHEDULER, - MAL_LISTING, - MAL_FACTORY, - MAL_PARSER, - MAL_WLC, - MAL_REDUCE, - MAL_CLIENT, - MAL_OIDX, - MAL_REMOTE, - MAL_INET, - MAL_GROUPBY, - MAL_TABLET, - MAL_OLTP, - MAL_MANIFOLD, - MAL_RESOLVE, - MAL_FCN, - MAL_DATAFLOW, - MAL_MODULE, - MAL_SERVER, - MAL_EXCEPTION, - MAL_NAMESPACE, - MAL_PROFILER, - MAL_MAL, - MAL_DEBUGGER, - MAL_OPT_ALIASES, - MAL_OPT_CANDIDATES, - MAL_OPT_COERCION, - MAL_OPT_COMMONTERMS, - MAL_OPT_PIPES, - MAL_OPT_REMAP, - MAL_OPT_DATAFLOW, - MAL_OPT_EVALUATE, - MAL_OPT_INLINE, - MAL_OPT_JIT, - MAL_OPT_MULTIPLEX, - MAL_OPT_REORDER, - MAL_OPT_PROJECTIONPATH, - MAL_OPT_WLC, - MAL_OPT_CONSTANTS, - MAL_OPT_COSTMODEL, - MAL_OPT_DEADCODE, - MAL_OPT_EMPTYBIND, - MAL_OPT_GENERATOR, - MAL_OPT_JSON, - MAL_OPT_MATPACK, - MAL_OPT_GC, - MAL_OPT_MERGETABLE, - MAL_OPT_MITOSIS, - MAL_OPT_PUSHSELECT, - MAL_OPT_QUERYLOG, - MAL_OPT_OLTP, - MAL_OPT_PROFILER, - MAL_OPT_REDUCE, - MAL_OPT_REMOTE, - MAL_OPT_VOLCANO, - MAL_OPT_MACRO, - MAL_OPT_POSTFIX, - - // GDK_ALL, - GDK_LOGGER, +static const char *ADAPTER_STR[] = { + FOREACH_ADPTR(GENERATE_STRING) +}; + + - COMPONENTS_COUNT // Do not remove - it is used in order to find quickly - // the size of the COMPONENT array - } COMPONENT; - // LOG LEVELS -typedef enum { +#define FOREACH_LEVEL(LEVEL) \ + LEVEL(M_CRITICAL) \ + LEVEL(M_ERROR) \ + LEVEL(M_WARNING) \ + LEVEL(M_INFO) \ + LEVEL(M_DEBUG) \ - M_CRITICAL, - M_ERROR, - M_WARNING, - M_INFO, - M_DEBUG, +typedef enum { + FOREACH_LEVEL(GENERATE_ENUM) +} LOG_LEVEL; - } LOG_LEVEL; +static const char *LEVEL_STR[] = { + FOREACH_LEVEL(GENERATE_STRING) +}; + -// GDKtracer adapters -typedef enum { +// COMPONENTS +#define FOREACH_COMP(COMP) \ + COMP( ALLOC ) \ + COMP( PAR ) \ + COMP( ALGO ) \ + COMP( GEOM ) \ + COMP( LIDAR ) \ + COMP( BAM ) \ + COMP( FITS ) \ + COMP( SHP ) \ + \ + COMP( SQL_ATOM_TR ) \ + COMP( SQL_STATISTICS ) \ + COMP( SQL_ORDERIDX ) \ + COMP( SQL_OPTIMIZER ) \ + COMP( SQL_WLR ) \ + COMP( SQL_USER ) \ + COMP( SQL_SCENARIO ) \ + COMP( SQL_CACHE_TR ) \ + COMP( SQL_SYMBOL ) \ + COMP( SQL_MVC ) \ + COMP( SQL_STORE ) \ + COMP( SQL_UPGRADES ) \ + COMP( SQL_RELATION ) \ + COMP( SQL_RESULT ) \ + COMP( SQL_STATEMENT ) \ + COMP( SQL_BAT ) \ + \ + COMP( MAL_MEMO ) \ + COMP( MAL_SESSION ) \ + COMP( MAL_INTERPRETER ) \ + COMP( MAL_SCHEDULER ) \ + COMP( MAL_LISTING ) \ + COMP( MAL_FACTORY ) \ + COMP( MAL_PARSER ) \ + COMP( MAL_WLC ) \ + COMP( MAL_REDUCE ) \ + COMP( MAL_CLIENT ) \ + COMP( MAL_OIDX ) \ + COMP( MAL_REMOTE ) \ + COMP( MAL_INET ) \ + COMP( MAL_GROUPBY ) \ + COMP( MAL_TABLET ) \ + COMP( MAL_OLTP ) \ + COMP( MAL_MANIFOLD ) \ + COMP( MAL_RESOLVE ) \ + COMP( MAL_FCN ) \ + COMP( MAL_DATAFLOW ) \ + COMP( MAL_MODULE ) \ + COMP( MAL_SERVER ) \ + COMP( MAL_EXCEPTION ) \ + COMP( MAL_NAMESPACE ) \ + COMP( MAL_PROFILER ) \ + COMP( MAL_MAL ) \ + COMP( MAL_DEBUGGER ) \ + \ + COMP( MAL_OPT_ALIASES ) \ + COMP( MAL_OPT_CANDIDATES ) \ + COMP( MAL_OPT_COERCION ) \ + COMP( MAL_OPT_COMMONTERMS ) \ + COMP( MAL_OPT_PIPES ) \ + COMP( MAL_OPT_REMAP ) \ + COMP( MAL_OPT_DATAFLOW ) \ + COMP( MAL_OPT_EVALUATE ) \ + COMP( MAL_OPT_INLINE ) \ + COMP( MAL_OPT_JIT ) \ + COMP( MAL_OPT_MULTIPLEX ) \ + COMP( MAL_OPT_REORDER ) \ + COMP( MAL_OPT_PROJECTIONPATH )\ + COMP( MAL_OPT_WLC ) \ + COMP( MAL_OPT_CONSTANTS ) \ + COMP( MAL_OPT_COSTMODEL ) \ + COMP( MAL_OPT_DEADCODE ) \ + COMP( MAL_OPT_EMPTYBIND ) \ + COMP( MAL_OPT_GENERATOR ) \ + COMP( MAL_OPT_JSON ) \ + COMP( MAL_OPT_MATPACK ) \ + COMP( MAL_OPT_GC ) \ + COMP( MAL_OPT_MERGETABLE ) \ + COMP( MAL_OPT_MITOSIS ) \ + COMP( MAL_OPT_PUSHSELECT ) \ + COMP( MAL_OPT_QUERYLOG ) \ + COMP( MAL_OPT_OLTP ) \ + COMP( MAL_OPT_PROFILER ) \ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list