On 2024-03-26 06:52, Paul Smith wrote:
> There's nothing wrong with creating a variable name containing a comma
> and I don't anticipate making this illegal.

That's good to know. Since the delimiter in function calls is
whitespace, and commas don't come into play until after that in
the argument list, there is no technical ambiguity in allowing
it in the name; just perhaps cognitive confusion.

I mean, allowing it in the name when we have the imaginary
call-free syntax.

There is an ambiguity now in that a name with commas cannot
be invoked with call, I think; if we have $(a,b), we cannot
$(call a,b,c,d) to give it arguments.

However, I'm noticing that expansion preserves the semantic
boundaries, which is important. If we have $(x) that expands
to a,b, then we /can/ invoke $(call $(x),c,d). The delimiting
of argument material must be happening prior to expansions
(at least in the abstract).

If call is removed, $(a,b c,d) is unambiguous on its own,
without needing to be protected by $(x).

This also speaks to whitespace. Regardless of any other
current or proposed requirements, if $(x) expands to a b,
then $($(x) c,d) should treat $(x) as a unit, invoking a b
with arguments c,d. Under no circumstances would it be
treated as a with arguments b c, d.

  • Dropping ... Kaz Kylheku
    • Re: ... Paul Smith
      • ... Kaz Kylheku
        • ... Kaz Kylheku
          • ... Stefan Monnier via Users list for the GNU implementation of make
        • ... Paul Smith
          • ... Kaz Kylheku
            • ... Paul Smith

Reply via email to