We could and that's the approach we use in the formatter but we can't use it generally because it would break stuff like keyword lists (as the first element is now a tuple __block__ and no longer an atom).
*José Valim* www.plataformatec.com.br Skype: jv.ptec Founder and Director of R&D On Wed, Apr 3, 2019 at 10:53 PM Arjan Scherpenisse <[email protected]> wrote: > One thing that comes to mind for "simple value" cases like this: we could > use the existing :__block__ ast node with a single child as nodes for > simple values which have metadata attributes. AFAIK __block__ ast nodes now > always have > 1 child. > > This works: > > iex(7)> {:__block__, [], [:a]} |> Macro.to_string > ":a" > > And this as well: > > iex(10)> {:__block__, [], [123]} |> Code.eval_quoted() > {123, []} > > > > On Wednesday, April 3, 2019 at 9:55:22 PM UTC+2, Arjan Scherpenisse wrote: >> >> Thanks José, >> >> This is indeed a topic of interest to me. Actually, part of my talk in >> Prague coming tuesday will be about this. I'll let it simmer for now and >> maybe we can have a chat during the conference! >> >> cheers, Arjan >> >> On Wednesday, April 3, 2019 at 9:07:24 PM UTC+2, José Valim wrote: >>> >>> Hi Arjan, >>> >>> I don't believe there was any progress here. Storing it in the AST would >>> be hard because some nodes have no metadata slot, so it would be tricky in >>> situations like this: >>> >>> # Let's return just an atom for now >>> :foo >>> >>> >>> However, we do have the ability to return comments from tokenizer and >>> the formatter use this feature: >>> >>> >>> https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/code/formatter.ex#L205-L206 >>> >>> Note however those are private APIs but we will be glad to add a new API >>> or an option to one of the functions in the Code module that return the >>> AST + comments from a string. Feel free to experiment with the above and >>> submit a proposal as you see fit. >>> >>> *José Valim* >>> www.plataformatec.com.br >>> Skype: jv.ptec >>> Founder and Director of R&D >>> >>> >>> On Wed, Apr 3, 2019 at 8:27 PM Arjan Scherpenisse <[email protected]> >>> wrote: >>> >>>> Hi Steve, just stumbled on this, do you know if anything ever happened >>>> to this? >>>> >>>> On Sunday, September 23, 2018 at 1:10:38 AM UTC+2, Steve Morin wrote: >>>>> >>>>> Tried on Slack but I'll try freenode next >>>>> >>>>> On Fri, Sep 21, 2018 at 10:47 AM OvermindDL1 <[email protected]> >>>>> wrote: >>>>> >>>>>> #elixir-lang on freenode for note* >>>>>> >>>>>> On Friday, September 21, 2018 at 11:47:25 AM UTC-6, OvermindDL1 wrote: >>>>>>> >>>>>>> IRC would be a great place to ask. :-) >>>>>>> >>>>>>> On Friday, September 21, 2018 at 10:36:04 AM UTC-6, Steve Morin >>>>>>> wrote: >>>>>>>> >>>>>>>> Anyone know which Elixir AST expert to talk to, about getting tips >>>>>>>> on a starting point? Anyone have suggestions on whom to reach out to >>>>>>>> for >>>>>>>> quick email or call? >>>>>>>> >>>>>>>> On Wed, Sep 19, 2018 at 10:27 AM Steve Morin <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Anyone know which Elixir AST expert to talk to, about getting tips >>>>>>>>> on a starting point? >>>>>>>>> >>>>>>>>> On Mon, Sep 17, 2018 at 12:24 PM Steve Morin <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Yes being part of the metadata would be great. Need to look >>>>>>>>>> around/research and see what other people have done. Just not >>>>>>>>>> losing the >>>>>>>>>> data would be great. >>>>>>>>>> >>>>>>>>>> On Sep 17, 2018, at 12:10, José Valim < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>> I don't think we ever stored them in meta. But even if we did, we >>>>>>>>>> would probably have done it in the formatter, and we should likely >>>>>>>>>> move it >>>>>>>>>> somewhere public. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *José Valim* >>>>>>>>>> www.plataformatec.com.br >>>>>>>>>> Skype: jv.ptec >>>>>>>>>> Founder and Director of R&D >>>>>>>>>> >>>>>>>>>> On Mon, Sep 17, 2018 at 8:37 PM, Louis Pilfold < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hey >>>>>>>>>>> >>>>>>>>>>> I'm a little out of touch with this area, but isn't this what we >>>>>>>>>>> previously did? I remember comments being stored in meta during the >>>>>>>>>>> creation of the formatter. Or did I make that up? >>>>>>>>>>> >>>>>>>>>>> Cheers, >>>>>>>>>>> Louis >>>>>>>>>>> >>>>>>>>>>> On Mon, 17 Sep 2018 at 19:17 José Valim < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> 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. >>>>>>>>>>>> >>>>>>>>>>>> Once all the details are ironed out, then somebody can go ahead >>>>>>>>>>>> and fully implement it. :) >>>>>>>>>>>> -- >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *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/CAGnRm4J4%2BcTqcXH_ESJL2_o7rv5OJxkf_yJDpVAH%3DCjH2mmO7w%40mail.gmail.com >>>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J4%2BcTqcXH_ESJL2_o7rv5OJxkf_yJDpVAH%3DCjH2mmO7w%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>> . >>>>>>>>>>>> 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/CABu8xFAk6UQJbbMcD2xkwJFLPM%3DbASSnOqL6ihSdUQEMpuKNGg%40mail.gmail.com >>>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFAk6UQJbbMcD2xkwJFLPM%3DbASSnOqL6ihSdUQEMpuKNGg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> 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/CAGnRm4LmVcoPq7fRkJY5ErJ4N93Bd8-9erEByNETt%2BLN5DZuYA%40mail.gmail.com >>>>>>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4LmVcoPq7fRkJY5ErJ4N93Bd8-9erEByNETt%2BLN5DZuYA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>>> . >>>>>>>>>> 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.* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> 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/5f1a035a-527d-4b60-9d24-12f376835e01%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/5f1a035a-527d-4b60-9d24-12f376835e01%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> 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/a13ad0ff-4f42-44f9-91f5-8eacaa27450d%40googlegroups.com >>>> <https://groups.google.com/d/msgid/elixir-lang-core/a13ad0ff-4f42-44f9-91f5-8eacaa27450d%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> 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/0ab97ebf-39bf-4bcc-a137-49be7ed03f7c%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/0ab97ebf-39bf-4bcc-a137-49be7ed03f7c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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/CAGnRm4LrTru%3DL6S8LJpkV_yCkHy7wdh2_9M3BQ1o191h4JNbbQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
