FossilOrigin-Name: 6be5c5ec0c79ca76d0d75ecd32a93aa77b8025951e2cdb85ef71bc13af6e2f47
526 lines
24 KiB
Text
526 lines
24 KiB
Text
Legend:
|
|
* Changes of existing features or bugfixes
|
|
+ New features
|
|
|
|
This file only contains the most significant changes.
|
|
|
|
ObjFW 1.1.4 -> ObjFW 1.1.5, 2024-07-06
|
|
* Fixes MIPS32.
|
|
* Properly hides private symbols in the runtime so they can't be used
|
|
accidentally anymore.
|
|
|
|
ObjFW 1.1.3 -> ObjFW 1.1.4, 2024-05-22
|
|
* Fixes ofarc failing to extract from stdin on macOS.
|
|
* Fixes the workaround for missing blx on ARM.
|
|
* Avoids Clang's integrated assembler on MIPS64 for .S files (as it cannot
|
|
calcualte the offset between two labels).
|
|
* Fixes X32 being mistaken for AMD64.
|
|
|
|
ObjFW 1.1.2 -> ObjFW 1.1.3, 2024-05-12
|
|
* Fixes +[OFSystemInfo networkInterfaces] on NetBSD.
|
|
* Properly hides private symbols so they can't be used accidentally anymore.
|
|
* Adds missing documentation for various functions and macros.
|
|
* Uses RtlGenRandom to get proper randomness on Windows now.
|
|
* No longer uses _wutime64, which is buggy in some MinGW distributions.
|
|
* Only uses blx on ARM if it is available now.
|
|
* Adds a workaround for OFSubprocess tests on Windows 9x.
|
|
* Skips symlink tests if symlinks are unavailable.
|
|
|
|
ObjFW 1.1.1 -> ObjFW 1.1.2, 2024-04-20
|
|
* Fixes configure script on systems using BusyBox for tr.
|
|
* Fixes compiling for Haiku.
|
|
* Fixes -[contentsOfDirectoryAtIRI:] corrupting the stack on Solaris.
|
|
* Fixes compiling for Wii with newer SDK.
|
|
* Fixes missing endbr / bti.
|
|
* Minor optimizations to ARM64 assembly.
|
|
|
|
ObjFW 1.1 -> ObjFW 1.1.1, 2024-04-14
|
|
* Fixes missing ${DESTDIR} in some Makefiles.
|
|
|
|
ObjFW 1.0.12 -> ObjFW 1.1, 2024-04-14
|
|
* ObjFW is now licensed under LGPLv3.0-only.
|
|
+ Adds a new framework for writing tests called ObjFWTest.
|
|
* All tests were migrated to ObjFWTest.
|
|
+ The runtime now supports associated objects.
|
|
+ OFDNSResolver now caches responses.
|
|
+ OFDNSResolver now supports URI and LOC DNS resource records.
|
|
+ Adds methods to handle path extension to OFIRI.
|
|
+ Adds support for Mbed TLS.
|
|
+ Adds more methods to OFSystemInfo to check for CPU features.
|
|
* OFSystemInfo now only indicates CPU features as supported if the OS also
|
|
supports them.
|
|
+ OFLHAArchive now supports extracting and creating files > 4 GB.
|
|
+ OFLHAArchive now supports header level 3.
|
|
+ OFLHAArchive now supports extracting -lhx-, -lz4- and -pm0- files.
|
|
* OFLHAArchive no longer defaults to ISO 8859-1.
|
|
+ New class OFZooArchive for extracting and creating Zoo files.
|
|
* The schemes for archive IRI handlers have been renamed.
|
|
* The schemes for archive IRI handlers now look for the rightmost `!`,
|
|
which allows for chaining with less quoting.
|
|
* Fixes -[OFMutableArray replaceObjectIdenticalTo:withObject:] being
|
|
inconsistent with -[OFMutableArray replaceObject:withObject:].
|
|
* Fixes getting non-existent xattrs in OFFileManager.
|
|
* Objects on Windows, MS-DOS and 32 bit Solaris now get properly aligned so
|
|
that SIMD can be used on ivars.
|
|
* Fixes parsing of signed numbers in MessagePack.
|
|
* Fixes a memory leak in OFTarArchive.
|
|
+ Adds support for typed extended file attributes (only on Haiku).
|
|
+ Adds support for extended file attributes on Haiku, NetBSD and FreeBSD.
|
|
+ OFStdIOStream now supports cursor movement and colors on MS-DOS.
|
|
* All headers are now compatible with -masm=intel.
|
|
+ OFMatrix4x4 can now transform multiple vectors at once.
|
|
+ OFMatrix4x4 has a 3DNow! implementation for multiplication and vector
|
|
transformations now.
|
|
+ OFMatrix4x4 has an SSE implementation for vector transformations now.
|
|
* Updates Unicode support to 15.1.
|
|
* Fixes compatibility with LibreSSL.
|
|
* Fixes two linker warnings on macOS.
|
|
* Fixes compiling on QNX.
|
|
* OFLocale now supports automatic initialization.
|
|
+ ofarc now supports extracting and creating Zoo archives.
|
|
+ ofarc now has an --iri option to directly work on local and remote IRIs.
|
|
+ ofarc now prints the archive comment with -lv.
|
|
+ ofarc can now add an archive comment with --archive-comment=.
|
|
+ ofarc now propagates the quarantine xattr on macOS when extracting an
|
|
archive.
|
|
|
|
ObjFW 1.0.11 -> ObjFW 1.0.12, 2024-03-11
|
|
* Fixes a regression in OFZIPArchive that was introduced in 1.0.11 that
|
|
resulted in failing to extract archives and creating broken archives.
|
|
* Fixes a rare condition where OFInflateStream could end up in an endless
|
|
loop.
|
|
* Fixes OFTarArchiveEntry not having a default date, which could result in
|
|
messaging nil on a FP return, which yielded invalid results on 32-bit x86
|
|
with GCC.
|
|
|
|
ObjFW 1.0.10 -> ObjFW 1.0.11, 2024-03-09
|
|
* Fixes -[OFHTTPClientResponse isAtEndOfStream] and
|
|
-[OFGZIPStream isAtEndOfStream].
|
|
* Fixes how OFZIPArchive handles disk 0 vs. disk 1.
|
|
* OFLHAArchive and OFZIPArchive create more compatible archives now.
|
|
* OFLHAArchive ignores padding in level 2 headers now.
|
|
* ofarc correctly sets modification dates of directories now by delaying
|
|
setting those until after all files have been extracted.
|
|
* Fixes a linker warning on macOS/iOS.
|
|
* Several minor documentation fixes.
|
|
* OFFileIRIHandler correctly transforms exceptions now so that they use an IRI
|
|
and not a path.
|
|
|
|
ObjFW 1.0.9 -> ObjFW 1.0.10, 2024-02-24
|
|
* Fixes objc_getClassList() not releasing the global runtime mutex.
|
|
* Improves OFLHAArchive's compatibility with non-standard archives.
|
|
+ Adds endbr32 / endbr64 / bti instructions for compatibility with Control
|
|
Flow Integrity.
|
|
|
|
ObjFW 1.0.8 -> ObjFW 1.0.9, 2024-02-18
|
|
* Fixes OFGZIPStream reading the size and CRC32 incorrectly when either spans
|
|
multiple reads.
|
|
* Fixes a type mismatch in OFMapTable that could cause problems on big endian
|
|
systems when uint32_t and unsigned long have a different size.
|
|
* Fixes the default implementation of -[initWithKeys:arguments:] for custom
|
|
dictionaries.
|
|
* Improves detection of mutation during enumeration in
|
|
-[enumerateKeysAndObjectsUsingBlock:].
|
|
* Minor documentation fixes.
|
|
|
|
ObjFW 1.0.7 -> ObjFW 1.0.8, 2024-01-21
|
|
* Fixes compilation on NetBSD, OpenBSD, OpenIndiana etc. which was broken by
|
|
1.0.7.
|
|
|
|
ObjFW 1.0.6 -> ObjFW 1.0.7, 2024-01-21
|
|
* Fixes inheriting the environment in OFSubprocess.
|
|
* Fixes dealloc in OFSubprocess when -[closeForWriting] was called.
|
|
+ Adds tests for OFSubprocess.
|
|
* Changes the key for +[OFSystemInfo networkInterfaces] to the adapter name
|
|
on Windows XP and newer to avoid a possible collission on the adapter index.
|
|
* Fixes compilation with old MinGW versions.
|
|
* Fixes the documentation for OFSRVDNSResourceRecord.
|
|
|
|
ObjFW 1.0.5 -> ObjFW 1.0.6, 2024-01-15
|
|
* Fixes compatibility with autoconf 2.72.
|
|
* Fixes OFDNSResolver's handling of types, classes and lengths > 255.
|
|
|
|
ObjFW 1.0.4 -> ObjFW 1.0.5, 2023-11-05
|
|
* Fixes the calculation of the extra alignment in OFAllocObject()
|
|
* Fixes +[OFSystemInfo networkInterfaces] on OpenBSD and Windows 98
|
|
* Fixes OFSocketAddressString() for AppleTalk addresses
|
|
* Uses GetModuleHandle() instead of LoadLibrary() where possible on Windows
|
|
* Disables tests for global blocks on Win64 due to broken compilers
|
|
* Adds PGP keys to verify tarballs and commits in the code repository
|
|
|
|
ObjFW 1.0.3 -> ObjFW 1.0.4, 2023-10-08
|
|
* Fixes OFFile closing fd 0 when initialization fails
|
|
* Fixes -[stringByAppendingPathComponent:] on empty strings
|
|
* Fixes +[OFSystemInfo operatingSystemName] and
|
|
+[OFSystemInfo operatingSystemVersion] returning nil on some systems
|
|
* Adds a license for localizations
|
|
|
|
ObjFW 1.0.2 -> ObjFW 1.0.3, 2023-09-14
|
|
* Fixes -[OFConcreteData initWithItemSize:] not setting freeWhenDone to true,
|
|
which resulted in a memory leak
|
|
* Fixes -[OFData initWithContentsOfIRI:] freeing the buffer in @catch instead
|
|
of @finally, which resulted in a memory leak
|
|
|
|
ObjFW 1.0.1 -> ObjFW 1.0.2, 2023-09-11
|
|
* The build system has been updated to fix building .frameworks and to build
|
|
them differently for macOS and iOS
|
|
|
|
ObjFW 1.0 -> ObjFW 1.0.1, 2023-09-10
|
|
* Hanging connections with OFTLSStream have been fixed when using OpenSSL
|
|
* The same fix as for OpenSSL has been applied to GnuTLS and SecureTransport
|
|
out of caution, even though there have been no hangs in practice
|
|
* The build system has been updated to fix building .frameworks among other
|
|
minor changes
|
|
* Some headers have been changed to fix compatibility with ObjC++
|
|
* Warnings about empty .o files on x86_64 Darwin have been fixed
|
|
* The OFDate documentation has been improved to list supported formats
|
|
|
|
ObjFW 0.90.2 -> ObjFW 1.0, 2023-08-29
|
|
+ First stable release with stable API and ABI
|
|
* Too many changes to list, as it has been almost 6 years since the last
|
|
release. See commits in the repository for details.
|
|
|
|
ObjFW 0.90.1 -> ObjFW 0.90.2, 2017-10-23
|
|
* Fix shadowed variables which caused many bugs (e.g. using the wrong object)
|
|
* Many, many nullability fixes
|
|
* OFTCPSocket: Fix exception not being retained for async connect
|
|
* OFThread: Fix setting the name on the wrong thread
|
|
* OFMutableSet: Fix missing override for -[copy]
|
|
* configure: Fix posix_spawnp check
|
|
* Xcode project: Set the correct version for the bridge
|
|
* Better check for iOS
|
|
* tests: Fix testing the wrong OFKernelEventObserver
|
|
|
|
ObjFW 0.90 -> ObjFW 0.90.1, 2017-08-20
|
|
* OFData: Fix -[description]
|
|
* OFFileManager: Set errno to 0 before readdir()
|
|
* OFDate: Add -[localMinute]
|
|
* OFTarArchiveEntry: Fix prefix handling for ustar
|
|
* OFZIPArchive: Fix uncompressed + data descriptor
|
|
* OFArray: Fix MessagePack encoding
|
|
* of_asprintf: Don't require set up OFLocalization
|
|
* OFGZIPStream: Add missing documentation
|
|
* Fix a linker warning on OpenBSD/SPARC64
|
|
* Remove the OFFile b modes from MorphOS
|
|
(they were already removed for all other OSes)
|
|
|
|
ObjFW 0.8.1 -> ObjFW 0.90, 2017-08-01
|
|
+ New classes: OFFileManager, OFGZIPStream, OFTarArchive, OFTarArchiveEntry
|
|
OFHMAC, OFSandbox, OFHTTPCookie, OFHTTPCookieManager,
|
|
OFLocalization
|
|
+ New platforms: Nintendo 3DS, MorphOS
|
|
+ New lookup assembly for platforms: SPARC64/ELF, ARM64/ELF
|
|
+ New forwarding for: ARM64/ELF
|
|
+ New tools: objfw-new (to create boilerplate code)
|
|
+ New options: --disable-unicode-tables
|
|
* Required GCC version increased to 4.6
|
|
* OFDataArray was split into OFData and OFMutableData
|
|
* OFURL was split into OFURL and OFMutableURL
|
|
* Most properties are now nonatomic
|
|
(this changes from returned retained + autoreleased to +0 retained)
|
|
* Correct handling of encoding on Win32 console
|
|
(stream is read and written in UTF-8 and translated to UTF-16 on the fly)
|
|
* Runtime is now built as a separate library
|
|
+ More encodings for strings
|
|
* Reworked OFOptionsParser API
|
|
* Refactored OFKernelEventObserver
|
|
* Better randomization of HTTP header order
|
|
* Allow overriding all HTTP headers
|
|
* Definition of thread priorities changed
|
|
+ Key Value Coding
|
|
+ Exceptions in ObjC++
|
|
* OFHash was renamed to OFCryptoHash
|
|
+ PBKDF2
|
|
+ scrypt
|
|
+ Xcode project to build for iOS
|
|
+ String decomposition to NFD
|
|
* OFFile modes simplified ('b' removed)
|
|
|
|
ObjFW 0.8 -> ObjFW 0.8.1, 2015-10-04
|
|
* Adjust to __nullable / __nonnull being changed to _Nullable / _Nonnull in
|
|
Clang 3.7 (this fixes compilation with Clang 3.7)
|
|
* Blocks: Proper handling when called from a byref handler
|
|
* Fix compilation on Solaris
|
|
* Fix compilation for Wii, PSP and Nintendo DS
|
|
* OFProcess: Send SIGTERM on close instead of SIGKILL
|
|
* OFZIPArchive: Throw invalid format exception on failed seeks
|
|
* Make sure of_hash_seed is never initialized to 0
|
|
* Special cases for the Wii's weird network stack (fixes the tests)
|
|
* Better length checks for write / send calls
|
|
* Don't use -pedantic on platforms where it's broken by the system headers
|
|
* Documentation fixes
|
|
|
|
ObjFW 0.7.1 -> ObjFW 0.8, 2015-08-14
|
|
|
|
+ An insanely huge amount of new APIs
|
|
+ New classes: OFHTTPServer, OFINICategory, OFINIFile, OFInflate64Stream,
|
|
OFInflateStream, OFMapTable, OFRIPEMD160Hash, OFSHA224Hash, OFSHA256Hash,
|
|
OFSHA384Hash, OFSHA512Hash, OFSettings, OFStdIOStream, OFSystemInfo,
|
|
OFUDPSocket, OFZIPArchive, OFZIPArchiveEntry
|
|
+ New utils: ofzip, ofhash, ofhttp
|
|
+ Support for -[forwardingTargetForSelector:] on a lot of platforms
|
|
(see PLATFORMS.md)
|
|
* OFHTTPRequest: Split into OFHTTPRequest and OFHTTPClient
|
|
* Rename OFHTTPRequestReply to OFHTTPResponse
|
|
* OFDictionary now uses OFMapTable internally
|
|
+ Highly randomized, DoS-resistant hashtables (different seed per hashtable,
|
|
additionally rotated by a random number of bits)
|
|
* Reworked exceptions API that explicitly passes errno around
|
|
+ OFHTTPClient: Keep-alive and Basic Authorization support
|
|
+ Support for (and use of) ObjC generics, nullability and kindof
|
|
+ Fast path for resolving classes when using GCC (Clang doesn't need the fast
|
|
path, as it directly references classes)
|
|
* OFStreamObserver: Refactored and renamed to OFKernelEventObserver (as it is
|
|
no longer limited to streams)
|
|
+ Support for SjLj and SEH exceptions
|
|
+ Support for DOS/DJGPP, Nintendo Wii, Nintendo DS and PlayStation Portable
|
|
+ Support for bare metal (in other words: running without any OS; tested on
|
|
ARM)
|
|
+ Full support for ARM64 on iOS
|
|
+ Full MessagePack implementation (the new MessagePack version that supports
|
|
strings)
|
|
+ Backtraces for uncaught exceptions
|
|
+ Bridge to Cocoa now part of ObjFW
|
|
* Default depth limit for XML and JSON parser
|
|
+ Optional support for outputting JSON5 (default is JSON)
|
|
* 16 bit selector UIDs are now the default
|
|
* BOOL replaced with bool everywhere (except where required by the ABI)
|
|
* Fix for a nasty bug in -[replaceCharactersInRange:withString:]
|
|
* Fix for a nasty bug in atomic ops
|
|
* OFTLSKey replaced with +[OFThread threadDictionary]
|
|
* Documentation improvements (for example, imports should now be shown
|
|
correctly everywhere and many APIs have been documented in more detail)
|
|
+ Property introspection
|
|
* OFProcess: Use posix_spawnp if available
|
|
* OFProcess improvements for Win32
|
|
+ epoll support for OFKernelEventObserver
|
|
* Rewritten OFMD5Hash and OFSHA1Hash
|
|
* Reworked OFTLSSocket API (easier verification)
|
|
* Unicode support updated to Unicode 8.0
|
|
* OFURL: Proper escaping and unescaping
|
|
|
|
ObjFW 0.7 -> ObjFW 0.7.1, 2012-11-12
|
|
+ Support for Haiku
|
|
* Autorelease pools now work properly without __thread
|
|
* Incorrect framework version in Xcode project fixed
|
|
* Documentation fixes and improvements
|
|
* Blocks now only use 16 bits for the reference count in order to avoid
|
|
problems with newer Clang versions
|
|
* More use of OF_SENTINEL
|
|
|
|
ObjFW 0.6 -> ObjFW 0.7, 2012-10-27
|
|
Again, the differences are more than in any release before, thus listing them
|
|
all would be too much. The major differences are:
|
|
+ ObjFW now comes with its own runtime, which greatly increases performance
|
|
compared to the GNU runtime and is even faster than the Apple runtime
|
|
(using Clang >= 3.2 is recommended, but not necessary)
|
|
* Support for the GNU runtime has been dropped
|
|
+ New, much faster autorelease pool implementation (now inside the runtime)
|
|
+ Support for Automatic Reference Counting (requires Clang >= 3.2)
|
|
+ Forwarding has been implemented
|
|
+ Asynchronous stream handling
|
|
+ New classes: OFThreadPool, OFRecursiveMutex, OFSortedList, OFTimer, OFRunLoop
|
|
+ New protocols: OFLocking, OFTLSSocket
|
|
* Lots of API changes to make APIs more future-proof
|
|
+ Support for the new Objective-C literals
|
|
* OFHTTPRequest now implements HTTP/1.1
|
|
* OFObject's memory handling has been improved, leading to better performance
|
|
* Strings are allocated faster now
|
|
+ Support for JSON5
|
|
* All private methods use the prefix OF_ now instead of _, making it possible
|
|
to use the _ prefix in applications
|
|
* Most ObjC compiler feature checks are not part of configure anymore, making
|
|
it possible to use the same installation with different compilers
|
|
|
|
ObjFW 0.5.4 -> ObjFW 0.6, 2012-02-27
|
|
The differences between 0.5.4 and 0.6 are too big to list them all. However,
|
|
the major new features are:
|
|
* OFString, OFArray, OFDictionary, OFSet and OFCountedSet are now class
|
|
clusters
|
|
+ Serialization and deserialization of objects into/from XML and JSON
|
|
+ New class OFIntrospection for introspecting classes
|
|
+ New class OFProcess for working with and controlling child processes
|
|
* Lots of OFXMLParser and OFXMLElement improvements
|
|
+ OFHTTPRequests can have a delegate now for status updates and processing
|
|
data as soon as it arrives
|
|
+ There are several backends for OFStreamObserver now, including kqueue, poll
|
|
and select
|
|
+ SOCKS5 support for OFTCPSockets (client only)
|
|
* Several API changes
|
|
|
|
ObjFW 0.5.3 -> ObjFW 0.5.4, 2011-08-30
|
|
* The blocks runtime is now working correctly
|
|
* Documentation fixes
|
|
* -framework works with objfw-compile now
|
|
+ Support for QNX
|
|
* Various small fixes
|
|
|
|
ObjFW 0.5.2 -> ObjFW 0.5.3, 2011-07-01
|
|
* Lots of bugfixes, see Git log for details
|
|
|
|
ObjFW 0.5.1 -> ObjFW 0.5.2, 2011-04-25
|
|
* Fix double-retain in OFList
|
|
* Don't ignore the timeout in OFStreamObserver when using select()
|
|
* Do -[OFURL copy] in a try block to prevent a leak when an exception occurs
|
|
* Fix too big buffer in -[OFMutableString _applyTable:withSize:]
|
|
* Call madvise() on the correct length variable so it covers the whole string
|
|
* Fix a warning when sizeof(size_t) < sizeof(long long)
|
|
* Skip possible BOMs when appending strings
|
|
|
|
ObjFW 0.5 -> ObjFW 0.5.1, 2011-04-21
|
|
* Work around a wrong warning produced by Apple GCC 4.0.1 which would cause
|
|
the build to fail due to -Werror
|
|
* Call objc_thread_{add,remove} when using the GNU runtime to make sure the
|
|
runtime knows about our thread
|
|
* Detach a thread before restarting if it was never joined
|
|
* Release the old return value when restarting a thread
|
|
|
|
ObjFW 0.4-alpha1 -> 0.5, 2011-04-09
|
|
+ %@ is now allowed in format strings
|
|
+ Added of_log for easy logging
|
|
* Exceptions have one header per exception now
|
|
* Lots of exception improvements
|
|
* Huge improvements in XML handling
|
|
* Improvements in socket handling, including improved API
|
|
* OFStreamObserver is now thread-safe and stops the current observe call when
|
|
the set of streams to observe is modified
|
|
+ New class OFURL
|
|
+ New class OFHTTPRequest
|
|
+ New class OFCondition
|
|
* Improvements in objfw-compile
|
|
+ Blocks can be used together with Cocoa now
|
|
+ When linking ObjFW and Cocoa, OFAutoreleasePools are used by both now
|
|
+ Support for Base64
|
|
+ Use a real Xcode project instead of just calling make
|
|
+ Add Haiku to the list of supported platforms
|
|
* Lots of small bugfixes and countless small changes. Read the commits!
|
|
|
|
ObjFW 0.3.1 -> 0.4-alpha1, 2011-01-03
|
|
* ObjFW is now available under the terms of the QPL, GPLv2 and GPLv3
|
|
+ Support for blocks was added, including a blocks runtime
|
|
+ Added support for the new GNU runtime, introduced in GCC 4.6
|
|
* Objects returned from collections are no longer retained and autoreleased
|
|
+ Added new classes OFXMLParser, OFXMLElement, OFXMLAttribute and
|
|
OFXMLElementBuilder
|
|
+ Added new class OFStreamObserver to observe streams
|
|
+ Added new class OFDate for storing dates
|
|
+ Many new methods in almost all classes
|
|
* OFAutoreleasePool was optimized
|
|
* Handling of ASCII strings was optimized
|
|
* OFSocket was renamed to OFStreamSocket
|
|
* OFConstString was renamed to OFConstantString
|
|
* objfw-compile now has a new syntax
|
|
+ objfw-compile can now compile libraries and plugins
|
|
* Many small changes and new features that would be too much to list here
|
|
The diff between 0.3.1 and 0.4-alpha1 has almost 24000 lines!
|
|
|
|
ObjFW 0.3 -> 0.3.1, 2010-06-19
|
|
* Fix a typo in OFMutableDictionary that prevented termination in case
|
|
the last bucket is already used when the dictionary is resized
|
|
* The mutations pointer is now correctly initialized in enumerators for
|
|
immutable collections
|
|
* The objc_sync test was still using the old threads API and was
|
|
updated to use the new one now
|
|
* PLATFORMS has been updated to be more specific
|
|
|
|
ObjFW 0.2.1 -> 0.3, 2010-05-09
|
|
+ Many new methods were added to different classes
|
|
+ A huge amount of methods was added to OFStream, allowing easy binary
|
|
stream handling and even mixing string-based and binary operations
|
|
+ An optional write buffer was added to OFStream
|
|
+ OFSeekableStream was added for streams that allow seeking, for example
|
|
OFFiles
|
|
* OFNumber was completely reworked and got many new features now
|
|
* Large parts of OFDictionary were rewritten for better readability, better
|
|
memory usage and to fix a bug with removing objects
|
|
* OFThread has been greatly improved
|
|
* Many small optimizations
|
|
* Many documentation improvements
|
|
* Method replacing was reworked and the methods renamed
|
|
+ Tests for OFStream were added
|
|
* A bug with building ObjFW as a Universal Binary Framework was fixed
|
|
+ Support for ObjFW-RT, the ObjFW Objective C runtime, was added
|
|
* Sockets are now properly closed before an exception is thrown
|
|
* Error handling with sockets was improved
|
|
* OFFile now uses open(), read() and write(), thus allowing -[readLine] to be
|
|
used on of_stdin and fixing many other annoyances
|
|
* A few misc methods were renamed
|
|
+ OFApplication was added
|
|
* All tests and the table generator are now using OFApplication
|
|
+ It is now possible to get the remote address of an OFTCPSocket
|
|
+ OFString can now build paths in the OS-native format
|
|
+ It is now possible to create a string with the contents of a file
|
|
+ Many new file operations were added to OFFile
|
|
* The existing file operations in OFFile were improved
|
|
* Almost all functions that returned self before now return void
|
|
+ OFHash was added as a superclass for OFMD5Hash and OFSHA1Hash and OFHashes
|
|
renamed to OFHash
|
|
+ objfw-compile was added for easy compilation of ObjFW projects, which
|
|
includes dependency checking for headers etc.
|
|
* The instance variable naming convention was changed so that properties work
|
|
+ Properties were added to the interfaces and are used if they are supported
|
|
by the compiler
|
|
+ The library version is now included in the resulting dylib and libobjc is
|
|
reexported now. Additionally, objfw-config offers --reexport now to produce
|
|
libraries that link against ObjFW and reexport it
|
|
|
|
ObjFW 0.2 -> 0.2.1, 2010-03-14
|
|
* Fix for OFNumbers not doing calculations
|
|
* Improved -[hash] for OFNumbers with floats and doubles
|
|
+ Tests for OFNumber
|
|
* Small optimization for OFArray's -[componentsJoinedByString:]
|
|
* Documentation improvements
|
|
* Updated copyright
|
|
|
|
ObjFW 0.1.2 -> 0.2, 2010-02-01
|
|
+ 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
|
|
above)
|
|
* -[readLine] now handles \r\n without having the \r included in the
|
|
returned line
|
|
+ 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
|
|
compile times
|
|
* 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
|
|
error
|
|
|
|
ObjFW 0.1.1 -> 0.1.2, 2010-01-15
|
|
* 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, 2010-01-04
|
|
* 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
|
|
OFMutableArray
|
|
* 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, 2009-12-24
|
|
+ Initial release
|