<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">It seems to be the stack trace at least in R16B03-1.<div><div><br></div><div>erl source:</div><div><div>-module(test).</div><div>-compile(export_all).</div><div><br></div><div>test() -></div><div> try </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>foo:bar()</div><div> catch</div><div> some:thing -> ok;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>error:E -></div><div><span class="Apple-tab-span" style="white-space:pre"> </span> io:format("third: ~p~n", [E])</div><div> end.</div></div><div><br></div><div>core erlang modification:</div><div><br></div><div><div>@@ -18,10 +18,10 @@</div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> <'some','thing',_cor4> when 'true' -></div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> 'ok'</div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> %% Line 9</div><div>-<span class="Apple-tab-span" style="white-space:pre"> </span> <'error',E,_cor5> when 'true' -></div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span> <'error',_E,F> when 'true' -></div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> %% Line 10</div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> call 'io':'format'</div><div>-<span class="Apple-tab-span" style="white-space:pre"> </span> ([116|[104|[105|[114|[100|[58|[32|[126|[112|[126|[110]]]]]]]]]]], [E|[]])</div><div>+<span class="Apple-tab-span" style="white-space:pre"> </span> ([116|[104|[105|[114|[100|[58|[32|[126|[112|[126|[110]]]]]]]]]]], [F|[]])</div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> ( <_cor3,_cor2,_cor1> when 'true' -></div><div> <span class="Apple-tab-span" style="white-space:pre"> </span> primop 'raise'</div><div> <span class="Apple-tab-span" style="white-space:pre"> </span>(_cor1, _cor2)</div></div><div><br></div><div><br></div><div><br></div><div><div>Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]</div><div><br></div><div>Eshell V5.10.4 (abort with ^G)</div><div>1> c(test, [to_core]).</div><div>** Warning: No object file created - nothing loaded **</div><div>ok</div><div>2> c(test, [from_core]).</div><div>{ok,test}</div><div>3> test:test(). </div><div>third: [[{foo,bar,[],[]},</div><div> {test,test,0,[]},</div><div> {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,573}]},</div><div> {shell,exprs,7,[{file,"shell.erl"},{line,674}]},</div><div> {shell,eval_exprs,7,[{file,"shell.erl"},{line,629}]},</div><div> {shell,eval_loop,3,[{file,"shell.erl"},{line,614}]}]|</div><div> -000000000000000016]</div><div>ok</div></div><div><br></div><div>/Jonas</div><div><div><div><br></div><div>On Oct 15, 2015, at 19:57 , Vladimir Gordeev wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">If you compile some try-catch statements into Core Erlang, you may notice,<div>that it receives three params in exception pattern: <a href="http://tryerl.seriyps.ru/#id=3bf3">http://tryerl.seriyps.ru/#id=3bf3</a><br></div><div><br>this:<br><br></div><div><div> try foo:bar()</div><div> catch</div><div> some:thing -> ok</div><div> end.<br><br>into this:<br><br><div><span class="" style="white-space:pre"> </span>try</div><div><span class="" style="white-space:pre"> </span> call 'foo':'bar'</div><div><span class="" style="white-space:pre"> </span>()</div><div><span class="" style="white-space:pre"> </span>of <_cor0> -></div><div><span class="" style="white-space:pre"> </span> _cor0</div><div><span class="" style="white-space:pre"> </span>catch <_cor3,_cor2,_cor1> -></div><div><span class="" style="white-space:pre"> </span> case <_cor3,_cor2,_cor1> of</div><div><span class="" style="white-space:pre"> </span> %% Line 7</div><div><span class="" style="white-space:pre"> </span> <'some','thing',_cor4> when 'true' -></div><div><span class="" style="white-space:pre"> </span> 'ok'</div><div><span class="" style="white-space:pre"> </span> ( <_cor3,_cor2,_cor1> when 'true' -></div><div><span class="" style="white-space:pre"> </span> primop 'raise'</div><div><span class="" style="white-space:pre"> </span>(_cor1, _cor2)</div><div><span class="" style="white-space:pre"> </span>-| ['compiler_generated'] )</div><div><span class="" style="white-space:pre"> </span> end<br><br>In "An introduction to Core Erlang" catch described as taking two params: <a href="http://www.erlang.org/workshop/carlsson.ps">http://www.erlang.org/workshop/carlsson.ps</a><br><br></div></div></div><div>Question is: what is this third param (_cor4) for?</div></div>
_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>http://erlang.org/mailman/listinfo/erlang-questions<br></blockquote></div><br></div></div></body></html>