RegexKit Release Information

Introduction

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.

Release History

Release highlights:

  • 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.

Release highlights:

  • 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.

Release highlights:

  • 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.

Release highlights:

  • 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.

Release highlights:

  • 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.

Release highlights:

  • 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.

Subversion Repository

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/

Distributions

.dmg Distributions

The .dmg Installer distributions include the following:

Note:
Safari 3 incorrectly identifies .dmg files from the SourceForge download servers as a .bz2 bzip2 compressed file because the SourceForge servers are unable to supply the correct MIME type for .dmg disk images.

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
DateVersionPCREOperating SystemArchitectureSizeFileFormat
2008/01/290.6.0 Beta7.6Mac OS X 10.4 and laterppc, ppc64, i386, x86_641,695KRegexKit_0.6.0.dmg.tarApple Disk Image inside a .tar
2007/11/300.5.0 Beta7.4Mac OS X 10.4 and laterppc, ppc64, i386, x86_641,468KRegexKit_0.5.0.dmg.tarApple Disk Image inside a .tar
2007/11/130.4.0 Beta7.4Mac OS X 10.4 and laterppc, ppc64, i386, x86_641,389KRegexKit_0.4.0.dmg.tarApple Disk Image inside a .tar
2007/10/310.3.1 Beta7.4Mac OS X 10.4 and laterppc, ppc64, i386, x86_641,340KRegexKit_0.3.1.dmg.tarApple Disk Image inside a .tar
2007/10/290.3.0 Beta7.4Mac OS X 10.4 and laterppc, ppc64, i386, x86_641,333KRegexKit_0.3.0.dmgApple Disk Image

Binary Distributions

Mac OS X Binary Distributions
DateVersionPCREOperating SystemArchitectureSizeFileFormat
2007/10/090.2.0 Beta7.4Mac OS X 10.4 and laterUniversal, PowerPC and Intel412KRegexKit_0.2.0.tar.bz2bzip2 compressed tar archive
2007/08/31Alpha7.3Mac OS X 10.4 and laterUniversal, PowerPC and Intel412KRegexKit_ALPHA.tar.bz2bzip2 compressed tar archive

Source Distributions

Source Code Distributions
DateVersionPCREMinimum Development EnvironmentSizeFileFormat
2008/01/290.6.0 Beta7.6Xcode 2.4.1655KRegexKit_0.6.0_source.tar.bz2bzip2 compressed tar archive
2007/11/300.5.0 Beta7.4Xcode 2.4.1572KRegexKit_0.5.0_source.tar.bz2bzip2 compressed tar archive
2007/11/130.4.0 Beta7.4Xcode 2.4.1544KRegexKit_0.4.0_source.tar.bz2bzip2 compressed tar archive
2007/10/310.3.1 Beta7.4Xcode 2.4.1519KRegexKit_0.3.1_source.tar.bz2bzip2 compressed tar archive
2007/10/290.3.0 Beta7.4Xcode 2.4.1515KRegexKit_0.3.0_source.tar.bz2bzip2 compressed tar archive
2007/10/090.2.0 Beta7.4Xcode 2.4.1484KRegexKit_0.2.0_source.tar.bz2bzip2 compressed tar archive
2007/08/31Alpha7.3Xcode 2.4.1655KRegexKit_source_ALPHA.tar.bz2bzip2 compressed tar archive

Version Numbering Information

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.

Important:
The following should serve as a guideline as the nature of some changes may not be easily categorized by the following system.

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

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:

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.

Minor Version Number

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:

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.

Point Version Number

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:

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.

User Contributions

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.

Important:
Submitters agree that any submitted contributions will in no way alter the nature of the BSD license under which RegexKit is licensed and distributed and accept all liability arising from submitted contributions that cause any such violations.

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.

Important:
By submitting a contribution, the submitter implicitly agrees to these terms for all contributions submitted, and such terms apply worldwide and are irrevocable. Additionally, the submitter implicitly acknowledges that they have the rights and authority to agree to these terms for all contributions submitted. Furthermore, the submitter agrees to accept all liability if they misrepresent their rights or authority to agree to these terms for the submitted contributions and in no way shall they hold the RegexKit copyright owner or contributers liable for any reason or cause.

License Information

The code for this framework is licensed under what is commonly known as the revised, 3-clause BSD-Style license.

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:

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.

 
RegexKit project hosted by: