12 comments

[ 2.1 ms ] story [ 42.9 ms ] thread
I hope this is a joke. Does anyone have real data instead of just a rumor?
I hope it is a joke too. Even if it isn't true, it's sad that it seems so believable.
So, virtual machines include finite state machines? I guess parsers and other stack machines are right out too, then. It could be argued that the regexps are a "minor feature."

jk

Supposedly, this is based on use of private APIs.

Regular expressions are one of the new features in iOS 4. Seems like Apple now wants them to use their own library instead.
Wow. Uninformed headline and speculation.

I'm pretty sure they're rejecting usage of an unofficial regex API. Nothing to get too excited about and I'm definitely sure they're not rejecting pcre, etc.

It's not an unofficial regex API, It is the libicucore a regex library that is available on the phone. It is even available from the xcode "Add Existing Frameworks" dialog.
As kemiller said, this is likely about Apple wanting developers to use iOS4's built-in support for regular expressions, which, by the way, gives you the answer to your submission's title. Please edit it accordingly.
My understanding of the issue is that RegexKitLite uses APIs from the International Components for Unicode (ICU) library shipped with the OS. As that library has not been blessed for public consumption, it's apparently being deemed usage of a private API, and rejected.

From the RegexKitLite site:

"Prior to iPhone OS 3.2, there was never any official support from Apple for linking to the libicucore.dylib library. It was unclear if linking to the library would violate the iPhone OS SDK Agreement prohibition against using undocumented API's, but a large number of iPhone applications choose to use RegexKitLite, and the author is not aware of a single rejection because of it. Starting with iPhone OS 3.2, Apple now officially allows iPhone OS applications to link with the ICU library. The ICU library contains a lot of functionality for dealing with internationalization and localization, but Apple only officially permits the use of the ICU Regular Expression functionality."

That muddles the issue a bit, though. If the ICU regex stuff has been blessed for public consumption, what's the violated private API? Is it only apps for pre-3.2 platforms that are being rejected? Is RegexKitLite using unblessed parts of that library?

I always said these "expressions" are the devil's making!
RegexKitLite, not regex. Way to get this wrong.
Does restricting the use of RegexKitLite (actually libicucore) make Apple's reasoning it any more sane?
(comment deleted)