Fri Jun 7 20:46:48 CEST 2002
> For example I remember I had an implementation of process migration
> from one node to another that nobody cared about, so I removed it.
Being able to send funs and code between threads is no complete
replacement for that, as one would still need to snapshot the
current thread into a closure, then send that along. Looks like
a useful feature to me.
> Anyway, here's my reply to your suggestion above. When we were
> discussing and implementing different features, there was always
> one limiting factor, and that was that a feature shouldn't rely on whether
> we were having a shared heap implementation or an implementation
> with private heaps per process.
> Having logical (unbound) variables in everything but message passing
> is just such a feature. If we're to ban unbound vars in messages, we
> must scan the message before sending it. This is bad if we're having
> a unified heap.
Okay, I was misled by the similarity to Prolog - you don't actually
check for non-instantiated variables at the point of use, but at the
point of definition, only that it may not be immediately obvious
whether "..,X=value,.." is a definition or an equality check.
Assuming logical variables, would it be sufficient to replace the
runtime check by a static check, ruling out all *potentially*
uninstantiated variables in messages?
More information about the erlang-questions