[erlang-questions] clarify: Shell Crash on Compilation

Matthias Lang <>
Sat Dec 22 21:12:55 CET 2007


  | 9.9. Why does my application die every second time I load new code into it?
  | 
  | Erlang's code replacement system is based around there being (up to)
  | two copies of the code loaded at any time, these are called "old" and
  | "new". When you load new code, the current version becomes "old" and
  | the "old" code is thrown away. Any processes still running "old" code
  | are killed.
  | 
  | You can check if there is any old code for a particular module still running:
  | 
  | 	Eshell V4.9.1  (abort with ^G)
  | 	1> l(erl).
  | 	{module,erl}
  | 	2> code:soft_purge(erl).
  | 	false
  | 	
  | 
  | In this case old code is still running. You can also check if a
  | particular process is running old code, by using
  | erlang:check_process_code(Pid, Module).

http://www.erlang.org/faq/faq.html

Matthias


Ryan Janzen writes:
 > Hello List,
 > 
 > I was compiling code in the erlang shell on my Powerbook and got this:
 > 
 > 49> c(flux_http_handshake).
 > *** ERROR: Shell process terminated! ***
 > Eshell V5.6  (abort with ^G)
 > 1>
 > 
 > Is there any reason the shell should crash like this?  If I retry the  
 > compilation, it works.
 > 
 > erl --version gives:
 > 
 > Erlang (BEAM) emulator version 5.6 [source] [async-threads:0] [hipe]  
 > [kernel-poll:false]
 > 
 > Eshell V5.6  (abort with ^G)
 > 1>
 > 
 > and I am running R12B-0 with patch.
 > 
 > Ryan
 > _______________________________________________
 > erlang-questions mailing list
 > 
 > http://www.erlang.org/mailman/listinfo/erlang-questions
 > 



More information about the erlang-questions mailing list