Renamed the macro ERR to DD_ERR

and replaced NSError ** with NSError __autoreleasing

I was getting a lot of warnings because of the lack of autoreleasing attribute.
Also I got a conflict with your macro ERR and one defined in usr/include/curses.h so I renamed your macro DD_ERR.

There were still quite a lot of the __autoreleasing warnings. Plus there were a lot of warnings related to evaluator being weakly referenced when being used which I've removed. My project is currently warning free and I want to keep it that way without relaxing the warnings shown in Xcode.