<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Den tis 19 jan. 2021 kl 12:48 skrev Wojtek Surowka <<a href="mailto:wojteksurowka@me.com">wojteksurowka@me.com</a>>:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The most problematic part for me is that the proposed change<br>
is not backward compatible. I saw arguments that it will impact only small<br>
percentage of the code and the code will be easy to fix. I understand that<br>
Erlang is used in different contexts, and in some of them it sounds an easy<br>
thing to do. But if a system uses several third party applications/libraries<br>
managed automatically by rebar3 the problem is much worse. A<br>
backward-incompatible change would mean that the an upgrade makes my system<br>
not working anymore, and I do not have an immediate and good way of fixing<br>
it, if incompatibility is not in the code I have under direct control.<br></blockquote><div><br></div><div>This change is completely backwards compatible in itself. Turning on warnings by default remains compatible with the code but not with many people's build systems, which is why that has to be done at a later stage (at least one major release later). This is the way many other changes have been made that have required that people make some edits to their code, such as the warnings for unused variables X unless you marked them with _X, the warnings for unused data structures such as {....} unless you write _ = {...}, the deprecation of erlang:get_stacktrace() in favour of using a variable for the trace in the catch clause, etc. Experience shows that this is mostly not a problem and is necessary in order to (slowly) evolve the language.</div><div><br></div><div>Even when warnings would be on by default, you could still disable them to compile older codebases. The only incompatibility would be if they were eventually turned into hard errors - but that could only be done in a more distant future, *if and when* practically all existing Erlang code could be assumed to be using ^-annotations, which would only be the case if this becomes universally accepted as being a good thing.</div><div> </div><div dir="ltr"><div><div dir="ltr" class="gmail_signature">        /Richard</div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"></div></div><div> </div></div></div>