[erlang-questions] Re: Some ei questions
Fri Nov 19 16:44:45 CET 2010
1. External term encoding format treats small integers fitting in one
byte differently from larger ones, and therefore has a special encoding
type for them. From the definition of this encoding it's highly
unlikely that that would change as such a change would not be backward
2. You can decode it with either one of the two functions. The
difference between these functions is in the amount of space you give
them to store the decoded result, but they are smart enough to handle
different types of integers.
3. Even though ei_get_type() and ei_decode_binary() specify different
types of length (on 64-bit platforms), a binary value is limited to 4G,
and therefore in practice this discrepancy is irrelevant (though not
On 11/19/2010 6:26 AM, Alexey Romanov wrote:
> And also, while I am at it: why is there mismatch between arguments of
> ei_get_type (int *size) and ei_decode_binary (long *len), given that
> documentation states "The size required can be fetched by
> ei_get_type()"? How can the size of a binary be obtained in case it
> doesn't fit into int?
> Yours, Alexey Romanov
> On Fri, Nov 19, 2010 at 12:25 PM, Alexey Romanov
> <> wrote:
>> 1. ei.h says about ERL_SMALL_INTEGER_EXT etc. "Defines used for
>> ei_get_type_internal() output; we don't want to export these". Are
>> they likely to go away in next release or two? Should some other
>> #defines be used for output of `ei_get_type()` (not
>> 2. ERL_SMALL_INTEGER_EXT should be decoded with ei_decode_long() and
>> ERL_INTEGER_EXT with ei_decode_longlong()? Or something different?
>> Yours, Alexey Romanov
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
More information about the erlang-questions