With WWDC and beta of a new major release of macOS approaching fast it is high time to push out a new release for PyObjC. PyObjC 7.3 is primarily a bugfix release, with one minor feature.
I expect this to be the last release for PyObjC 7.x and will start working on PyObjC 8 soon.
-
issue 356: Explicitly error out when building for unsupported architectures
“python setup.py build” will now fail with a clear error when trying to build PyObjC for a CPU architecture that is no longer supported (such as 32-bit Intel)
-
issue 319: Use memset instead of bzero in C code to clear memory
Based on a PR by GitHub user stbdang.
-
issue 348: Fix platform version guard for using protocols in MetalPerformanceShaders bindings
-
issue 344: Fix test for CFMessagePortCreateLocal
The tests didn’t actually test calling the callback function for CFMessagePortCreateLocal.
-
issue 349: Change calls to htonl in pyobjc-core to avoid compiler warning
The original code had a 32-bit assumption (using ‘long’ to represent a 32-bit value), and that causes problems for some users build from source.
-
issue 315: Fix binding for
SecAddSharedWebCredential(Security framework)Trying to use this function will no longer crash Python.
-
issue 357: Calling
Metal.MTLCopyAllDevices()no longer crashesThe reference count of the result of this function was handled incorrect, causing access to an already deallocated value when the Python reference was garbage collected.
-
issue 260: Add manual bindings for AXValueCreate and AXValueGetValue in ApplicationServices
Calling these crashed in previous versions.
-
issue 320, 324: Fix the type encoding for a number of CoreFoundation types in the Security bindings
-
issue 336: Add core support for “final” classes
It is now possible to mark Objective-C classes as final, that is to disable subclassing for such classes.
This is primarily meant to be used in framework bindings for matching Objective-C semantics.
The “final” feature adds two new APIs:
-
A keyword argument “final” when defining a new class
class MyClass (NSObject, final=True): pass -
An read-write attribute
__objc_final__on all subclasses of NSObject.
Note that this is a separate concept from typing.final.