LPython: Novel, Fast, Retargetable Python Compiler
Ubaid Shaikh (~ubaid7) |
Description:
LPython is a Python compiler that can compile type-annotated Python code to optimized machine code. LPython offers several backends such as LLVM, C, C++, WASM, Julia and x86. LPython features quick compilation and runtime performance. LPython also offers Just-In-Time (JIT) compilation and seamless interoperability with CPython.
Based on the novel Abstract Semantic Representation (ASR) shared with LFortran, LPython’s intermediate optimizations are independent of the backends and frontends. The two compilers, LPython and LFortran, share all benefits of improvements at the ASR level. “Speed” is the chief tenet of the LPython project. Our objective is to produce a compiler that both runs exceptionally fast and generates exceptionally fast code.
Outline:
- Introduction to LPython
- Basics of how compilers work, tokens, syntax tree, semantic tree, code generation
- Different flags available with LPython
- How to approach issues and strategy to solve them
- Setting up the Development Environment for LPython
- Picking up a good first issue from the LPython's GitHub repository
- Writing code to fix issues and adding new integration/reference tests
- Making your first commit to LPython and submitting a pull request
- Reviewing pull requests submitted by other contributors
Conclusion:
We are excited to have you join us for this sprint and contribute to the LPython project. Together, we can make Python a faster and more powerful language for developing high-performance applications.
Prerequisites:
The following tools would be needed for local development of LPython:
- conda
- gcc/g++/clang
- git
- Ideally a Linux/Mac Machine
You will be expected to have some understanding of the following:
- Python
- Git & GitHub workflow
Content URLs:
- Setup Instructions
- Running Tests
- LPython Design
- Contributing (shared with LFortran)
- Documentation (shared with LFortran)
Speaker Info:
Ubaid Shaikh received his B.Tech degree in Computer Science and Engineering from Indian Institute of Technology Indore, India.
He is currently a Compiler Developer at GSI Technology working on LPython and LFortran Compilers. In the past, he has interned at Development Bank of Singapore (DBS Bank) and has been a Google Summer of Code (GSoC) Fellow.