Erlang external term format

Kent Boortz kent@REDACTED
Thu Feb 26 01:31:11 CET 2004


Carsten Schultz <carsten@REDACTED> writes:
> > look into erts/emulator/internal_doc in the sources.
> 
> That was very helpful, thanks again.  I have written a (partial)
> implementation of it in Haskell, it works and it is fun.  Now, the
> Haskell programs my Yaws script call can send back Erlang terms :-)
> (The FLOAT_EXT part could use some clarification.)

Nice. Yes the document needs some improvements. Note that it is in
some cases possible to encode the same term in different ways. For
example an Erlang integer is not necessarily encoded into the most
compact external representation. An INTEGER_EXT can hold a 32 bit
integer but currently the emulator and erl_interface only use it for
encoding integers that fits into 28 bits (for historical reasons I
think).

> Is the atom cache described in the above document used anywhere?  Not
> in binary_to_term, it seems, at least if I understand it correctly.
> It's a pity, it looked like a good idea.

It is used encoding terms in the distribution protocol between two
nodes that agree on using it. Look in

  erts/emulator/beam/dist.c
  erts/emulator/beam/external.c

kent

This communication is confidential and intended solely for the addressee(s). Any unauthorized review, use, disclosure or distribution is prohibited. If you believe this message has been sent to you in error, please notify the sender by replying to this transmission and delete the message without disclosing it. Thank you.

E-mail including attachments is susceptible to data corruption, interruption, unauthorized amendment, tampering and viruses, and we only send and receive e-mails on the basis that we are not liable for any such corruption, interception, amendment, tampering or viruses or any consequences thereof.




More information about the erlang-questions mailing list