unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).