* doco futures
@ 2003-06-03 0:05 Kevin Ryde
2003-06-03 12:55 ` Marius Vollmer
0 siblings, 1 reply; 3+ messages in thread
From: Kevin Ryde @ 2003-06-03 0:05 UTC (permalink / raw)
[-- Attachment #1: Type: text/plain, Size: 888 bytes --]
A small start at getting some stuff out of the NEWS file and into the
manual.
* scheme-scheduling.texi (Futures): New section.
Dunno if make-future or the C functions should appear too. I'll leave
that to an executive decision.
Futures
=======
Futures are a convenient way to run a calculation in a new thread, and
only wait for the result when it's actually needed.
Futures are similar to promises (*note Delayed Evaluation::), in that
they allow mainline code to continue immediately. But `delay' doesn't
evaluate at all until forced, whereas `future' starts immediately in a
new thread.
- syntax: future expr
Begin evaluating EXPR in a new thread, and return a "future"
object representing the calculation.
- Scheme Procedure: future-ref f
Return the value computed by the future F. If F has not yet
finished executing then wait for it to do so.
[-- Attachment #2: scheme-scheduling.texi.futures.diff --]
[-- Type: text/plain, Size: 1319 bytes --]
--- scheme-scheduling.texi.~1.10.~ 2003-05-05 10:18:26.000000000 +1000
+++ scheme-scheduling.texi 2003-06-01 08:55:41.000000000 +1000
@@ -12,6 +12,7 @@
* Dynamic Roots:: Root frames of execution.
* Threads:: Multiple threads of execution.
* Fluids:: Thread-local variables.
+* Futures:: Delayed execution in new threads.
@end menu
@@ -647,6 +648,30 @@
when control enter or leaves the established dynamic extent.
@end deffn
+
+@node Futures
+@section Futures
+@cindex futures
+
+Futures are a convenient way to run a calculation in a new thread, and
+only wait for the result when it's actually needed.
+
+Futures are similar to promises (@pxref{Delayed Evaluation}), in that
+they allow mainline code to continue immediately. But @code{delay}
+doesn't evaluate at all until forced, whereas @code{future} starts
+immediately in a new thread.
+
+@deffn {syntax} future expr
+Begin evaluating @var{expr} in a new thread, and return a ``future''
+object representing the calculation.
+@end deffn
+
+@deffn {Scheme Procedure} future-ref f
+Return the value computed by the future @var{f}. If @var{f} has not
+yet finished executing then wait for it to do so.
+@end deffn
+
+
@c Local Variables:
@c TeX-master: "guile.texi"
@c End:
[-- Attachment #3: NEWS.futures.diff --]
[-- Type: text/plain, Size: 1213 bytes --]
--- NEWS.~1.393.~ 2003-05-22 11:39:29.000000000 +1000
+++ NEWS 2003-05-31 15:12:07.000000000 +1000
@@ -278,27 +278,10 @@
version string without the final micro-version number. See "Changes
to the distribution" above.
-** Futures
+** Futures: future, future-ref
-Futures is a way of providing an alternative evaluation policy, very
-similar in principle to "promises". Like promises, futures allow the
-main process to continue instantly, but while promises postpone
-evaluation ("lazy" evaluation) until the value is requested, futures
-immediately starts evaluation in a parallel thread.
-
-Futures are good when you want to express that "I'll need the value of
-this computation sometime soon" and want to allow processing to go on
-in the background until that time arrives.
-
-** New syntax: future FORM
-
-Begin evaluation of FORM in a parallel thread and return the future
-immediately. (Akin to 'delay'.)
-
-** New procedure: future-ref FUTURE
-
-Return the computed value of the future. Wait if the computation is
-not finished. (Akin to 'force'.)
+Futures are like promises, but begun immediately in a new thread. See
+"Futures" in the reference manual.
** New syntax: parallel FORM ...
[-- Attachment #4: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: doco futures
2003-06-03 0:05 doco futures Kevin Ryde
@ 2003-06-03 12:55 ` Marius Vollmer
2003-06-04 16:22 ` Kevin Ryde
0 siblings, 1 reply; 3+ messages in thread
From: Marius Vollmer @ 2003-06-03 12:55 UTC (permalink / raw)
Kevin Ryde <user42@zip.com.au> writes:
> A small start at getting some stuff out of the NEWS file and into the
> manual.
Excellent!
> Dunno if make-future or the C functions should appear too. I'll leave
> that to an executive decision.
Yes, I think they should appear. It is good to be able to create a
future with a function as well as with syntax.
The C functions should appear as well.
--
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3 331E FAF8 226A D5D4 E405
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: doco futures
2003-06-03 12:55 ` Marius Vollmer
@ 2003-06-04 16:22 ` Kevin Ryde
0 siblings, 0 replies; 3+ messages in thread
From: Kevin Ryde @ 2003-06-04 16:22 UTC (permalink / raw)
Marius Vollmer <mvo@zagadka.de> writes:
>
> Yes, I think they should appear. It is good to be able to create a
> future with a function as well as with syntax.
>
> The C functions should appear as well.
Beaut, I added them.
I didn't add future-cache-status, since it looks a bit like merely a
development tool.
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-06-04 16:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-03 0:05 doco futures Kevin Ryde
2003-06-03 12:55 ` Marius Vollmer
2003-06-04 16:22 ` Kevin Ryde
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).