GSoC’24 - LPython: First Two Week

GSoC
Code
Internship
Python
LPython
Author

Vipul Cariappa

Published

June 7, 2024

The last 2 weeks were rough. With the existing implementation of Just-In-Time (JIT) compilation we use for REPL, we were facing issues on Windows.
Say you declare a function f in the first REPL block, and function g in the second block. Such that function g calls the function f. And in the 3rd block, you call g; JIT would not be able to locate the function f. We were facing this issue only on Windows.
Currently, on Windows, we are not able to compile with debug symbols; We use the LLVM provided by the conda package manager, the LLVM version it provides, and the MSVC compiler we use in Windows, together do not allow a debug build. This inability to have a debug build made it very difficult to get to the source of the problem we were facing.
With lots of trial and error, I fixed the issue. I referred to LLVM’s documentation on using JIT and adapted our existing implementation accordingly.

A lot of my work focuses on libasr. As the libasr is shared between LFortran and LPython, many of the changes introduced to libasr need to be tested in both LFortran and LPython.

Merged Pull Requests

Open Pull Requests

Issues Opened


For the next week, I plan to continue working on implementing the ability to print top-level expressions for the remaining data types that are not yet implemented. Hopefully, I will not be stuck like the last 2 weeks with a difficult to debug problem.