<div><div>We’ve been using Erlang in production for quite a few years now and for the first time we have a project that really benefits from HIPE / native code being turned on (before things have always been fast enough without and the benefit of more detailed stack traces etc outweighed any performance gains). We did some benchmarking by compiling single modules with HIPE - both in our application code and then going through key OTP / Erlang library modules, clearing sticky_directory errors and recompiling them one by one with +native.</div><div><br></div><div>Now that it is clear that (for this use case) native / HIPE is the way to go, I went to the project’s build box and recompiled Erlang (R16B03) from source with </div><div><br></div><div><span style="white-space: pre;"> </span>./configure --enable-hipe --enable-native-libs</div><div> </div><div>in the expectation that all libraries would be compiled with +native</div><div><br></div><div>Checking (for example) lists.beam gives:</div><div><br></div><blockquote type="cite"><div>Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]</div><div><br></div><div>Eshell V5.10.4 (abort with ^G)</div><div>1> lists:module_info().</div><div>[{exports,[{append,2},</div><div> {append,1},</div><div> {subtract,2},</div><div> {nth,2},</div><div> {nthtail,2},</div><div> {prefix,2},</div><div> {suffix,2},</div><div> {last,1},</div><div> {seq,2},</div><div> {seq,3},</div><div> {sum,1},</div><div> {duplicate,2},</div><div> {min,1},</div><div> {max,1},</div><div> {sublist,3},</div><div> {sublist,2},</div><div> {zip,2},</div><div> {zip3,3},</div><div> {unzip3,1},</div><div> {zipwith,3},</div><div> {zipwith3,4},</div><div> {merge,1},</div><div> {merge3,3},</div><div> {rmerge3,3},</div><div> {merge,...},</div><div> {...}|...]},</div><div> {imports,[]},</div><div> {attributes,[{vsn,[329984570326751442388870353176450263952]}]},</div><div> {compile,[{options,[{outdir,"/net/isildur/ldisk/daily_build/r16b03_prebuild_opu_o.2013-12-09_20/otp_src_R16B03/lib/stdlib/src/../ebin"},</div><div> {i,"/net/isildur/ldisk/daily_build/r16b03_prebuild_opu_o.2013-12-09_20/otp_src_R16B03/lib/stdlib/src/../include"},</div><div> {i,"/net/isildur/ldisk/daily_build/r16b03_prebuild_opu_o.2013-12-09_20/otp_src_R16B03/lib/stdlib/src/../../kernel/include"},</div><div> warnings_as_errors,debug_info]},</div><div> {version,"4.9.3"},</div><div> {time,{2013,12,9,19,26,33}},</div><div> {source,"/net/isildur/ldisk/daily_build/r16b03_prebuild_opu_o.2013-12-09_20/otp_src_R16B03/lib/stdlib/src/lists.erl"}]}]</div></blockquote><div><div>No sign of native anywhere…</div><div><br></div><div>I’ve tried this on OSX, CentOS and Ubuntu all with the same result, so it’s clearly me doing something stupid, but I can’t see it.</div><div><br></div><div>I obviously could go through and rebuild each module in turn (as we did for the benchmarking) but it doesn’t feel like the right way forward. </div><div><br></div><div>Any suggestions gratefully received!</div><div><br></div><div>Kind regards</div><div><br></div><div>Adrian</div><div>-- </div><div>Dr Adrian Roe</div><div>Director<br></div></div></div><div><br></div>