This document contains the history of each version of RegexKit, including the date, summary of changes, and a URL of where the distribution may be downloaded. An overview of the RegexKit version numbering methodology is also included, along with important information for those wishing to submit contributions to RegexKit.
- Upgraded to PCRE version 7.6, which includes an important security related bug fix.
- Preliminary support for internationalization, though English remains the only provided localization.
- Support for returning NSError objects for error conditions.
- Support for multiple regular expressions in a collection (i.e., NSArray) to be evaluated concurrently on multiple threads, one per CPU.
See Release Information - Release Notes for 0.6.0 Beta for more information.
- RegexKit specific DTrace probes added.
- Collection of RegexKit instruments for Instruments.app.
- New NSArray methods for returning a NSIndexSet for matches.
- NSData class category additions.
See Release Information - Release Notes for 0.5.0 Beta for more information.
- Many improvements in the handling of Unicode strings.
- The NSString additions and RKEnumerator class now calculate character indexes and NSRange values the same way the Foundation NSString class does for all string encodings.
- Perl style \u, \l, \U, \L, and \E escape sequences for case conversions, and \digit for capture subpattern references in replacement reference strings.
See Release Information - Release Notes for 0.4.0 Beta for more information.
- Xcode 3.0 RegexKit documentation subscription and update notification.
This release is largely to address a sourceforge.net webserver issue which does not send the correct mime type for .dmg files. This results in Safari 3 misidentifying the .dmg as a .bz2 file. As a workaround, the .dmg is wrapped in a .tar file to protect it. Bug 1823644 filed with sourceforge.net.
See Release Information - Release Notes for 0.3.1 Beta for more information.
- Mac OS X Installer.
- Mac OS X 10.5 support.
- RegexKit.framework Info.plist version corrected.
- Minor documentation updates.
- Parallel target builds.
The new Mac OS X .dmg distribution combines the previously separate binary and source code bundles into a single, convenient installer based package.
Mac OS X 10.5 Features:
- 64 bit support.
- Garbage Collection enabled.
- Documentation available in native Xcode 3.0 DocSet format.
The RegexKit.framework binary now includes support for four architectures: ppc, ppc64, i386, and x86_64. The 32 bit architecture images require a minimum Mac OS X of 10.4, while the 64 bit architecture versions require a minimum of 10.5.
The choice between using Garbage Collection or the traditional retain / release style of memory management is made at load time. If the dynamic linker determines that the necessary Garbage Collection prerequisites have been met, RegexKit switches to using Garbage Collection. Otherwise if Garbage Collection is not active at load time, RegexKit uses the traditional retain / release style of memory management.
The documentation for RegexKit is now available in the new Xcode 3.0 DocSet format. This allows you to access the frameworks documentation from within Xcode, including real time access via the Research Assistant. The DocSet documentation is installed in /Library/Developer/Shared/Documentation/DocSets/, which Xcode 3.0 is set to scan automatically. You may have to quit and restart Xcode in order for the documentation to appear. Subscriptions are not yet enabled despite the subscription button being present.
See Release Information - Release Notes for 0.3.0 Beta for more information.
The largest user visible change in this release is the upgrade to PCRE 7.4 from the previous releases 7.3. The majority of work went towards bug fixes and improvements in the build system.
- PCRE upgraded to 7.4.
- Version numbering system implemented. The framework version is also used for the frameworks shared library version. The previous release did not set a version and used the default of 1. This release has the version 0.2.0. Due to the fact that the framework is used as an embedded private framework, this should be a non-issue.
- ~15K smaller executable due to build setting optimizations. Now optimized with -Oz and dead code stripped.
- The source code distribution no longer contains the Mac OS X framework binary.
- PCRE build system received a major overhaul.
- All project build configuration settings were removed from RegexKit.xcodeproj/project.pbxproj and placed in Source/Build/Xcode/RegexKit Build Settings.xcconfig. This allows easier maintenance of the variables and the ability to document them with comments.
- There were several bugs in the build system regarding availability of tools and packages and their versions. This release should be more tolerant of differences and handle any issues much more gracefully.
- Minor documentation updates.
- Changed the framework initialization to use the more portable +load method rather than __attribute__(constructor).
See Release Information - Release Notes for 0.2.0 Beta for more information.
The first public release of the RegexKit framework.
See Release Information - Release Notes for Alpha for more information.
The RegexKit source is kept in the publically accessable SourceForge subversion repository at http://regexkit.svn.sourceforge.net/svnroot/regexkit/
Users wishing to check-out the source are most likely interested in the subversion standard trunk portion of the repository, which contains the most up to date check-ins, and not the entire repository. The URL to access just the trunk portion is http://regexkit.svn.sourceforge.net/svnroot/regexkit/trunk/
You can also browse the repository with a web-based interface at http://regexkit.svn.sourceforge.net/viewvc/regexkit/
The .dmg Installer distributions include the following:
- RegexKit framework binary for ppc, ppc64, i386, and x86_64 architectures.
- Documentation in HTML.
- Documentation in Xcode 3.0 DocSet form.
- Complete source code.
Until the SourceForge MIME issue is resolved, the RegexKit .dmg distributions will be placed inside a .tar archive to prevent Safari 3 from incorrectly appending .bz2 to the downloaded file. While the .tar archive work around results in a one time extra unpacking step, after which the resulting .dmg file is mounted correctly, the result of Safari 3 appending .bz2 is for the Finder to perpetually attempt to bunzip2 the .dmg.bz2 file with a error message that file is corrupt, leading to considerable user confusion.
Mac OS X .dmg Installer Distributions
|2008/01/29||0.6.0 Beta||7.6||Mac OS X 10.4 and later||ppc, ppc64, i386, x86_64||1,695K||RegexKit_0.6.0.dmg.tar||Apple Disk Image inside a .tar|
|2007/11/30||0.5.0 Beta||7.4||Mac OS X 10.4 and later||ppc, ppc64, i386, x86_64||1,468K||RegexKit_0.5.0.dmg.tar||Apple Disk Image inside a .tar|
|2007/11/13||0.4.0 Beta||7.4||Mac OS X 10.4 and later||ppc, ppc64, i386, x86_64||1,389K||RegexKit_0.4.0.dmg.tar||Apple Disk Image inside a .tar|
|2007/10/31||0.3.1 Beta||7.4||Mac OS X 10.4 and later||ppc, ppc64, i386, x86_64||1,340K||RegexKit_0.3.1.dmg.tar||Apple Disk Image inside a .tar|
|2007/10/29||0.3.0 Beta||7.4||Mac OS X 10.4 and later||ppc, ppc64, i386, x86_64||1,333K||RegexKit_0.3.0.dmg||Apple Disk Image|
Mac OS X Binary Distributions
|2007/10/09||0.2.0 Beta||7.4||Mac OS X 10.4 and later||Universal, PowerPC and Intel||412K||RegexKit_0.2.0.tar.bz2||bzip2 compressed tar archive|
|2007/08/31||Alpha||7.3||Mac OS X 10.4 and later||Universal, PowerPC and Intel||412K||RegexKit_ALPHA.tar.bz2||bzip2 compressed tar archive|
The following section outlines the the version numbering system adopted by the RegexKit framework and the changes you can expect between different versions of the framework.
A set of three point delimited numbers is used to indicate the version number. This follows the common hierarchical version numbering system where each number represents one of the following:
- Major Version Number
- Minor Version Number
- Point Version Number
A major version of the framework incorporates significant changes that are may not be compatible with previous major versions. Some example changes that would require a new major version are:
- A fundamental change to the API that is not backwards compatible.
- Significant addition of features and functionality.
- A dependency of the framework has fundamentally changed.
- A change in the underlying ABI which would result in binary incompatibility between versions.
- A new major version release of the PCRE library.
When upgrading to a new major version, users should expect that a significant effort on their part may be required in order to use the new major version, depending on the nature of the changes.
A new minor version is used to indicate changes that are not likely to be disruptive to current users. Some example changes when the minor version is incremented are:
- Minor, incremental enhancements.
- Significant bug fixes.
- A new minor version release of the PCRE library.
Users upgrading to a later minor version should expect to a minimal amount of work to be required on their part. A given minor version is likely to be forward compatible with later minor versions of a given major version, but may not be fully backwards compatible with previous minor versions. Use of any new features introduced in a minor version would almost certainly preclude the use of any previous minor versions.
A new point version indicates changes that do not alter the features or functionality of the framework in any significant way. Examples of a point version change include:
- Minor bug fixes that do not significantly alter the behavior of the API interface.
- Corrections, clarifications, or minor additions to documentation.
- Changes in the build system that result in no framework executable changes.
Users upgrading to a later point version of a major.minor version should expect full compatibility with the previous major.minor release and no changes on their part should be required.
Users who wish to contribute to RegexKit, such as patches, implementation of new features or functionality, or localizations, must do so in a manner that is compatible with RegexKits BSD License.
Submitters agree to be considered as a contributer under RegexKits license. In the interest of keeping the number of licenses to a minimum, submitters agree that the RegexKit license will be the only license used to represent all works contained within RegexKit.
Submitters agree that all contributions are royalty-free and without compensation, now or in the future.
The code for this framework is licensed under what is commonly known as the revised, 3-clause BSD-Style license.
Copyright © 2007-2008, John Engelhart
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the Zang Industries nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.