October 17, 2023
On 10/13/2023 11:24 AM, Adam D Ruppe wrote:
> pity D's leadership is so clueless and obstinate.

Criticize ideas, not people. Personal attacks are not welcome here.

October 17, 2023
On Tuesday, 17 October 2023 at 19:03:48 UTC, Walter Bright wrote:
> That's a misunderstanding of how it works.

No, that's exactly how it works. Read the document:

writefln(i"I ate $apples and ${%d}bananas totalling $(apples + bananas) fruit.");

gets rewritten as:

writefln("I ate %s and %d totalling %s fruit.", apples, bananas, apples + bananas);


And read the post above, which uses *write*, not write*f*. Think about the implications of that for a second.
October 17, 2023
On Tue, Oct 17, 2023 at 05:37:15PM +0000, Adam D Ruppe via Digitalmars-d wrote: [...]
> If we want to move forward, there's actually a good proposal out there: https://github.com/John-Colvin/YAIDIP

Just read through this.  This is one of the better interpolated string DIPs I've seen yet; I'd definitely support this over the dip1027 if John would be willing to formally submit it for DIP review.


T

-- 
English is useful because it is a mess. Since English is a mess, it maps well onto the problem space, which is also a mess, which we call reality. Similarly, Perl was designed to be a mess, though in the nicest of all possible ways. -- Larry Wall
October 17, 2023
On 10/17/2023 12:20 PM, Adam D Ruppe wrote:
> And read the post above, which uses *write*, not write*f*. Think about the implications of that for a second.

Yes, it means I forgot to use writef instead of write.
October 17, 2023
On Tuesday, 17 October 2023 at 20:05:59 UTC, Walter Bright wrote:
> On 10/17/2023 12:20 PM, Adam D Ruppe wrote:
>> And read the post above, which uses *write*, not write*f*. Think about the implications of that for a second.
>
> Yes, it means I forgot to use writef instead of write.

Your version left off the format specifiers, but I don't think that's all that significant.
October 17, 2023
On Tuesday, 17 October 2023 at 20:05:59 UTC, Walter Bright wrote:
> Yes, it means I forgot to use writef instead of write.

And the compiler wouldn't have told you about this. This is one of the (several) reasons why the dip was rejected.

It is difficulty to use correctly and adds very little value. C# and Javascript both have much better facilities.
October 17, 2023
On Tuesday, 17 October 2023 at 19:33:13 UTC, H. S. Teoh wrote:
> Just read through this.  This is one of the better interpolated string DIPs I've seen yet; I'd definitely support this over the dip1027 if John would be willing to formally submit it for DIP review.

Yeah, this proposal is actually just plain excellent, and the depths of what it enables go well beyond what the text of the document states.

It came out of an attempt to solve a real problem John and Andrei were facing, and they listened to what me and Steven had discussed previously. It brings type safety, tuple compatibility, CTFE *and* runtime flexibility, user extensibility, and rich metainfo about each use.

It is easy to make this compatible with normal strings, but also html templates, sql queries, gnu gettext, shell commands, even things like assert handlers and detailed exception construction that defers string construction to the end... the list goes on and on. And the implementation is easy too.

This is a proposal worthy of D.
October 17, 2023
On 10/17/2023 1:23 PM, jmh530 wrote:
>> Yes, it means I forgot to use writef instead of write.
> 
> Your version left off the format specifiers, but I don't think that's all that significant.

The %s format specifiers are inserted by default.
October 17, 2023
On 10/17/2023 1:44 PM, Adam D Ruppe wrote:
> On Tuesday, 17 October 2023 at 20:05:59 UTC, Walter Bright wrote:
>> Yes, it means I forgot to use writef instead of write.
> 
> And the compiler wouldn't have told you about this.

Neither would YAIDIP. write() takes a variadic argument list.

YAIDIP also requires the correct version of user-defined InterpolationHeader to be the one in scope. It's not immediately clear what would happen if the wrong one was in scope.

October 18, 2023
On Wednesday, 18 October 2023 at 00:27:16 UTC, Walter Bright wrote:
> Neither would YAIDIP. write() takes a variadic argument list.

Which is irrelevant because it *works correctly* when passed to write(), so there's no need for the compiler to say anything.

> YAIDIP also requires the correct version of user-defined InterpolationHeader to be the one in scope.

The text of the yaidip doesn't specify this, but this is utterly trivial to solve; the dip 1036 specified a fully qualified name for it and this one could too.