Concatenating atoms

Thomas Lindgren <>
Thu Feb 3 11:35:39 CET 2005


--- Valentin Micic <> wrote:
> What are we going to gain by
> introducing GC for atoms?  I've
> run out of the atom table space once. It was by
> mistake, of course. I don't
> think I'll run out ever again -- seems much easier
> to use my brain instead.

Good for you! I think there are several reasons for
having an atom GC. The basic problem is, every time
you create an atom, you take one more step towards
rebooting your node. While the distance to the cliff
may be long (and may certainly be reached more quickly
by other means :-) there is currently no way to turn
back.

If you want to be sure never to create new atoms, you
need to be careful about:

- your own code, of course
- using third party utilities that can create new
atoms (e.g., file:consult and friends)
- creating new named ets or mnesia tables
- registering new named processes
- contacting new nodes
- loading new modules (module names are atoms)
- loading new versions of old modules with new
exported function names (more atoms)
- other people working on your system after you've
left

and likely a number of other situations.

Clearly, a lot of systems function well without an
atom GC. I can appreciate that atom GC may be
difficult to implement well. But not having it still
seems like an unnecessary complication.

Best,
Thomas



		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - 250MB free storage. Do more. Manage less. 
http://info.mail.yahoo.com/mail_250



More information about the erlang-questions mailing list