diff --git a/GSoC-2014-Ideas.md b/GSoC-2014-Ideas.md index c68cc96..5ee385a 100644 --- a/GSoC-2014-Ideas.md +++ b/GSoC-2014-Ideas.md @@ -4,7 +4,16 @@ Below is a list of project ideas for the 2014 GSoC Application for Nimrod. You w # Projects ## Compiler -**Add support for coroutines** +**Add support for full coroutines** + * Full coroutines in contrast to Nimrod's closure iterators can capture the full call stack. + * Needs inline assembler to implement the stack switching. + * The GC needs to support conservative marking of multiple stacks + * In particular the write barrier in the GC which does the 'isOnStack' check needs to be changed. + * Using a bloom filter for quick testing whether an address belongs to some stack is likely to pay off. + * Creating a coroutine needs to register a new stack to the GC. + * Deleting a coroutine needs to unregister the stack to the GC. + * Builtin 'yld' must save the current stack pointer so that the GC knows which part of the stack is really in use. + **Fix bugs with iterators/generics** **Fix/Expand Compiler as a Service features**