Compilation on R17

It is a breaking change, that doesn't compile on R15, R16 erlangs.

If there a convenience way for founding an erlang version and manipulating throw ifdefine preprocessor commands, please give me hint(or link to the documentation or example).