[erlang-questions] Atom Unicode Support

José Valim jose.valim@REDACTED
Mon Feb 1 13:08:51 CET 2016


Understood! Thank you.




*José Valim*
www.plataformatec.com.br
Skype: jv.ptec
Founder and Director of R&D

On Mon, Feb 1, 2016 at 12:59 PM, Björn Gustavsson <bjorn@REDACTED> wrote:

> On Mon, Feb 1, 2016 at 9:44 AM, José Valim
> <jose.valim@REDACTED> wrote:
> > So I would say list_to_binary is behaving as expected and that it should
> not
> > change as those "limitations" are there today. Same for port_command, as
> it
> > expects iodata. Or am I missing something?
>
> My point is that we must look for code in
> OTP that will break when the change to
> the atoms are made.
>
> As an hypothetical example, say that we
> find the following code in some application:
>
>   Str = atom_to_list(Atom),
>   .
>   .
>   .
>   port_command(Port, Cmd, Str)
>
> We must look at the context to determine
> what we should do. There could be one
> of several solutions, for example:
>
> 1. If the atoms that can be passed to this
> code have been internally generated we
> could know that the resulting list is always
> safe to send to the port. In that case we
> don't need to update the code.
>
> 2. If the origin of the atom is unknown,
> and the driver cannot handle UTF-8,
> the solution could be to return an error
> to the caller if the atom contains
> non-latin1 characters.
>
> 3. If the driver can handle UTF-8 or can
> be modified to handle UTF-8, the solution
> could be to use atom_to_binary(Atom, utf8)
> instead of atom_to_list/1.
>
> Basically, we must look at every atom_to_list/1
> in the OTP code base and determine whether
> it is safe or if it must be modified in some way.
>
> /Björn
>
> --
> Björn Gustavsson, Erlang/OTP, Ericsson AB
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160201/91689f7a/attachment.htm>


More information about the erlang-questions mailing list