Abstract
Solang is a solidity compiler for Solana, Ewasm and substrate. What is required in the project three main subprojects: add overflow detection to integers represented with more than 64 bits, improve Solang's parser to continue parsing after encountering a parser error and finally, generate more optimized LLVM-IR for solidity code containing array bound checks.
Mentors and Mentee
Mentor | Mentor | Mentee |
---|---|---|
Sean Young Time zone: BST | Lucas Steuernagel Timezone: BRT | Salaheldin Soliman Timezone: GMT+2 |
Deliverables
- Overflow detection for big unsigned/signed integers
- improved LLVM-IR for array boundary checks
- improved diagnostics generated by Solang's parser
Milestones
Evaluation 1 :
- Creating temporary variables that hold dynamic array lengths after pushes and pops
- Replace ArrayLength expression with the temporary variable mapped to the dynamic array
Evaluation 2 :
- Make changes to __mul32() (the function that handles multiplication of big integers), and change how is it called by Solang's code emitter.
- Add a signed version to __mul32 that handles signed numbers.
- Add overflow detection to pow().
Evaluation 3 :
- Integrate Larpop's error recovery technique for Solang's parser
Evaluation 4 :
- Implement a recovery technique for semantic errors.