GSOC 2017 Ideas
This is the D Google Summer of Code page for 2017 - it is currently under construction. If you are interested in participating in the 2017 GSOC as either a student or mentor, and want to do something related to D, please feel free to contact our GSOC administrator Craig Dillabaugh (firstname dot lastname at gmail dot com).
Contents
Timeline
The timeline for GSoC for 2016 can be found here, the 2017 timeline has not yet been posted.
Ideas
Plenty of challenging and important projects exist in the D world. They range from writing new or improving existing modules of D's standard library (Phobos), working on its compilers (Compilers), shaping GUI libraries for D, integrating D with other languages and more.
Sample GSoC Idea
Give a brief description of your project idea.
- Detailed ideas are best.
- If possible give an example of exactly what tasks would be involved.
- Nevertheless, students may decide to come up with their own ideas.
Level of Difficulty
TODO
Its Good To Know
In this section please point prospective students to any resources that could help them get up to speed on the project topic. These might include:
- related project GitHub pages.
- DConf talks or other videos relevant to the project.
- Suggested reading material, such as books, blogs, etc.
Proposed Project Mentors: Your Name Here!
SDC Project - D Compiler as a Library
Project Desription:
The SDC project (https://github.com/deadalnix/SDC) is an effort to provide a D compiler as a library. Any ideas to further the development of this project are welcome, but for a student who would like a specific project we propose the following
- Start by implementing with @property feature of D. This feature will allow a D programmer to create functions that are called using the same syntax as variable access.
- Using the @property feature the student will be able to implement the runtime support for slices and associative arrays. The operations to implement are as follows:
- Implement arrray operations like concatenation and appending, and implement a sound memory management strategy for the underlying data.
- Implement a generic and efficient hash table. The data structure and algorithms used must be flexibile enough to be adapted to any type of data that might be stored in the table. A concurrent version of the table is need for shared data.
- Finally, the student will implement masquerading of D syntax into calls for the runtime.
- Integrate LLVM's new JIT infrastructure in SDC, the On-Request Compilation JIT (ORCJit) API. This would simplify the implementation of certain D features such as Compile Time Function Evaluation (CTFE) for SDC.
Level of Difficulty
TODO
Its Good To Know
- Please watch Amaury's DConf talk on SDC.
- SDC is developed in D (of course) so you will need to be proficient in D by the time you start coding.
- You should have taken at least one course on compilers, or at the least be willing to educate yourself in this regard. There is a decent course availabe through Coursera https://www.coursera.org/course/compilers
- You should familiarize yourself with classicial data structures for arrays and have knowledge of various schemes for table implementations, (it is worthwhile to read up on hopscotch and robin hood hashing).
- SDC uses LLVM for code generation, so some familiarity with LLVM will be required (see http://llvm.org/docs/tutorial/index.html).
Proposed Project Mentor: Amaury Sechet
Additional Project Ideas
We will include a section for more poorly defined projects that some adventurous student might be interested in.
Ideas From Previous Years
GSoC idea pages from past years:
- GSoC 2016 Ideas (accepted, 4 slots)
- GSoC 2015 Ideas (not accepted)
- GSoC 2014 Ideas (not accepted)
- GSoC 2013 Ideas (not accepted)
- GSoC 2012 Ideas
- GSoC 2011 Ideas
Tips for students
Daniel Pocock has written a detailed blog about initiatives students can take if they want to have a serious chance of being selected in GSoC without a focus on one specific organization.
To learn more about potential mentors check our mentor page here.
Tips for Mentors
If you are interested in mentoring, please check out the organization administrator and mentor manual for more information.