<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Looking at the age of the last entry in this thread, it seems that the discussion about frames has rather tailed off again. A pity.</div><div><br></div>I'd like to add support for both the introduction of frames (and for the EEP 20 on "splitting atoms"). They appear to me to solve fairly pressing issues.<div><div><br></div><div>Personally, I _strongly_ prefer the proposed "erlson form" of notation for frames above the suggested <{}> and ~.<br><div><br></div><div>I do have a question (re: section 8.2 "What we've lost...")... I frequently use pattern matching to constrain arguments to type, e.g.:</div><div><br></div><div>foo(R = #record{}) -> etc</div><div><br></div><div>In frames, are we limited to: </div><div>foo(F) is_frame(F) -> etc</div><div>?</div><div><br></div><div>regs,</div><div>/s<br style="background-color: rgb(255, 255, 255); "><br style="color: rgb(34, 34, 34); font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><span style="color: rgb(34, 34, 34); font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">On Thursday, May 3, 2012 8:54:46 PM UTC-5, Richard O'Keefe wrote:</span><blockquote class="gmail_quote" style="color: rgb(34, 34, 34); font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><br>On 3/05/2012, at 10:55 PM, Max Lapshin wrote: <br><br>>>  - They have no default value <br>>>  - Only atoms may be keys <br>> <br>> These two poins are very interesting to discuss. <br>> <br>> <br>> Problem is with handling external data. <br><br>Response 1: <br><br>   Frames are very explicitly a replacement for RECORDS. <br>   You cannot currently use records in external data. <br>    <br><br>Response 2: <br><br>   EEP 20 (<a href="http://www.erlang.org/eeps/eep-0020.html" target="_blank" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; text-decoration: none; color: rgb(102, 17, 204); cursor: text; ">http://www.erlang.org/eeps/<wbr>eep-0020.html</a>) <br>   has now been around for nearly four years.  It offers <br>   a permanent fix to the limited size of the atom table, <br>   a fix which has been used before in another concurrent <br>   programming language. <br><br>   That's not the only way to fix the atom table problem. <br>   SWI Prolog offers true multicore concurrency AND a <br>   garbage collected atom table.  That's been around for <br>   a few years now too. <br><br>   By any engineering standard I can think of, fixing this <br>   vulnerability in Erlang should have very high priority. <br>   The frames proposal presupposed that this flaw has been <br>   fixed somehow.  We *cannot* let this flaw warp Erlang <br>   programming for the rest of our lives. <br><br>> <br>> We will not be able to use frames for handling user data if only atoms <br>> can be keys, but if we allow to store atoms, binaries and strings as <br>> keys, we will get a mess with different ways to introduce keys. <br><br>We *WILL* be able to use frames for handling user data <br>WHEN THE ATOM TABLE BUG IS FIXED. <br><br>And it is LONG past time for that to happen. <br><br><br>______________________________<wbr>_________________ <br>erlang-questions mailing list <br><a href="https://groups.google.com/forum/?fromgroups" target="_blank" gdf-obfuscated-mailto="Nq8F85Bqp9cJ" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; text-decoration: none; color: rgb(102, 17, 204); cursor: text; ">erlang-q...@erlang.org</a> <br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; text-decoration: none; color: rgb(102, 17, 204); cursor: text; ">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a> </blockquote></div></div></div></body></html>