You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Erlang compiler apparently always uses the loaded Mod:behaviour_info/1 to check whether a module implements the given behaviour. If it is changed, compiled modules will still be checked against the previous version of the behaviour and the compilation will either fail or (worse) go through even though the modules don't actually implement the new behaviour.
It's probably enough to forcibly unload modules that have a behaviour_info and are to be recompiled.
The text was updated successfully, but these errors were encountered:
filmor
changed the title
Modules containing behaviours must be loaded even if the whole compilation failed
Changing behaviours breaks recompilation
Feb 21, 2018
The Erlang compiler apparently always uses the loaded
Mod:behaviour_info/1
to check whether a module implements the given behaviour. If it is changed, compiled modules will still be checked against the previous version of the behaviour and the compilation will either fail or (worse) go through even though the modules don't actually implement the new behaviour.It's probably enough to forcibly unload modules that have a
behaviour_info
and are to be recompiled.The text was updated successfully, but these errors were encountered: