My fourth week of the EPF was mainly about starting to outline the possible scope of my project together with the members of Ipsilon.
As a first warm-up task, I implemented a small C++ program inside evmone in order to evaluate the official Ethereum test set (actually a branch updated by Ipsilon) with respect to the EOF implementation. It was an interesting task that helped to refresh my C++ knowledge. The PR with this implementation can be seen here.
After that, we talked about the possibility of my EPF project being based on one of the following options:
Personally, I felt that my C++ knowledge was not fresh enough to work on a compiler with such a strong impact as Solidity. While Huff could have been interesting, Andrei (who so far has been my mentor/intermediary for Ipsilon) told me that his knowledge of the project was not deep enough to guide someone. Finally, and considering that ETK fulfils several of the conditions I wanted to fulfil in my project (working on a compiler implemented in Rust), option (3) was the final choice.
Again, we chose a small warm-up task to start getting to know the ETK codebase. This time I had to implement the OPCODE MCopy (EIP-5656) in both the assembler and the disassembler. The corresponding PR can be seen here. Next week I hope to get feedback from some of the ETK development team members, merge the PR that implements EIP-5656 and start talking about the possible particularities of the EOF implementation.
On the other hand, I have yet to participate in the weekly Fe development team meeting. During this week, I had some personal problems in the schedule of this meeting and I could not be present, but I hope that next week there will not be any disruption.
Personally I'm interested in this project, because although I couldn't be present during the last meeting, from the conversations on Discord I understand that Fe is at a stage where several ideas still need to be investigated/delimited and there is plenty of room to investigate and contribute ideas.
Over the next week I hope: