The reference implementation of the Woma Programming Language compiler.

View on GitHub

Woma Programming Language

This is the README for the Woma Programming Language specification; see Aspidites for the reference compiler implementation written in Python.

If this wasn't what you were looking for there is another project WoMa that uses the PyPI namespace woma.

Why Woma?

When developing C extensions for Python it is common to struggle with debugging. Being written in C, there is no memory safety which makes failures common. These failures tend to take the form of segmentation faults which can be especially difficult to debug. This is especially true of remote builds where you may not even have access to the proper system resources to find the source of a bug. There are tools like Cython that can help to reduce the chances of encountering an error due to memory violations. These tools, however, are not 100% effective and you can still be left with particularly hard to debug errors. Woma aims to improve this by using contract-based constraints on function parameters and return values. This is combined with syntax that encourages writing and composing short functions. Additionally, error messages are highly informative and Woma only allows procured access to Python internals.


Woma has a specification that is published as a series of WEEP(Woma Extension & Evaluation Proposals), see





If you'd like to help with the woma standard as a developer check out the Issues page or fork and make a pull request. Now, for early woma adopters that do not wish to do any technical writing, reporting inconsistencies or contradictions is always appreciated. If you'd like to help out financially, Aspidites' maintainer accepts Liberapay.