Hi folks.
So, I was fooling around with various combinations of ERL_COMPILER_OPTIONS="[native,{hipe, [verbose, o3]}]" and forcing dependency compiles with Mix, erlc_options: [:native, {:hipe, [:verbose, :o3]}] in mix.exs, and this small utility that calls :hipe.c on all modules that have native: false.
Somewhat predictably, I ended up in a situation where every single loaded module’s module_info (sticky ones included!) reported native: true. No amount of uninformed fooling with :c / :code / :compiler has seemed to get rid of all the native modules, and changes often don’t seem to stick after I quit iex -S mix
- What are the possible downsides of this?
- Since the BEAM files contain both native and bytecode formats, how do I force
iex/mix/erlc/etc to ignore the native code / prefer bytecode? - How can I undo this? Do I need to? Can I just delete
*.beamfrom under Erlang’s and Elixir’s prefixes, and runmix compilein some project directory?






















