Sunday, February 09, 2014

Mystery Machine update.

I haven't been working very hard on this recently , but it isn't a dead project. I hit a problem a year ago which sent me spinning in another direction for a bit. I intended to blog about it separately as it is I believe a weakness in Python as a language when using in a parallel environment.

I found it because MysteryMachine uses threads for responsiveness in the case of blocking syscalls . I've spent a long time thinking about it and about a writing a PEP about the fix. The closest PEP is PEP419 , but I had limited success writing a blog article to capture my thoughts.

In the end a comment from Guido - about handling the issue differently - struck home and I realised I had all of that framework already, I just needed to make a whole lot of simple changes to MysteryMachine. I did and committed those changes a few weeks ago. But it doing so I discovered something else.

You see when I last worked on MysteryMachine my primary development environment was Debian Lenny (5.0) . Thing have moved n since than and I've upgraded my main machine not just to Wheezy (the current stable release  - version 7.0) but to the test release codenamed Jessie. This is relevant because the standard python2.5 setup for MysteryMachine is no longer part of the Operating system. I've managed to created virtualenvs for testing 2.5, 2.6, 2.7 just. The python 2.5 environment was a bit of challenge to setup.

As a result I'm putting user on notice that support for python2.5 will disappear at the next milestone release (probably 0.30). I don't intended even then to immediately remove the python2.5 support code - and there is code in there to specifically support the python2.5 environment - but python2.5 will be removed from my standard testsuite.