guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shepherd] several patches that i deem ready


From: Attila Lendvai
Subject: Re: [shepherd] several patches that i deem ready
Date: Wed, 24 Jan 2024 10:56:46 +0000

> About "cheaper code path when a log level is disabled at runtime",
> perhaps it can be improved in guile-lib, but otherwise that's a nice
> list. I just wish we had a good logging library in Guile and could stop
> reinventing the wheel left and right.


i've made my judgement that the logger in guile-lib was never applied seriously 
when i relized that it stores the enabled state in a hashtable (which must be 
looked up for every log statement).

i made sure the log statements have a unique syntax, so the underlying 
machinery can be replaced easily later, and then i moved on.


> OK. For levels greater than debug, they I see them as glorified
> comments (executable comments as yo wrote), so I don't see a strong
> reason to attempt to hide them or treat them specially. In Python
> (which strives to be readable), we typically break logging lines (which
> are concatenated for free inside the parens -- default Python behavior),
> and that doesn't hurt readability in my opinion, and means we can just
> follow the usual style rules, keeping things simple.


my experience is different. i found myself only ever looking at log statements 
when i'm debugging something, regardless of the level, and including other 
people's code. and then i just toggle line wrap with the press of a button.

must be related to my habit that i usually put more effort into making the code 
more self-documenting (readable) than i put into writing informal comments and 
documentation. and rethinking my "executable comment" metaphore: these log 
statements serve much less as comments than reporting the temporal state and 
program flow.

but my primary aim is to color it all gray, and i don't immediately know how to 
do that in emacs for multiline sexp's (i.e. balanced parens). this is the 
primary reason our team just kept them on one line, but the flexibility of 
toggling word wrap as needed is also nice: the essetial part is always within a 
reasonable margin, and the rest can be read when word-wrap is enabled.

if requested, then i'm willing to re-format the log statements if i can find a 
way to still color it all gray. it's important that logging stays out of sight 
while reading the code.


> Thanks for working on this, I'm sure it'll help many, myself included,
> following the execution of Shepherd more easily.


my pleasure!

in my experience when a project doesn't have proper logging, backtraces, error 
handling hygene, and warning-free compilation, then inefficient debugging 
quickly eats up more time than it would take to implement these features 
properly.

unfortunately, guix and guile is not very good on this front, so i found myself 
working on these, too. such investment rarely pays off for the first bug, but 
it pays off very well in the long run.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“A political situation is the manifestation of a parallel psychological problem 
in millions of individuals. This problem is largely unconscious (which makes it 
a particularly dangerous one!)”
        — Carl Jung (1875–1961), Letters, vol.1 pg. 535




reply via email to

[Prev in Thread] Current Thread [Next in Thread]