Mypy Development Roadmap

This is the outline of the current mypy development roadmap. As everything else, this is subject to change at any time.

Milestone 1: Type checker and mypy-to-Python translator [DONE]

Implement type checker for a significant subset of mypy. Support running mypy programs via translation to Python + using CPython (perhaps also PyPy, if Python 2/3 compatibility can be addressed).

The implementation will be good for early adopters and for the evaluation of the programming model.

Mypy development will be mostly done in mypy after this phase (also use C for VM facilities, gc, C API and low-level libraries). Before the switch to mypy is ready, development will be in Alore (that's also why there is no code initially; there will be a switch from Alore to mypy using an automated translator, which would break all branches and could cause all kinds of trouble if not managed carefully).

Schedule: Nov 2012 [DONE]

Milestone 2: Switch to Python-compatible syntax [DONE]

Based on feedback, switch to a new, Python-compatible syntax. Also change the development focus to optional type checking on top of a standard Python implementation instead of on building a new compiler and VM.

Schedule: Jul 2013 [DONE]

Milestone 3: Python 2.x support

Add support for Python 2.7 and potentially earlier Python versions. These are still very widely used and will likely remain so for at least several years.

Schedule: 2014

Milestone 4: More Python and type system features

The focus is on supporting a wider set of Python features and libraries, and on implementing new type system features.

TODO decide which features to implement

Schedule: 2014-2015

Milestone 5: Faster, modular and incremental type checking

Support more efficient modular/incremental type checking. This will be useful especially for large projects.

Schedule: 2015

Milestone 6: Syntax freeze, first alpha release

Disallow any major syntax or language changes that break a lot of code.

Schedule: 2015?

Future tasks

These tasks have not been scheduled yet (in no particular order):