This repo is deprecated and we recommend using egglog-python instead.
metadsl
is an exploration of how we can create deeply embedded domain specific languages in Python, in a way that is type safe (plays nicely with Mypy) and feels ergonomic to Python developers. It is meant to be a building block for other libraries to create their own domain specific languages and compile them to different forms.
It currently is not being actively supported and is in need of a refactor to:
- Refactor the type analysis to stop relying on Python's built in type objects and use its own instead.
- Make "abstractions" (aka functions) a first class citizen, instead of the current approach of embedding them as data.
It also needs a compelling downstream user to help drive further development.
If you are interested in either of these topics, feel free to open an issue or reach out directly.
The only reason this projects exists was due to the funding and support from Quansight Labs, from 2018 till 2020.