Introducing momcom

From the README on github:

momcom is a command-line tool for Mac OS X that takes an uncompiled Core Data model created with Xcode and compiles it to produce a compiled .mom or .momd suitable for use at run time.

Please note that momcom is experimental. Although it is intended to be at least as as functional as compiling a data model using Xcode’s built-in model compiler, it is not mature enough to recommend as a replacement. It was written mostly as an experiement to see if it could be done.

After writing momdec I realized I could probably compile models as well as decompile them. So, I wrote some code to do so. Twitter comments by John “Wolf” Rentzsch about how hard it might be may have spurred me on a bit. The code also fixes a bug I found in Xcode’s model compiler (rdar://problem/13677527 and

Fixing a bug wasn’t the real reason, though. Once I realized this was probably possible, I had to find out. It was!

I also added a fork of mogenerator that uses momcom’s internal classes. mogenerator normally uses Xcode’s model compiler to get a working model and then uses that to generate class files. In this fork mogenerator uses momcom code to compile the model directly when possible.