Hi everyone, welcome to the fifth blog of my GSoC'25 journey. A major update of my work in my fifth week is the Completion of compilation of the Test Chaining Maps from the hashmaps package. Now, Test Chaining Maps file is executing correctly, with workarounds, without any compile-time or run-time failures. A pull request was created to set it up on CI to prevent any sort of regression. Link to Pull Request responsible for setting it up on CI is here.
I started the weeks by creating workarounds to continue the compilation of Test Chaining Maps. Most of the workarounds were similar to that from Test Open Maps and hence, repeated. Although the Implementation of Test Chaining Maps was not exactly same as Test Open Maps and so, some new workarounds had to created and corresponding MREs were made when needed.
Workarounds created this week can be tracked through latest hashmaps branch n-lf-hashmaps-4.
Among these workarounds, some were quite tricky to create and so, I needed to go through the current handling of its MRE by LFortran to get the exact cause. Following are the workarounds created this week that required a lot of efforts :-
- Workaround to resolve linker issue
- Workaround for Issue #7712
- Workaround for handling previous keys
- Workaround for Infinite loop issue
Also, I worked on two issues in this week to get to know about the exact fault in them which helped me a lot to create workarounds and make progress. Following is the link to issues on which I worked in this week :-
With all these efforts, I was able to make Test Chaining Maps execute correctly without any errors or failures. I added all my commits to the latest branch and created the pull request to set them up on CI to conclude Test Chaining Maps. After this I started to work on examples of hashmaps package and currently, I am able to execute half of them correctly by making small workarounds. Also, I am adding error stop conditions in the ones that are correctly working.
I am planning to wrap up Hashmaps Package in next two days. Currently, for hashmaps, we are left with few examples and a Test file. Remaining Test file is a sort of repitition of Test Open Maps and Test Chaining Maps and so, it won't take much efforts. Also, we need to make hashmaps package work with separate compilation but that too won't take much time as currently, we are just facing some code generation errors using separate compilation. So, If things work, then I will be able to wrap up Hashmaps package in this weekend.
Then Onwards, I am planning to start my work on the Design of Submodule which is the next major milestone of my GSoC journey. Initially, I will be identifying all the errors in stdlib that are related to Submodule and will create MREs for them. This will give us some concrete information regarding submodule design and make the process smoother.
Overall, I worked for 33 hours this week and enjoyed the work that I did in the fifth week and would 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. I am looking forward to continue my journey in the next week with the same excitement and enthusiasm and plan to complete my proposed tasks as quickly as I can.