In June 2023, I was selected for Linux Foundation mentorship to contribute to the Solang compiler . Solang is a Solidty compiler that targets Solana and Polkadot. It is written in Rust and uses LLVM as the backend. The mentorship focused on enriching the language server’s functionalities, which would make for a better development experience.
Working The language server operates in conjunction with the compiler, using the Abstract Syntax Tree (AST) it generates.I use Go at my current job and recently I had to dive into the innards of go scheduler to understand a problem we were facing. I learnt a lot during this time and decided to implement my own user space threads library that is inspired by golang, but with a generous number of simplifications.
Background There are loads of well written articles1 that explain the internal workings of Go runtime.Recently I have been using Cheat Engine to look at processes’ memory at runtime. This got me thinking if I could do the same without using Cheat Engine. I decided to write a program that could be attached to a running process and which could tell me was running at a given point in time. This sounds an awful lot like what profilers do, doesn’t it?. I narrowed down the target processes to arbitrary python programs run using CPython, as I was somewhat familiar with CPython internals and wanted to avoid the complexity that comes with natively compiled programs.