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.