[erlang-questions] Unloading all modules from ERL session

Steve Davis steven.charles.davis@REDACTED
Sat Jun 15 02:32:40 CEST 2013

Hi Rob,

Good point and awesomely true, and your advice provides invaluable insight 
into the caution needed when releasing new code to long-running systems in 
prod (and the need for code change callback implementations). 

However, I've found that during development I rarely need that level of 
control, so make:all([load]) is more than enough for most purposes in dev 
that I have faced. 

"as simple as possible, but no simpler"

I guess the trick is to decide what is simple enough for the purpose.


On Friday, June 14, 2013 6:11:40 AM UTC-5, Roberto Aloi wrote:
> In Erlang, two and only two versions of the same module can coexist in the 
> run time system (an old version and a new version). Processes running the 
> old version of the code will keep running that version (even if you load a 
> new version of the module) until they make a fully qualified call to the 
> module itself (I.e. M:F(A)). If you add a third version of the code in the 
> system (e.g. you load a module twice) the "very old" version gets purged 
> and those processes executing the obsolete version get killed. You can also 
> use code:purge and code:soft_purge to "force" this behaviour. Look at the 
> "code" module for more options.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130614/fde78686/attachment.htm>

More information about the erlang-questions mailing list