Re: shepherd: hardening error handling

2023-12-15 Thread Attila Lendvai
while i found this bug:

https://issues.guix.gnu.org/67839

i was reading the discussion under its probable root cause:

https://github.com/wingo/fibers/issues/29

and it suggests that Guile before 3.0.5 had important bugs WRT fluids, which 
are relied upon in shepherd. maybe Guile 2.2 can not be used reliably even for 
current Shepherd?

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“It is only when compassion is present that people allow themselves to see the 
truth. […] Compassion is a kind of healing agent that helps us tolerate the 
hurt of seeing the truth.”
— A.H. Almaas (1944–), 'Elements of the Real in Man (Diamond Heart, 
Book 1)'




Re: shepherd: hardening error handling

2023-12-09 Thread Ludovic Courtès
Hello!

Attila Lendvai  skribis:

> the codebase seems to use catch/throw, and at some places with comments like 
> "for Guile 2.2". what is the minimum guile version that the shepherd codebase 
> wants to support? the README says "GNU Guile 3.0.x or 2.2.x". is this still 
> intended? or can i assume guile 3? i.e. use with-exception-handler, 
> raise-exception, guard,  instead of catch/throw with key and args?

The source of truth is ‘configure.ac’, which reads:

  GUILE_PKG([3.0 2.2])

CI checks that (and in fact ‘guile2.2-fibers’ currently fails to build
due to a non-deterministic test failure):

  https://ci.guix.gnu.org/eval/latest/dashboard?spec=shepherd

I think we’ll keep it that way in 0.10.x, but for 1.0.x, we can drop
2.2.

When we drop 2.2, we can probably switch ‘with-exception-handler’ & co.,
with care.

Thanks,
Ludo’.



shepherd: hardening error handling

2023-12-08 Thread Attila Lendvai
dear Guix,

i'm working on hardening shepherd's error handling and logging to debug an 
issue that i'm facing. these changes escalated quickly, so i'm writing to 
clarify a few things before i shape the codebase into a direction that the 
maintainers will not accept.

the codebase seems to use catch/throw, and at some places with comments like 
"for Guile 2.2". what is the minimum guile version that the shepherd codebase 
wants to support? the README says "GNU Guile 3.0.x or 2.2.x". is this still 
intended? or can i assume guile 3? i.e. use with-exception-handler, 
raise-exception, guard,  instead of catch/throw with key and args?

some WIP commits are available at:

https://codeberg.org/attila-lendvai-patches/shepherd/commits/branch/attila

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“It is only when the people become ignorant and corrupt, when they degenerate 
into a populace, that they are incapable of exercising the sovereignty. 
Usurpation is then an easy attainment, and an usurper soon found. The people 
themselves become the willing instruments of their own debasement and ruin.”
— James Monroe (1758–1831), 5th president of the USA