<div dir="ltr">Here is the list of passes starting with the Erlang AST:<div><br></div><div><a href="https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L656">https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L656</a><br></div><div><br></div><div>The passes that emit files based on the command line flags are in the format {iff, to_pp, {done, "P"}}, such as this one:</div><div><br></div><div><a href="https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L668">https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L668</a><br></div><div><br></div><div>The pass that converts to core is in the same function. You can see that it has an option to emit -to_core0 via the command line. So that would be the format closest to your question:</div><div><br></div><div><a href="https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L679-L681">https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L679-L681</a><br></div><div><br></div><div>The format emitted by to_core is the one emitted after optimizations, inlining, etc:</div><div><br></div><div><a href="https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L699">https://github.com/erlang/otp/blob/52744948f4bbe85dee428cefdf9d205665a57b18/lib/compiler/src/compile.erl#L699</a><br></div><div><br></div><div>You may continue following the passes to see what happens for the other formats as well. :)</div><div><br></div><div class="gmail_extra"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Director of R&D</span></div></span></div></span></div></div></div></div></div>
<br><div class="gmail_quote">On Sat, Apr 22, 2017 at 9:23 AM, Xavier Noria <span dir="ltr"><<a href="mailto:fxn@hashref.com" target="_blank">fxn@hashref.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Does the Erlang compiler go from the Erlang AST to Core Erlang source code as printed by +to_core? Or does it just manipulate the structure to convert it directly into Core Erlang AST?</div></div>
<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></blockquote></div><br></div></div>