[erlang-questions] effect of destructive updates on GC implementation
Jonathan Amsterdam
jbamsterdam@REDACTED
Tue Jan 29 23:02:44 CET 2008
> The core Erlang developers are well aware of the techniques
> needed to support destructive updates in GC:d heaps.
Apologies if my tone came across as patronizing. I just wanted to
explain my position without assuming anything.
> 2. As soon as destructive updates are supported, people
> will use them. From what I've heard from Ericsson folks,
> the lack of destructive updates is actually a positive
> thing for them, presumably due to program reliability and
> programmer productivity.
This is something I've wondered about. Are there any
production-quality, scalable programs that do not use mnesia, d/ets
tables or process dictionaries? That would be cool, but it seems to
me that when you're dealing with huge amounts of real-world data that
can change, the copying involved in purely functional data structures
would kill you.
> 3. The combination of message passing and mutable data breaks
> the semantics of Erlang, or that of mutable data, and limits
> the choices the Erlang implementors can make. Suppose P1
> sends a term T to P2. P2 inspects it. Later, P1 updates
> some part of T. Should P2 observe that change?
> - if yes, the semantics of Erlang is now fundamentally altered,
> - if no, the semantics of mutable data is severely restricted.
> Furthermore, each choice creates new hard constraints on how
> the runtime system may implement process heaps and message
> passing.
>
This is the most compelling reason, for me.
More information about the erlang-questions
mailing list