Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Xcode 4.4 is available (for Lion and Mountain Lion) (itunes.apple.com)
24 points by octopus on July 26, 2012 | hide | past | favorite | 23 comments


Any idea why literal syntax would only be for OS X?


I requires runtime support that hasn't yet shipped on a public version of iOS.


Isn't it a compile time feature?


Only partially.

Mike Ash goes into some detail on his excellent blog: http://www.mikeash.com/pyblog/friday-qa-2012-06-22-objective...

Long story short, some of it is compile time, but some of it involves classes in Foundation (like NSArray and NSDictionary) implementing new methods (like objectAtIndexedSubscript).

iOS needs a base SDK update before those methods will be available there. Or you could monkey-patch them in with a category yourself in the meantime.


Literals and object/container subscripting are different things, even though they appear at the same time. Container literals should be compile time too and available to all versions of iOS (or at least v4 and above).

I also think it should be possible to support container (NSArray, NSDictionary) subscripting for foundation classes at compile-time for all versions even if the new functions aren't around. They just have to translate to the existing functions. I bet they do this too[1]

(upvoted you, it is a very informative link).

Edit: some more thoughts.

[1] No, they don't do that in v4.4. But maybe they will in a future version of Xcode.


Thanks for the link. I was wondering if they'd implemented type-inference to check what method to call for the indexing operator since the operand could be either an NSArray or a NSDictionary. It turns out they've elided the whole problem altogether by doing this at runtime with new methods. Given how dynamic objective-c is, this seems like the best way to go about it.


Pretty sure the release note is incorrect.

I just tried and it works. Also search for "Objective-C Feature Availability Index" in the docs.


It has to be exposed in the SDK too. You can hack in some iOS support via a category but you'll have to use 4.5 if you want the real deal for iOS.


I just tried it in the iOS simulator and literals work. @[...] => NSArray, @{...} => NSDictionary, @# => NSNumber


I like especially the fact that now I can use initializer lists to fill a vector (just like in Gcc).


At this point, they seem to have better C++11 support than any gcc release. Is it possible that Xcode has now become the most viable C++11 development platform?


their way of dealing with command line tools is rather annoying in this release


Yep, I wasn't able to install the Command Line Tools from the Xcode Preferences. It works if you do it manually ... by downloading the Command Line Tools from:

https://developer.apple.com/downloads/index.action

and now I have in my path clang 4.0!


For whatever it may be worth, installing from the preferences worked fine for me. I heard other reports of failures, though, and assume it's related to the massive number of people all trying to download Mountain Lion at once.


It worked fine for me as well, installing it around 30 minutes ago.


Both the June and July command line tools give me an error saying they don't support 10.8.


Same here; the late July update is only installable on 10.7. Looks like we're still stuck waiting for Apple to sort out the 403 error for XCode 4.4 on Mountain Lion.


I found a link to the 10.8 tools somewhere on SO. It was that or build everything from source...


That page only shows me the downloads for Xcode 4.3 and 4.5 Developer Preview, but it looks like I can use the 4.4 versions just fine by adding "/Applications/Xcode.app/Contents/Developer/usr/bin" to my $PATH


I couldn't get /Applications/Xcode.app/.../usr/bin/gcc to work for me today. It could not access stdlib includes and such. I got the Xcode preferences installer of the command-line tools to work, and that put a gcc in /usr/bin/ that worked completely. I don't know what's different between the two, but that seems to be the official way to do it.

Kudos to Apple for the self-contained command-line tools package download. Hopefully that'll continue with another update for 10.8.


when I tried earlier, it errored out. I just tried again and it is now downloading.


Instead of installing the command line tools package you can access any of the command line tools that's in Xcode.app by prefixing the command with xcrun. May be easier then installing/managing a whole separate installation of command line tools depending on your needs.


xCode 4.5 Beta versions are available too




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: