[GNC-dev] gnc:debug changes

Christopher Lam christopher.lck at gmail.com
Sat Mar 7 00:39:00 EST 2020

Hi Mike.

I'd thought that the log level would be an invariant per session. If log
levels could be amended mid-session I'd like to see how.

The gnc:debug was optimized because there was (gnc:debug pricelist) whereby
a long pricelist (which is realistic) would obligatorily lead to
string-join and map in strify, and was definitely a *major* slowdown.
Conclusion: we don't want to call strify with a long list unnecessarily.

If log level is not an invariant, assuming qof_log_check is fast, would be:

(define (gnc:debug items)
  (when (qof-log-check "gnc" QOF-LOG-DEBUG)
    (gnc-scm-log-debug (strify items))))

On Sat, 7 Mar 2020 at 05:25, Mike Alexander <mta at umich.edu> wrote:

> I spent some time yesterday figuring out why gnc:debug never produced
> any output regardless of the gnc.scm log level.  I tracked it down to
> commits 42b6fb9 and b3a4cd6 from last July.  The actual bug is trivial
> (they test for the log level for "gnc" instead of "gnc.scm") but I
> wonder if b3a4cd6 is a good idea.  It has the effect of binding the
> gnc.scm log level on the first call to gnc:debug and ignoring subsequent
> changes to it.  This means that later calls to (qof-log-set-level
> "gnc.scm" ...) will have no effect.  It is sometimes useful to turn on
> and off Scheme debugging around sections of code you care about.
> The optimization from b3a4cd6 seems to be relatively minor.  The
> arguments to gnc:debug are evaluated when debugging is off even with
> this change (something I verified) and the call to strify is avoided
> even without it.  All you're really avoiding is the actual call to
> gnc:debug and the call to qof-log-check.  I propose reverting back to
> 42b6fb9 with the bugs in it fixed.  Is this ok? If so I'll push a
> change.
>          Mike
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

More information about the gnucash-devel mailing list