[erlang-questions] Special syntax for dictionaries
Fri May 7 22:33:00 CEST 2010
Recently, I submitted a patch to make term_to_binary have a "safe" option (i.e. doesn't create new atoms). It was accepted. My use case was decoding binaries from the network and dropping them into a pattern-match to make simple network protocols. It turned out that I had no problem just creating the atoms I needed and letting the conversion fail if I got a bad atom.
Perhaps you could do something similar in the JSON or YAML decoder? Just use list_to_existing_atom/1. If it fails, collect that key into a 'unknown keys' dictionary or just throw it away if you don't need to save / use the extra data.
It would be perhaps a little ugly, but it should work. I've always found that a little judicious design can generally prevent atom leakage.
On May 7, 2010, at 1:16 PM, Sergey Samokhin <prikrutil@REDACTED> wrote:
>> I personally don't think that we need or should have a special syntax
>> for dicts
> After some thinking and rereading I should admit that Richard O'Keefe
> is right and what I actually need is more like frames/structs than
> dictionaries (actually, I don't even need indexes on keys, because my
> documents are quite small). Garbage collected atoms + frames/structs
> are enough.
> With atoms not being garbage collected frames/stuct can only be
> *almost* dynamic, because using them for representing deep and dynamic
> data structures (JSON/XML/YAML) will soon lead to leaking atoms.
> Sergey Samokhin
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
More information about the erlang-questions