Just to mention that GSOC deadline is Feb 19, 2021 if we want to participate.
So, what would some ideas be? Looking at the old page, current RFCs, and git/forum activity, here are a few unfinished/contentious directions in Nim space that look interesting to me
Nim Compiler
Standard Library
Tools and Infra:
Incremental Compilation, Concepts, Async: Continuations
So a student, generally unexperienced in Nim, often without much CS knowledge, shall solve these task on which the brightest Nim devs work since years?
Some years ago I saw a female student working on improving a Gnome game or converting it to Vala in a GSOC task. I think game was "five in a row" or something. That is more the typical task for GSOC students. Well I have seen really smart students, maybe 10 years ago someone worked on a PCB topological autorouter for the gEDA project, creating some thousand lines of C code which no other one was able to understand, and of course he vanished fast after the GSOC period without really finishing it. So the code was removed from the gEDA projects some years later.
Yup, I call that stuff "academic abandonware". It's certainly common.
You can take a look at pages like https://summerofcode.withgoogle.com/archive/2020/organizations/4947391960055808/
to see what people have achieved before. Working on hard advanced, stuff requires a bright student and an active mentor. If you think what I listed is too far out of scope, add more relevant stuff to the list.
I propose finally fixing the GUI story!
we want a portable and idiomatic gui libs, of the ones i tested, nimx and nigui looked best but had so few controls even for a very simple app.
i haven't tried gintro or wxnim, they might be complete and portable enough.
I agree with Stefan, we can't expect the students to be super advanced on concepts or continuations and even if they are they are more likely to work on Haskell or OCaml than Nim. Similarly, problems that involve generics/static including symbol resolution/visibility are likely to complex to tackle in 3 months of a student given the ramp up time to understand the type system in the compiler.
We would likely have more impact on concrete stuff that don't require millions of tests to get stable enough for use. Things like:
More advanced things should not be on the critical path of the Nim compiler (no IC, async, continuations), however exploring niche stuff that is relegate to much later is interesting:
Better OpenCL, better Nvidia Cuda C++ or better AMD HIP C++ integration mentioned in the GSoC 2015 is interesting as well. (Stage 1 would be just setuping the compilers, and step 2 would be AST to C++ codegen), can mentor on stage 1 and some easy PoC, would need help on the codegen part.
Today perhaps Vulkan Compute would be the most general solution that supports the most GPU vendors and platforms.