Skip to content

Commit 100adfe

Browse files
author
Your Name
committed
fix build system for -fobjc-tao flag mpa -p mulle-project-commit --ignore-untracked --boring --safe-amend fix build system for -fobjc-tao flag
1 parent eb774c4 commit 100adfe

File tree

4 files changed

+119
-17
lines changed

4 files changed

+119
-17
lines changed

RELEASENOTES.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,82 @@
1+
## 0.24.0
2+
3+
4+
feat: improve thread safety and object lifecycle management
5+
6+
* Enhance thread affinity (TAO) support
7+
- Add mulleTAOStrategy parameter to mulleGainAccess for safer thread transfers
8+
- Improve thread safety checks and validation
9+
- Add documentation for TAO principles and testing
10+
11+
* Refactor object lifecycle management
12+
- Rename NSCopyObjectWithAllocator to MulleObjCInstanceCopyWithAllocator
13+
- Change MulleObjCInstanceDeallocate to `_MulleObjCInstanceFree`
14+
- Remove NS prefix from linkable symbols for better Darwin compatibility
15+
- Add `mulle_atomic_id_t` for atomic ivar access
16+
17+
* Improve thread and locking infrastructure
18+
- Simplify MulleObject locking implementation
19+
- Move MulleObjCLockFoundation into MulleObjC
20+
- Rename MulleObject to MulleDynamicObject
21+
- Update NSThread API for clearer thread lifecycle management
22+
- Add MulleThreadGetOrCreateCurrentThread function
23+
24+
* Other improvements
25+
- Add support for C-array, struct and union handling in NSInvocation
26+
- Add class interposing capability
27+
- Improve byte swapping and endian handling
28+
- Add new container key/value callbacks
29+
- Fix NSRange accessor functions
30+
31+
32+
33+
* **BREAKING** NSCopyObjectWithAllocator is now MulleObjCInstanceCopyWithAllocator
34+
* **BREAKING** MulleObjCInstanceDeallocate is now `_MulleObjCInstanceFree` for consistency
35+
36+
* MulleObjC no longer defines any linkable symbols with `_NS` or NS prefix. All NS... functions are now static inline. This makes it easier on darwin to coexist with Apple Objective-C
37+
38+
* adapt to changes in mulle-objc-runtime
39+
* improved NSInvocation retain/release of arguments, now can also do C-array, structs and unions
40+
* new feature "interposing" of a class between two other classes
41+
* new function `MulleThreadGetOrCreateCurrentThread`
42+
* NSThread mulleStartUndetached is now just mulleStart, but the old method still works
43+
* new type `mulle_atomic_id_t` for convenient atomic access to id ivars
44+
* new function `MulleObjC_strdup`
45+
* byte swapping and endian functions have been moved to mulle-c11
46+
* new global variable MulleObjCDebugElideAddressOutput for test output
47+
* new macros `MULLE_OBJC_CLASS_CAST` and `MULLE_OBJC_PROTOCOL_CAST` and related macros
48+
* new key/value callbacks `_MulleObjCContainerCopiedCStringIntegerValueCallback,` `_MulleObjCContainerIntegerKeyCopiedCStringValueCallback,` `_MulleObjCContainerCopiedCStringPointerValueCallback,` `_MulleObjCContainerPointerKeyCopiedCStringValueCallback`
49+
* new functions NSRangeGetLocation, NSRangeGetLength, NSRangeGetMax, ...
50+
51+
* `mulleGainAccess` no longer returns self
52+
* the Spam functions that used to do call chains, now use `mulle_objc_class_search` and perform more sensibly
53+
* new method `mulleSetThredSafe:`, for private objects that are part of a locking object (e.g. NSMutableArray ivar)
54+
55+
* renamed ``_mulle_objc_autorelease_object`` to ``_mulle_objc_autorelease_object`` for consistency
56+
* changed the locking code used by MulleObject to something simpler with the help of the new mulle-objc-runtime
57+
* renamed methods that operate on already autoreleased objects in a `NSAutoreleasePool` to "PoolObjects"
58+
* renamed some ``_NSThread`` functions to `MulleThread` for consistency
59+
60+
* moved MulleObjCLockFoundation into MulleObjC
61+
* renamed MulleObject to MulleDynamicObject
62+
* renamed MulleLockingObject to... MulleObject (!) (by default it doesn't lock, unless your subclass adds protocols)
63+
64+
65+
* **BREAKING** renamed a lot of NSAutoreleasePool underscore methods to mulle, making them less private
66+
67+
* added support for new double and float TPS
68+
* NSObject now gains a lot of functionality from protocolclass MulleObjCRuntimeObject
69+
* new protocol MulleObjCContainerProperty to match @property( container) expectations
70+
* NSThread is now NSInvocation based
71+
72+
* MulleObjC has now a notion about threadsafe instances (`@protocol MulleObjcThreadSafe`) and how to transfer access to a not-threadsafe instance between threads (`-mulleGainAccess`...)
73+
* added a few more useful container callbacks
74+
* adapted to changes in the mulle-objc-runtime
75+
* made `NSThread` more threadsafe
76+
* **BREAKING** `-copy` is basically supposed to be used only by properties and ivar accessors now. `NSCopyObject` and the default -copy implementation is now aligned with `NSMutableCopying` where it makes more sense. Though `mutableCopy` is deprecated.
77+
* **BREAKING** remove `MulleObjCIMPTraceCall`
78+
79+
180
## 0.23.0
281

382
* moved NSInteger and BOOL to mulle-c11, this only breaks stuff if you included the header directly

cmake/share/CompilerDetectionAuxC.cmake

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmake/share/CompilerDetectionC.cmake

Lines changed: 30 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmake/share/CompilerFlagsObjC.cmake

Lines changed: 8 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)