At the moment rebar compile always changes the .app file even if its contents do not change. In some instances this is undesirable, as it forces recompiling unnecessary dependencies. This patch proposes to fix it by comparing the existing .app file with the contents rebar is about to write. If they match, rebar touches nothing on the file system.
`rebar compile` should not change any files if compilation succeeds
more modern format of -spec specs
Merge pull request #289 from tuncer/semicolon-vs-comma
erlc: fix typo in update_erlcinfo/3 clause