<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 2, 2016 at 7:28 PM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1ty" class="" style="overflow:hidden">Years ago I wanted to add a -needs(Vsn) annotation to module<br>
<br>
For example:<br>
<br>
     -needs(erl18).<br>
<br>
Means would mean you need version 18 of erlang.<br>
<br>
That way if you added a needs annotation to the code that used the updated lists<br>
then an earlier version of Erlang could give a meaningfull diagnostic<br>
and not just<br>
crash when the encountering a function 'from the future'.<br>
<br>
Actually I had another problem today - a program I wrote in 2003 did not work<br>
with the latest and greatest Erlang - not because the language had changed<br>
but because the library functions had been renamed and moved around.<br>
<br>
I guess a lint program would be useful here. It should be fairly<br>
doable to download<br>
all old erlangs and simple make lists of all the function names in all modules<br>
and do a bit of consistency checking.<br></div></blockquote></div><br>One such tool is geas <a href="https://github.com/crownedgrouse/geas">https://github.com/crownedgrouse/geas</a>. </div><div class="gmail_extra"><br></div><div class="gmail_extra">regards,</div><div class="gmail_extra">Vlad</div><div class="gmail_extra"><br></div></div>