Friday 3:15 p.m.–4 p.m.
Getting Hy on Python: How to implement a Lisp front-end to Python
Paul Tagliamonte
- Audience level:
- Intermediate
- Category:
- Python Internals
Description
Abstract
This talk will spend time walking through a Lisp front-end called "Hy" that compiles down to Python bytecode by way of Python AST. The process of importing, compiling and running Hy in a way that is transparent to Python helps to demonstrate how you can use these tools to target the Python runtime in ways that folks don't generally take advantage of.
(cuddles, the cuttlefish, our mascot)
The talk will focus on some lesser-known parts of Python internals, such as:
AST, such as why it's a good tool to have, when to use it, and how Hy uses AST to create Python code to be run.
Brief overview of some of the changes between Python 2.x AST and Python 3.x AST
How we can trick the Python debugger to debug Hy by correctly annotating the AST
PEP 302 import hooks, how we can use these to allow custom code to be run in a transparent way to Python
Look over core Python formats, such as the
.pyc
, and how we can create a.pyc
file from Hy code.
The goal of this talk is to motivate people to learn more about Python, and start to think of Python in a more sophisticated and nuanced runtime, not unlike the JVM.