Discussion Thread: DIP 1036--Formatted String Tuple Literals--Community Review Round 1
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.com
Fri Sep 11 20:04:35 UTC 2020
On 9/11/20 2:24 PM, Adam D. Ruppe wrote:
> On Friday, 11 September 2020 at 18:16:10 UTC, Paul Backus wrote:
>> The main difference is that the Javascript system uses a regular-old
>> Javascript list for its "spec object", rather than an opaque
>> runtime-defined type.
>
> Frankly, I hate the opaque thing too and it is going to change. In my
> mind, it *must* be introspectable to be useful (without that, it also
> fails test #8 btw).
Well it looks like that opaque thing should be the result of "tuple" and
what's now "idup" should be "text", which takes us somewhere in between
the previous DIP (and what people opine in this thread) and this DIP.
Lowering for this:
i"Hello, $name"
would be:
tuple("Hello, ", name)
and that's the way the cookie crumbles.
Of course the problem is "tuple" is somewhere in std instead of being in
object.d. But if we zero in on this notion that we want a simple
lowering, no support for all that %s nonsense, and something that people
don't need to design functions especially for, that's an easy problem to
look at.
BTW people will do this:
auto var = i"Hello, $name";
They will expect a string. Now maybe we can talk them into well that's a
tuple, which is nice because @nogc, has full type info, etc. etc. But if
we start talking about yet another __opaqueTypeWithItsOwnAPI then we've
lost already.
More information about the Digitalmars-d
mailing list