Recent Releases

1.1.115 Apr 2024 02:01 minor bugfix: * 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 warning
1.115 Apr 2024 02:00 minor bugfix: * 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 warning
1.0.1215 Apr 2024 02:00 minor bugfix: * 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.
1.0.1110 Mar 2024 03:15 minor bugfix: -03-09. - OFHTTPClientResponse isAtEndOfStream and. - OFGZIPStream isAtEndOfStream . 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. a linker warning on macOS/iOS. Several minor documentation. OFFileIRIHandler correctly transforms exceptions now so that they use an IRI. And not a path.
1.0.1025 Feb 2024 03:16 minor bugfix: -02-24. 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.
1.0.919 Feb 2024 03:25 minor bugfix: -02-18. OFGZIPStream reading the size and CRC32 incorrectly when either spans. Multiple reads. a type mismatch in OFMapTable that could cause problems on big endian. Systems when uint32_t and unsigned long have a different size. The default implementation of - initWithKeys:arguments: for custom. Dictionaries. Improves detection of mutation during enumeration in. - enumerateKeysAndObjectsUsingBlock: . Minor documentation.
1.0.822 Jan 2024 14:25 minor bugfix: -01-21. Compilation on NetBSD, OpenBSD, OpenIndiana etc. which was broken by 1.0.7.
1.0.616 Jan 2024 09:45 minor bugfix: -01-15. Compatibility with autoconf 2.72. OFDNSResolver's handling of types, classes and lengths 255.
1.0.506 Nov 2023 03:15 minor bugfix: -11-05. the calculation of the extra alignment in OFAllocObject(). + OFSystemInfo networkInterfaces on OpenBSD and Windows 98. 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.
1.0.409 Oct 2023 06:45 minor bugfix: -10-08. OFFile closing fd 0 when initialization fails. - stringByAppendingPathComponent: on empty strings. + OFSystemInfo operatingSystemName and. + OFSystemInfo operatingSystemVersion returning nil on some systems. Adds a license for localizations.
1.0.314 Sep 2023 06:45 minor bugfix: * 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
1.0.211 Sep 2023 01:59 minor bugfix: * The build system has been updated to fix building .frameworks and to build them differently for macOS and iOS
1.0.110 Sep 2023 20:39 minor bugfix: * 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
1.029 Aug 2023 03:16 major feature: + 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.
0.90.223 Oct 2017 22:12 minor bugfix: * 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
0.90.121 Aug 2017 07:25 minor bugfix: OFData: - description . OFFileManager: Set errno to 0 before readdir(). OFDate: Add - localMinute . OFTarArchiveEntry: prehandling for ustar. OFZIPArchive: uncompressed + data descriptor. OFArray: MessagePack encoding. of_asprintf: Don't require set up OFLocalization. OFGZIPStream: Add missing documentation. a linker warning on OpenBSD/SPARC64. Remove the OFFile b modes from MorphOS. (they were already removed for all other OSes).
0.9002 Aug 2017 08:25 minor feature: 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).
0.8.104 Oct 2015 12:42 minor bugfix: Adjust to __nullable / __nonnull being changed to _Nullable / _Nonnull in Clang 3.7. Blocks: Proper handling when called from a byref handler. compilation on Solaris. compilation for Wii, PSP and Nintendo DS. OFProcess: Send SIGTERM on 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. Better length checks for write / send calls. Don't use -pedantic on platforms where it's broken by the system headers. Documentation fixes.