What are the expectations for GSoC candidates in general and for the compiler/swiftmodule projects in particular?

Basically the title.
First things first, a short introduction,
My name is Eyad, I am a senior university student and I am currently learning compiler theory mostly on my own, implementing my own language. I program predominantly in C++. Tried Swift a few times, but haven't gotten really into it (yet). In my programming language project, I am still at parsing, haven't done any analysis yet work yet but I have some understanding of it. I haven't gotten very far into reading about analysis in the Engineering A Compiler book because I haven't really gotten into implementing analysis yet, but I could accelerate the theory reading if theory is good enough on its own (more on that in 1).

So with that out of the way, my problem is twofold:

  1. I am not sure what "familiar" means. Does it mean I understand the theory, but haven't implemented it myself before? Or does it mean that I have implemented it at some level before, even if it wasn't particularly good? Or does it mean something else entirely? I don't really know what's being expected here. Would be nice if expectations were a little less vague.
    Same also applies for the swiftmodule project, are there any more expectations beyond familiarity with C++ and Swift?

  2. How does a candidate even apply or "show up"? Other projects tend to mention a few issues or "competency tests" in every proposed project idea that candidates who want to get into that idea kinda have to get through first. Are there any similar processes for Swift? If there aren't, where do I go from "I think I am interested in this idea"? The Swift GSoC page just says to come to the development forum, but it doesn't really make clear what to do when I am on it. Do I just declare that I am interested? What's next?

Would really appreciate answers to these two questions as I am somewhat interested.

@hborla @codafi since I am mostly interested in your ideas I thought it'd be appropriate to tag you.

Thanks in advance! :D

FWIW, here's another thread where I asked similar questions that could help!

1 Like

Appreciate the reply! I did read your thread before posting but I didn't find it to be particularly helpful since yours was more geared towards proposing your own ideas whereas I am not proposing new ideas but just asking questions regarding the already existing ideas and how much the mentors actually expect from an individual so that they are able to work on realizing those ideas.

I really was talking about "proposals" there in the sense of the formal document that you have to submit to GSoC in the end; it would anyways very likely need to be from the ideas list, since otherwise you would first need to find a mentor. So a proposal in the GSoC sense is a paper that elaborates on the idea to tangibly outline what code will be written.

I'm myself still not 100% sure, but from what I've gathered, "familiar" means that it should be possible to prove your familiarity from that formal document you eventually submit, but that document doesn't require supplying any actual implementation, so I believe even "I understand the theory, but haven't implemented it myself before" should suffice. Because you are expected to outline the resulting code at some high level in that document, it will be evident that you are familiar enough if the proposed solution is sound. In other words, if you aren't familiar just now, you will get there just by virtue of needing to explore the problem enough to be able to write up on it.

So far, everyone was very kind to just straight up provide links to the materials you might need based on your particular questions. More concretely, Robert already held a public discussion with somebody on the .swiftmodule project idea, so you might take it from there and if you have further questions, I'm sure you will be welcome to ask them.

But of course, this all is from my perspective as an applicant; project mentors may correct me.


Hi Eyad, I'm thrilled that you're interested in participating in GSoC with Swift!

Yes. For example, for the "Tracking for typechecker’s type inference" project, I would expect that a student has a general understanding of static type checking and type inference as a concept. I would not expect a student to have implemented a type checker. During this time of preparing the application, I expect students to start to explore how Swift's type checker works and come up with a preliminary idea for how to track inferred types.

The first step is to express your interest to the community/specific mentors whose projects you'd like to pursue, and the next step is to ask questions! Ask the mentor any questions that you have about their project, ask if there are any resources that you should read or areas of the compiler that you should start to dig into, etc. After that, start to come up with a more concrete proposal for the project that you're applying for, and discuss it with your potential mentor.

Many of the projects on Swift.org - Project Ideas for GSoC 2021 are vague to allow students to take each project in their own direction. I'll use my "Tracking for typechecker’s type inference" project as an example again - I don't have an exact implementation in mind for this, and I would love for students to come up with their own ideas. The same is true for my property wrapper project. I have some ideas and I can guide students, but this really wouldn't be any fun if I just told a student exactly what to do :slight_smile: this is also meant to be a collaborative experience!

Which ideas of mine and Robert's are you interested in? I believe both of us have several ideas on the potential projects list

Terms of Service

Privacy Policy

Cookie Policy