Empowerment of individuals is a key part of what makes open source work, since in the end, innovations tend to come from small groups, not from large, structured efforts. - Tim O’Reilly
Welcome everyone, this is your host Nikhil Maan aka Sc0rpi0n101 and today I would like to tell you about the Community Bonding Period of GSoC 2019 and also talk about my project and organization in detail.
Google Summer of Code (GSoC) is a 12-week program, sponsored by Google to promote open-source among various college students around the world, where the people selected are assigned to projects from different open-source organizations working over the summer contributing to open-source software. It is aimed at bringing more students and organizations to open-source and reduce the gap between Students and Organizations by providing a platform to communicate and work.
You can learn more about GSoC from the Official Website
My project is to create a parser that can convert C and Fortran source code to SymPy syntax and have functions implemented in the SymPy API which can be used to do the conversion from within SymPy.
I’ll be creating C parser for SymPy using Clang to extract the C AST and convert that to SymPy friendly syntax, and I’ll use LFortran to extract Fortran ASR and convert that to SymPy syntax.
To learn more about the project, you can read the proposal
SymPy is a Python library for symbolic computation. It provides computer algebra capabilities either as a standalone application, as a library to other applications, or live on the web as SymPy Live or SymPy Gamma.
Website : SymPy
Documentation: SymPy Docs
The official repository for the project: SymPy repo.
LFortran is a modern open-source (BSD licensed) interactive Fortran compiler built on top of LLVM. It can be used in a CLI in an interactive prompt and it can also be used from Jupyter as a Fortran kernel. It is a great resource for anyone who likes to perform scientific calculations in Fortran.
Documentation: LFortran Docs
The official repository of the project is hosted on Gitlab, check it out at LFortran Repo
To keep up to date on the development of LFortran and anyone interested in contributing to the project can join us on Zulip.
Community Bonding Period
The Google Summer of Code 2019 community bonding period was from May 6, 2019, the day accepted student projects were announced to May 27, 2019, when the coding officially started. If you want to know more about what I did in Week 1, you can visit my Week 1 blog: Week 1: Let the Grind Begin.
The Community Bonding Period is the time between the proposal getting accepted and the coding starts. The accepted students can bond with each other over the organization communication channels and GSoC groups. You really get to meet a lot of people from all over the world working in all type of languages and organizations. The channels are full of excited, eager to learn and work individuals and it really gets you motivated to work.
Community Bonding Period is also the time to set up the payment method and improve the Project Title and Description if required. It is also the time to discuss with the mentors about the project and what the plan will be to complete the project in the required time. One can even start early by setting up the meetings early and start working on the project.
I spent most of my time finishing up my ongoing patches with SymPy and bonding with my fellow GSoCers on the community and gsoc channels. My university had 9 students selected for GSoC this year and all of them were a part of our Open-Source community ALiAS
My first official meeting with the mentors Ondřej Čertík and Aaron Meurer was set up on May 22. The overall plan and which external dependencies are to be used were discussed, and the initial plan on what to do for the first weeks was discussed.
Here’s a summary of the meeting for those interested:
- Clang’s Python API will be used for parsing C.
- Check out cppyy’s documentation to figure how it can be used in the project.
- Use LFortran’s ASR is to be used for parsing Fortran and then converted to SymPy syntax.
- Set up initial implementations of the conversions and work on them.
- Help in the development of LFortran and report errors whenever encountered.
Then May 22 to May 27 were used to set up LFortran and try basic examples to understand it’s working and read through the documentation of the requirements and figure out what had to be done.
Tune in next tiem to how much work has been done till Week 2. The next “Week 2” blog is also about to be out soon.
Subscribe to the blog to get weekly updates of my work and other experiences.