Gsoc2020 Localization of Compiler Diagnostic Messages

Hi there, I'm from Serbia and I'm studying at School of Electrical Engineering, University of Belgrade.
I haven't worked on any open source projects but this topic really got me interested.
I've been competing in problem solving competitions for 7 years but really don't know where to start here.
@xedin, I suppose you are the one who is going to answer on bunch of questions I have to ask.

Best regards!

Really excited, Mihailo

Hi Mihailo!

Here are a couple of pointers to get you started:

Source code for the Swift compiler could be found at GitHub - apple/swift: The Swift Programming Language.

Currently diagnostic definitions are located in .def files e.g. DiagnosticsSema.def.
We'd like to change that so diagnostics could be stored in a more accessible format
like JSON or YAML (or something else entirely) to make it easy for (non-technical)
people to contribute new translations.

Another disadvantage of .def files is that they are pre-processed into another format while compiler itself is built. With a new format we'd like this limitation to be lifted to enable changes to diagnostic messages without rebuilding compiler itself e.g. path to the file could be passed via argument to the compiler as well as expected locale.

The most relevant bits of the compiler code are located in DiagnosticEngine, and various DiagnosticConsumer classes. Clients could be found in lib/Sema/CSDiagnostics.cpp.

The more details the better but we'd really like to see how the new format is going to be structured, how diagnostics are going to be verified to use existing ids and correct arguments and performance considerations.

If you have any other questions please let me know!

Also note that draft proposals are due at the end of this week so if you want to participate you'd have to submit your solution before March 30th.

Mentors can only comment until application deadline, after that all of the proposals are locked I believe.

I don't think so, it's primarily mentors who are going to be give feedback on proposal drafts.