This feels all right, prepare a commit changing other SVN stuff to this new system and mail me so I don't leave svn broken for too long.
Ready to commit as soon as you send the patch converting other stuff. Regards, On Sun, Aug 16, 2009 at 9:32 PM, Andre Dieb<[email protected]> wrote: > - Added eina_log to Eina.h > - Removed debug fprintf, do not use eina_safety for (level > d->level) > check, it floods the screen > > On Sun, Aug 16, 2009 at 8:54 PM, Andre Dieb <[email protected]> > wrote: >> >> Another attempt attached, see modifications list and inline comments >> below. >> >> - DOM is now a prefix: EINA_LOG_DOM_(level) >> - renamed EINA_COLOR_NOTHING to EINA_COLOR_RESET >> - fixed loop problem at pending domains parse >> - removed eina_log_msg_* funcs, they're kept on eina_error >> - removed trailing whitespaces >> - changed colors >> - domain free happens now on unregister() >> - shutdown ignores deleted entries >> - added a test case for level color normalization (if negative, show it >> with the lowest color possible - crit. If higher than debug, show it with >> light blue) >> >> I couldn't avoid ##__VA_ARGS__ on macros, help would be good. >> >> On Sun, Aug 16, 2009 at 11:50 AM, Gustavo Sverzut Barbieri >> <[email protected]> wrote: >>> >>> On Sun, Aug 16, 2009 at 5:45 AM, Andre Dieb<[email protected]> >>> wrote: >>> > One more thing, >>> > >>> > On Sun, Aug 16, 2009 at 5:26 AM, Andre Dieb >>> > <[email protected]> >>> > wrote: >>> >> >>> >> Sorry for the HTML! :) >>> >> >>> >> On Sat, Aug 15, 2009 at 10:39 PM, Gustavo Sverzut Barbieri >>> >> <[email protected]> wrote: >>> >>> >>> >>> On Sat, Aug 15, 2009 at 5:55 PM, Andre >>> >>> Dieb<[email protected]> >>> >>> wrote: >>> >>> > Changes: >>> >>> > >>> >>> > Module name is now eina_log (but I didn't delete eina_error yet, as >>> >>> > we >>> >>> > should delete it only when the transition is completed) >>> >>> > Docs on header and basic doc on .c file, but there's a lot of room >>> >>> > for >>> >>> > doc >>> >>> > improvement >>> >>> > Save name on domains >>> >>> > Clean realloc code >>> >>> > Keep parsing EINA_LOG_LEVELS even when user types wrong (e.g. >>> >>> > domain1:level1,domain2:,domain3,domain:5) >>> >>> > Migrate old global logger code to global logger (i.e. remove old >>> >>> > deprecated >>> >>> > functions) >>> >>> >>> >>> arghhhhhh... HTML MAIL! >>> >>> >>> >>> now to the points >>> >>> - _DOM is not a suffix, rather a prefix namespace... like >>> >>> EINA_LOG_ERR and EINA_LOG_DOM_ERR... >>> >>> - I remember Sun compiler barfing at ##__VA_ARGS__, maybe we need to >>> >>> avoid that? Vincent?? (avoid that is define just as (...) and user is >>> >>> obligated to give at least one parameter, fmt. That makes things >>> >>> uglier IMHO) >>> >> >>> >> That == define as "..." ? Should it be done with ... ? >>> >> I'm sorry, I didn't follow. >>> >>> ## is a "hack" to remove the last "," if no arguments are provided. >>> So these would work similarly >>> >>> X(a, ...) bla(a, ##__VA_ARGS__) >>> X(...) bla(__VA_ARGS__) >>> >>> tests >>> >>> X(1, 2, 4) bla(1, 2, 4) >>> X(1) bla(1) >> >> Here's how it is now. Could you please point how to avoid ## ? >> >> #define EINA_LOG(DOM, LEVEL, fmt, ...) \ >> eina_log_print(DOM, LEVEL, __FILE__, __FUNCTION__, __LINE__, fmt, >> ##__VA_ARGS__) >> >> #define EINA_LOG_DOM_CRIT(DOM, fmt, ...) \ >> EINA_LOG(DOM, EINA_LOG_LEVEL_CRITICAL, fmt, ##__VA_ARGS__) >> >> >>> >>> >>> >>> >>> - _Eina_Log_Level define a value < 0 (EINA_LOG_LEVEL_MIN = >>> >>> INT32_MIN) so compilers don't optimize that enum as an unsigned >>> >>> integer, causing problems for users trying to specify something like >>> >>> -1 for "more critical" >>> >>> >>> >>> - +typedef int Eina_Log; "too much", I'd use it as integer, no need >>> >>> to typedef. >>> >> >>> >> This typedef was already on the code, it was for Eina_Error (a handle >>> >> for >>> >> registered errors). Just remove it ? >>> >>> argh... if it was there, keep it. >>> >>> >>> >>> - keep these as "eina_error", you're fixing error->log, but having >>> >>> error codes as log codes is too much, like broking and not fixing =) >>> >>> This holds true for eina_log_msg_register and friends... >>> > >>> > Put these eina_error_msg_* functions into eina_log or keep eina_error >>> > only >>> > for that? >>> >>> keep it for these things >>> >>> >>> >>> +/** >>> >>> + * @var EINA_LOG_OUT_OF_MEMORY >>> >>> + * Log identifier corresponding to a lack of memory. >>> >>> + */ >>> >>> +EAPI extern Eina_Log EINA_LOG_MSG_OUT_OF_MEMORY; >>> >>> - colors should be improved, for example (even the old code is not >>> >>> good) >>> >>> +static const char *_colors[EINA_LOG_LEVELS] = { >>> >>> + EINA_COLOR_YELLOW, // EINA_LOG_LEVEL_CRITICAL >>> >>> + EINA_COLOR_RED, // EINA_LOG_LEVEL_ERR >>> >>> + EINA_COLOR_YELLOW, // EINA_LOG_LEVEL_WARN >>> >>> + EINA_COLOR_NOTHING, // EINA_LOG_LEVEL_INFO >>> >>> + EINA_COLOR_GREEN, // EINA_LOG_LEVEL_DBG >>> >>> +}; >>> >>> for me, the more "red", more dangerous... more "green" better... So I >>> >>> usually use as rule in my debugs: >>> >>> - light (\033[1m) red = critical >>> >>> - regular (dark) red = error >>> >>> - yellow = warning >>> >>> - green = info >>> >>> - light blue = debug >>> >>> - regular blue = more than debug >>> >>> >>> >>> things I told you in previous mails: >>> >>> >>> >>> - trailing whitespaces!!! >>> >> >>> >> I couldn't find any trailing whitespaces, could you please point them? >>> >>> grep -n '[ ]\+$' eina_logging_domains5.diff | cut -d: -f1 | tr '\n' ',' >>> >>> 10,26,450,1314 >> >> neat! >> >>> >>> >>> >>> >>> - have you tested the parse of broken EINA_LOG_LEVELS? Note this >>> >>> + level = strtol((char *)(end + 1), &tmp, 10); >>> >>> + if (tmp == (end + 1)) continue; >>> >>> you do not change start, what happens? infinite loops... you need to >>> >>> have start = next pair, so need to search for "," and update start to >>> >>> that.... or add an "end" label right after appending to pending list >>> >>> and "goto end" instead of continue. >>> >>> - eina_log_shutdown() should ignore already deleted entries. >>> >>> - eina_log_domain_register() should not free domains, they should be >>> >>> freed in eina_log_domain_unregister() >>> >>> >>> >>> >>> >>> -- >>> >>> Gustavo Sverzut Barbieri >>> >>> http://profusion.mobi embedded systems >>> >>> -------------------------------------- >>> >>> MSN: [email protected] >>> >>> Skype: gsbarbieri >>> >>> Mobile: +55 (19) 9225-2202 >>> >> >>> >> Thanks a lot for the patience, I hope I can learn with these mistakes >>> >> :-). >>> >>> =) >>> >>> -- >>> Gustavo Sverzut Barbieri >>> http://profusion.mobi embedded systems >>> -------------------------------------- >>> MSN: [email protected] >>> Skype: gsbarbieri >>> Mobile: +55 (19) 9225-2202 >> >> >> >> -- >> André Dieb Martins >> >> Embedded Systems and Pervasive Computing Lab (Embedded) >> Electrical Engineering Department (DEE) >> Center of Electrical Engineering and Informatics (CEEI) >> Federal University of Campina Grande (UFCG) >> >> Blog: http://genuinepulse.blogspot.com/ > > > > -- > André Dieb Martins > > Embedded Systems and Pervasive Computing Lab (Embedded) > Electrical Engineering Department (DEE) > Center of Electrical Engineering and Informatics (CEEI) > Federal University of Campina Grande (UFCG) > > Blog: http://genuinepulse.blogspot.com/ > -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -------------------------------------- MSN: [email protected] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
