Welcome back to my GSoC 2025 journey! This week, I continued working on compiling
toml-f
with the LFortran
compiler. After creating several workarounds and MREs in Week 1-2, I came to a point where workarounds seems infeasible, so I started to fix MREs generated for toml-f. LFortran compiler's OOP support is still evolving, and many of the issues I encountered were related to that. So I also brainstormed some on how classes should be implemented correctly.
Work done in this week:
- Created additional MREs for issues encountered while compiling toml-f with LFortran, especially around complex OOPs. Some example MREs are listed below:
-
#7423 - Handle ClassType variable passed to subroutine which expects a StructType
-
#7446 - Handle assignment of ClassType variable to StructType in select type
-
#7427 - Handle struct parameters members inside a functionCall and print
-
#7420 - Handle ArraySection of parameter array
- Merged fixes for some of the reported MREs into LFortran’s main branch, which helped progress toml-f compilation further. Fixes include:
-
#7424 - generalise argument of StringChr to have int8 kind
-
#7425 - don't do getelementptr for 1D parameter arrays
-
#7429 - correct `m_original_name` for structs in nested pass
-
#7503 - allow struct to class association if struct is its extended type
These contributions are helping reduce the number of blocking issues in compiling toml-f, and each merged fix marks an important step forward.
I worked for around 19 hours this week, focusing on creating MREs, resolving the issues and pushing fixes to LFortran.
I’d like to thank
Ondřej Čertík
and
Pranav Goswami
once again for their support, review, and encouragement.
Plan for next week:
- Work on fixing more toml-f related failures that are still open and hard to workaround.
- Start compiling the fortran-shlex library with LFortran and create MREs for issues found during the compilation process. This is independent code so we can do in parallel which will boost progress towards compiling FPM.