About

I’m a PhD student in the UPLANG Group at Uppsala University’s Department of Information Technology. I’m interested in programming languages, runtimes and memory safety. My supervisors are Tobias Wrigstad, Eva Darulova, Matthew J. Parkinson.

Projects

Right now, I focus on concurrency safety in managed languages as part of my PhD. The majority of my time is spent on Python, but I do listen in on research regarding Java’s garbage collection and memory management.

Pyrona: Fearless Concurrency for Python

CPython, the reference implementation of Python relies on a Global Interpreter Lock, the GIL, for concurrency safety. Every thread needs to acquire this lock before it can execute Python bytecode. This simplifies the implementation of the runtime but essentially turns every Python project into a single-threaded program, regardless of how many Python threads exist in the process.

In the Pyrona project, we aim to develop a dynamic ownership model for Python that is safe, easy to use and data-race-free by construction. If we succeed, we can enable true concurrency in Python while keeping the simplicity and guarantee that the GIL provides by allowing multiple threads to operate as long as they work on a separate set of objects.

Designing an ownership model for Python comes with challenges. A successful design needs to support existing code and work in the framework of the language. For example, we need to track and enforce ownership dynamically, since Python doesn’t have a statically enforced type system. We’re also required to support existing object topologies, which rules out an ownership model like Rust.