GSoC 2020 项目构想

此页面包含我们在 GSoC 2020 期间渴望开发的潜在项目构想列表。如果您想作为 GSoC 学生申请,请按照以下两个步骤开始

  1. 通读此页面,找出您感兴趣的项目构想。
  2. 查看开发论坛以联系潜在的导师。

潜在项目

编译器诊断消息的本地化

描述

诊断在编程语言体验中起着非常重要的作用。对于开发者生产力来说,编译器能够在任何情况下(尤其是不完整或无效的代码)产生适当的指导至关重要。

目前,诊断消息仅提供英文版本,这限制了它们对任何精通该语言的人的用处。我们希望来自任何背景的人都能够学习和高效地使用 Swift 编程语言,因此,作为实现此目标的第一步,编译器应该能够以用户熟悉的任何语言生成诊断消息。

预期成果/益处/可交付成果

所需技能

C++ 知识

潜在导师

Pavel Yaskevich

预期难度

简单/中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息

Swift 模块浏览器

描述

如今,.swiftmodule 格式相当不透明,我们工具可以提供的最佳见解是使用 llvm-bc-analyzer 完整转储整个模块。提供一个原生工具来探索 Swift 模块的内容将是一个令人难以置信的调试辅助工具和教学工具。它还将使学生接触到 Swift 编译器的核心组件。

预期成果/益处/可交付成果

所需技能

C++ 的粗浅知识,熟悉 Swift

潜在导师

Robert Widmann、Alexis Laferriere

预期难度

中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息

类型检查器类型推断的跟踪

描述

Swift 使用编译时类型推断来实现清晰简洁的语法。有时,程序员不清楚为什么 Swift 在他们的源代码中推断出特定类型。探索类型推断来源的工具将消除类型检查器推断出程序员不期望的类型时的困惑,并且将极大地增强他们对语言的理解。

预期成果/益处/可交付成果

所需技能

熟悉静态类型检查的概念

潜在导师

Holly Borla

预期难度

中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息

Swift 的 LTO 支持

描述

Swift 支持多个级别的优化,包括允许跨源文件进行优化的全模块优化。扩展对优化的支持以启用 LTO 优化将允许更积极的内联、死代码删除和轮廓优化。

预期成果/益处/可交付成果

所需技能

需要 C++ 经验,因为这将涉及处理大型 C++ 代码库。

潜在导师

Saleem Abdulrasool

预期难度

中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息

为 SourceKit-LSP 实现语义高亮

描述

SourceKit-LSP 是 Swift 和基于 C 的语言的语言服务器协议的实现。有一个提案,将语义高亮支持添加到协议中。该项目是在 SourceKit-LSP 中使用来自 sourcekitd 的语义高亮支持为 Swift 实现新的语义高亮 API。

预期成果/益处/可交付成果

所需技能

潜在导师

Ben Langmuir

预期难度

简单/中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息

Linux 上的 Swift 调试支持

描述

LLDB 是 Swift 的首选调试器。调试器比编译器更依赖于底层平台,因此,在操作系统之间保持实现对等性更具挑战性。该项目的总体目标是在 Linux 上提供与 macOS 上相同的调试体验。

预期成果/益处/可交付成果

所需技能

C++ 知识。了解调试器的工作原理是一个加分项。了解 swift 对象内存布局是一个加分项,但可以在实习期内获得。

潜在导师

Davide Italiano/Adrian Prantl

预期难度

简单/中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息

Swift 中的服务器分布式追踪

描述

在 Swift 中构建大规模分布式系统需要与旨在在 iOS 或 macOS 上运行的传统 Swift 程序截然不同的解决方案。服务器系统必须扩展以处理数百万个并发请求,并且该团队正在设计库和工具,使用户能够以富有表现力和安全的方式编写和检查此类高度并发的系统。

预期成果/益处/可交付成果

所需技能

潜在导师

Konrad Malawski、Tom Doron

预期难度

中等

联系方式

swift 论坛中发帖,并带有标签 gsoc-2020,以获取更多信息