Talk

SPy: high-level Python, low-level performance, no overhead

Friday, May 29

16:25 - 16:55
RoomTortellini
LanguageEnglish
Audience levelAdvanced
Elevator pitch

SPy is a Python variant designed for compilation: well-specified, debuggable, and expressive. It consists of a low-level core which gives control and speed comparable to C, Rust and Go, and powerful metaprogramming features which make possible to build high-level zero-cost abstractions. The result is something which is statically typed and as fast as C, but with the feeling and ease of Python.

Abstract

SPy is a Python variant designed for compilation: well-specified, debuggable, and expressive. It consists of a low-level core which gives control and speed comparable to C, Rust and Go, and powerful metaprogramming features which make possible to build high-level zero-cost abstractions. The result is something which is statically typed and as fast as C, but with the feeling and ease of Python.

This talk is a deep dive into the SPy core ideas: in particular, we will explore the internals of the language, show how many builtins are implemented in SPy itself, what “zero cost abstraction” means in practice and some end-to-end example of how high-level Python code is compiled into a low-level fast executable.

TagsCompiler and Interpreters, Performance and scalability techniques, Code Analysis and Typing
Participant

Antonio Cuni

Principal Software Engineer at Anaconda. He is the author of SPy, a core developer of PyScript and PyPy, and one of the founders of the HPy project, which aims to design a better and more modern C API for Python. He loves to write tools from developers for developers, such as Pdb++, fancycompleter and vmprof and he is creator/maintainer/contributor of numerous other open source projects.

He have also been very active in the Python community for years, giving talks at various conferences such as EuroPython, EuroSciPy, PyCon Italia, and many others. He regularly writes on the PyPy blog and on the HPy blog. His main areas of interest are compilers, language implementation, TDD and performance.