[erlang-questions] unexpected result of term_to_binary

Steve Davis <>
Tue Jan 22 20:18:44 CET 2013

Let's just say that I'm now sorry I asked the question in the first place. I have a decent, unambiguous solution to the issue.

However, to name that byte flag STRING_EXT is simply dishonest and misleading.

And apart from erl_scan that Ulf mentioned, consider the meaning of this module for erlang: http://www.erlang.org/doc/man/string.html

Finally, if you search this list you'll see I have a history of promoting the revocation of the whole concept of a "string" in erlang. 

I don't see how it's possible to deny the existence of this concept since it is plainly obvious that the platform does makes implicit decisions about text as soon as you type [65,66,67] in the REPL.


On Jan 22, 2013, at 11:35 AM, Robert Virding <> wrote:

> I don't see the problem. Erlang doesn't have strings, it only has lists of integers so unless you start tagging things there is no safe way to differentiate between them. As a general list can be a list of anything so the encoding must be able to handle this. However, the encoding special cases a list of small (<256) integers and uses a more compact representation. That it calls it a STRING_EXT doesn't really mean anything, they could just as well have called it LIST_OF_SMALL_INTEGER_EXT instead. The description of STRING_EXT actually says this:
> "String does NOT have a corresponding Erlang representation, but is an optimization for sending lists of bytes (integer in the range 0-255) more efficiently over the distribution."
> So why not just treat it as such?
> Robert
> ----- Original Message -----
>> From: "Steve Davis" <>
>> To: "Richard O'Keefe" <>
>> Cc: "Erlang Questions" <>
>> Sent: Tuesday, 22 January, 2013 2:29:54 PM
>> Subject: Re: [erlang-questions] unexpected result of term_to_binary
>> Because I was writing an ETF decoder for a language that does make a
>> distinction between strings and arrays of integers, and wanted to
>> avoid constraints on the kinds of terms that could be sent from the
>> erlang side of things.
>> On Jan 21, 2013, at 11:23 PM, "Richard O'Keefe" <>
>> wrote:
>>> On 22/01/2013, at 8:38 AM, Steve Davis wrote:
>>>> The following appears to encode lists of integers as strings
>>>> (?!?):
>>>> Is there a reason for this that I'm missing?
>>> Why do you _care_ what the encoding is as long as it decodes
>>> correctly?
>> _______________________________________________
>> erlang-questions mailing list
>> http://erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list