Fair > On Apr 16, 2019, at 17:25, José Valim <[email protected]> wrote: > > If someone wants to try it out, sure, but at the moment I don't see it being > added directly to Elixir. > > At the moment I don't have any new information to add to this discussion, so > I will bow out and let everyone tinker to their hearts content. > > > José Valim > www.plataformatec.com.br > Skype: jv.ptec > Founder and Director of R&D > > >> On Wed, Apr 17, 2019 at 1:18 AM Steve Morin <[email protected]> wrote: >> Jose, >> Thanks for the clarification and maybe a partial solution would be a good >> first step. >> >>> On Tue, Apr 16, 2019 at 4:13 PM José Valim >>> <[email protected]> wrote: >>> If they did, yes, but they don't and they won't as that would be a pretty >>> big change to Elixir's AST. :) >>> >>> >>> José Valim >>> www.plataformatec.com.br >>> Skype: jv.ptec >>> Founder and Director of R&D >>> >>> >>>> On Wed, Apr 17, 2019 at 1:11 AM Steve Morin <[email protected]> wrote: >>>> Jose, >>>> My take away from you're comment is that it would only be a partial >>>> solution because there are some " nodes that do not have a metadata entry >>>> " but if they did then would you see any reason when it couldn't be >>>> implemented? >>>> >>>>> On Tue, Apr 16, 2019 at 4:03 PM José Valim >>>>> <[email protected]> wrote: >>>>> Yeah, I was pointing out it could be done only partially, and therefore >>>>> it would be incomplete as a solution. >>>>> >>>>> >>>>> José Valim >>>>> www.plataformatec.com.br >>>>> Skype: jv.ptec >>>>> Founder and Director of R&D >>>>> >>>>> >>>>>> On Wed, Apr 17, 2019 at 12:54 AM Steve Morin <[email protected]> >>>>>> wrote: >>>>>> Jose, >>>>>> Thought that you were mentioning that metadata could be added to those >>>>>> that don't have metadata? You're prior comments made it sound like it >>>>>> could be worked around (potentially) and that you would be supportive of >>>>>> that. Did I miss understand you? >>>>>> >>>>>> From you're prior reply: >>>>>>> I like the metadata idea a lot, thanks. We still need someone to send a >>>>>>> detailed proposal, including what will happen with inline comments, >>>>>>> comments inside blocks and comments as the last line of a block with no >>>>>>> expression afterwards. >>>>>> >>>>>>> We also need a discussion on what will happen with nodes that do not >>>>>>> have a metadata entry. Wrapping those in a block is likely enough (but >>>>>>> it will break semantics, for example, in keywords lists). So it would >>>>>>> need to be an opt-in feature only. >>>>>> >>>>>>> On Tue, Apr 16, 2019 at 2:00 PM José Valim >>>>>>> <[email protected]> wrote: >>>>>>> Hi Steve, as mentioned in this discussion, we can't really store it in >>>>>>> the AST as not all nodes have metadata. My suggestion is to keep it on >>>>>>> the side, similar to how we do in the formatter. Thanks for offering >>>>>>> the bounty though! >>>>>>> >>>>>>> José Valim >>>>>>> www.plataformatec.com.br >>>>>>> Skype: jv.ptec >>>>>>> Founder and Director of R&D >>>>>>> >>>>>>> >>>>>>>> On Tue, Apr 16, 2019 at 10:10 PM Steve Morin <[email protected]> >>>>>>>> wrote: >>>>>>>> Jose, RE adding comments to AST meta data. Realized I don’t have >>>>>>>> time to add it. But what are your feeling on me putting up a bounty >>>>>>>> on it? >>>>>>>> >>>>>>>>> On Apr 16, 2019, at 12:02, José Valim >>>>>>>>> <[email protected]> wrote: >>>>>>>>> >>>>>>>>> I have to disagree on some points: >>>>>>>>> >>>>>>>>> 1. Traversing the AST is not as complex as it sounds. You literally >>>>>>>>> need four clauses (and the first two can be written as proxy to the >>>>>>>>> third): >>>>>>>>> >>>>>>>>> def traverse({left, meta, right}) >>>>>>>>> def traverse({one, two}) >>>>>>>>> def traverse([_ | _] = list) >>>>>>>>> def traverse(other) >>>>>>>>> >>>>>>>>> 2. If we converted everything to 3 element tuples, the issue is not >>>>>>>>> only Macro.keywordify as there are also macros that match on atoms >>>>>>>>> too (and on strings too albeit less common). For instance, every >>>>>>>>> Phoenix application does it . So making everything a three-element >>>>>>>>> tuple would hurt that. >>>>>>>>> >>>>>>>>> 3. Note that {:integer, [], 1} and {:atom, [], "foo"} would be their >>>>>>>>> own AST nodes too, as there are now new rules for what the 3 element >>>>>>>>> actually is. Sure, it is more consistent in terms of metadata, but >>>>>>>>> you are not really reducing the number of nodes. You could make them >>>>>>>>> {:integer, meta, [1]} and similar but that would mean introducing new >>>>>>>>> special forms. >>>>>>>>> >>>>>>>>> I definitely agree that having a fixed place for metadata would >>>>>>>>> improve certain cases but the trade-offs are much more nuanced than >>>>>>>>> implied. The current AST was not optimized for reconstruction but for >>>>>>>>> developer ergonomics and I believe the proposed standardisation would >>>>>>>>> make certain features much more bureaucratic. >>>>>>>>> >>>>>>>>> José Valim >>>>>>>>> www.plataformatec.com.br >>>>>>>>> Skype: jv.ptec >>>>>>>>> Founder and Director of R&D >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "elixir-lang-core" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JDiCU2-viWn06FOwLAQKTZ-ufTPdihUn8UnaTcC5ZHfw%40mail.gmail.com. >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "elixir-lang-core" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>>>> an email to [email protected]. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/D78F2CE6-1EA1-4C16-8EDE-37FBD7005ED7%40gmail.com. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "elixir-lang-core" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>>> an email to [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KWbudLS31NPDcuCVaM4y3DZj58%2BHftj8YJnobQJ4MmWg%40mail.gmail.com. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>>> >>>>>> -- >>>>>> Steve Morin | Hacker, Entrepreneur, Startup Advisor >>>>>> twitter.com/SteveMorin | stevemorin.com >>>>>> Live the dream start a startup. Make the world ... a better place. >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "elixir-lang-core" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>> an email to [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAPxhEGf%3DFmRMxGqb8QDMNSFT56nuP2%2BeiVgVcKnmLL5ob5g%3Dsw%40mail.gmail.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "elixir-lang-core" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an >>>>> email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2BOh2VjzioKzbNN4bAZBmtUq2eydr76YMZj45Fzm1Z3fw%40mail.gmail.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>> >>>> >>>> -- >>>> Steve Morin | Hacker, Entrepreneur, Startup Advisor >>>> twitter.com/SteveMorin | stevemorin.com >>>> Live the dream start a startup. Make the world ... a better place. >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "elixir-lang-core" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/elixir-lang-core/CAPxhEGfj5WKsj29NzHOA8zrcazv20447soOdYwJWYXupXCOCRA%40mail.gmail.com. >>>> For more options, visit https://groups.google.com/d/optout. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "elixir-lang-core" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KavKX4kN3rsLZ7ajm_B6yOqUKN0LLRokg_M5vNe%2B8MQQ%40mail.gmail.com. >>> For more options, visit https://groups.google.com/d/optout. >> >> >> -- >> Steve Morin | Hacker, Entrepreneur, Startup Advisor >> twitter.com/SteveMorin | stevemorin.com >> Live the dream start a startup. Make the world ... a better place. >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAPxhEGfcLvMfxZZ4PL59FP%2BsD%3Ds1QXCfuwvxSyyD2FNsGurtxA%40mail.gmail.com. >> For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JhmOz8vUbJZNA3Ta_-61Rrt%2BpL2ZwVtbvsqg2bBsMD%2BA%40mail.gmail.com. > For more options, visit https://groups.google.com/d/optout.
-- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/6CC5B6CF-CC95-41F8-9E1D-04A62BBB572A%40gmail.com. For more options, visit https://groups.google.com/d/optout.
