* shepherd: hardening error handling
@ 2023-12-08 14:31 Attila Lendvai
2023-12-09 11:01 ` Ludovic Courtès
0 siblings, 1 reply; 3+ messages in thread
From: Attila Lendvai @ 2023-12-08 14:31 UTC (permalink / raw)
To: guix-devel
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, &co. 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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: shepherd: hardening error handling
2023-12-08 14:31 shepherd: hardening error handling Attila Lendvai
@ 2023-12-09 11:01 ` Ludovic Courtès
2023-12-15 19:55 ` Attila Lendvai
0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2023-12-09 11:01 UTC (permalink / raw)
To: Attila Lendvai; +Cc: guix-devel
Hello!
Attila Lendvai <attila@lendvai.name> 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, &co. 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’.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: shepherd: hardening error handling
2023-12-09 11:01 ` Ludovic Courtès
@ 2023-12-15 19:55 ` Attila Lendvai
0 siblings, 0 replies; 3+ messages in thread
From: Attila Lendvai @ 2023-12-15 19:55 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
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)'
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-12-15 19:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-08 14:31 shepherd: hardening error handling Attila Lendvai
2023-12-09 11:01 ` Ludovic Courtès
2023-12-15 19:55 ` Attila Lendvai
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.