Hi,

I’ve just pushed PyObjC 3.0.1 to PyPI. This is a major update to the previously 
uploaded release and contains a rewrite of the core bridge itself.  All tests 
pass without problems, but there could still be problems. 

With this update the bridge is a lot lazier about when to add methods to the 
class proxy __dict__: methods are now only added when they are actually used. 
This should result in slightly better performance, and more importantly removes 
some very ugly code that tried very hard to keep the __dict__ up to date 
without there being support for detecting changes to a class in the Objective-C 
runtime. 

Because of this it is more important that ever to have “from objc import super” 
at the top of modules that use super calls in subclasses of Cocoa classes. In 
previous releases this was already necessary to avoid a race condition, but 
with this release you will definitely run into problems when using 
builtin.super.  I am working on a PEP that adds a new API to Python that would 
remove the need of a custom super class, but that will at best be present in 
Python 3.5 (and that’s assuming the PEP is accepted).

The metadata and framework wrappers have not yet been updated with support of 
OSX 10.9, let alone support of 10.10. That means that those wrappers work fine 
on OSX 10.9, but any special support for API’s introduced in OSX 10.9 is not 
present yet.  Adding such support is on my todo list, but is a significant 
amount of work and sadly enough requires updating some tooling I used 
previously (which means yet more work).

Getting out this release took way to much time, I started work on this during a 
Dropbox hack week in Januari 2013 (!).  It’s highly unlikely that this rewrite 
and cleanup would have happend without the uninterrupted week of hacking during 
that event, it what just not something I could have managed in the couple of 
(fragmented) hours a week I can spent on PyObjC at the moment. 

Ronald

P.S.  I’ve also done some more optimisation work with PyObjC 3.0 which has sped 
up method calls by removing malloc calls in a number of cases. That seems to 
have been more effective for speed enhancements than the core rewrite itself ;-)
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
https://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to