1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 22:10:21 +02:00
guile/THANKS
Neil Jerram 0ebbcf43c4 Remove AC_SYS_RESTARTABLE_SYSCALLS and related code
As the Autoconf documentation says, "These days portable programs
[...] should not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays
whether a system call is restartable is a dynamic issue, not a
configuration-time issue."

In other words, if we ever rely on HAVE_RESTARTABLE_SYSCALLS, we are
at the mercy of any code that Guile happens to be linked with, because
that code could install a signal handler without the SA_RESTART flag,
and then a Guile system call could unexpectedly return EINTR.

The readline part of this goes back to this problem report:
http://sources.redhat.com/ml/guile/2000-05/msg00177.html; and is an
excellent example of the above paragraph.  It was noted during the
discussion that undefining HAVE_RESTARTABLE_SYSCALLS would fix the
problem, but that solution wasn't adopted - I guess because Guile was
still using cooperative threads then (not pthreads) and so there was a
significant concern (whether founded or not) that not using
restartable syscalls (where available) could lead to a loss of
performance.

Now Guile's default mode of operation is with pthreads, where we
already don't assume that HAVE_RESTARTABLE_SYSCALLS is reliable, so
there is no possible further performance loss.  And in any case we
really have no choice, if we want correct operation.

Thanks to Sylvain Beucler for reporting this and suggesting the fix.

* configure.in (AC_SYS_RESTARTABLE_SYSCALLS): Removed.

* doc/ref/posix.texi (Signals): Remove statement that Guile always
  sets SA_RESTART flag.

* guile-readline/configure.in (GUILE_SIGWINCH_SA_RESTART_CLEARED):
  Remove this setting, together with its test code.
  (HAVE_RL_PRE_INPUT_HOOK): Remove this setting and its code, as no
  longer needed.

* guile-readline/readline.c (sigwinch_enable_restart): Removed.
  (scm_init_readline): Remove setting of rl_pre_input_hook.

* libguile/_scm.h (SCM_SYSCALL): Remove the definition that relies on
  HAVE_RESTARTABLE_SYSCALLS.

* libguile/scmsigs.c (scm_sigaction_for_thread): Don't always set the
  SA_RESTART flag if available.  Update docstring accordingly.
  (scm_init_scmsigs): Remove code that sets SA_RESTART flag for all
  signals.

* THANKS: Add Sylvain.
2009-06-23 23:04:41 +01:00

124 lines
2.7 KiB
Text

Contributors since the last release:
Rob Browning
Ludovic Courtès
Julian Graham
Stefan Jahn
Neil Jerram
Gregory Marton
Antoine Mathys
Thien-Thi Nguyen
Han-Wen Nienhuys
Jose A Ortega Ruiz
Kevin Ryde
Bill Schottstaedt
Richard Todd
Andy Wingo
Sponsors since the last release:
The Linux Developers Group
For fixes or providing information which led to a fix:
David Allouche
Martin Baulig
Fabrice Bauzac
Sylvain Beucler
Carlo Bramini
Rob Browning
Adrian Bunk
Michael Carmack
Stephen Compall
Brian Crowder
Christopher Cramer
David Diffenbaugh
Hyper Division
Alexandre Duret-Lutz
Nils Durner
John W Eaton
Clinton Ebadi
David Fang
Barry Fishman
Charles Gagnon
Peter Gavin
Eric Gillespie, Jr
Didier Godefroy
Panicz Maciej Godek
John Goerzen
Mike Gran
Szavai Gyula
Roland Haeder
Sven Hartrumpf
Eric Hanchrow
Sam Hocevar
Patrick Horgan
Ales Hvezda
Peter Ivanyi
Wolfgang Jaehrling
Aubrey Jaffer
Paul Jarc
Steve Juranich
Richard Kim
Bruce Korb
René Köcher
Matthias Köppe
Matt Kraai
Daniel Kraft
Miroslav Lichvar
Jeff Long
Marco Maggi
Gregory Marton
Antoine Mathys
Dan McMahill
Roger Mc Murtrie
Tim Mooney
Han-Wen Nienhuys
Jan Nieuwenhuizen
Hrvoje Nikšić
Stefan Nordhausen
Roland Orre
Peter O'Gorman
Pieter Pareit
Jack Pavlovsky
Arno Peters
Ron Peterson
David Pirotte
Carlos Pita
Ken Raeburn
Juhani Rantanen
Andreas Rottmann
Hugh Sasse
Werner Scheinast
Bill Schottstaedt
Frank Schwidom
Thiemo Seufer
Scott Shedden
Alex Shinn
Daniel Skarda
Dale Smith
Cesar Strauss
Rainer Tammer
Richard Todd
Issac Trotts
Greg Troxel
Aaron M. Ucko
Stephen Uitti
Momchil Velikov
Linas Vepstas
Panagiotis Vossos
Neil W. Van Dyke
Aaron VanDevender
Andreas Vögele
Michael Talbot-Wilson
Michael Tuexen
Mark H. Weaver
Jon Wilson
Andy Wingo
Keith Wright
William Xu
;; Local Variables:
;; coding: utf-8
;; End: