[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fast enumeration

From: Jens Ayton
Subject: Re: Fast enumeration
Date: Fri, 4 Feb 2011 16:31:47 +0100

On Feb 4, 2011, at 15:54, Ivan Vučica wrote:
> If you refer to for(id x in y) syntax, I believe you just need to use a 
> compiler with objc2.0 support, as well as a sufficiently recent runtime.

That, and support for the fast enumeration protocol in Base collections. This 
exists at least in base-1.20.1.

This doesn't actually resolve the question, though, it just restates it.

Which compilers support [this aspect of] Objective-C 2.0 outside of Apple's 
platforms? Neither gcc nor clang provide sufficiently comprehensive release 
notes to determine this sort of thing reliably. (It seems that the answer is 
"Clang 2.6", since "Most of Objective-C 2.0 is now supported with the GNU 
runtime", but it might not be.)

How do I detect, at build time, which runtime I'm using, and precisely which 
version of what runtime has the necessary support? This is the sort of 
information one might expect to find on the ObjC2_FAQ wiki page, but one 
doesn't (and it's probably out of date anyway).

Basically, my choices are:
* Test a rather large set of compiler, runtime and library versions together 
under a VM.
* Hope that someone (i.e. David) imparts Secret Lore.
* Continue to use slow enumeration extensively throughout Oolite for the next 
couple of years, except on 64-bit Mac OS X.

I know writing documentation is the most boring thing in the world after 
reading it, but this isn't exactly an inviting situation (or "good developer 
story", as people insist on calling it).

P.S.: Sorry for the double post earlier, I thought it wasn't appearing because 
I'd posted from the wrong account.

Jens Ayton

reply via email to

[Prev in Thread] Current Thread [Next in Thread]