Hi all, So this has already been discussed in several other threads, but I think the current plan is: once Robert releases 0.12.1, we'll pull all the changes from there into the cython-closures branch, and turn cython-closures into cython-devel for 0.13. I was chatting with Robert, and I think I'm happy to be the release manager for 0.13, unless there are any objections ...
A few quick notes: - I just finished (taking forever to) add a big battery of tests in the cython-closures branch. I ended up adding a wee bit of code, and then working out a few reference counting bugs that we hit with closures. I've committed all the tests into the closures branch (as a series of 5 files; gcc and g++ were choking with everything in one file). The tests are actually an old battery of tests in Scheme from the compilers courses I took in undergrad -- I wrote a little compiler that converted these to Python (modulo one issue I punted on due to a difference with the way Scheme handles scoping for letrec). I verified that Scheme, Python, and Cython gave the same results for each of these, and the refnanny didn't complain at all, so I feel pretty confident in the closures code. (Big thanks to the professors who first came up with the battery of tests, and yes, I did check with them before committing the tests.) - In the process of doing this, the refnanny complained a few times -- so I wrote myself some notes on how reference counting should be working. I realized these might be useful in general, so I've added a little extra text and posted it on the wiki: http://wiki.cython.org/refcounting - There is one place where I really didn't test out the closures code much, especially with an eye towards memory leaks/reference counting troubles, and that's error handling. If you have some code that uses nested functions and a bunch of error handling, I'd love to either (1) hear what happens when you run it with the refnanny turned on, or (2) have you send me a copy/post it somewhere so we can give it a go. This is good -- I think the next step is to start working on the generators implementation that came up in some other threads, and is outlined on the wiki. I'm planning on starting on that soon, if no one beats me to it -- and if my six-month old daughter decides to start sleeping through the night, I might actually move faster than molasses in January. ;) -cc _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
