diff --git a/GSoC-2014-Ideas.md b/GSoC-2014-Ideas.md index 54487ad..5d2caeb 100644 --- a/GSoC-2014-Ideas.md +++ b/GSoC-2014-Ideas.md @@ -18,7 +18,7 @@ The following list of projects are just some ideas that the community and the de **Description:** -Implement proper coroutines that provide light-weight collaborative multi-tasking. The coroutines must be cooperative - this means a coroutine is suspended only when it explicitly yields. The coroutines must never be migrated across threads - this means that of all the coroutines started from a thread, exactly one is running at any point in time while the others are suspended. Other semantic details are to be nailed down as part of the project. +Implement proper coroutines that provide light-weight collaborative multi-tasking. The coroutines must be cooperative - this means a coroutine is suspended only when it explicitly yields. The coroutines must never be migrated across threads - this means that of all the coroutines started from a thread, exactly one is running at any point in time while the others are suspended. Other semantic details are to be nailed down as part of the project, see http://www.inf.puc-rio.br/~roberto/docs/corosblp.pdf for a good overview of coroutines. Nimrod already supports "closure iterators" which are comparable to Python's generators. However closure iterators are much less powerful than proper coroutines because they don't allow capturing the full call stack. This means, for instance, that closure iterators cannot be recursive.