[erlang-questions] Is there a good source for documentation on BEAM?
Richard O'Keefe
ok@REDACTED
Fri May 11 00:42:01 CEST 2012
On 10/05/2012, at 8:28 PM, Björn Gustavsson wrote:
> On Thu, May 10, 2012 at 8:10 AM, Richard O'Keefe <ok@REDACTED> wrote:
> [...]
>> Joe's little document made it clear that
>> (a) there are a lot more X registers allowed in Erlang that in
>> Quintus Prolog;
>> (b) maintaining them is more expensive than in Quintus Prolog;
>> (c) the nilling instructions I expected don't exist;
>> (d) there is a (temporary) space leak: if register K is live
>> at an allocation point, all registers <= K are assumed to
>> be live.
>
> There is not a temporary space leak in practice, because the compiler
> will insert an instruction that will clear (set to NIL) each dead register
> below K before any allocation point.
And *THAT* is precisely the kind of BEAM documentation that
volunteers will not be able to reconstruct without a disproportionate
amount of effort:
This operand gives the number of the highest live
X register, so that if a garbage collection is needed,
the collector knows which registers to trace from.
If any X registers with smaller numbers are dead at
this point, the compiler MUST ensure that they contain
immediate values, by nilling them if necessary.
More information about the erlang-questions
mailing list