* Changes of existing features or bugfixes.
+ New features.
ObjFW 0.1.2 -> 0.2, 01.02.2010
+ Support for ObjC 2 Fast Enumerations on every platform which has
compiler support for fast enumerations.
+ Support for ObjC 2 properties on every platform with compiler support.
+ Fast Enumeration through arrays and dictionaries.
* OFIterator has been removed.
+ OFEnumerator was added to replace OFIterator, which is more general
and works with arrays and dictionaries.
+ Portable implementation for atomic operations.
+ Portable implementation for spinlocks. They use atomic operations if
available, if not they fall back to pthread spinlocks. If both are
unavailable, mutexes are used as a last fallback.
* -[retain] and -[release] are now atomic. If no atomic operations are
available, spinlocks are used (which can fall back to mutexes, see
* -[readLine] now handles \r\n without having the \r included in the
+ OFThread now has -[tryLock].
* Mutation methods have been removed from immutable interfaces, thus
already giving an error at compilation instead of at runtime.
* Dependencies between headers have been reduced, leading to faster
* The interfaces of OFSocket and OFStream were cleaned up and some
methods were moved to OFTCPSocket, as they make sense only there.
* File methods unavailable on Windows don't throw an exception at
runtime anymore, but instead are not even in the interface on
Windows. This way, it is a compile time error instead of a runtime
ObjFW 0.1.1 -> 0.1.2, 15.01.2010
* Fix a bug in OFMutableArray's -[removeObject:] and
-[removeObjectIdenticalTo:] that could lead to not removing all
occurrences of the object from the array and to out of bounds reads.
* Change the URL in the framework plist to the homepage.
ObjFW 0.1 -> 0.1.1, 04.01.2010
* Fix a missing out of range check for -[removeNItems:atIndex:] that
allowed the programmer to specify too big ranges so it would crash
instead of throwing an exception.
* Fix missing calls to -[retain] and -[autorelease] when getting
objects from an OFArray or OFDictionary.
* Safer and more fault-tolerant way to remove objects from an
* Calling +[dealloc] throws an exception now. If someone really calls
[SomeClass dealloc], this should be punished and not ignored, as
this is a serious programmer error.
* -[readLineWithEncoding:] is more fault-tolerant now and does not
lose data when it stumbles upon invalid encoding. Instead, it allows
recalling with the correct encoding now.
ObjFW 0.1, 24.12.2009
+ Initial release