<div dir="ltr"><div class="gmail_quote"><div dir="ltr">Apologies if anyone receives this twice, but I think I was not able to post to the group before because I had not joined it.<br><br>On OTP 19:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Erlang/OTP 19 [erts-8.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"> </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Eshell V8.0  (abort with ^G)<br>1> gen_server:module_info(attributes).<br>[{vsn,[312724683823627977474402165944618744937]}]</blockquote><br>but on OTP 18:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"> </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Eshell V7.3  (abort with ^G)<br>1> gen_server:module_info(attributes).<br>[{vsn,[103744906244088013982217220225633001614]},<br> {callback,[{{init,1},<br>             [{type,"t",'fun',<br>                    [{type,"t",product,<br>                           [{ann_type,"t",[{var,"t",'Args'},{type,"t",term,[]}]}]},<br>                     {type,"u",union,<br>                           [{type,"u",tuple,[{atom,"u",ok},{ann_type,"u",[{...}|...]}]},<br>                            {type,"u",tuple,<br>                                  [{atom,"u",ok},{ann_type,"u",[...]},{type,[...],...}]},<br>                            {type,"v",tuple,[{atom,"v",stop},{ann_type,[...],...}]},<br>                            {atom,"v",ignore}]}]}]}]}, ...]</blockquote><br>The data is still present in the beam file on OTP 19:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Erlang/OTP 19 [erts-8.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"> </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Eshell V8.0  (abort with ^G)<br>1> beam_lib:chunks(code:which(gen_server), [abstract_code]).<br>{ok,{gen_server,[{abstract_code,{raw_abstract_v1,[{attribute,1,<br>                                                             file,<br>                                                             {"gen_server.erl",1}},<br>                                                  {attribute,20,module,gen_server},<br>                                                  {attribute,90,export,<br>                                                             [{start,3},<br>                                                              {start,4},<br>                                                              {start_link,3},<br>                                                              {start_link,4},<br>                                                              {stop,1},<br>                                                              {stop,3},<br>                                                              {call,2},<br>                                                              {call,3},<br>                                                              {cast,2},<br>                                                              {reply,2},<br>                                                              {abcast,2},<br>                                                              {abcast,...},<br>                                                              {...}|...]},<br>                                                  {attribute,100,export,<br>                                                             [{system_continue,3},<br>                                                              {system_terminate,4},<br>                                                              {system_code_change,4},<br>                                                              {system_get_state,1},<br>                                                              {system_replace_state,2},<br>                                                              {format_status,2}]},<br>                                                  {attribute,108,export,[{init_it,6}]},<br>                                                  {attribute,110,import,{error_logger,[{format,2}]}},<br>                                                  {attribute,116,callback,<br>                                                             {{init,1},[{type,116,'fun',[{type,...},{...}]}]}},<br>                                                  {attribute,119,callback,<br>                                                             {{handle_call,3},[{type,119,'fun',[{...}|...]}]}},<br>                                                  {attribute,127,callback,<br>                                                             {{handle_cast,2},[{type,127,'fun',[...]}]}},<br>                                                  {attribute,131,callback,<br>                                                             {{handle_info,2},[{type,131,'fun',...}]}},<br>                                                  {attribute,135,callback,{{terminate,2},[{type,135,...}]}},<br>                                                  {attribute,139,callback,{{code_change,3},[{type,...}]}},<br>                                                  {attribute,142,callback,{{format_status,2},[{...}]}},<br>                                                  {attribute,149,optional_callbacks,[{format_status,...}]},<br>                                                  {function,168,start,3,[...]},<br>                                                  {function,171,start,4,...},<br>                                                  {function,174,start_link,...},<br>                                                  {function,177,...},<br>                                                  {function,...},<br>                                                  {...}|...]}}]}}</blockquote><br>but I can't find any details on this change in the OTP 19 changelog, in a PR on GitHub, or in the issues tracker. Can someone point me to why this behavior changed?<br><br>Thanks!</div>
</div><br></div>