diff --git a/rebar.config b/rebar.config index 4798f20f6..5fb25a029 100644 --- a/rebar.config +++ b/rebar.config @@ -96,6 +96,7 @@ {if_var_true, elixir, {d, 'ELIXIR_ENABLED'}}, {if_var_true, new_sql_schema, {d, 'NEW_SQL_SCHEMA'}}, {if_var_true, hipe, native}, + {if_have_fun, {erl_error, format_exception, 6}, {d, 'HAVE_ERL_ERROR'}}, {src_dirs, [src, {if_var_true, tools, tools}, {if_var_true, elixir, include}]}]}. diff --git a/src/misc.erl b/src/misc.erl index 0ebcbef78..16e4122b5 100644 --- a/src/misc.erl +++ b/src/misc.erl @@ -482,6 +482,7 @@ peach(Fun, [_,_|_] = List) -> peach(Fun, List) -> lists:foreach(Fun, List). +-ifdef(HAVE_ERL_ERROR). format_exception(Level, Class, Reason, Stacktrace) -> erl_error:format_exception( Level, Class, Reason, Stacktrace, @@ -489,6 +490,15 @@ format_exception(Level, Class, Reason, Stacktrace) -> fun(Term, I) -> io_lib:print(Term, I, 80, -1) end). +-else. +format_exception(Level, Class, Reason, Stacktrace) -> + lib:format_exception( + Level, Class, Reason, Stacktrace, + fun(_M, _F, _A) -> false end, + fun(Term, I) -> + io_lib:print(Term, I, 80, -1) + end). +-endif. -spec parse_ip_mask(binary()) -> {ok, {inet:ip4_address(), 0..32}} | {ok, {inet:ip6_address(), 0..128}} |