<div dir="ltr">I agree that this is a good change. I can't even recall exactly why we went with the get_stacktrace() BIF - particularly since the value is already present as a variable under the hood. But I guess it was precisely to avoid such discussions about pattern matching on stack traces or having arbitrary restrictions such as "may only be a variable" on a part of a pattern. But I think such a restriction makes sense.<div><br></div><div>The main problem with code that matches on the format of the stack trace is that it creates a hard dependency on the current format of the stack trace - which has changed more than once and might change again. The general rule is Don't Do That, and if you still feel that you have to, at least limit it to a single support function, not spread all over your code.</div><div><br></div><div class="gmail_extra"><div><div class="gmail_signature" data-smartmail="gmail_signature">        /Richard</div></div>
<br><div class="gmail_quote">2017-11-26 14:40 GMT+01:00 Attila Rajmund Nohl <span dir="ltr"><<a href="mailto:attila.r.nohl@gmail.com" target="_blank">attila.r.nohl@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Once I worked with a library that implemented the "let it crash"<br>
philosophy to the maximum - for valid input I got the result, for<br>
invalid input I got function_clause, badarg, badmatch, etc. crashes. I<br>
tried to be clever and match on the output of erlang:get_stacktrace()<br>
to decide if the error came from this particular library or from a<br>
different code (in order to provide more meaningful error message to<br>
the user), but eventually it didn't work out. In that case matching on<br>
the stack trace might have been useful, but as it didn't work out in<br>
the end, I don't think it's such a big deal that I can't match on the<br>
stacktrace.<br>
<br>
2017-11-25 15:17 GMT+01:00 Jesper Louis Andersen<br>
<<a href="mailto:jesper.louis.andersen@gmail.com">jesper.louis.andersen@gmail.<wbr>com</a>>:<br>
<div class="HOEnZb"><div class="h5">> I think this is a sensible change all in all, and one which should be done.<br>
><br>
> My major gripe with it is the fact that you cannot pattern match on the<br>
> stack trace. I see why this is done, but it feels like being a special<br>
> arbitrary rule which goes against other matching patterns in the language.<br>
> I'm not sure how it would help<br>
><br>
> catch<br>
>    Cl:Err:Stk -><br>
>         case {Cl, Err, Stk} of<br>
>           ...<br>
> end<br>
><br>
> What I really like about the change is that it removes get_stacktrace/0<br>
> which is a "bad function", and one of those things I tend to call a<br>
> "language mistake" in Erlang[0].<br>
><br>
> [0] For the interested, I think one of the most obvious mistakes are that a<br>
> floating point numbers in Erlang cannot express NaNs and Infinities.<br>
><br>
> On Fri, Nov 24, 2017 at 10:05 AM Björn Gustavsson <<a href="mailto:bjorn@erlang.org">bjorn@erlang.org</a>> wrote:<br>
>><br>
>> There is a new EEP that proposes a new syntax in try/catch to retrieve<br>
>> the stacktrace directly without using erlang:get_stacktrace/0:<br>
>><br>
>> <a href="https://github.com/erlang/eep/blob/master/eeps/eep-0047.md" rel="noreferrer" target="_blank">https://github.com/erlang/eep/<wbr>blob/master/eeps/eep-0047.md</a><br>
>><br>
>> /Björn<br>
>> --<br>
>> Björn Gustavsson, Erlang/OTP, Ericsson AB<br>
>> ______________________________<wbr>_________________<br>
>> erlang-questions mailing list<br>
>> <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> erlang-questions mailing list<br>
> <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
> <a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
><br>
______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div></div>