Week 12: Conclusion of an Amazing Journey

August 8, 2025

← Back to Home

Hi everyone, welcome to the twelfth and the final blog of my GSoC'25 journey. I dedicated this week for reverting Submodule Workarounds from Stdlib in Separate Compilation mode.

I had reverted some workarounds related to submodules in my previous week. But the next submodule workaround, I was working on, involved a very high usage of module procedures in submodules. Since module procedures were implemented by me quite recently and so, it had a some mishandlings and lacked many implementation details. So, reverting this submodule workaround will help in robustifying module procedures for submodules.

The process I followed, to handle errors related to module procedures, was quite simple. I created MREs for the errors which helped me to understand the issue and then, I fixed them one by one. Following is the list of MREs created for errors related to module procedure in submodules :-

All these MREs very quite easy to fix. It basically required some simple handlings. Following is the list of Merged Pull Requests for fixing these issues :-

With these, I was able to revert the submodule workaround involving module procedures. Then, I reverted remaing workarounds from Stdlib for Separate Compilation mode. Link to latest separate compilation branch for Stdlib with these revert commits is sc-lf-11. So, for separate compilation, all submodules workarounds, except for stdlib stats package, are reverted. For Stdlib Stats, we were getting some other failures, unrelated to submodules work, while compiling Parent Module file. Thus, we can hanle this package later on in future once the other errors are fixed or worked around. Then, I updated Separate Compilation branch on CI with these revert commits to prevent any regression in future. The link to Merged Pull Request for setting things on CI is Pull #8260.

These marks the completion of our work on reverting Submodule workarounds from Stdlib in Separate Compilation mode. Then, I shifted my focus to Monolithic compilation mode and started reverting submodule workarounds there. But, here, I was not able make much progress due to time constraints. Still I identified some issues and reported MREs for them. Following is the list of MREs created for errors related to submodules in monolithic compilation :-

This concludes my 12 weeks of GSoC Journey. A journey that taught me not just to fix the existing bugs but also to design and implement new features. The journey, though filled with challenges and triumphs, proved to be a valuable learning experience that would help me in my future endeavours. My GSoC weeks are complete but still I will continue to work on submodules especially for monolithic compilation as still there are a lot of things which needs to be handled.

Overall, I worked for 27 hours this week and enjoyed the work that I did in the twelfth week . I would, also, like to thank Ondrej Certik, Harshita Kalani, Pranav Goswami and all the other LFortran members for their reviews and suggestions which helped me a lot to tackle new difficulties in my complete GSoC Journey. I look forward to contribute further with the same excitement and enthusiasm, and to support LFortran in the best possible way.