Archive for June 28, 2014

Saturday, June 28, 2014

Compiler Writers Gone Wild: ARC Madness

Marcel Weiher:

When they turned to me, I was also initially puzzled, because all this should do on x86 is stuff a zero into %eax and return. This cannot possibly crash, so everyone just assumed that the stack traces were off, as they frequently are.


Fortunately I had just looked at the project settings and noticed that we were compiling with -O0, so optimizations disabled, and my suspicion was that ARC was doing some unnecessary retaining. That suspicion turned out to be on the money, otool -Vt revealed that ARC had turned our innocuous return NO; into the following monstrosity.

I think you pretty much have to use the optimizer when using ARC. Otherwise, in normal use the code is really slow, and when debugging it’s so different from the normal code that you will be checking different things.

New Gmail API


For a while now, many of you have been asking for a better way to access data to build apps that integrate with Gmail. While IMAP is great at what it was designed for (connecting email clients to email servers in a standard way), it wasn’t really designed to do all of the cool things that you have been working on, which is why this week at Google I/O, we’re launching the beta of the new Gmail API.

Designed to let you easily deliver Gmail-enabled features, this new API is a standard Google API, which gives RESTful access to a user’s mailbox under OAuth 2.0 authorization. It supports CRUD operations on true Gmail datatypes such as messages, threads, labels and drafts.

Update (2014-07-01): Matt Cutts (via ATP):

Just confirmed with right people: IMAP remains fully supported and isn’t going away.


The Gmail API should not be used to replace IMAP for full-fledged email client access. Instead, see IMAP and SMTP.