Thursday 20 December 2012

Mypy Development Update #1

The mypy project has been progressing smoothly during the last two or so weeks after the source release.

Latest changes:

  • I added a lot of content to the mypy language overview. It now covers more language features, explains common issues encountered when using static typing and describes the translation process to Python in some detail.
  • The wiki now contains instructions for adding support for additional Python modules by creating library stubs.
  • There have been several other updates to the wiki. It's starting to be useful tool for developers and users.
  • Several bugs in the mypy implementation have been fixed, and the type checker now supports type inference for lambdas. Also type inference of generic functions such as map has improved. Code like this now works as expected:
        print(list(map(str, [1, 2, 3])))
        
  • Work on the C back end has begun. I started porting some 2000 lines of code from my earlier Alore-to-Java compiler prototype to mypy. It's still going to take a few more days to port the code. If everything goes as planned, we should be able to compile some simple mypy code to reasonably efficient native code in 3 or 4 weeks, perhaps.
  • Even though the development focus is now on the C back end, I will also continue improving the type checker and the mypy-to-Python translator. One of the important milestones will be being able to port some Python standard library modules to static typing without too much effort.

I'm going to continue posting periodic updates like this that highlight the latest developments in the project.