Hello, I'm Jacob. I am a senior BS/MS student at UNC-Chapel Hill. I have been making apps in Swift/SwiftUI for the past few years, and for most of that time, I have been helping other students learn Swift as a leader in a student organization and as a teaching assistant for UNC's Swift and SwiftUI course taught by @samrshi.
Since taking a course on programming languages last fall, I have been independently studying compilers, and getting more comfortable with C++ with the specific end goal of being able to contribute to the Swift compiler. GSoC seems like it would be a great opportunity to get to contribute and move closer to this goal!
I am particularly interested in this project because of the opportunity to expand upon Swift macro functionality, the potential to simplify the compiler through the removal of ad-hoc property wrapper code, and its impact on the greater Swift and SwiftUI community. The project also seems to align well with the languages ongoing push for innovation in the space of metaprogramming.
So far I have read through all of the resources linked in the projects description and created a local build of the compiler that I have started to tinker with. @xedin if you have any advice or resources that could guide me on next steps or help me prepare to write my proposal, it would be greatly appreciated!
Also, I figured it would be useful to pick up a ticket or two that is somewhat related to this project prior to submitting a proposal. I found the following tickets marked 'good first issue' that seemed at least adjacently related to the project. @xedin, would you recommend any of these in particular, or are there any others you think would be better?
- [SR-13903] Make `ApplyInst` a `MultipleValueInstruction` · Issue #56301 · swiftlang/swift · GitHub
- [SR-8507] 'foo bar' could have fixit suggesting missing . rather than just ; or , · Issue #51027 · swiftlang/swift · GitHub
- [SR-11989] Better diagnostic for invalid 'enclosing self' property wrapper subscript · Issue #54422 · swiftlang/swift · GitHub
(sorry in advance for the lengthy post )