Update on String Templates (JEP 459)
John Rose
john.r.rose at oracle.com
Wed Mar 13 22:37:57 UTC 2024
On 13 Mar 2024, at 15:22, John Rose wrote:
> … OVERLOADS …
>
> I don’t see (maybe I missed it) a decisive objection to overloading across ST
> and String, at least for some processing APIs.
Perhaps it is this: A language processor API that takes STs and never Strings is making it clear that all inputs should be properly vetted, nothing taken on trust as a bare string.
Doing that MIGHT require a performance model which permits expensive vetting operations to be memoized on particular OCCURRENCES of inputs (not just the input strings viewed in and of themselves).
If that’s true, then I guess that’s support for Guy’s proposal: That STs (even trivial ones) should never look identical to strings. Maybe they should always be preceded by a sigil $, or (per my suggestion) they should always have at least one occurrence of \{ inside, even if it’s a trivial nop.
I kind of like Guy’s offensive-to-everyone suggestion that $ is required to make a true ST. Then it’s clear how the veteting APIs mate up with their vetted inputs. And if $ is not placed in front, we surrender to the string-pasters, but at least the resulting true-string expressions won’t be accepted by the vetting APIs.
More information about the amber-spec-experts
mailing list