unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* why asyncs were created
@ 2002-09-02 22:55 Tom Lord
  2002-09-02 23:42 ` Marius Vollmer
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Lord @ 2002-09-02 22:55 UTC (permalink / raw)
  Cc: lord



Since there is talk of removing the async abstraction, I thought I
would mention, just to provide information, why it was added in the
first place.

The kernel has a built-in facility for interrupting a process, pushing
a new call frame onto a stack, and invoking some function -- handling
a return or longjmp from that function specially -- and treating
interrupts specially while that function runs.

That's a useful facility, but not one that has a unique natural
mapping into RnRS scheme.   

Asyncs were designed to model that facility while reconciling it with
the restrictions against executing arbitrary Scheme code at arbitrary
times.

The farther Scheme signal handling is removed from some abstraction
like asyncs, the less well the corresponding kernel facility is
reflected in the language.

Having designed system asyncs, user-defined asyncs were, I felt, a
natural and easy generalization.

-t



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-09-03  0:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-09-02 22:55 why asyncs were created Tom Lord
2002-09-02 23:42 ` Marius Vollmer
2002-09-03  0:05   ` Tom Lord
2002-09-02 23:57     ` Marius Vollmer

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).