The 2024 Google Summer of Code idea lists are out

As of late February, Google Summer of Code (GSoC) has published its official list of sponsoring open-source organizations, and each organization has independently published its own list of project ideas. People interested in doing a GSoC project (sort of a summer internship for open source software) should submit a proposal application — the quite short application window is March 18 to April 2.

If you’re a fan of my “trivial relocatability” content, or just want to help relocation’s progress into the mainstream of C++, you might be particularly interested in these three GSoC sponsors:

  • Ste||ar HPX. Their ideas list includes a sequel to last summer’s successful project implementing hpx::uninitialized_relocate; this summer’s goal is to parallelize hpx::uninitialized_relocate (and perhaps also hpx::copy?) for ranges that overlap. Parallelizable relocation is a building block for parallel containers such as ParlayLib’s sequence<T>.

  • GCC. Their ideas list doesn’t include anything relocation-related — but you could propose something! For example: Adding __is_trivially_relocatable(T) to the compiler along these lines but better. Implementing a way to mark types such as deque trivially relocatable (i.e. [[gnu::trivially_relocatable]]). Rewriting libstdc++’s __is_bitwise_relocatable in terms of your new __is_trivially_relocatable(T), so that aggregates containing deques get the same benefit as deque itself. (Godbolt.)

  • LLVM/Clang. Their ideas list doesn’t include anything relocation-related — but you could propose something! For example: Clang provides an __is_trivially_relocatable(T) builtin, but it often gives wrong answers (#69394, #77091). Fixing this would allow projects such as Folly, Abseil, Qt to start conditionally using Clang’s builtin, say, in the Clang 19 timeframe. You could also implement relocation optimizations in libc++’s vector and swap_ranges.

Again, the application window for GSoC participants to submit a proposal application opens on March 18 and closes on April 2.

Posted 2024-03-05